diff options
| author | rsudev <rasch@munin-soft.de> | 2014-05-17 22:28:08 +0200 |
|---|---|---|
| committer | rsudev <rasch@munin-soft.de> | 2014-05-18 22:41:07 +0200 |
| commit | 7fe7a6331adc4ab13674b3272b61cd20c80772f6 (patch) | |
| tree | 0818f1b567c0373af2e9d8b9821e8817b1060559 /main | |
| parent | 916992dc8398db364927a50a8ceb46f3053fce96 (diff) | |
| download | cgeo-7fe7a6331adc4ab13674b3272b61cd20c80772f6.zip cgeo-7fe7a6331adc4ab13674b3272b61cd20c80772f6.tar.gz cgeo-7fe7a6331adc4ab13674b3272b61cd20c80772f6.tar.bz2 | |
Implements #96, Change log / What's new popup on start
- Checks the last version from preferences with current
- Stores current version
- switches to about - changelog on version change
Diffstat (limited to 'main')
| -rw-r--r-- | main/res/values/preference_keys.xml | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/AboutActivity.java | 17 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/MainActivity.java | 12 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/settings/Settings.java | 8 |
4 files changed, 37 insertions, 1 deletions
diff --git a/main/res/values/preference_keys.xml b/main/res/values/preference_keys.xml index 906158d..f8b9230 100644 --- a/main/res/values/preference_keys.xml +++ b/main/res/values/preference_keys.xml @@ -171,4 +171,5 @@ <string name="pref_ec_icons">ec_icons</string> <string name="pref_memory_dump">memory_dump</string> <string name="pref_appearance">pref_appearance</string> + <string name="pref_changelog_last_version">changelog_last_version</string> </resources> diff --git a/main/src/cgeo/geocaching/AboutActivity.java b/main/src/cgeo/geocaching/AboutActivity.java index 6cda723..f46a5a6 100644 --- a/main/src/cgeo/geocaching/AboutActivity.java +++ b/main/src/cgeo/geocaching/AboutActivity.java @@ -14,6 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; +import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -28,6 +29,8 @@ import java.util.Scanner; public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> { + private static final String EXTRA_ABOUT_STARTPAGE = "cgeo.geocaching.extra.about.startpage"; + class LicenseViewCreator extends AbstractCachingPageViewCreator<ScrollView> { @InjectView(R.id.license) protected TextView licenseLink; @@ -142,7 +145,13 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState, R.layout.viewpager_activity); - createViewPager(0, null); + + int startPage = Page.VERSION.ordinal(); + Bundle extras = getIntent().getExtras(); + if (extras != null) { + startPage = extras.getInt(EXTRA_ABOUT_STARTPAGE, startPage); + } + createViewPager(startPage, null); reinitializeViewPager(); } @@ -210,4 +219,10 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> return result; } + public static void showChangeLog(Context fromActivity) { + final Intent intent = new Intent(fromActivity, AboutActivity.class); + intent.putExtra(EXTRA_ABOUT_STARTPAGE, Page.CHANGELOG.ordinal()); + fromActivity.startActivity(intent); + } + } diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java index 473d870..8de27b0 100644 --- a/main/src/cgeo/geocaching/MainActivity.java +++ b/main/src/cgeo/geocaching/MainActivity.java @@ -213,6 +213,8 @@ public class MainActivity extends AbstractActionBarActivity { Log.i("Starting " + getPackageName() + ' ' + version + " a.k.a " + Version.getVersionName(this)); init(); + + checkShowChangelog(); } @Override @@ -726,6 +728,16 @@ public class MainActivity extends AbstractActionBarActivity { } } + private void checkShowChangelog() { + int lastVersion = Settings.getLastChangelogVersion(); + int version = Version.getVersionCode(this); + Settings.setLastChangelogVersion(version); + // don't show change log after new install... + if (lastVersion > 0 && version != lastVersion) { + AboutActivity.showChangeLog(this); + } + } + /** * @param view * unused here but needed since this method is referenced from XML layout diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java index a527fc5..474558d 100644 --- a/main/src/cgeo/geocaching/settings/Settings.java +++ b/main/src/cgeo/geocaching/settings/Settings.java @@ -1008,4 +1008,12 @@ public class Settings { return getString(R.string.pref_ec_icons, "1"); } + /* Store last version for the changelog display */ + public static int getLastChangelogVersion() { + return getInt(R.string.pref_changelog_last_version, 0); + } + + public static void setLastChangelogVersion(int version) { + putInt(R.string.pref_changelog_last_version, version); + } } |
