diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/layout/edit_waypoint_activity.xml | 35 | ||||
| -rw-r--r-- | main/res/layout/reset_cache_coords_dialog.xml | 29 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 7 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 30 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/EditWaypointActivity.java | 27 |
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() { |
