diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
index a6466daf9..c4eae1baf 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsFragment.java
@@ -1,27 +1,27 @@
package org.schabi.newpipe.settings;
import android.app.Activity;
-import android.app.ListActivity;
import android.content.ClipData;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.preference.PreferenceScreen;
+import android.support.v7.app.AlertDialog;
import com.nononsenseapps.filepicker.FilePickerActivity;
import org.schabi.newpipe.App;
+import org.schabi.newpipe.MainActivity;
import org.schabi.newpipe.R;
import java.util.ArrayList;
-import java.util.Objects;
import info.guardianproject.netcipher.proxy.OrbotHelper;
@@ -98,6 +98,8 @@ public class SettingsFragment extends PreferenceFragment
downloadPathAudioPreference = findPreference(DOWNLOAD_PATH_AUDIO_PREFERENCE);
themePreference = findPreference(THEME);
+ final String currentTheme = defaultPreferences.getString(THEME, "Light");
+
prefListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
@@ -139,8 +141,27 @@ public class SettingsFragment extends PreferenceFragment
}
else if (key == THEME)
{
- String theme = sharedPreferences.getString(THEME, "Light");
- themePreference.setSummary(theme);
+ String selectedTheme = sharedPreferences.getString(THEME, "Light");
+ themePreference.setSummary(selectedTheme);
+
+ if(!selectedTheme.equals(currentTheme)) { // If it's not the current theme
+ new AlertDialog.Builder(activity)
+ .setTitle(R.string.restart_title)
+ .setMessage(R.string.msg_restart)
+ .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Intent intentToMain = new Intent(activity, MainActivity.class);
+ intentToMain.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ activity.startActivity(intentToMain);
+
+ activity.finish();
+ Runtime.getRuntime().exit(0);
+ }
+ })
+ .setNegativeButton(R.string.later, null)
+ .create().show();
+ }
}
updateSummary();
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d7b20ebb5..71c11fd50 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -86,6 +86,8 @@
Error report
All
Channel
+ Yes
+ Later
Error
@@ -156,6 +158,7 @@
K
M
B
+ Restart
Start
@@ -184,6 +187,7 @@
Please wait…
Copied to clipboard.
Please select an available download directory.
+ You have to restart the application to apply the theme.\n\nDo you want to restart now?
MD5