aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cgeo/geocaching/cgData.java2
-rw-r--r--src/cgeo/geocaching/cgeodetail.java13
-rw-r--r--src/cgeo/geocaching/cgeotrackable.java11
-rw-r--r--src/cgeo/geocaching/cgeotrackables.java14
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;
}
}