reformatted more code

This commit is contained in:
Axel Uhl committed 2015-03-05 00:35:13 +01:00
1 parent 7b5573497f
commit 9a33bc91f2
1 file changed
+325 -340
@@ -55,28 +55,27 @@ public class RegattaActivity extends BaseActivity {
private final static String TAG = RegattaActivity.class.getName();
private final static String LEADERBOARD_IMAGE_FILENAME_PREFIX = "leaderboardImage_";
private final static String FLAG_IMAGE_FILENAME_PREFIX = "flagImage_";
public EventInfo event;
public CompetitorInfo competitor;
public LeaderboardInfo leaderboard;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
event = new EventInfo();
competitor = new CompetitorInfo();
leaderboard = new LeaderboardInfo();
String checkinDigest = intent.getStringExtra(getString(R.string.checkin_digest));
competitor = DatabaseHelper.getInstance().getCompetitor(this, checkinDigest);
event = DatabaseHelper.getInstance().getEventInfo(this, checkinDigest);
leaderboard = DatabaseHelper.getInstance().getLeaderboard(this, checkinDigest);
event = DatabaseHelper.getInstance().getEventInfo(this, checkinDigest);
leaderboard = DatabaseHelper.getInstance().getLeaderboard(this, checkinDigest);
setContentView(R.layout.fragment_container);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
@@ -91,17 +90,16 @@ public class RegattaActivity extends BaseActivity {
getSupportActionBar().setTitle(leaderboard.name);
getSupportActionBar().setSubtitle(event.name);
}
replaceFragment(R.id.content_frame, new RegattaFragment());
replaceFragment(R.id.content_frame, new RegattaFragment());
}
@Override
public void onStart() {
super.onStart();
if (prefs.getTrackerIsTracking())
{
String checkinDigest = prefs.getTrackerIsTrackingCheckinDigest();
startTrackingActivity(checkinDigest);
public void onStart() {
super.onStart();
if (prefs.getTrackerIsTracking()) {
String checkinDigest = prefs.getTrackerIsTrackingCheckinDigest();
startTrackingActivity(checkinDigest);
}
}
@@ -111,7 +109,7 @@ public class RegattaActivity extends BaseActivity {
inflater.inflate(R.menu.options_menu_with_checkout, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
@@ -120,405 +118,392 @@ public class RegattaActivity extends BaseActivity {
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.options_menu_checkout:
ExLog.i(this, TAG, "Clicked CHECKOUT.");
checkout();
return true;
ExLog.i(this, TAG, "Clicked CHECKOUT.");
checkout();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private RegattaFragment getRegattaFragment()
{
return (RegattaFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
private RegattaFragment getRegattaFragment() {
return (RegattaFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
}
private void userImageUpdated() {
runOnUiThread(new Runnable() {
@Override
public void run() {
LinearLayout addTeamPhotoTextView = (LinearLayout) findViewById(R.id.add_photo);
addTeamPhotoTextView.setVisibility(View.INVISIBLE);
getRegattaFragment().setChangePhotoButtonHidden(false);
}
});
private void userImageUpdated() {
runOnUiThread(new Runnable() {
@Override
public void run() {
LinearLayout addTeamPhotoTextView = (LinearLayout) findViewById(R.id.add_photo);
addTeamPhotoTextView.setVisibility(View.INVISIBLE);
getRegattaFragment().setChangePhotoButtonHidden(false);
}
});
}
// private void flagImageUpdated() {
// runOnUiThread(new Runnable() {
// @Override
// public void run() {
// ImageView flagImageView = (ImageView) findViewById(R.id.flag_image);
// }
// });
// }
// private void flagImageUpdated() {
// runOnUiThread(new Runnable() {
// @Override
// public void run() {
// ImageView flagImageView = (ImageView) findViewById(R.id.flag_image);
// }
// });
// }
@Override
protected void onResume() {
TextView competitorNameTextView = (TextView)findViewById(R.id.competitor_name);
TextView competitorNameTextView = (TextView) findViewById(R.id.competitor_name);
competitorNameTextView.setText(competitor.name);
TextView sailIdTextView = (TextView)findViewById(R.id.sail_id);
TextView sailIdTextView = (TextView) findViewById(R.id.sail_id);
sailIdTextView.setText(competitor.sailId);
// ImageView flagImageView = (ImageView)findViewById(R.id.flag_image);
//String flagStr = String.format("%s.png", countryCode);
// String uri = "@drawable/" + competitor.countryCode.toLowerCase(Locale.getDefault());
//
// int imageResource = getResources().getIdentifier(uri, null, getPackageName());
//
// try {
// Drawable res = getResources().getDrawable(imageResource);
// flagImageView.setImageDrawable(res);
// } catch (Exception e) {
// e.printStackTrace();
// }
getRegattaFragment().setChangePhotoButtonHidden(true);
//ExLog.w(this, TAG, "Event Image URL: " + event.imageUrl);
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);
}
}
else
{
imageView.setImageBitmap(storedImage);
userImageUpdated();
}
ImageView flagImageView = (ImageView)findViewById(R.id.flag_image);
Bitmap storedFlagImage = getStoredImage(getFlagImageFileName(competitor.countryCode.toLowerCase(Locale.getDefault())));
if (storedFlagImage == null) {
String urlStr = String.format("%s/gwt/images/flags/%s.png", event.server,
competitor.countryCode.toLowerCase(Locale.getDefault()));
new DownloadFlagImageTask(flagImageView, competitor.countryCode).execute(urlStr);
} else {
flagImageView.setImageBitmap(storedFlagImage);
}
super.onResume();
// ImageView flagImageView = (ImageView)findViewById(R.id.flag_image);
// String flagStr = String.format("%s.png", countryCode);
// String uri = "@drawable/" + competitor.countryCode.toLowerCase(Locale.getDefault());
//
// int imageResource = getResources().getIdentifier(uri, null, getPackageName());
//
// try {
// Drawable res = getResources().getDrawable(imageResource);
// flagImageView.setImageDrawable(res);
// } catch (Exception e) {
// e.printStackTrace();
// }
getRegattaFragment().setChangePhotoButtonHidden(true);
// ExLog.w(this, TAG, "Event Image URL: " + event.imageUrl);
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);
}
} else {
imageView.setImageBitmap(storedImage);
userImageUpdated();
}
ImageView flagImageView = (ImageView) findViewById(R.id.flag_image);
Bitmap storedFlagImage = getStoredImage(getFlagImageFileName(competitor.countryCode.toLowerCase(Locale
.getDefault())));
if (storedFlagImage == null) {
String urlStr = String.format("%s/gwt/images/flags/%s.png", event.server,
competitor.countryCode.toLowerCase(Locale.getDefault()));
new DownloadFlagImageTask(flagImageView, competitor.countryCode).execute(urlStr);
} else {
flagImageView.setImageBitmap(storedFlagImage);
}
super.onResume();
}
/**
*
* @param bitmap
*/
public void updateLeaderboardPictureChosenByUser(final Bitmap bitmap)
{
storeImageAndSendToServer(bitmap, getLeaderboardImageFileName(leaderboard.name), true);
runOnUiThread(new Runnable() {
@Override
public void run() {
ImageView imageView = (ImageView) findViewById(R.id.userImage);
imageView.setImageBitmap(bitmap);
}
});
userImageUpdated();
public void updateLeaderboardPictureChosenByUser(final Bitmap bitmap) {
storeImageAndSendToServer(bitmap, getLeaderboardImageFileName(leaderboard.name), true);
runOnUiThread(new Runnable() {
@Override
public void run() {
ImageView imageView = (ImageView) findViewById(R.id.userImage);
imageView.setImageBitmap(bitmap);
}
});
userImageUpdated();
}
/**
* Store image for quicker retrieval later and trigger upload to server.
*
* @param images
*/
private void storeImageAndSendToServer(Bitmap image, String fileName, boolean sendToServer) {
File pictureFile = getImageFile(fileName);
if (pictureFile == null) {
Log.d(TAG,
"Error creating media file, check storage permissions: ");// e.getMessage());
Log.d(TAG, "Error creating media file, check storage permissions: ");// e.getMessage());
return;
}
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
image.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close();
if (sendToServer) {
sendTeamImageToServer(pictureFile);
sendTeamImageToServer(pictureFile);
}
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d(TAG, "Error accessing file: " + e.getMessage());
}
}
}
/**
* Get stored image if there's one saved.
*
* @return
*/
private Bitmap getStoredImage(String fileName)
{
File pictureFile = getImageFile(fileName);
if (pictureFile == null)
{
return null;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap image = BitmapFactory.decodeFile(pictureFile.getAbsolutePath(), options);
return image;
private Bitmap getStoredImage(String fileName) {
File pictureFile = getImageFile(fileName);
if (pictureFile == null) {
return null;
}
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap image = BitmapFactory.decodeFile(pictureFile.getAbsolutePath(), options);
return image;
}
/**
* Silently send the team image to the server.
*
* @param imageFile
*/
private void sendTeamImageToServer(File imageFile) {
if (BuildConfig.DEBUG) {
ExLog.i(this, TAG, "Sending imageFile to server: " + imageFile);
}
final String uploadURLStr = event.server
+ prefs.getServerUploadTeamImagePath().replace(
"{competitor_id}", competitor.id);
private void sendTeamImageToServer(File imageFile) {
if (BuildConfig.DEBUG) {
ExLog.i(this, TAG, "Sending imageFile to server: " + imageFile);
}
new UploadTeamImageTask(imageFile).execute(uploadURLStr);
final String uploadURLStr = event.server
+ prefs.getServerUploadTeamImagePath().replace("{competitor_id}", competitor.id);
new UploadTeamImageTask(imageFile).execute(uploadURLStr);
}
/**
* Get Path for cached leaderbaord image.
*
* @return
*/
public File getImageFile(String fileName) {
File mediaStorageDir = getMediaStorageDir();
File mediaStorageDir = getMediaStorageDir();
File mediaFile;
String mImageName="MI_"+ fileName +".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
String mImageName = "MI_" + fileName + ".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
return mediaFile;
}
public void deleteImageFile(String fileName) {
File mediaStorageDir = getMediaStorageDir();
File mediaFile;
String mImageName = "MI_" + fileName + ".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
public void deleteImageFile(String fileName) {
File mediaStorageDir = getMediaStorageDir();
File mediaFile;
String mImageName = "MI_" + fileName + ".png";
mediaFile = new File(mediaStorageDir.getPath() + File.separator + mImageName);
mediaFile.delete();
}
mediaFile.delete();
}
public File getMediaStorageDir() {
File mediaStorageDir;
File mediaStorageDir;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
mediaStorageDir = new File(
Environment.getExternalStorageDirectory()
+ "/Android/data/"
+ getApplicationContext().getPackageName()
+ "/Files");
} else {
mediaStorageDir = getApplicationContext().getCacheDir();
}
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
mediaStorageDir = new File(Environment.getExternalStorageDirectory() + "/Android/data/"
+ getApplicationContext().getPackageName() + "/Files");
} else {
mediaStorageDir = getApplicationContext().getCacheDir();
}
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
return mediaStorageDir;
}
private class UploadTeamImageTask extends AsyncTask<String, Void, String> {
File imageFile;
String uploadUrl;
public UploadTeamImageTask(File imageFile) {
this.imageFile = imageFile;
}
File imageFile;
String uploadUrl;
protected String doInBackground(String... urls) {
uploadUrl = urls[0];
public UploadTeamImageTask(File imageFile) {
this.imageFile = imageFile;
}
try {
if (imageFile != null) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(uploadUrl);
protected String doInBackground(String... urls) {
uploadUrl = urls[0];
InputStreamEntity reqEntity = new InputStreamEntity( new FileInputStream(imageFile), -1);
reqEntity.setContentType("image/jpeg");
reqEntity.setChunked(true); // Send in multiple parts if needed
httppost.setEntity(reqEntity);
httpclient.execute(httppost);
}
} catch (IOException e) {
ExLog.e(RegattaActivity.this, TAG, "Error uploading image: " + e.getLocalizedMessage());
this.cancel(true);
}
try {
if (imageFile != null) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(uploadUrl);
return "";
}
@Override
protected void onCancelled() {
super.onCancelled();
Toast.makeText(RegattaActivity.this,
getString(R.string.error_sending_team_image_to_server),
Toast.LENGTH_LONG).show();
}
InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(imageFile), -1);
reqEntity.setContentType("image/jpeg");
reqEntity.setChunked(true); // Send in multiple parts if needed
httppost.setEntity(reqEntity);
httpclient.execute(httppost);
}
} catch (IOException e) {
ExLog.e(RegattaActivity.this, TAG, "Error uploading image: " + e.getLocalizedMessage());
this.cancel(true);
}
protected void onPostExecute(String result) {
// do something
}
}
private class DownloadLeaderboardImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String downloadUrl;
public DownloadLeaderboardImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
return "";
}
protected Bitmap doInBackground(String... urls) {
downloadUrl = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(downloadUrl).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
@Override
protected void onCancelled() {
super.onCancelled();
Toast.makeText(RegattaActivity.this, getString(R.string.error_sending_team_image_to_server),
Toast.LENGTH_LONG).show();
}
protected void onPostExecute(Bitmap result) {
if (result != null) {
bmImage.setImageBitmap(result);
storeImageAndSendToServer(result, getLeaderboardImageFileName(leaderboard.name), false);
userImageUpdated();
} else {
ExLog.e(RegattaActivity.this, TAG, "Failed to download leaderboard image at url " + downloadUrl);
}
}
}
private class DownloadFlagImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String countryCode;
String downloadUrl;
protected void onPostExecute(String result) {
// do something
}
}
public DownloadFlagImageTask(ImageView bmImage, String countryCode) {
this.bmImage = bmImage;
this.countryCode = countryCode;
}
private class DownloadLeaderboardImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String downloadUrl;
protected Bitmap doInBackground(String... urls) {
downloadUrl = urls[0];
Bitmap mIcon11 = null;
System.out.println("URL DISPLAY: " + downloadUrl);
try {
InputStream in = new java.net.URL(downloadUrl).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
public DownloadLeaderboardImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected void onPostExecute(Bitmap result) {
System.out.println("RESULT: " + result);
if (result != null) {
bmImage.setImageBitmap(result);
storeImageAndSendToServer(result, getFlagImageFileName(countryCode), false);
} else {
ExLog.e(RegattaActivity.this, TAG, "Failed to download flag image at url " + downloadUrl);
}
}
}
private String getLeaderboardImageFileName(String leaderboardName) {
return LEADERBOARD_IMAGE_FILENAME_PREFIX + leaderboardName;
}
private String getFlagImageFileName(String countryCode) {
return FLAG_IMAGE_FILENAME_PREFIX + countryCode;
}
/**
* Check out from regatta;
*/
public void checkout()
{
final String checkoutURLStr = event.server
+ prefs.getServerCheckoutPath().replace("{leaderboard-name}",
Uri.encode(leaderboard.name));
showProgressDialog(R.string.please_wait, R.string.checking_out);
JSONObject checkoutData = new JSONObject();
try {
checkoutData.put("competitorId", competitor.id);
checkoutData.put("deviceUuid", UniqueDeviceUuid.getUniqueId(this));
checkoutData.put("toMillis", System.currentTimeMillis());
} catch (JSONException e) {
showErrorPopup(
R.string.error,
R.string.error_could_not_complete_operation_on_server_try_again);
ExLog.e(this, TAG, "Error populating checkout-data: " + e.getMessage());
return;
}
try {
HttpJsonPostRequest request = new HttpJsonPostRequest(new URL(checkoutURLStr), checkoutData.toString(), this);
NetworkHelper.getInstance(this).executeHttpJsonRequestAsnchronously(request, new NetworkHelperSuccessListener() {
@Override
public void performAction(JSONObject response) {
DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this, event.checkinDigest);
deleteImageFile(getLeaderboardImageFileName(leaderboard.name));
dismissProgressDialog();
finish();
}
}, new NetworkHelperFailureListener() {
@Override
public void performAction(NetworkHelperError e) {
dismissProgressDialog();
showErrorPopup(R.string.error,R.string.error_could_not_complete_operation_on_server_try_again);
}
});
} catch (MalformedURLException e) {
ExLog.w(this, TAG, "Error, can't check out, MalformedURLException: " + e.getMessage());
}
}
@Override
public void onBackPressed() {
RegattaFragment fragment = (RegattaFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
protected Bitmap doInBackground(String... urls) {
downloadUrl = urls[0];
Bitmap mIcon11 = null;
if (fragment.isShowingBigCheckoutButton())
{
//do nothing, user must checkout himself at this point.
}
else
{
super.onBackPressed();
}
}
private void startTrackingActivity(String checkinDigest) {
Intent intent = new Intent(this, TrackingActivity.class);
intent.putExtra(getString(R.string.tracking_activity_checkin_digest_parameter), checkinDigest);
startActivity(intent);
}
try {
InputStream in = new java.net.URL(downloadUrl).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
if (result != null) {
bmImage.setImageBitmap(result);
storeImageAndSendToServer(result, getLeaderboardImageFileName(leaderboard.name), false);
userImageUpdated();
} else {
ExLog.e(RegattaActivity.this, TAG, "Failed to download leaderboard image at url " + downloadUrl);
}
}
}
private class DownloadFlagImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
String countryCode;
String downloadUrl;
public DownloadFlagImageTask(ImageView bmImage, String countryCode) {
this.bmImage = bmImage;
this.countryCode = countryCode;
}
protected Bitmap doInBackground(String... urls) {
downloadUrl = urls[0];
Bitmap mIcon11 = null;
System.out.println("URL DISPLAY: " + downloadUrl);
try {
InputStream in = new java.net.URL(downloadUrl).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
System.out.println("RESULT: " + result);
if (result != null) {
bmImage.setImageBitmap(result);
storeImageAndSendToServer(result, getFlagImageFileName(countryCode), false);
} else {
ExLog.e(RegattaActivity.this, TAG, "Failed to download flag image at url " + downloadUrl);
}
}
}
private String getLeaderboardImageFileName(String leaderboardName) {
return LEADERBOARD_IMAGE_FILENAME_PREFIX + leaderboardName;
}
private String getFlagImageFileName(String countryCode) {
return FLAG_IMAGE_FILENAME_PREFIX + countryCode;
}
/**
* Check out from regatta;
*/
public void checkout() {
final String checkoutURLStr = event.server
+ prefs.getServerCheckoutPath().replace("{leaderboard-name}", Uri.encode(leaderboard.name));
showProgressDialog(R.string.please_wait, R.string.checking_out);
JSONObject checkoutData = new JSONObject();
try {
checkoutData.put("competitorId", competitor.id);
checkoutData.put("deviceUuid", UniqueDeviceUuid.getUniqueId(this));
checkoutData.put("toMillis", System.currentTimeMillis());
} catch (JSONException e) {
showErrorPopup(R.string.error, R.string.error_could_not_complete_operation_on_server_try_again);
ExLog.e(this, TAG, "Error populating checkout-data: " + e.getMessage());
return;
}
try {
HttpJsonPostRequest request = new HttpJsonPostRequest(new URL(checkoutURLStr), checkoutData.toString(),
this);
NetworkHelper.getInstance(this).executeHttpJsonRequestAsnchronously(request,
new NetworkHelperSuccessListener() {
@Override
public void performAction(JSONObject response) {
DatabaseHelper.getInstance().deleteRegattaFromDatabase(RegattaActivity.this,
event.checkinDigest);
deleteImageFile(getLeaderboardImageFileName(leaderboard.name));
dismissProgressDialog();
finish();
}
}, new NetworkHelperFailureListener() {
@Override
public void performAction(NetworkHelperError e) {
dismissProgressDialog();
showErrorPopup(R.string.error,
R.string.error_could_not_complete_operation_on_server_try_again);
}
});
} catch (MalformedURLException e) {
ExLog.w(this, TAG, "Error, can't check out, MalformedURLException: " + e.getMessage());
}
}
@Override
public void onBackPressed() {
RegattaFragment fragment = (RegattaFragment) getSupportFragmentManager().findFragmentById(R.id.content_frame);
if (fragment.isShowingBigCheckoutButton()) {
// do nothing, user must checkout himself at this point.
} else {
super.onBackPressed();
}
}
private void startTrackingActivity(String checkinDigest) {
Intent intent = new Intent(this, TrackingActivity.class);
intent.putExtra(getString(R.string.tracking_activity_checkin_digest_parameter), checkinDigest);
startActivity(intent);
}
}