diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-09-05 17:47:29 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-09-05 17:47:29 +0200 |
| commit | f3c39234c6b9d0eb19be699aa0e41a9f44c25f96 (patch) | |
| tree | 6bad68918412ba176396e746f444a5bc3a3083b1 | |
| parent | 78fa7bc4e9c4dd7fd48506da2d16bbace11a2855 (diff) | |
| download | cgeo-f3c39234c6b9d0eb19be699aa0e41a9f44c25f96.zip cgeo-f3c39234c6b9d0eb19be699aa0e41a9f44c25f96.tar.gz cgeo-f3c39234c6b9d0eb19be699aa0e41a9f44c25f96.tar.bz2 | |
fix #186: Back from TB-detail should go to TB-list, sort trackables by
name, go directly into details if there is only one TB
| -rw-r--r-- | src/cgeo/geocaching/cgData.java | 2 | ||||
| -rw-r--r-- | src/cgeo/geocaching/cgeodetail.java | 13 | ||||
| -rw-r--r-- | src/cgeo/geocaching/cgeotrackable.java | 11 | ||||
| -rw-r--r-- | src/cgeo/geocaching/cgeotrackables.java | 14 |
4 files changed, 27 insertions, 13 deletions
diff --git a/src/cgeo/geocaching/cgData.java b/src/cgeo/geocaching/cgData.java index 6e184bc..f830052 100644 --- a/src/cgeo/geocaching/cgData.java +++ b/src/cgeo/geocaching/cgData.java @@ -2357,7 +2357,7 @@ public class cgData { null, null, null, - null, + "title COLLATE NOCASE ASC", "100"); if (cursor != null && cursor.getCount() > 0) { diff --git a/src/cgeo/geocaching/cgeodetail.java b/src/cgeo/geocaching/cgeodetail.java index 7a7cee0..64d521d 100644 --- a/src/cgeo/geocaching/cgeodetail.java +++ b/src/cgeo/geocaching/cgeodetail.java @@ -1669,9 +1669,16 @@ public class cgeodetail extends AbstractActivity { public void onClick(View arg0) { // show list of trackables try { - Intent trackablesIntent = new Intent(cgeodetail.this, cgeotrackables.class); - trackablesIntent.putExtra("geocode", geocode.toUpperCase()); - startActivity(trackablesIntent); + // jump directly into details if there is only one trackable + if (cache != null && cache.inventory != null && cache.inventory.size() == 1) { + cgTrackable trackable = cache.inventory.get(0); + cgeotrackable.startActivity(cgeodetail.this, trackable.guid, trackable.geocode, trackable.name); + } + else { + Intent trackablesIntent = new Intent(cgeodetail.this, cgeotrackables.class); + trackablesIntent.putExtra("geocode", geocode.toUpperCase()); + startActivity(trackablesIntent); + } } catch (Exception e) { Log.e(cgSettings.tag, "cgeodetail.selectTrackable: " + e.toString()); } diff --git a/src/cgeo/geocaching/cgeotrackable.java b/src/cgeo/geocaching/cgeotrackable.java index 8959771..de0f9a6 100644 --- a/src/cgeo/geocaching/cgeotrackable.java +++ b/src/cgeo/geocaching/cgeotrackable.java @@ -617,4 +617,13 @@ public class cgeotrackable extends AbstractActivity { } } } -} + + public static void startActivity(final AbstractActivity fromContext, + final String guid, final String geocode, final String name) { + Intent trackableIntent = new Intent(fromContext, cgeotrackable.class); + trackableIntent.putExtra("guid", guid); + trackableIntent.putExtra("geocode", geocode); + trackableIntent.putExtra("name", name); + fromContext.startActivity(trackableIntent); + } +}
\ No newline at end of file diff --git a/src/cgeo/geocaching/cgeotrackables.java b/src/cgeo/geocaching/cgeotrackables.java index 3005ad4..14c2364 100644 --- a/src/cgeo/geocaching/cgeotrackables.java +++ b/src/cgeo/geocaching/cgeotrackables.java @@ -3,7 +3,6 @@ package cgeo.geocaching; import java.util.ArrayList; import android.app.ProgressDialog; -import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; @@ -43,6 +42,11 @@ public class cgeotrackables extends AbstractActivity { finish(); return; + } else if (trackables.size() == 1){ + cgTrackable trackable = trackables.get(0); + cgeotrackable.startActivity(cgeotrackables.this, trackable.guid, trackable.geocode, trackable.name); + finish(); + return; } else { LinearLayout oneTbPre = null; for (cgTrackable trackable : trackables) { @@ -139,13 +143,7 @@ public class cgeotrackables extends AbstractActivity { } public void onClick(View arg0) { - Intent trackableIntent = new Intent(cgeotrackables.this, cgeotrackable.class); - trackableIntent.putExtra("guid", guid); - trackableIntent.putExtra("geocode", geocode); - trackableIntent.putExtra("name", name); - startActivity(trackableIntent); - - finish(); + cgeotrackable.startActivity(cgeotrackables.this, guid, geocode, name); return; } } |
