diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-01-20 16:27:48 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-01-20 16:56:01 +0100 |
| commit | 522b3122316fcacb8f1887b1f898c517bfb25241 (patch) | |
| tree | 155524b70d9f0b1452d1798b6a8a9726d5ae8d65 /main/src/cgeo/geocaching/CacheDetailActivity.java | |
| parent | c58618907c868fdea37a6bc5dcf7e9868e1eab7c (diff) | |
| download | cgeo-522b3122316fcacb8f1887b1f898c517bfb25241.zip cgeo-522b3122316fcacb8f1887b1f898c517bfb25241.tar.gz cgeo-522b3122316fcacb8f1887b1f898c517bfb25241.tar.bz2 | |
Reuse code to fill a cache detail
Diffstat (limited to 'main/src/cgeo/geocaching/CacheDetailActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/CacheDetailActivity.java | 87 |
1 files changed, 46 insertions, 41 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 391dfd3..933e2d2 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -53,6 +53,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Typeface; import android.graphics.drawable.BitmapDrawable; @@ -76,6 +77,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; +import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; @@ -1215,7 +1217,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc view.findViewById(R.id.attributes_box).setVisibility(View.VISIBLE); } - updateOfflineBox(); + updateOfflineBox(view, cache, res, new RefreshCacheClickListener(), new DropCacheClickListener(), new StoreCacheClickListener()); // watchlist Button buttonWatchlistAdd = (Button) view.findViewById(R.id.add_to_watchlist); @@ -1610,46 +1612,6 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } } - private void updateOfflineBox() { - // offline use - final TextView offlineText = (TextView) view.findViewById(R.id.offline_text); - final Button offlineRefresh = (Button) view.findViewById(R.id.offline_refresh); - final Button offlineStore = (Button) view.findViewById(R.id.offline_store); - - if (cache.isOffline()) { - long diff = (System.currentTimeMillis() / (60 * 1000)) - (cache.getDetailedUpdate() / (60 * 1000)); // minutes - - String ago; - if (diff < 15) { - ago = res.getString(R.string.cache_offline_time_mins_few); - } else if (diff < 50) { - ago = res.getString(R.string.cache_offline_time_about) + " " + diff + " " + res.getString(R.string.cache_offline_time_mins); - } else if (diff < 90) { - ago = res.getString(R.string.cache_offline_time_about) + " " + res.getString(R.string.cache_offline_time_hour); - } else if (diff < (48 * 60)) { - ago = res.getString(R.string.cache_offline_time_about) + " " + (diff / 60) + " " + res.getString(R.string.cache_offline_time_hours); - } else { - ago = res.getString(R.string.cache_offline_time_about) + " " + (diff / (24 * 60)) + " " + res.getString(R.string.cache_offline_time_days); - } - - offlineText.setText(res.getString(R.string.cache_offline_stored) + "\n" + ago); - offlineRefresh.setOnClickListener(new RefreshCacheClickListener()); - - offlineStore.setText(res.getString(R.string.cache_offline_drop)); - offlineStore.setClickable(true); - offlineStore.setOnClickListener(new DropCacheClickListener()); - } else { - offlineText.setText(res.getString(R.string.cache_offline_not_ready)); - offlineRefresh.setOnClickListener(new RefreshCacheClickListener()); - - offlineStore.setText(res.getString(R.string.cache_offline_store)); - offlineStore.setClickable(true); - offlineStore.setOnClickListener(new StoreCacheClickListener()); - } - offlineRefresh.setVisibility(cache.supportsRefresh() ? View.VISIBLE : View.GONE); - offlineRefresh.setClickable(true); - } - private class PreviewMapTask extends AsyncTask<Void, Void, BitmapDrawable> { @Override protected BitmapDrawable doInBackground(Void... parameters) { @@ -2436,4 +2398,47 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } } + static void updateOfflineBox(final View view, final cgCache cache, final Resources res, + final OnClickListener refreshCacheClickListener, + final OnClickListener dropCacheClickListener, + final OnClickListener storeCacheClickListener) { + // offline use + final TextView offlineText = (TextView) view.findViewById(R.id.offline_text); + final Button offlineRefresh = (Button) view.findViewById(R.id.offline_refresh); + final Button offlineStore = (Button) view.findViewById(R.id.offline_store); + + if (cache.isOffline()) { + long diff = (System.currentTimeMillis() / (60 * 1000)) - (cache.getDetailedUpdate() / (60 * 1000)); // minutes + + String ago; + if (diff < 15) { + ago = res.getString(R.string.cache_offline_time_mins_few); + } else if (diff < 50) { + ago = res.getString(R.string.cache_offline_time_about) + " " + diff + " " + res.getString(R.string.cache_offline_time_mins); + } else if (diff < 90) { + ago = res.getString(R.string.cache_offline_time_about) + " " + res.getString(R.string.cache_offline_time_hour); + } else if (diff < (48 * 60)) { + ago = res.getString(R.string.cache_offline_time_about) + " " + (diff / 60) + " " + res.getString(R.string.cache_offline_time_hours); + } else { + ago = res.getString(R.string.cache_offline_time_about) + " " + (diff / (24 * 60)) + " " + res.getString(R.string.cache_offline_time_days); + } + + offlineText.setText(res.getString(R.string.cache_offline_stored) + "\n" + ago); + offlineRefresh.setOnClickListener(refreshCacheClickListener); + + offlineStore.setText(res.getString(R.string.cache_offline_drop)); + offlineStore.setClickable(true); + offlineStore.setOnClickListener(dropCacheClickListener); + } else { + offlineText.setText(res.getString(R.string.cache_offline_not_ready)); + offlineRefresh.setOnClickListener(refreshCacheClickListener); + + offlineStore.setText(res.getString(R.string.cache_offline_store)); + offlineStore.setClickable(true); + offlineStore.setOnClickListener(storeCacheClickListener); + } + offlineRefresh.setVisibility(cache.supportsRefresh() ? View.VISIBLE : View.GONE); + offlineRefresh.setClickable(true); + } + } |
