Add appearance preferences activity

pull/253/head
Alex Baker 9 years ago
parent 0cb0b056de
commit bd4ae8adbb

@ -171,6 +171,10 @@
android:name="com.todoroo.astrid.activity.EditPreferences"
android:theme="@android:style/Theme" />
<activity
android:name=".preferences.AppearancePreferences"
android:theme="@android:style/Theme"/>
<activity
android:name=".preferences.MiscellaneousPreferences"
android:theme="@android:style/Theme" />

@ -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 <tim@todoroo.com>
*
*/
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<Preference> preferences = new ArrayList<Preference>() {{
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;
}
});
}
}

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

@ -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) {
}
}

@ -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);
}

@ -8,71 +8,4 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/EPr_title">
<PreferenceScreen
android:title="@string/EPr_appearance_header">
<CheckBoxPreference
android:title="@string/EPr_use_dark_theme"
android:key="@string/p_use_dark_theme"
android:defaultValue="false" />
<PreferenceCategory android:title="@string/task_list_options">
<com.todoroo.astrid.ui.MultilineListPreference
android:key="@string/p_fontSize"
android:entries="@array/EPr_font_size"
android:entryValues="@array/EPr_font_size"
android:title="@string/EPr_fontSize_title"
android:summary="@string/EPr_fontSize_desc" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_fullTaskTitle"
android:summaryOff="@string/EPr_fullTask_desc_disabled"
android:summaryOn="@string/EPr_fullTask_desc_enabled"
android:title="@string/EPr_fullTask_title"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/EPr_edit_screen_options">
<PreferenceScreen android:title="@string/EPr_beastMode_title"
android:key="@string/p_beastMode"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_task_edit_comments"
android:title="@string/EPr_show_task_edit_comments"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_time_increment"
android:title="@string/EPr_time_increment"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_timer_shortcut"
android:title="@string/EPr_show_timer_shortcut"
android:defaultValue="false"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/EPr_filters_to_show_title">
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_my_tasks_filter"
android:title="@string/BFE_Active"
android:defaultValue="true"
android:enabled="false" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_today_filter"
android:title="@string/today"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_recently_modified_filter"
android:title="@string/BFE_Recent"
android:defaultValue="true"/>
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:key="@string/p_show_not_in_list_filter"
android:title="@string/tag_FEx_untagged"
android:defaultValue="true"/>
</PreferenceCategory>
</PreferenceScreen>
</PreferenceScreen>

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/EPr_appearance_header">
<CheckBoxPreference
android:defaultValue="false"
android:key="@string/p_use_dark_theme"
android:title="@string/EPr_use_dark_theme" />
<PreferenceCategory android:title="@string/task_list_options">
<com.todoroo.astrid.ui.MultilineListPreference
android:entries="@array/EPr_font_size"
android:entryValues="@array/EPr_font_size"
android:key="@string/p_fontSize"
android:summary="@string/EPr_fontSize_desc"
android:title="@string/EPr_fontSize_title" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="false"
android:key="@string/p_fullTaskTitle"
android:summaryOff="@string/EPr_fullTask_desc_disabled"
android:summaryOn="@string/EPr_fullTask_desc_enabled"
android:title="@string/EPr_fullTask_title" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/EPr_edit_screen_options">
<PreferenceScreen
android:key="@string/p_beastMode"
android:title="@string/EPr_beastMode_title" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_show_task_edit_comments"
android:title="@string/EPr_show_task_edit_comments" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_time_increment"
android:title="@string/EPr_time_increment" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="false"
android:key="@string/p_show_timer_shortcut"
android:title="@string/EPr_show_timer_shortcut" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/EPr_filters_to_show_title">
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:enabled="false"
android:key="@string/p_show_my_tasks_filter"
android:title="@string/BFE_Active" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_show_today_filter"
android:title="@string/today" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_show_recently_modified_filter"
android:title="@string/BFE_Recent" />
<com.todoroo.astrid.ui.MultilineCheckboxPreference
android:defaultValue="true"
android:key="@string/p_show_not_in_list_filter"
android:title="@string/tag_FEx_untagged" />
</PreferenceCategory>
</PreferenceScreen>
Loading…
Cancel
Save