Commit 1de748e3 authored by Varun Patil's avatar Varun Patil

Preserve dark theme settings

parent b21a9e47
...@@ -6,6 +6,7 @@ public class Constants { ...@@ -6,6 +6,7 @@ public class Constants {
public static final int MY_PERMISSIONS_REQUEST_LOCATION = 3; public static final int MY_PERMISSIONS_REQUEST_LOCATION = 3;
public static final int RESULT_LOAD_IMAGE = 11; public static final int RESULT_LOAD_IMAGE = 11;
public static final int REQUEST_CAMERA_INT_ID = 101; public static final int REQUEST_CAMERA_INT_ID = 101;
public static final String DARK_THEME = "dark_theme";
public static final String NOTIFICATIONS_RESPONSE_JSON = "notifications_json"; public static final String NOTIFICATIONS_RESPONSE_JSON = "notifications_json";
public static final String EVENT_ID = "event_id"; public static final String EVENT_ID = "event_id";
public static final String EVENT_LATITUDE = "event_latitude"; public static final String EVENT_LATITUDE = "event_latitude";
......
...@@ -7,6 +7,7 @@ import android.app.NotificationChannel; ...@@ -7,6 +7,7 @@ import android.app.NotificationChannel;
import android.app.NotificationManager; import android.app.NotificationManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Color; import android.graphics.Color;
...@@ -115,6 +116,11 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On ...@@ -115,6 +116,11 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
/* Check for dark theme */
SharedPreferences sharedPref = getSharedPreferences(Constants.PREF_NAME, Context.MODE_PRIVATE);
if(sharedPref.getBoolean(Constants.DARK_THEME, false))
this.setTheme(R.style.AppThemeDark);
ServiceGenerator serviceGenerator = new ServiceGenerator(getApplicationContext()); ServiceGenerator serviceGenerator = new ServiceGenerator(getApplicationContext());
Utils.setRetrofitInterface(serviceGenerator.getRetrofitInterface()); Utils.setRetrofitInterface(serviceGenerator.getRetrofitInterface());
......
package app.insti.fragment; package app.insti.fragment;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
...@@ -22,17 +24,23 @@ import retrofit2.Callback; ...@@ -22,17 +24,23 @@ import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
public class SettingsFragment extends PreferenceFragmentCompat { public class SettingsFragment extends PreferenceFragmentCompat {
SwitchPreferenceCompat showContactPref; private SwitchPreferenceCompat showContactPref;
SwitchPreferenceCompat darkThemePref; private SwitchPreferenceCompat darkThemePref;
Preference profilePref; private Preference profilePref;
Preference feedbackPref; private Preference feedbackPref;
Preference aboutPref; private Preference aboutPref;
Preference logoutPref; private Preference logoutPref;
private SharedPreferences sharedPref;
private SharedPreferences.Editor editor;
@Override @Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey); setPreferencesFromResource(R.xml.preferences, rootKey);
// Get preferences and editor
sharedPref = getActivity().getSharedPreferences(Constants.PREF_NAME, Context.MODE_PRIVATE);
editor = sharedPref.edit();
// Show contact number // Show contact number
showContactPref = (SwitchPreferenceCompat) findPreference("show_contact"); showContactPref = (SwitchPreferenceCompat) findPreference("show_contact");
showContactPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { showContactPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
...@@ -53,6 +61,7 @@ public class SettingsFragment extends PreferenceFragmentCompat { ...@@ -53,6 +61,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
return true; return true;
} }
}); });
darkThemePref.setChecked(sharedPref.getBoolean(Constants.DARK_THEME, false));
// Update Profile // Update Profile
profilePref = findPreference("profile"); profilePref = findPreference("profile");
...@@ -164,6 +173,8 @@ public class SettingsFragment extends PreferenceFragmentCompat { ...@@ -164,6 +173,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
} }
public void toggleDarkTheme(final SwitchPreferenceCompat showContactPref, Object o) { public void toggleDarkTheme(final SwitchPreferenceCompat showContactPref, Object o) {
editor.putBoolean(Constants.DARK_THEME, (boolean) o);
editor.commit();
Utils.changeTheme(this, (boolean) o); Utils.changeTheme(this, (boolean) o);
} }
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
<item name="themeColorInverse">#000000</item> <item name="themeColorInverse">#000000</item>
<item name="newsColor">#F2F2F2</item> <item name="newsColor">#F2F2F2</item>
<item name="urlColor">@color/colorPrimary</item> <item name="urlColor">@color/colorPrimary</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style> </style>
<style name="AppTheme.NoActionBar"> <style name="AppTheme.NoActionBar">
...@@ -25,6 +27,8 @@ ...@@ -25,6 +27,8 @@
<item name="themeColorInverse">#FFFFFF</item> <item name="themeColorInverse">#FFFFFF</item>
<item name="newsColor">#00000000</item> <item name="newsColor">#00000000</item>
<item name="urlColor">@color/colorAccent</item> <item name="urlColor">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style> </style>
<style name="AppThemeDark.NoActionBar"> <style name="AppThemeDark.NoActionBar">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment