diff --git a/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java b/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java
index df45b62..50cf5a0 100644
--- a/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java
+++ b/app/src/main/java/org/emunix/unipatcher/ui/activity/MainActivity.java
@@ -21,6 +21,7 @@ package org.emunix.unipatcher.ui.activity;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.support.design.widget.FloatingActionButton;
@@ -32,6 +33,8 @@ import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
+import android.support.v7.app.AppCompatDelegate;
+import android.support.v7.preference.PreferenceManager;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
@@ -54,6 +57,10 @@ import org.emunix.unipatcher.ui.fragment.PatchingFragment;
import org.emunix.unipatcher.ui.fragment.SmdFixChecksumFragment;
import org.emunix.unipatcher.ui.fragment.SnesSmcHeaderFragment;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_AUTO;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_NO;
+import static android.support.v7.app.AppCompatDelegate.MODE_NIGHT_YES;
+
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private static final String LOG_TAG = "org.emunix.unipatcher";
@@ -68,6 +75,7 @@ public class MainActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
+ setTheme();
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.activity_main);
@@ -153,6 +161,22 @@ public class MainActivity extends AppCompatActivity
}
}
+ private void setTheme() {
+ SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
+ String theme = sp.getString("theme","light");
+ switch (theme) {
+ case "light":
+ AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_NO);
+ break;
+ case "dark":
+ AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES);
+ break;
+ case "daynight":
+ AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_AUTO);
+ break;
+ }
+ }
+
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
diff --git a/app/src/main/java/org/emunix/unipatcher/ui/fragment/SettingsFragment.java b/app/src/main/java/org/emunix/unipatcher/ui/fragment/SettingsFragment.java
index ea7ab94..ab084fb 100644
--- a/app/src/main/java/org/emunix/unipatcher/ui/fragment/SettingsFragment.java
+++ b/app/src/main/java/org/emunix/unipatcher/ui/fragment/SettingsFragment.java
@@ -19,15 +19,39 @@ along with UniPatcher. If not, see .
package org.emunix.unipatcher.ui.fragment;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
+import android.widget.Toast;
import org.emunix.unipatcher.R;
-public class SettingsFragment extends PreferenceFragmentCompat {
+public class SettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
+
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+ String key) {
+ if (key.equals("theme")) {
+ Toast.makeText(getActivity(), R.string.settings_theme_message_restart_app, Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ getPreferenceScreen().getSharedPreferences()
+ .registerOnSharedPreferenceChangeListener(this);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ getPreferenceScreen().getSharedPreferences()
+ .unregisterOnSharedPreferenceChangeListener(this);
+ }
}
diff --git a/app/src/main/res/drawable-night/drawer_header.png b/app/src/main/res/drawable-night/drawer_header.png
new file mode 100644
index 0000000..9b906bd
Binary files /dev/null and b/app/src/main/res/drawable-night/drawer_header.png differ
diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml
index 78f007f..3901096 100644
--- a/app/src/main/res/layout/nav_header_main.xml
+++ b/app/src/main/res/layout/nav_header_main.xml
@@ -11,12 +11,4 @@
android:paddingTop="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
-
-
diff --git a/app/src/main/res/layout/patching_fragment.xml b/app/src/main/res/layout/patching_fragment.xml
index 817b4ae..8c43c4b 100644
--- a/app/src/main/res/layout/patching_fragment.xml
+++ b/app/src/main/res/layout/patching_fragment.xml
@@ -23,7 +23,7 @@
android:id="@+id/patchLabel"
android:padding="8dp"
android:text="@string/main_activity_patch_file"
- android:textColor="@color/colorPrimary"
+ android:textColor="@color/colorHeaderText"
android:textSize="24sp"/>
+
+ #393939
+ #2d2d2d
+ #f2777a
+ #eeeeee
+ #cccccc
+ @color/colorPrimaryText
+ #cccccc
+ #393939
+
+ #2d2d2d
+ #393939
+ #ff343434
+ #cccccc
+
\ No newline at end of file
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
index 0b7ca65..8e5478c 100644
--- a/app/src/main/res/values-v21/styles.xml
+++ b/app/src/main/res/values-v21/styles.xml
@@ -1,10 +1,7 @@
-
diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml
new file mode 100644
index 0000000..5d26462
--- /dev/null
+++ b/app/src/main/res/values/array.xml
@@ -0,0 +1,14 @@
+
+
+
+ - @string/settings_theme_name_light
+ - @string/settings_theme_name_dark
+ - @string/settings_theme_name_daynight
+
+
+
+ - light
+ - dark
+ - daynight
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 02e9ded..626c57f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -5,6 +5,7 @@
#f44336
#212121
#727272
+ @color/colorPrimary
#FFFFFF
#B6B6B6
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bb5a6a3..2542535 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -95,6 +95,14 @@
Settings
+ User interface
+ Theme
+ Change the color palette. DayNight theme allows to switch between Light and Dark themes based on the time of day.
+ Select theme
+ Light
+ Dark
+ DayNight
+ Please restart the application
Directories
Remember last opened directories
Specify ROM\'s directory
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index d8e6579..747a854 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,12 +1,15 @@
-
+
+