aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/MainActivity.java')
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java55
1 files changed, 39 insertions, 16 deletions
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index 0fd6759..1d4c22c 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -1,7 +1,7 @@
package cgeo.geocaching;
+import butterknife.ButterKnife;
import butterknife.InjectView;
-import butterknife.Views;
import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.connector.ConnectorFactory;
@@ -10,6 +10,7 @@ import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Units;
+import cgeo.geocaching.list.StoredList;
import cgeo.geocaching.maps.CGeoMap;
import cgeo.geocaching.settings.Settings;
import cgeo.geocaching.settings.SettingsActivity;
@@ -24,8 +25,9 @@ import cgeo.geocaching.utils.Version;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
+import org.eclipse.jdt.annotation.NonNull;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
@@ -47,6 +49,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -141,7 +144,7 @@ public class MainActivity extends AbstractActivity {
navLocation.setText(StringUtils.join(addressParts, ", "));
}
- } catch (Exception e) {
+ } catch (RuntimeException e) {
// nothing
}
@@ -202,7 +205,7 @@ public class MainActivity extends AbstractActivity {
// don't call the super implementation with the layout argument, as that would set the wrong theme
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
- Views.inject(this);
+ ButterKnife.inject(this);
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
// If we had been open already, start from the last used activity.
@@ -283,7 +286,7 @@ public class MainActivity extends AbstractActivity {
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.menu_history:
- cgeocaches.startActivityHistory(this);
+ CacheListActivity.startActivityHistory(this);
return true;
case R.id.menu_scan:
startScannerApplication();
@@ -366,7 +369,7 @@ public class MainActivity extends AbstractActivity {
@Override
public void run(final Integer selectedListId) {
Settings.saveLastList(selectedListId);
- cgeocaches.startActivityOffline(MainActivity.this);
+ CacheListActivity.startActivityOffline(MainActivity.this);
}
});
return true;
@@ -468,7 +471,7 @@ public class MainActivity extends AbstractActivity {
}
private void checkRestore() {
- if (!cgData.isNewlyCreatedDatebase() || null == DatabaseBackupUtils.getRestoreFile()) {
+ if (!DataStore.isNewlyCreatedDatebase() || null == DatabaseBackupUtils.getRestoreFile()) {
return;
}
new AlertDialog.Builder(this)
@@ -479,7 +482,7 @@ public class MainActivity extends AbstractActivity {
@Override
public void onClick(final DialogInterface dialog, final int id) {
dialog.dismiss();
- cgData.resetNewlyCreatedDatabase();
+ DataStore.resetNewlyCreatedDatabase();
DatabaseBackupUtils.restoreDatabase(MainActivity.this);
}
})
@@ -487,7 +490,7 @@ public class MainActivity extends AbstractActivity {
@Override
public void onClick(final DialogInterface dialog, final int id) {
dialog.cancel();
- cgData.resetNewlyCreatedDatabase();
+ DataStore.resetNewlyCreatedDatabase();
}
})
.create()
@@ -510,6 +513,26 @@ public class MainActivity extends AbstractActivity {
}
});
nearestView.setBackgroundResource(R.drawable.main_nearby);
+
+ nearestView.setOnLongClickListener(new View.OnLongClickListener() {
+
+ @Override
+ public boolean onLongClick(View v) {
+ if (!Settings.isPremiumMember()) {
+ return true;
+ }
+ new PocketQueryList.UserInterface(MainActivity.this).promptForListSelection(new RunnableWithArgument<PocketQueryList>() {
+
+ @Override
+ public void run(final @NonNull PocketQueryList pql) {
+ CacheListActivity.startActivityPocket(MainActivity.this, pql);
+ }
+ });
+ return true;
+ }
+ });
+ nearestView.setLongClickable(true);
+
}
navType.setText(res.getString(geo.getLocationProvider().resourceId));
@@ -542,7 +565,7 @@ public class MainActivity extends AbstractActivity {
navAccuracy.setText(null);
navLocation.setText(res.getString(R.string.loc_trying));
}
- } catch (Exception e) {
+ } catch (RuntimeException e) {
Log.w("Failed to update location.");
}
}
@@ -567,7 +590,7 @@ public class MainActivity extends AbstractActivity {
}
nearestView.setPressed(true);
- cgeocaches.startActivityNearest(this, app.currentGeo().getCoords());
+ CacheListActivity.startActivityNearest(this, app.currentGeo().getCoords());
}
/**
@@ -576,7 +599,7 @@ public class MainActivity extends AbstractActivity {
*/
public void cgeoFindByOffline(final View v) {
findByOffline.setPressed(true);
- cgeocaches.startActivityOffline(this);
+ CacheListActivity.startActivityOffline(this);
}
/**
@@ -640,7 +663,7 @@ public class MainActivity extends AbstractActivity {
}
int checks = 0;
- while (!cgData.isInitialized()) {
+ while (!DataStore.isInitialized()) {
try {
wait(500);
checks++;
@@ -653,7 +676,7 @@ public class MainActivity extends AbstractActivity {
}
}
- countBubbleCnt = cgData.getAllCachesCount();
+ countBubbleCnt = DataStore.getAllCachesCount();
countBubbleHandler.sendEmptyMessage(0);
}
@@ -678,7 +701,7 @@ public class MainActivity extends AbstractActivity {
}
cleanupRunning = true;
- cgData.clean(more);
+ DataStore.clean(more);
cleanupRunning = false;
if (version > 0) {
@@ -721,7 +744,7 @@ public class MainActivity extends AbstractActivity {
final Geocoder geocoder = new Geocoder(MainActivity.this, Locale.getDefault());
final Geopoint coords = app.currentGeo().getCoords();
addresses = geocoder.getFromLocation(coords.getLatitude(), coords.getLongitude(), 1);
- } catch (Exception e) {
+ } catch (IOException e) {
Log.i("Failed to obtain address");
}