mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-23 12:33:53 +00:00
Fixes team image not downloaded
This commit is contained in:
1 parent
872affd56e
commit
44cc30234f
3 files changed
+45
-3
No files matched your search
@@ -6,5 +6,6 @@
|
||||
<string name="preference_server_event_path" translatable="false">/sailingserver/api/v1/events/{event_id}</string>
|
||||
<string name="preference_server_leaderboard_path" translatable="false">/sailingserver/api/v1/leaderboards/{leaderboard_name}</string>
|
||||
<string name="preference_server_competitor_path" translatable="false">/sailingserver/api/v1/competitors/{competitor_id}</string>
|
||||
<string name="preference_server_team_info_path" translatable="false">/sailingserver/api/v1/competitors/{competitor_id}/team</string>
|
||||
<string name="preference_server_team_image_upload_path" translatable="false">/sailingserver/api/v1/competitors/{competitor_id}/team/image</string>
|
||||
</resources>
|
||||
+39
-3
@@ -20,6 +20,7 @@ import android.widget.Toast;
|
||||
import com.sap.sailing.android.shared.data.AbstractCheckinData;
|
||||
import com.sap.sailing.android.shared.data.CheckinUrlInfo;
|
||||
import com.sap.sailing.android.shared.data.LeaderboardInfo;
|
||||
import com.sap.sailing.android.shared.data.http.HttpGetRequest;
|
||||
import com.sap.sailing.android.shared.data.http.HttpJsonPostRequest;
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.android.shared.ui.activities.AbstractRegattaActivity;
|
||||
@@ -220,9 +221,7 @@ public class RegattaActivity extends AbstractRegattaActivity implements RegattaF
|
||||
ImageView imageView = (ImageView) findViewById(R.id.userImage);
|
||||
Bitmap storedImage = getStoredImage(getLeaderboardImageFileName(leaderboard.name));
|
||||
if (storedImage == null) {
|
||||
if (event.imageUrl != null) {
|
||||
new DownloadLeaderboardImageTask(imageView).execute(event.imageUrl);
|
||||
}
|
||||
askServerAboutTeamImageUrl(imageView);
|
||||
} else {
|
||||
imageView.setImageBitmap(storedImage);
|
||||
userImageUpdated();
|
||||
@@ -240,6 +239,43 @@ public class RegattaActivity extends AbstractRegattaActivity implements RegattaF
|
||||
}
|
||||
}
|
||||
|
||||
public void askServerAboutTeamImageUrl(final ImageView imageView){
|
||||
try {
|
||||
URL url = new URL(checkinUrl.urlString);
|
||||
StringBuilder sb = new StringBuilder("http://");
|
||||
sb.append(url.getHost());
|
||||
sb.append(":");
|
||||
sb.append((url.getPort() == -1) ? 80 : url.getPort());
|
||||
sb.append(prefs.getServerCompetiorTeamPath(competitor.id));
|
||||
|
||||
HttpGetRequest getCompetitorTeamRequest = new HttpGetRequest(new URL(sb.toString()), this);
|
||||
NetworkHelper.getInstance(this).executeHttpJsonRequestAsnchronously(getCompetitorTeamRequest, new NetworkHelperSuccessListener() {
|
||||
@Override
|
||||
public void performAction(JSONObject response) {
|
||||
try {
|
||||
String teamImageUri = response.getString("imageUri");
|
||||
if (teamImageUri != null) {
|
||||
new DownloadLeaderboardImageTask(imageView).execute(teamImageUri);
|
||||
}
|
||||
}
|
||||
catch (JSONException e) {
|
||||
ExLog.e(getApplicationContext(), TAG, "Error: Failed to get teamImageURL: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
}, new NetworkHelperFailureListener() {
|
||||
@Override
|
||||
public void performAction(NetworkHelperError e) {
|
||||
ExLog.e(getApplicationContext(), TAG,
|
||||
"Error: Failed to get teamImageURL: " + e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
} catch (MalformedURLException e) {
|
||||
ExLog.e(this, TAG,
|
||||
"Error: Failed to perform checking due to a MalformedURLException: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param bitmap
|
||||
*/
|
||||
|
||||
+5
@@ -50,6 +50,11 @@ public class AppPreferences extends BaseAppPreferences {
|
||||
competitorId);
|
||||
}
|
||||
|
||||
public String getServerCompetiorTeamPath(String competitorId){
|
||||
return context.getString(R.string.preference_server_team_info_path, "/competitors").replace("{competitor_id}",
|
||||
competitorId);
|
||||
}
|
||||
|
||||
public int getGPSFixInterval() {
|
||||
// EditTextPreference saves value as string, even if android:inputType="number" is set
|
||||
String value = PrefUtils.getString(context, R.string.preference_gps_fix_interval_ms_key,
|
||||
|
||||
Reference in new issue
Block a user