Fix issue with settings forcing an app restart

This commit is contained in:
stom79 2018-11-29 07:37:41 +01:00
parent e6aa9adabf
commit b4c08a3225
1 changed files with 150 additions and 132 deletions

View File

@ -80,6 +80,7 @@ public class SettingsFragment extends Fragment {
private static final int ACTIVITY_CHOOSE_FILE = 411; private static final int ACTIVITY_CHOOSE_FILE = 411;
private TextView set_folder; private TextView set_folder;
private EditText your_api_key; private EditText your_api_key;
private int count1, count2, count3, count4;
@Override @Override
@ -103,7 +104,10 @@ public class SettingsFragment extends Fragment {
editor.apply(); editor.apply();
} }
}); });
count1 = 0;
count2 = 0;
count3 = 0;
count4 = 0;
boolean display_card = sharedpreferences.getBoolean(Helper.SET_DISPLAY_CARD, false); boolean display_card = sharedpreferences.getBoolean(Helper.SET_DISPLAY_CARD, false);
@ -579,26 +583,30 @@ public class SettingsFragment extends Fragment {
set_night_mode.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { set_night_mode.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences.Editor editor = sharedpreferences.edit(); if( count1 > 0 ) {
switch (position){ SharedPreferences.Editor editor = sharedpreferences.edit();
case 0:
editor.putInt(Helper.SET_THEME, Helper.THEME_DARK); switch (position) {
editor.apply(); case 0:
break; editor.putInt(Helper.SET_THEME, Helper.THEME_DARK);
case 1: editor.apply();
editor.putInt(Helper.SET_THEME, Helper.THEME_LIGHT); break;
editor.apply(); case 1:
break; editor.putInt(Helper.SET_THEME, Helper.THEME_LIGHT);
case 2: editor.apply();
editor.putInt(Helper.SET_THEME, Helper.THEME_BLACK); break;
editor.apply(); case 2:
break; editor.putInt(Helper.SET_THEME, Helper.THEME_BLACK);
editor.apply();
break;
}
if (getActivity() != null)
getActivity().recreate();
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(INTENT_ACTION, CHANGE_THEME_INTENT);
startActivity(intent);
} }
if( getActivity() != null) count1++;
getActivity().recreate();
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(INTENT_ACTION, CHANGE_THEME_INTENT);
startActivity(intent);
} }
@Override @Override
public void onNothingSelected(AdapterView<?> parent) { public void onNothingSelected(AdapterView<?> parent) {
@ -618,88 +626,92 @@ public class SettingsFragment extends Fragment {
set_change_locale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { set_change_locale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences.Editor editor = sharedpreferences.edit(); if( count2 > 0 ) {
switch (position){ SharedPreferences.Editor editor = sharedpreferences.edit();
case 0: switch (position) {
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.getDefault())); case 0:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.getDefault()));
break; editor.commit();
case 1: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ENGLISH)); case 1:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ENGLISH));
break; editor.commit();
case 2: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.FRANCE)); case 2:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.FRANCE));
break; editor.commit();
case 3: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.GERMAN)); case 3:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.GERMAN));
break; editor.commit();
case 4: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ITALIAN)); case 4:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.ITALIAN));
break; editor.commit();
case 5: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.JAPAN)); case 5:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.JAPAN));
break; editor.commit();
case 6: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.SIMPLIFIED_CHINESE)); case 6:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.SIMPLIFIED_CHINESE));
break; editor.commit();
case 7: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.TRADITIONAL_CHINESE)); case 7:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(Locale.TRADITIONAL_CHINESE));
break; editor.commit();
case 8: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("eu"))); case 8:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("eu")));
break; editor.commit();
case 9: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("ar"))); case 9:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("ar")));
break; editor.commit();
case 10: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("nl"))); case 10:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("nl")));
break; editor.commit();
case 11: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("gl"))); case 11:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("gl")));
break; editor.commit();
case 12: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("el"))); case 12:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("el")));
break; editor.commit();
case 13: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pt"))); case 13:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pt")));
break; editor.commit();
case 14: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("es"))); case 14:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("es")));
break; editor.commit();
case 15: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pl"))); case 15:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("pl")));
break; editor.commit();
case 16: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("sr"))); case 16:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("sr")));
break; editor.commit();
case 17: break;
editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("uk"))); case 17:
editor.commit(); editor.putString(Helper.SET_DEFAULT_LOCALE, Helper.localeToStringStorage(new Locale("uk")));
break; editor.commit();
break;
}
PackageManager packageManager = context.getPackageManager();
Intent intent = packageManager.getLaunchIntentForPackage(context.getPackageName());
assert intent != null;
ComponentName componentName = intent.getComponent();
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
context.startActivity(mainIntent);
Runtime.getRuntime().exit(0);
} }
PackageManager packageManager = context.getPackageManager(); count2++;
Intent intent = packageManager.getLaunchIntentForPackage(context.getPackageName());
assert intent != null;
ComponentName componentName = intent.getComponent();
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
context.startActivity(mainIntent);
Runtime.getRuntime().exit(0);
} }
@Override @Override
public void onNothingSelected(AdapterView<?> parent) { public void onNothingSelected(AdapterView<?> parent) {
@ -889,35 +901,38 @@ public class SettingsFragment extends Fragment {
translation_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { translation_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences.Editor editor = sharedpreferences.edit(); if( count3 > 0 ) {
switch (position){ SharedPreferences.Editor editor = sharedpreferences.edit();
case 0: switch (position) {
your_api_key.setVisibility(View.VISIBLE); case 0:
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX); your_api_key.setVisibility(View.VISIBLE);
editor.apply(); editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
if( sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, null) != null) editor.apply();
your_api_key.setText(sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, "")); if (sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, null) != null)
break; your_api_key.setText(sharedpreferences.getString(Helper.SET_DEEPL_API_KEY, ""));
case 1: break;
your_api_key.setVisibility(View.VISIBLE); case 1:
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_DEEPL); your_api_key.setVisibility(View.VISIBLE);
editor.apply(); editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_DEEPL);
if( sharedpreferences.getString(SET_YANDEX_API_KEY, null) != null) editor.apply();
your_api_key.setText(sharedpreferences.getString(SET_YANDEX_API_KEY, null)); if (sharedpreferences.getString(SET_YANDEX_API_KEY, null) != null)
break; your_api_key.setText(sharedpreferences.getString(SET_YANDEX_API_KEY, null));
case 2: break;
your_api_key.setVisibility(View.GONE); case 2:
set_trans_forced.isChecked(); your_api_key.setVisibility(View.GONE);
editor.putBoolean(Helper.SET_TRANS_FORCED, false); set_trans_forced.isChecked();
editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_NONE); editor.putBoolean(Helper.SET_TRANS_FORCED, false);
editor.apply(); editor.putInt(Helper.SET_TRANSLATOR, Helper.TRANS_NONE);
break; editor.apply();
break;
}
if( getActivity() != null)
getActivity().recreate();
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(INTENT_ACTION, CHANGE_THEME_INTENT);
startActivity(intent);
} }
if( getActivity() != null) count3++;
getActivity().recreate();
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(INTENT_ACTION, CHANGE_THEME_INTENT);
startActivity(intent);
} }
@Override @Override
public void onNothingSelected(AdapterView<?> parent) { public void onNothingSelected(AdapterView<?> parent) {
@ -935,9 +950,12 @@ public class SettingsFragment extends Fragment {
resize_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { resize_layout_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override @Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
SharedPreferences.Editor editor = sharedpreferences.edit(); if( count4 > 0) {
editor.putInt(Helper.SET_PICTURE_RESIZE, position); SharedPreferences.Editor editor = sharedpreferences.edit();
editor.apply(); editor.putInt(Helper.SET_PICTURE_RESIZE, position);
editor.apply();
}
count4++;
} }
@Override @Override
public void onNothingSelected(AdapterView<?> parent) { public void onNothingSelected(AdapterView<?> parent) {