aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/LogCacheActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/LogCacheActivity.java')
-rw-r--r--main/src/cgeo/geocaching/LogCacheActivity.java54
1 files changed, 37 insertions, 17 deletions
diff --git a/main/src/cgeo/geocaching/LogCacheActivity.java b/main/src/cgeo/geocaching/LogCacheActivity.java
index bc87525..3558b3c 100644
--- a/main/src/cgeo/geocaching/LogCacheActivity.java
+++ b/main/src/cgeo/geocaching/LogCacheActivity.java
@@ -54,8 +54,6 @@ import java.util.Date;
import java.util.List;
public class LogCacheActivity extends AbstractLoggingActivity implements DateDialog.DateDialogParent {
- static final String EXTRAS_GEOCODE = "geocode";
- static final String EXTRAS_ID = "id";
private static final String SAVED_STATE_RATING = "cgeo.geocaching.saved_state_rating";
private static final String SAVED_STATE_TYPE = "cgeo.geocaching.saved_state_type";
@@ -208,9 +206,9 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
// Get parameters from intent and basic cache information from database
final Bundle extras = getIntent().getExtras();
if (extras != null) {
- geocode = extras.getString(EXTRAS_GEOCODE);
+ geocode = extras.getString(Intents.EXTRA_GEOCODE);
if (StringUtils.isBlank(geocode)) {
- final String cacheid = extras.getString(EXTRAS_ID);
+ final String cacheid = extras.getString(Intents.EXTRA_ID);
if (StringUtils.isNotBlank(cacheid)) {
geocode = DataStore.getGeocodeForGuid(cacheid);
}
@@ -288,6 +286,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
loggingManager = cache.getLoggingManager(this);
loggingManager.init();
+ requestKeyboardForLogging();
}
private void initializeRatingBar(final RatingBar ratingBar) {
@@ -423,7 +422,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
if (logResult.getPostLogResult() == StatusCode.NO_ERROR) {
// update geocache in DB
- if (typeSelected == LogType.FOUND_IT || typeSelected == LogType.ATTENDED || typeSelected == LogType.WEBCAM_PHOTO_TAKEN) {
+ if (typeSelected.isFoundLog()) {
cache.setFound(true);
cache.setVisitedDate(new Date().getTime());
}
@@ -578,9 +577,9 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
private void selectImage() {
final Intent selectImageIntent = new Intent(this, ImageSelectActivity.class);
- selectImageIntent.putExtra(ImageSelectActivity.EXTRAS_CAPTION, imageCaption);
- selectImageIntent.putExtra(ImageSelectActivity.EXTRAS_DESCRIPTION, imageDescription);
- selectImageIntent.putExtra(ImageSelectActivity.EXTRAS_URI_AS_STRING, imageUri.toString());
+ selectImageIntent.putExtra(Intents.EXTRA_CAPTION, imageCaption);
+ selectImageIntent.putExtra(Intents.EXTRA_DESCRIPTION, imageDescription);
+ selectImageIntent.putExtra(Intents.EXTRA_URI_AS_STRING, imageUri.toString());
startActivityForResult(selectImageIntent, SELECT_IMAGE);
}
@@ -589,9 +588,9 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
if (requestCode == SELECT_IMAGE) {
if (resultCode == RESULT_OK) {
- imageCaption = data.getStringExtra(ImageSelectActivity.EXTRAS_CAPTION);
- imageDescription = data.getStringExtra(ImageSelectActivity.EXTRAS_DESCRIPTION);
- imageUri = Uri.parse(data.getStringExtra(ImageSelectActivity.EXTRAS_URI_AS_STRING));
+ imageCaption = data.getStringExtra(Intents.EXTRA_CAPTION);
+ imageDescription = data.getStringExtra(Intents.EXTRA_DESCRIPTION);
+ imageUri = Uri.parse(data.getStringExtra(Intents.EXTRA_URI_AS_STRING));
} else if (resultCode != RESULT_CANCELED) {
// Image capture failed, advise user
showToast(getResources().getString(R.string.err_select_logimage_failed));
@@ -603,7 +602,7 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
public boolean onOptionsItemSelected(final MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_send:
- sendLog();
+ sendLogAndConfirm();
return true;
case R.id.menu_image:
selectImage();
@@ -622,18 +621,32 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
return super.onOptionsItemSelected(item);
}
- private void sendLog() {
+ private void sendLogAndConfirm() {
if (!sendButtonEnabled) {
Dialogs.message(this, R.string.log_post_not_possible);
+ return;
+ }
+ if (typeSelected.mustConfirmLog()) {
+ Dialogs.confirm(this, R.string.confirm_log_title, res.getString(R.string.confirm_log_message, typeSelected.getL10n()), new OnClickListener() {
+
+ @Override
+ public void onClick(final DialogInterface dialog, final int which) {
+ sendLogInternal();
+ }
+ });
}
else {
- final String message = res.getString(StringUtils.isBlank(imageUri.getPath()) ?
- R.string.log_saving :
- R.string.log_saving_and_uploading);
- new Poster(this, message).execute(currentLogText(), currentLogPassword());
+ sendLogInternal();
}
}
+ private void sendLogInternal() {
+ final String message = res.getString(StringUtils.isBlank(imageUri.getPath()) ?
+ R.string.log_saving :
+ R.string.log_saving_and_uploading);
+ new Poster(this, message).execute(currentLogText(), currentLogPassword());
+ }
+
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
super.onCreateOptionsMenu(menu);
@@ -650,4 +663,11 @@ public class LogCacheActivity extends AbstractLoggingActivity implements DateDia
.setTarget(new ActionItemTarget(this, R.id.menu_send))
.setContent(R.string.showcase_logcache_title, R.string.showcase_logcache_text);
}
+
+ public static Intent getLogCacheIntent(final Activity context, final String cacheId, final String geocode) {
+ final Intent logVisitIntent = new Intent(context, LogCacheActivity.class);
+ logVisitIntent.putExtra(Intents.EXTRA_ID, cacheId);
+ logVisitIntent.putExtra(Intents.EXTRA_GEOCODE, geocode);
+ return logVisitIntent;
+ }
}