This commit is contained in:
Victor Shcherb 2015-10-22 21:51:24 +02:00
parent d79da17959
commit 32941bb562
3 changed files with 21 additions and 44 deletions

View file

@ -56,8 +56,11 @@ import btools.routingapp.BRouterServiceConnection;
public class AppInitializer implements IProgress { public class AppInitializer implements IProgress {
public static final boolean TIPS_AND_TRICKS = false; public static final boolean TIPS_AND_TRICKS = false;
private static final String FIRST_TIME_APP_RUN = "FIRST_TIME_APP_RUN"; //$NON-NLS-1$
protected static final String NUMBER_OF_STARTS = "NUMBER_OF_STARTS"; //$NON-NLS-1$
protected static final String FIRST_INSTALLED = "FIRST_INSTALLED"; //$NON-NLS-1$
private static final String VECTOR_INDEXES_CHECK = "VECTOR_INDEXES_CHECK"; //$NON-NLS-1$ private static final String VECTOR_INDEXES_CHECK = "VECTOR_INDEXES_CHECK"; //$NON-NLS-1$
private static final String VERSION_INSTALLED = "VERSION_INSTALLED"; //$NON-NLS-1$
private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$ private static final String EXCEPTION_FILE_SIZE = "EXCEPTION_FS"; //$NON-NLS-1$
public static final String LATEST_CHANGES_URL = "changes-2.1.html"; public static final String LATEST_CHANGES_URL = "changes-2.1.html";
@ -110,18 +113,22 @@ public class AppInitializer implements IProgress {
if(initSettings) { if(initSettings) {
return; return;
} }
OsmandSettings settings = getSettings(activity); SharedPreferences pref = activity.getPreferences(Context.MODE_WORLD_WRITEABLE);
firstTime = settings.FIRST_TIME_APP_RUN.get(); if(!pref.contains(NUMBER_OF_STARTS)) {
if (firstTime) { pref.edit().putInt(NUMBER_OF_STARTS, 1).commit();
settings.FIRST_TIME_APP_RUN.set(false); } else {
settings.VERSION_INSTALLED.set(Version.getFullVersion(app)); pref.edit().putInt(NUMBER_OF_STARTS, pref.getInt(NUMBER_OF_STARTS, 0) + 1).commit();
} else if (!Version.getFullVersion(app).equals(settings.VERSION_INSTALLED.get())) {
settings.VERSION_INSTALLED.set(Version.getFullVersion(app));
appVersionChanged = true;
} }
settings.NUMBER_OF_APPLICATION_STARTS.set(settings.NUMBER_OF_APPLICATION_STARTS.get() + 1); if (!pref.contains(FIRST_INSTALLED)) {
if (settings.FIRST_INSTALLED_DATE.get() == -1) { pref.edit().putLong(FIRST_INSTALLED, System.currentTimeMillis()).commit();
settings.FIRST_INSTALLED_DATE.set(System.currentTimeMillis()); }
if (!pref.contains(FIRST_TIME_APP_RUN)) {
firstTime = true;
pref.edit().putBoolean(FIRST_TIME_APP_RUN, true).commit();
pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
} else if (!Version.getFullVersion(app).equals(pref.getString(VERSION_INSTALLED, ""))) {
pref.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
appVersionChanged = true;
} }
initSettings = true; initSettings = true;
} }
@ -135,16 +142,6 @@ public class AppInitializer implements IProgress {
this.firstTime = firstTime; this.firstTime = firstTime;
} }
public void writeFirstTime(boolean firstTime, Activity activity) {
setFirstTime(firstTime);
OsmandSettings settings = getSettings(activity);
settings.FIRST_TIME_APP_RUN.set(firstTime);
}
private OsmandSettings getSettings(Activity activity) {
return ((OsmandApplication) activity.getApplication()).getSettings();
}
public boolean checkAppVersionChanged(Activity activity) { public boolean checkAppVersionChanged(Activity activity) {
initUiVars(activity); initUiVars(activity);
boolean showRecentChangesDialog = !firstTime && appVersionChanged; boolean showRecentChangesDialog = !firstTime && appVersionChanged;

View file

@ -1888,12 +1888,7 @@ public class OsmandSettings {
public final OsmandPreference<DashRateUsFragment.RateUsState> RATE_US_STATE = public final OsmandPreference<DashRateUsFragment.RateUsState> RATE_US_STATE =
new EnumIntPreference<>("rate_us_state", new EnumIntPreference<>("rate_us_state",
DashRateUsFragment.RateUsState.INITIAL_STATE, DashRateUsFragment.RateUsState.values()) DashRateUsFragment.RateUsState.INITIAL_STATE, DashRateUsFragment.RateUsState.values())
.makeGlobal() .makeGlobal();
.cache();
public final OsmandPreference<Boolean> FIRST_TIME_APP_RUN =
new BooleanPreference("first_time_app_run", true).makeGlobal().cache();
public final OsmandPreference<String> VERSION_INSTALLED =
new StringPreference("version_installed", null).makeGlobal().cache();
public enum DayNightMode { public enum DayNightMode {

View file

@ -182,21 +182,6 @@ public class SettingsDevelopmentActivity extends SettingsBaseActivity {
cat.addPreference(createCheckBoxPreference(settings.SHOULD_SHOW_FREE_VERSION_BANNER, cat.addPreference(createCheckBoxPreference(settings.SHOULD_SHOW_FREE_VERSION_BANNER,
R.string.show_free_version_banner, R.string.show_free_version_banner,
R.string.show_free_version_banner_description)); R.string.show_free_version_banner_description));
final Preference firstRunPreference = new Preference(this);
firstRunPreference.setTitle("Reset first run");
firstRunPreference.setSummary("After reset app wold act like it is it's firs run");
firstRunPreference.setSelectable(true);
firstRunPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
final SettingsDevelopmentActivity activity = SettingsDevelopmentActivity.this;
activity.getMyApplication().getAppInitializer()
.writeFirstTime(true, activity);
firstRunPreference.setSummary("First run flag has been reset");
return true;
}
});
cat.addPreference(firstRunPreference);
} }
protected void availableProfileDialog() { protected void availableProfileDialog() {