From bd4ae8adbb47e451d42613e157610511cf77a104 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 16 Mar 2015 17:13:54 -0500 Subject: [PATCH] Add appearance preferences activity --- src/main/AndroidManifest.xml | 4 ++ .../astrid/activity/EditPreferences.java | 67 ++---------------- .../org/tasks/injection/ActivityModule.java | 4 +- .../preferences/AppearancePreferences.java | 40 +++++++++++ .../tasks/ui/NavigationDrawerFragment.java | 18 ++--- src/main/res/xml/preferences.xml | 67 ------------------ src/main/res/xml/preferences_appearance.xml | 68 +++++++++++++++++++ 7 files changed, 126 insertions(+), 142 deletions(-) create mode 100644 src/main/java/org/tasks/preferences/AppearancePreferences.java create mode 100644 src/main/res/xml/preferences_appearance.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 5ddc95d18..e65366d29 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -171,6 +171,10 @@ android:name="com.todoroo.astrid.activity.EditPreferences" android:theme="@android:style/Theme" /> + + diff --git a/src/main/java/com/todoroo/astrid/activity/EditPreferences.java b/src/main/java/com/todoroo/astrid/activity/EditPreferences.java index 8c337218d..571f88dc1 100644 --- a/src/main/java/com/todoroo/astrid/activity/EditPreferences.java +++ b/src/main/java/com/todoroo/astrid/activity/EditPreferences.java @@ -8,8 +8,6 @@ package com.todoroo.astrid.activity; import android.content.Intent; import android.os.Bundle; import android.preference.Preference; -import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceScreen; import com.todoroo.astrid.api.AstridApiConstants; @@ -22,6 +20,8 @@ import com.todoroo.astrid.service.StartupService; import com.todoroo.astrid.utility.TodorooPreferenceActivity; import org.tasks.R; +import org.tasks.injection.InjectingPreferenceActivity; +import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.MiscellaneousPreferences; import java.util.ArrayList; @@ -35,59 +35,21 @@ import javax.inject.Inject; * @author Tim Su * */ -public class EditPreferences extends TodorooPreferenceActivity { - - public static final int RESULT_CODE_PERFORMANCE_PREF_CHANGED = 3; +public class EditPreferences extends InjectingPreferenceActivity { // --- instance variables @Inject StartupService startupService; - private class SetResultOnPreferenceChangeListener implements OnPreferenceChangeListener { - private final int resultCode; - public SetResultOnPreferenceChangeListener(int resultCode) { - this.resultCode = resultCode; - } - - @Override - public boolean onPreferenceChange(Preference p, Object newValue) { - setResult(resultCode); - updatePreferences(p, newValue); - return true; - } - } - - @Override - public int getPreferenceResource() { - return R.xml.preferences; - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); startupService.onStartupApplication(this); - PreferenceScreen screen = getPreferenceScreen(); - - addPreferences(screen); - - // first-order preferences + addPreferencesFromResource(R.xml.preferences); - findPreference(getString(R.string.p_beastMode)).setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference p) { - startActivity(new Intent(EditPreferences.this, BeastModePreferences.class) {{ - setAction(AstridApiConstants.ACTION_SETTINGS); - }}); - return true; - } - }); - - addPreferenceListeners(); - } - - private void addPreferences(PreferenceScreen screen) { List preferences = new ArrayList() {{ + add(getPreference(AppearancePreferences.class, R.string.EPr_appearance_header)); add(getPreference(ReminderPreferences.class, R.string.notifications)); add(getPreference(DefaultsPreferences.class, R.string.task_defaults)); add(getPreference(GtasksPreferences.class, R.string.gtasks_GPr_header)); @@ -96,6 +58,7 @@ public class EditPreferences extends TodorooPreferenceActivity { add(getPreference(MiscellaneousPreferences.class, R.string.miscellaneous)); }}; + PreferenceScreen screen= getPreferenceScreen(); for (Preference preference : preferences) { screen.addPreference(preference); } @@ -109,22 +72,4 @@ public class EditPreferences extends TodorooPreferenceActivity { }}); }}; } - - @Override - public void updatePreferences(final Preference preference, Object value) { - } - - private void addPreferenceListeners() { - findPreference(getString(R.string.p_use_dark_theme)).setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED)); - - findPreference(getString(R.string.p_fontSize)).setOnPreferenceChangeListener(new SetResultOnPreferenceChangeListener(RESULT_CODE_PERFORMANCE_PREF_CHANGED)); - - findPreference(getString(R.string.p_fullTaskTitle)).setOnPreferenceChangeListener(new OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - updatePreferences(preference, newValue); - return true; - } - }); - } } diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index dc1590e71..54bc70e5a 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -26,6 +26,7 @@ import com.todoroo.astrid.tags.DeleteTagActivity; import com.todoroo.astrid.tags.RenameTagActivity; import com.todoroo.astrid.widget.WidgetConfigActivity; +import org.tasks.preferences.AppearancePreferences; import org.tasks.preferences.MiscellaneousPreferences; import org.tasks.reminders.SnoozeActivity; import org.tasks.voice.VoiceCommandActivity; @@ -62,7 +63,8 @@ import dagger.Provides; ReminderPreferences.class, AACRecordingActivity.class, SnoozeActivity.class, - MiscellaneousPreferences.class + MiscellaneousPreferences.class, + AppearancePreferences.class }) public class ActivityModule { diff --git a/src/main/java/org/tasks/preferences/AppearancePreferences.java b/src/main/java/org/tasks/preferences/AppearancePreferences.java new file mode 100644 index 000000000..975b6855d --- /dev/null +++ b/src/main/java/org/tasks/preferences/AppearancePreferences.java @@ -0,0 +1,40 @@ +package org.tasks.preferences; + +import android.content.Intent; +import android.os.Bundle; +import android.preference.Preference; + +import com.todoroo.astrid.activity.BeastModePreferences; +import com.todoroo.astrid.api.AstridApiConstants; +import com.todoroo.astrid.utility.TodorooPreferenceActivity; + +import org.tasks.R; + +public class AppearancePreferences extends TodorooPreferenceActivity { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // first-order preferences + + findPreference(getString(R.string.p_beastMode)).setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference p) { + startActivity(new Intent(AppearancePreferences.this, BeastModePreferences.class) {{ + setAction(AstridApiConstants.ACTION_SETTINGS); + }}); + return true; + } + }); + } + + @Override + public int getPreferenceResource() { + return R.xml.preferences_appearance; + } + + @Override + public void updatePreferences(Preference preference, Object value) { + } +} diff --git a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java index d80a29f84..c87abea04 100644 --- a/src/main/java/org/tasks/ui/NavigationDrawerFragment.java +++ b/src/main/java/org/tasks/ui/NavigationDrawerFragment.java @@ -1,18 +1,18 @@ package org.tasks.ui; +import android.app.Activity; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Configuration; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; -import android.app.Activity; +import android.os.Bundle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; -import android.content.res.Configuration; -import android.os.Bundle; import android.support.v7.app.ActionBarDrawerToggle; import android.view.ContextMenu; import android.view.KeyEvent; @@ -36,9 +36,6 @@ import com.todoroo.astrid.adapter.FilterAdapter; import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.FilterListItem; -import com.todoroo.astrid.gtasks.GtasksPreferences; -import com.todoroo.astrid.helper.SyncActionHelper; -import com.todoroo.astrid.widget.TasksWidget; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -117,13 +114,8 @@ public class NavigationDrawerFragment extends InjectingFragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == ACTIVITY_SETTINGS) { - if (resultCode == EditPreferences.RESULT_CODE_PERFORMANCE_PREF_CHANGED) { - getActivity().finish(); - getActivity().startActivity(getActivity().getIntent()); - TasksWidget.updateWidgets(getActivity()); - } else if (resultCode == GtasksPreferences.RESULT_CODE_SYNCHRONIZE) { - preferences.setLong(SyncActionHelper.PREF_LAST_AUTO_SYNC, 0); // Forces autosync to occur after login - } + getActivity().finish(); + getActivity().startActivity(getActivity().getIntent()); } else { super.onActivityResult(requestCode, resultCode, data); } diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 9f469de06..3d4d2519a 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -8,71 +8,4 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:title="@string/EPr_title"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/res/xml/preferences_appearance.xml b/src/main/res/xml/preferences_appearance.xml new file mode 100644 index 000000000..9748e3d8f --- /dev/null +++ b/src/main/res/xml/preferences_appearance.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +