Commit 5bf7e5c6 authored by Varun Patil's avatar Varun Patil

Add dark theme to settings

parent e85df5b3
......@@ -14,13 +14,13 @@ import android.support.transition.Slide;
import android.support.transition.Transition;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.TypedValue;
import android.view.View;
import android.webkit.CookieManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.gson.Gson;
import com.squareup.picasso.Callback;
......@@ -29,7 +29,6 @@ import com.squareup.picasso.Picasso;
import java.util.HashMap;
import java.util.Map;
import app.insti.activity.MainActivity;
import app.insti.api.RetrofitInterface;
import app.insti.api.model.Body;
import app.insti.api.model.Event;
......@@ -37,6 +36,7 @@ import app.insti.api.model.Notification;
import app.insti.api.model.User;
import app.insti.fragment.BodyFragment;
import app.insti.fragment.EventFragment;
import app.insti.fragment.SettingsFragment;
import app.insti.fragment.TransitionTargetChild;
import app.insti.fragment.TransitionTargetFragment;
import app.insti.fragment.UserFragment;
......@@ -49,7 +49,6 @@ public final class Utils {
private static String sessionId;
private static RetrofitInterface retrofitInterface;
public static Gson gson;
public static boolean darkTheme = false;
public static final void loadImageWithPlaceholder(final ImageView imageView, final String url) {
Picasso.get()
......@@ -231,18 +230,22 @@ public final class Utils {
Utils.gson = new Gson();
}
public static void changeTheme(FragmentActivity context) {
if (darkTheme) {
context.setTheme(R.style.AppTheme);
} else {
Toast.makeText(context, "You have unlocked super max pro mode", Toast.LENGTH_SHORT).show();
context.setTheme(R.style.AppThemeDark);
}
darkTheme = !darkTheme;
Intent intent = new Intent(context, MainActivity.class);
context.startActivity(intent);
context.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
context.finish();
public static void changeTheme(SettingsFragment fragment, boolean darkTheme) {
FragmentActivity fragmentActivity = fragment.getActivity();
fragmentActivity.setTheme(darkTheme ? R.style.AppThemeDark : R.style.AppTheme);
// Set background color of activity
fragmentActivity.findViewById(R.id.drawer_layout).setBackgroundColor(
getAttrColor(fragmentActivity, R.attr.themeColor));
// Put in a new settings fragment
Fragment newFragment = new SettingsFragment();
newFragment.setArguments(fragment.getArguments());
FragmentManager fm = fragmentActivity.getSupportFragmentManager();
fm.popBackStack();
FragmentTransaction ft = fm.beginTransaction();
ft.addToBackStack(newFragment.getTag());
ft.replace(R.id.framelayout_for_fragment, newFragment, newFragment.getTag()).commit();
}
public static void setSelectedMenuItem(Activity activity, int id) {
......
......@@ -25,10 +25,8 @@ import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.ImageView;
......@@ -115,9 +113,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
if (Utils.darkTheme) {
setTheme(R.style.AppThemeDark_NoActionBar);
}
super.onCreate(savedInstanceState);
ServiceGenerator serviceGenerator = new ServiceGenerator(getApplicationContext());
......@@ -159,22 +154,6 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On
}
}
toolbar.setOnTouchListener(new View.OnTouchListener() {
private GestureDetector gestureDetector = new GestureDetector(MainActivity.this, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
Utils.changeTheme(MainActivity.this);
return super.onDoubleTap(e);
}
});
@Override
public boolean onTouch(View v, MotionEvent event) {
gestureDetector.onTouchEvent(event);
return true;
}
});
checkLatestVersion();
}
......
......@@ -23,6 +23,7 @@ import retrofit2.Response;
public class SettingsFragment extends PreferenceFragmentCompat {
SwitchPreferenceCompat showContactPref;
SwitchPreferenceCompat darkThemePref;
Preference profilePref;
Preference feedbackPref;
Preference aboutPref;
......@@ -43,6 +44,16 @@ public class SettingsFragment extends PreferenceFragmentCompat {
});
showContactPref.setEnabled(false);
// Dark Theme
darkThemePref = (SwitchPreferenceCompat) findPreference("dark_theme");
darkThemePref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object o) {
toggleDarkTheme((SwitchPreferenceCompat) preference, o);
return true;
}
});
// Update Profile
profilePref = findPreference("profile");
profilePref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
......@@ -146,6 +157,10 @@ public class SettingsFragment extends PreferenceFragmentCompat {
});
}
public void toggleDarkTheme(final SwitchPreferenceCompat showContactPref, Object o) {
Utils.changeTheme(this, (boolean) o);
}
public void openAbout() {
Utils.updateFragment(new AboutFragment(), getActivity());
}
......
<vector android:height="36dp" android:tint="#767676"
android:viewportHeight="24.0" android:viewportWidth="24.0"
android:width="36dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#FF000000" android:pathData="M12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9c0.83,0 1.5,-0.67 1.5,-1.5 0,-0.39 -0.15,-0.74 -0.39,-1.01 -0.23,-0.26 -0.38,-0.61 -0.38,-0.99 0,-0.83 0.67,-1.5 1.5,-1.5L16,16c2.76,0 5,-2.24 5,-5 0,-4.42 -4.03,-8 -9,-8zM6.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S5.67,9 6.5,9 8,9.67 8,10.5 7.33,12 6.5,12zM9.5,8C8.67,8 8,7.33 8,6.5S8.67,5 9.5,5s1.5,0.67 1.5,1.5S10.33,8 9.5,8zM14.5,8c-0.83,0 -1.5,-0.67 -1.5,-1.5S13.67,5 14.5,5s1.5,0.67 1.5,1.5S15.33,8 14.5,8zM17.5,12c-0.83,0 -1.5,-0.67 -1.5,-1.5S16.67,9 17.5,9s1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/>
</vector>
......@@ -9,6 +9,12 @@
app:summary="Toggle visibility on your profile"
android:icon="@drawable/ic_local_phone_gray_36dp"/>
<SwitchPreferenceCompat
app:key="dark_theme"
app:title="Dark Theme"
app:summary="Note: this feature is in beta"
android:icon="@drawable/ic_color_lens_gray_36dp"/>
<Preference
app:key="profile"
app:title="Update Profile"
......
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