diff options
| author | Bananeweizen <Bananeweizen@gmx.de> | 2012-12-26 16:10:52 +0100 |
|---|---|---|
| committer | Bananeweizen <Bananeweizen@gmx.de> | 2012-12-26 16:10:52 +0100 |
| commit | a92fb90678daa6964e0aad776eece7dacf523b1b (patch) | |
| tree | 8d586d484cce437725e8df63b1493d235a03c9ff | |
| parent | e88672bac97b38de6c17aa98e008e85088072387 (diff) | |
| download | cgeo-a92fb90678daa6964e0aad776eece7dacf523b1b.zip cgeo-a92fb90678daa6964e0aad776eece7dacf523b1b.tar.gz cgeo-a92fb90678daa6964e0aad776eece7dacf523b1b.tar.bz2 | |
new: menu to delete past events in caches list
| -rw-r--r-- | main/res/values-de/strings.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings.xml | 1 | ||||
| -rw-r--r-- | main/res/values/strings_not_translatable.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/cgeocaches.java | 38 |
4 files changed, 38 insertions, 3 deletions
diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index 6f94789..d8b6222 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -288,6 +288,7 @@ <string name="caches_drop_stored">Gespeicherte löschen</string> <string name="caches_drop_progress">Entferne Caches…</string> <string name="caches_drop_all_and_list">Alle und Liste löschen</string> + <string name="caches_delete_events">Vergangene Events löschen</string> <string name="caches_refresh_selected">Ausgewählte aktualisieren</string> <string name="caches_refresh_all">Alle aktualisieren</string> <string name="caches_move_selected">Ausgewählte verschieben</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 7c18065..3d2cb13 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -290,6 +290,7 @@ <string name="caches_drop_stored">Drop stored</string> <string name="caches_drop_progress">Removing caches</string> <string name="caches_drop_all_and_list">Drop all and remove list</string> + <string name="caches_delete_events">Delete past events</string> <string name="caches_refresh_selected">Refresh selected</string> <string name="caches_refresh_all">Refresh all</string> <string name="caches_move_selected">Move selected</string> diff --git a/main/res/values/strings_not_translatable.xml b/main/res/values/strings_not_translatable.xml index 774a926..d907563 100644 --- a/main/res/values/strings_not_translatable.xml +++ b/main/res/values/strings_not_translatable.xml @@ -85,6 +85,7 @@ · Support for searching opencaching.nl caches\n
· Inverse sorting of cache lists (hit the same menu again)\n
· view pager in trackable activity\n
+ · menu item to delete past events\n
\n
<b>Bugfixing:</b>\n
· Final flag icon lost when updating cache with self defined final\n
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java index ce43faa..901743c 100644 --- a/main/src/cgeo/geocaching/cgeocaches.java +++ b/main/src/cgeo/geocaching/cgeocaches.java @@ -30,6 +30,7 @@ import cgeo.geocaching.sorting.VisitComparator; import cgeo.geocaching.ui.CacheListAdapter; import cgeo.geocaching.ui.LoggingUI; import cgeo.geocaching.ui.WeakReferenceHandler; +import cgeo.geocaching.utils.DateUtils; import cgeo.geocaching.utils.GeoDirHandler; import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.RunnableWithArgument; @@ -62,6 +63,7 @@ import android.widget.TextView; import java.util.ArrayList; import java.util.Collections; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -100,6 +102,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity private static final int MENU_NAVIGATION = 69; private static final int MENU_STORE_CACHE = 73; private static final int MENU_FILTER = 74; + private static final int MENU_DELETE_EVENTS = 75; private static final int MSG_DONE = -1; private static final int MSG_RESTART_GEO_AND_DIR = -2; @@ -708,6 +711,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity subMenu.add(0, MENU_DROP_CACHES_AND_LIST, 0, res.getString(R.string.caches_drop_all_and_list)); subMenu.add(0, MENU_REFRESH_STORED, 0, res.getString(R.string.cache_offline_refresh)); // download details for all caches subMenu.add(0, MENU_MOVE_TO_LIST, 0, res.getString(R.string.cache_menu_move_list)); + subMenu.add(0, MENU_DELETE_EVENTS, 0, res.getString(R.string.caches_delete_events)); //TODO: add submenu/AlertDialog and use R.string.gpx_import_title subMenu.add(0, MENU_IMPORT_GPX, 0, res.getString(R.string.gpx_import_title)); @@ -770,6 +774,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity setVisible(menu, MENU_REFRESH_STORED, !isEmpty && (isConcrete || type != CacheListType.OFFLINE)); setVisible(menu, MENU_DROP_CACHES, !isEmpty); setVisible(menu, MENU_DROP_CACHES_AND_LIST, isConcrete && !isEmpty); + setVisible(menu, MENU_DELETE_EVENTS, isConcrete && !isEmpty && containsEvents()); setVisible(menu, MENU_MOVE_TO_LIST, !isEmpty); setVisible(menu, MENU_EXPORT, !isEmpty); setVisible(menu, MENU_REMOVE_FROM_HISTORY, !isEmpty); @@ -820,6 +825,15 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity return true; } + private boolean containsEvents() { + for (cgCache cache : adapter.getCheckedOrAllCaches()) { + if (cache.isEventCache()) { + return true; + } + } + return false; + } + private void setMenuItemLabel(final Menu menu, final int menuId, final int resIdSelection, final int resId) { final MenuItem menuItem = menu.findItem(menuId); if (menuItem == null) { @@ -905,11 +919,29 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity moveCachesToOtherList(); invalidateOptionsMenuCompatible(); return true; + case MENU_DELETE_EVENTS: + deletePastEvents(); + invalidateOptionsMenuCompatible(); + return true; default: return CacheListAppFactory.onMenuItemSelected(item, cacheList, this, search); } } + public void deletePastEvents() { + progress.show(this, null, res.getString(R.string.caches_drop_progress), true, dropDetailsHandler.obtainMessage(MSG_CANCEL)); + final List<cgCache> deletion = new ArrayList<cgCache>(); + for (cgCache cache : adapter.getCheckedOrAllCaches()) { + if (cache.isEventCache()) { + final Date eventDate = cache.getHiddenDate(); + if (DateUtils.daysSince(eventDate.getTime()) > 0) { + deletion.add(cache); + } + } + } + new DropDetailsThread(dropDetailsHandler, deletion).start(); + } + /** * called from the filter bar view */ @@ -1294,7 +1326,7 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity public void dropSelected() { progress.show(this, null, res.getString(R.string.caches_drop_progress), true, dropDetailsHandler.obtainMessage(MSG_CANCEL)); - new DropDetailsThread(dropDetailsHandler).start(); + new DropDetailsThread(dropDetailsHandler, adapter.getCheckedOrAllCaches()).start(); } private class LoadByOfflineThread extends Thread { @@ -1598,9 +1630,9 @@ public class cgeocaches extends AbstractListActivity implements FilteredActivity final private Handler handler; final private List<cgCache> selected; - public DropDetailsThread(Handler handlerIn) { + public DropDetailsThread(Handler handlerIn, List<cgCache> selectedIn) { handler = handlerIn; - selected = adapter.getCheckedOrAllCaches(); + selected = selectedIn; } @Override |
