aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/res/layout/edit_waypoint_activity.xml35
-rw-r--r--main/res/layout/reset_cache_coords_dialog.xml29
-rw-r--r--main/res/values/strings.xml7
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java30
-rw-r--r--main/src/cgeo/geocaching/EditWaypointActivity.java27
5 files changed, 69 insertions, 59 deletions
diff --git a/main/res/layout/edit_waypoint_activity.xml b/main/res/layout/edit_waypoint_activity.xml
index aa4e260..8d572f6 100644
--- a/main/res/layout/edit_waypoint_activity.xml
+++ b/main/res/layout/edit_waypoint_activity.xml
@@ -90,15 +90,32 @@
android:minLines="5"
android:singleLine="false" />
- <CheckBox
- android:id="@+id/setAsCacheCoordsCheckBox"
- style="@style/checkbox_full"
- android:text="@string/waypoint_set_as_cache_coords" />
-
- <CheckBox
- android:id="@+id/uploadCoordsToWebsiteCheckBox"
- style="@style/checkbox_full"
- android:text="@string/waypoint_modify_on_website" />
+ <RadioGroup
+ android:id="@+id/modify_cache_coordinates_group"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:visibility="gone" >
+
+ <RadioButton
+ android:id="@+id/modify_cache_coordinates_nothing"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ android:text="@string/waypoint_do_not_touch_cache_coordinates" />
+
+ <RadioButton
+ android:id="@+id/modify_cache_coordinates_local"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/waypoint_set_as_cache_coords" />
+
+ <RadioButton
+ android:id="@+id/modify_cache_coordinates_local_and_remote"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/waypoint_save_and_modify_on_website"
+ android:visibility="gone" />
+ </RadioGroup>
<Button
android:id="@+id/add_waypoint"
diff --git a/main/res/layout/reset_cache_coords_dialog.xml b/main/res/layout/reset_cache_coords_dialog.xml
index 2773041..fba87ca 100644
--- a/main/res/layout/reset_cache_coords_dialog.xml
+++ b/main/res/layout/reset_cache_coords_dialog.xml
@@ -10,20 +10,25 @@
android:layout_height="wrap_content"
android:text="@string/waypoint_reset_cache_coords_info" />
- <CheckBox
- android:id="@+id/local"
+ <RadioGroup
+ android:id="@+id/modify_cache_coordinates_group"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:checked="true"
- android:text="@string/waypoint_localy_reset_cache_coords" />
+ android:layout_height="wrap_content" >
- <CheckBox
- android:id="@+id/upload"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:checked="false"
- android:visibility="gone"
- android:text="@string/waypoint_reset_cache_coords_on_website" />
+ <RadioButton
+ android:id="@+id/reset_cache_coordinates_local"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:checked="true"
+ android:text="@string/waypoint_localy_reset_cache_coords" />
+
+ <RadioButton
+ android:id="@+id/reset_cache_coordinates_local_and_remote"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/waypoint_reset_local_and_remote_cache_coords"
+ android:visibility="gone" />
+ </RadioGroup>
<Button
android:id="@+id/reset"
diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml
index b2d735f..9083cdc 100644
--- a/main/res/values/strings.xml
+++ b/main/res/values/strings.xml
@@ -669,15 +669,16 @@
<string name="waypoint_note">Note</string>
<string name="waypoint_save">Save</string>
<string name="waypoint_loading">Loading waypoint…</string>
+ <string name="waypoint_do_not_touch_cache_coordinates">Do not touch cache coordinates</string>
<string name="waypoint_set_as_cache_coords">Set as cache coordinates in c:geo</string>
- <string name="waypoint_reset_cache_coords">Reset cache coordinates</string>
- <string name="waypoint_reset_cache_coords_on_website">Reset coordinates on website</string>
+ <string name="waypoint_save_and_modify_on_website">Set as cache coordinates localy and on website</string>
+ <string name="waypoint_reset_cache_coords">Reset cache coordinates</string>
<string name="waypoint_coordinates_has_been_reset_on_website">Cache coordinates have been reset on website.</string>
<string name="waypoint_coordinates_being_reset_on_website">Resetting cache coordinates on website…</string>
<string name="waypoint_reset_cache_coords_info">Reset options</string>
<string name="waypoint_reset">Reset</string>
<string name="waypoint_localy_reset_cache_coords">Reset coordinates in c:geo</string>
- <string name="waypoint_modify_on_website">Set as cache coordinates on website</string>
+ <string name="waypoint_reset_local_and_remote_cache_coords">Reset coordinates in c:geo and on website.</string>
<string name="waypoint_coordinates_couldnt_be_modified_on_website">Website doesn\'t support modifying cache coordinates.</string>
<string name="waypoint_coordinates_upload_error">Error occurred while modifying coordinates on website.</string>
<string name="waypoint_coordinates_uploading_to_website">Uploading coordinates %s to website.</string>
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 80441a4..b36e60c 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -83,13 +83,11 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
+import android.widget.RadioButton;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.TextView.BufferType;
@@ -2246,10 +2244,10 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
/**
* A dialog to allow the user to select reseting coordinates local/remote/both.
*/
- private class ResetCacheCoordinatesDialog extends AlertDialog implements OnCheckedChangeListener {
+ private class ResetCacheCoordinatesDialog extends AlertDialog {
- final CheckBox uploadOption;
- final CheckBox resetLocalyOption;
+ final RadioButton resetBoth;
+ final RadioButton resetLocal;
public ResetCacheCoordinatesDialog(final cgCache cache, final cgWaypoint wpt, final Activity activity) {
super(activity);
@@ -2257,17 +2255,13 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
View layout = activity.getLayoutInflater().inflate(R.layout.reset_cache_coords_dialog, null);
setView(layout);
- uploadOption = (CheckBox) layout.findViewById(R.id.upload);
- resetLocalyOption = (CheckBox) layout.findViewById(R.id.local);
+ resetLocal = (RadioButton) layout.findViewById(R.id.reset_cache_coordinates_local);
+ resetBoth = (RadioButton) layout.findViewById(R.id.reset_cache_coordinates_local_and_remote);
if (ConnectorFactory.getConnector(cache).supportsOwnCoordinates()) {
- uploadOption.setChecked(true);
- uploadOption.setVisibility(View.VISIBLE);
+ resetBoth.setVisibility(View.VISIBLE);
}
- uploadOption.setOnCheckedChangeListener(this);
- resetLocalyOption.setOnCheckedChangeListener(this);
-
layout.findViewById(R.id.reset).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -2285,23 +2279,17 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc
remoteFinished = true;
}
- if ((localFinished || !resetLocalyOption.isChecked()) && (remoteFinished || !uploadOption.isChecked())) {
+ if ((localFinished) && (remoteFinished || !resetBoth.isChecked())) {
p.dismiss();
notifyDataSetChanged();
}
}
};
- new ResetCoordsThread(cache, h, wpt, resetLocalyOption.isChecked(), uploadOption.isChecked(), p).start();
+ new ResetCoordsThread(cache, h, wpt, resetLocal.isChecked() || resetBoth.isChecked(), resetBoth.isChecked(), p).start();
}
});
}
-
- @Override
- public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
- findViewById(R.id.reset).setEnabled(
- (uploadOption.isChecked() || resetLocalyOption.isChecked()));
- }
}
private class ResetCoordsThread extends Thread {
diff --git a/main/src/cgeo/geocaching/EditWaypointActivity.java b/main/src/cgeo/geocaching/EditWaypointActivity.java
index 13c2d3e..5701540 100644
--- a/main/src/cgeo/geocaching/EditWaypointActivity.java
+++ b/main/src/cgeo/geocaching/EditWaypointActivity.java
@@ -30,8 +30,8 @@ import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
-import android.widget.CheckBox;
import android.widget.EditText;
+import android.widget.RadioButton;
import android.widget.Spinner;
import java.util.ArrayList;
@@ -82,7 +82,7 @@ public class EditWaypointActivity extends AbstractActivity {
((EditText) findViewById(R.id.note)).setText(StringUtils.trimToEmpty(waypoint.getNote()));
}
cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_ONLY);
- setCoordsCheckBoxesVisibility(ConnectorFactory.getConnector(geocode), cache);
+ setCoordsModificationVisibility(ConnectorFactory.getConnector(geocode), cache);
}
if (own) {
@@ -161,7 +161,7 @@ public class EditWaypointActivity extends AbstractActivity {
if (geocode != null) {
cgCache cache = cgData.loadCache(geocode, LoadFlags.LOAD_CACHE_OR_DB);
IConnector con = ConnectorFactory.getConnector(geocode);
- setCoordsCheckBoxesVisibility(con, cache);
+ setCoordsModificationVisibility(con, cache);
}
initializeDistanceUnitSelector();
@@ -169,15 +169,13 @@ public class EditWaypointActivity extends AbstractActivity {
disableSuggestions((EditText) findViewById(R.id.distance));
}
- private void setCoordsCheckBoxesVisibility(IConnector con, cgCache cache) {
- final View cacheCoords = findViewById(R.id.setAsCacheCoordsCheckBox);
- final View uploadWebsite = findViewById(R.id.uploadCoordsToWebsiteCheckBox);
+ private void setCoordsModificationVisibility(IConnector con, cgCache cache) {
if (cache != null && (cache.getType() == CacheType.MYSTERY || cache.getType() == CacheType.MULTI)) {
- cacheCoords.setVisibility(View.VISIBLE);
- uploadWebsite.setVisibility(con.supportsOwnCoordinates() ? View.VISIBLE : View.GONE);
+ findViewById(R.id.modify_cache_coordinates_group).setVisibility(View.VISIBLE);
+ findViewById(R.id.modify_cache_coordinates_local_and_remote).setVisibility(con.supportsOwnCoordinates() ? View.VISIBLE : View.GONE);
} else {
- cacheCoords.setVisibility(View.GONE);
- uploadWebsite.setVisibility(View.GONE);
+ findViewById(R.id.modify_cache_coordinates_group).setVisibility(View.GONE);
+ findViewById(R.id.modify_cache_coordinates_local_and_remote).setVisibility(View.GONE);
}
}
@@ -365,8 +363,7 @@ public class EditWaypointActivity extends AbstractActivity {
final String distanceText = ((EditText) findViewById(R.id.distance)).getText().toString() + distanceUnit;
final String latText = ((Button) findViewById(R.id.buttonLatitude)).getText().toString();
final String lonText = ((Button) findViewById(R.id.buttonLongitude)).getText().toString();
- final CheckBox setAsCacheCoordsCheckBox = (CheckBox) findViewById(R.id.setAsCacheCoordsCheckBox);
- final CheckBox uploadCoordsToWebsiteCheckBox = (CheckBox) findViewById(R.id.uploadCoordsToWebsiteCheckBox);
+
if (StringUtils.isBlank(bearingText) && StringUtils.isBlank(distanceText)
&& StringUtils.isBlank(latText) && StringUtils.isBlank(lonText)) {
helpDialog(res.getString(R.string.err_point_no_position_given_title), res.getString(R.string.err_point_no_position_given));
@@ -434,7 +431,9 @@ public class EditWaypointActivity extends AbstractActivity {
if (Settings.isStoreOfflineWpMaps()) {
StaticMapsProvider.storeWaypointStaticMap(cache, waypoint, false);
}
- if (setAsCacheCoordsCheckBox.isChecked()) {
+ final RadioButton modifyLocal = (RadioButton) findViewById(R.id.modify_cache_coordinates_local);
+ final RadioButton modifyBoth = (RadioButton) findViewById(R.id.modify_cache_coordinates_local_and_remote);
+ if (modifyLocal.isChecked() || modifyBoth.isChecked()) {
if (!cache.hasUserModifiedCoords()) {
final cgWaypoint origWaypoint = new cgWaypoint(cgeoapplication.getInstance().getString(R.string.cache_coordinates_original), WaypointType.ORIGINAL, false);
origWaypoint.setCoords(cache.getCoords());
@@ -444,7 +443,7 @@ public class EditWaypointActivity extends AbstractActivity {
cache.setCoords(waypoint.getCoords());
cgData.saveChangedCache(cache);
}
- if (uploadCoordsToWebsiteCheckBox.isChecked() && waypoint.getCoords() != null) {
+ if (modifyBoth.isChecked() && waypoint.getCoords() != null) {
if (cache.supportsOwnCoordinates()) {
final ProgressDialog progress = ProgressDialog.show(EditWaypointActivity.this, getString(R.string.cache), getString(R.string.waypoint_coordinates_uploading_to_website, waypoint.getCoords()), true);
Handler finishHandler = new Handler() {