diff options
Diffstat (limited to 'main/src/cgeo/geocaching/MainActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/MainActivity.java | 55 |
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"); } |
