Fixes team image not downloaded

This commit is contained in:
Bennet Brunsen committed 2015-06-26 15:57:38 +02:00
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>
@@ -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
*/
@@ -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,