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 @@ - + +