Use ActivityPreferences to apply themes

pull/189/head
Alex Baker 12 years ago
parent 910e6a4ccf
commit 81e4d99326

@ -29,7 +29,6 @@ import com.todoroo.astrid.data.RemoteModel;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagService;
@ -73,8 +72,8 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setupForDialogOrFullscreen();
super.onCreate(savedInstanceState);
setupForDialogOrFullscreen();
setContentView(R.layout.tag_settings_activity);
if (isDialog) {
@ -109,12 +108,12 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
private void setupForDialogOrFullscreen() {
isDialog = preferences.useTabletLayout();
if (isDialog) {
setTheme(ThemeService.getDialogTheme());
preferences.applyDialogTheme();
if (AndroidUtilities.getSdkVersion() < 14) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
} else {
ThemeService.applyTheme(this);
preferences.applyTheme();
}
}

@ -15,12 +15,12 @@ import android.widget.ListView;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListActivity;
import org.tasks.injection.Injector;
import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
@ -28,13 +28,14 @@ public class FilterShortcutActivity extends InjectingListActivity {
@Inject FilterCounter filterCounter;
@Inject Injector injector;
@Inject ActivityPreferences preferences;
private FilterAdapter adapter = null;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ThemeService.applyTheme(this);
preferences.applyTheme();
// Set the result to CANCELED unless a filter is selected.
setResult(RESULT_CANCELED);

@ -11,18 +11,23 @@ import android.support.v7.app.ActionBar;
import android.view.KeyEvent;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
public class TaskEditActivity extends AstridActivity {
@Inject ActivityPreferences preferences;
/**
* @see android.app.Activity#onCreate(Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ThemeService.applyTheme(this);
preferences.applyTheme();
ActionBar actionBar = getSupportActionBar();
setContentView(R.layout.task_edit_wrapper_activity);

@ -87,7 +87,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ThemeService.applyTheme(this);
preferences.applyTheme();
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

@ -29,11 +29,11 @@ import com.todoroo.astrid.reminders.SnoozeCallback;
import com.todoroo.astrid.reminders.SnoozeDialog;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.injection.InjectingActivity;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.ResourceResolver;
import java.io.InputStream;
@ -54,6 +54,7 @@ public class MissedCallActivity extends InjectingActivity {
@Inject StartupService startupService;
@Inject TaskService taskService;
@Inject Preferences preferences;
@Inject ResourceResolver resourceResolver;
private final OnClickListener dismissListener = new OnClickListener() {
@Override
@ -119,7 +120,7 @@ public class MissedCallActivity extends InjectingActivity {
String timeString = intent.getStringExtra(EXTRA_TIME);
long contactId = intent.getExtras().getLong(EXTRA_CONTACT_ID);
int color = ThemeService.getThemeColor();
int color = resourceResolver.getResource(R.attr.asThemeTextColor);
returnCallButton = (TextView) findViewById(R.id.call_now);
callLaterButton = (TextView) findViewById(R.id.call_later);

@ -46,7 +46,6 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskDao.TaskCriteria;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity;
@ -151,8 +150,8 @@ public class CustomFilterActivity extends InjectingActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setupForDialogOrFullscreen();
super.onCreate(savedInstanceState);
setupForDialogOrFullscreen();
ContextManager.setContext(this);
ActionBar ab = getSupportActionBar();
@ -180,9 +179,9 @@ public class CustomFilterActivity extends InjectingActionBarActivity {
private void setupForDialogOrFullscreen() {
if (preferences.useTabletLayout()) {
setTheme(ThemeService.getDialogTheme());
preferences.applyDialogTheme();
} else {
ThemeService.applyTheme(this);
preferences.applyTheme();
}
}

@ -20,6 +20,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.tasks.R;
import org.tasks.injection.InjectingActivity;
import org.tasks.preferences.ResourceResolver;
import java.util.ArrayList;
@ -30,6 +31,7 @@ public class CalendarAlarmListCreator extends InjectingActivity {
public static final String TOKEN_LIST_NAME = "listName"; //$NON-NLS-1$
@Inject TagDataService tagDataService;
@Inject ResourceResolver resourceResolver;
private ArrayList<String> names;
private ArrayList<String> emails;
@ -81,7 +83,7 @@ public class CalendarAlarmListCreator extends InjectingActivity {
TextView dialogView = (TextView) findViewById(R.id.reminder_message);
StringBuilder builder = new StringBuilder(getString(R.string.CRA_created_list_dialog, tagName));
String attendeesString = buildAttendeesString();
int color = ThemeService.getThemeColor();
int color = resourceResolver.getResource(R.attr.asThemeTextColor);
String title;
if (!TextUtils.isEmpty(attendeesString)) {

@ -21,12 +21,12 @@ import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagFilterExposer;
import org.tasks.R;
import org.tasks.injection.InjectingActivity;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.ResourceResolver;
import javax.inject.Inject;
@ -51,6 +51,7 @@ public class CalendarReminderActivity extends InjectingActivity {
@Inject StartupService startupService;
@Inject TagDataService tagDataService;
@Inject Preferences preferences;
@Inject ResourceResolver resourceResolver;
private String eventName;
private long startTime;
@ -146,7 +147,7 @@ public class CalendarReminderActivity extends InjectingActivity {
dialogView.setText(speechText);
createListButton.setBackgroundColor(getResources().getColor(ThemeService.getThemeColor()));
createListButton.setBackgroundColor(resourceResolver.getResource(R.attr.asThemeTextColor));
if (fromPostpone) {
postponeButton.setVisibility(View.GONE);

@ -5,9 +5,6 @@
*/
package com.todoroo.astrid.service;
import android.app.Activity;
import android.graphics.PixelFormat;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.Preferences;
@ -15,30 +12,10 @@ import org.tasks.R;
public class ThemeService {
public static void applyTheme(Activity activity) {
int currentTheme = getTheme();
activity.setTheme(currentTheme);
activity.getWindow().setFormat(PixelFormat.RGBA_8888);
}
private static int getTheme() {
return Preferences.getBoolean(R.string.p_use_dark_theme, false) ? R.style.Tasks : R.style.Tasks_Light;
}
public static int getThemeColor() {
int theme = getTheme();
switch(theme) {
case R.style.Tasks:
return R.color.blue_theme_color;
case R.style.Tasks_Light:
default:
return R.color.dark_blue_theme_color;
}
}
@Deprecated
public static int getEditDialogTheme() {
boolean ics = AndroidUtilities.getSdkVersion() >= 14;
int themeSetting = getTheme();
int themeSetting = Preferences.getBoolean(R.string.p_use_dark_theme, false) ? R.style.Tasks : R.style.Tasks_Light;
int theme;
if (themeSetting == R.style.Tasks) {
if (ics) {
@ -55,15 +32,4 @@ public class ThemeService {
}
return theme;
}
public static int getDialogTheme() {
int themeSetting = getTheme();
int theme;
if (themeSetting == R.style.Tasks) {
theme = R.style.Tasks_Dialog;
} else {
theme = R.style.Tasks_Dialog_Light;
}
return theme;
}
}

@ -20,13 +20,12 @@ import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterListItem;
import com.todoroo.astrid.api.FilterWithCustomIntent;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.filters.FilterCounter;
import org.tasks.injection.InjectingListActivity;
import org.tasks.injection.Injector;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.widget.WidgetHelper;
import javax.inject.Inject;
@ -47,7 +46,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
@Inject WidgetHelper widgetHelper;
@Inject FilterCounter filterCounter;
@Inject Injector injector;
@Inject Preferences preferences;
@Inject ActivityPreferences preferences;
private void updateWidget() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
@ -64,7 +63,7 @@ public class WidgetConfigActivity extends InjectingListActivity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ThemeService.applyTheme(this);
preferences.applyTheme();
// Set the result to CANCELED. This will cause the widget host to cancel
// out of the widget placement if they press the back button.

@ -92,13 +92,6 @@ public class ActivityModule {
return activity.getApplicationContext();
}
@Singleton
@Provides
@ForActivity
public Context getActivityContext() {
return activity;
}
@Singleton
@Provides
public Activity getActivity() {

@ -1,10 +1,12 @@
package org.tasks.preferences;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.PixelFormat;
import android.util.DisplayMetrics;
import org.tasks.injection.ForActivity;
import org.tasks.R;
import javax.inject.Inject;
import javax.inject.Singleton;
@ -15,15 +17,31 @@ public class ActivityPreferences extends Preferences {
public static final int MIN_TABLET_WIDTH = 550;
public static final int MIN_TABLET_HEIGHT = 800;
private final Activity activity;
@Inject
public ActivityPreferences(@ForActivity Context context) {
super(context);
public ActivityPreferences(Activity activity) {
super(activity);
this.activity = activity;
}
public boolean useTabletLayout() {
return isTabletSized(context);
}
public void applyTheme() {
applyTheme(isDarkTheme() ? R.style.Tasks : R.style.Tasks_Light);
}
public void applyDialogTheme() {
applyTheme(isDarkTheme() ? R.style.Tasks_Dialog : R.style.Tasks_Dialog_Light);
}
private void applyTheme(int theme) {
activity.setTheme(theme);
activity.getWindow().setFormat(PixelFormat.RGBA_8888);
}
/**
* Returns true if the screen is large or xtra large
*/

@ -212,6 +212,10 @@ public class Preferences {
}
}
public boolean isDarkTheme() {
return getBoolean(R.string.p_use_dark_theme, false);
}
public boolean isDarkWidgetTheme() {
return getBoolean(R.string.p_use_dark_theme_widget, false);
}

Loading…
Cancel
Save