Add ActivityPreferences, remove AstridPreferences

pull/189/head
Alex Baker 12 years ago
parent 7b3be55752
commit f645f21631

@ -10,12 +10,10 @@ import android.content.BroadcastReceiver;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.text.InputType;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
@ -489,36 +487,6 @@ public class AndroidUtilities {
}
}
/**
* Returns true if the screen is large or xtra large
*/
public static boolean isTabletSized(Context context) {
if (context.getPackageManager().hasSystemFeature("com.google.android.tv")) //$NON-NLS-1$
{
return true;
}
int size = context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK;
if (size == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
return true;
} else if (size == Configuration.SCREENLAYOUT_SIZE_LARGE) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float width = metrics.widthPixels / metrics.density;
float height = metrics.heightPixels / metrics.density;
float effectiveWidth = Math.min(width, height);
float effectiveHeight = Math.max(width, height);
return (effectiveWidth >= MIN_TABLET_WIDTH && effectiveHeight >= MIN_TABLET_HEIGHT);
} else {
return false;
}
}
public static final int MIN_TABLET_WIDTH = 550;
public static final int MIN_TABLET_HEIGHT = 800;
/**
* Wraps a call to Activity.unregisterReceiver in a try/catch block to prevent
* exceptions being thrown if receiver was never registered with that activity

@ -34,12 +34,6 @@ public class SortHelper {
public static final int SORT_MODIFIED = 4;
public static final int SORT_WIDGET = 5;
/** preference key for sort flags. stored in public prefs */
public static final String PREF_SORT_FLAGS = "sort_flags"; //$NON-NLS-1$
/** preference key for sort sort. stored in public prefs */
public static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$
/**
* Takes a SQL query, and if there isn't already an order, creates an order.
*/

@ -12,11 +12,7 @@ import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.test.DatabaseTestCase;
import com.todoroo.astrid.utility.TitleParser;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.tasks.Freeze;
import org.tasks.R;
import org.tasks.Snippet;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
@ -40,28 +36,6 @@ public class TitleParserTest extends DatabaseTestCase {
preferences.setStringFromInteger(R.string.p_default_urgency_key, 0);
}
public void testTrimParenthesisWithDate() {
Freeze.freezeAt(new DateTime(2014, 6, 5, 14, 10, 14)).thawAfter(new Snippet() {{
Task task = new Task() {{
setTitle("Call mom (tomorrow)");
}};
TitleParser.parse(tagService, task, new ArrayList<String>());
assertEquals("Call mom", task.getTitle());
assertEquals(new DateTime(2014, 6, 6, 12, 0, 0, DateTimeZone.UTC).getMillis(), (long) task.getDueDate());
}});
}
public void disabled_testTrimParenthesisWithDateAndTime() {
Freeze.freezeAt(new DateTime(2014, 6, 5, 14, 10, 14)).thawAfter(new Snippet() {{
Task task = new Task() {{
setTitle("Call mom (tomorrow 9am)");
}};
TitleParser.parse(tagService, task, new ArrayList<String>());
assertEquals("Call mom", task.getTitle());
assertEquals(new DateTime(2014, 6, 6, 14, 0, 0, DateTimeZone.UTC).getMillis(), (long) task.getDueDate());
}});
}
/** test that completing a task w/ no regular expressions creates a simple task with no date, no repeat, no lists*/
public void testNoRegexes() throws Exception{
Task task = new Task();

@ -32,13 +32,12 @@ import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.json.JSONArray;
import org.json.JSONObject;
import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
@ -62,7 +61,7 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
@Inject TagService tagService;
@Inject TagDataService tagDataService;
@Inject TagMetadataDao tagMetadataDao;
@Inject Preferences preferences;
@Inject ActivityPreferences preferences;
private EditText tagName;
private Bitmap setBitmap;
@ -82,9 +81,9 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
params.height = LayoutParams.WRAP_CONTENT;
DisplayMetrics metrics = getResources().getDisplayMetrics();
if ((metrics.widthPixels / metrics.density) >= AndroidUtilities.MIN_TABLET_HEIGHT) {
if ((metrics.widthPixels / metrics.density) >= ActivityPreferences.MIN_TABLET_HEIGHT) {
params.width = (3 * metrics.widthPixels) / 5;
} else if ((metrics.widthPixels / metrics.density) >= AndroidUtilities.MIN_TABLET_WIDTH) {
} else if ((metrics.widthPixels / metrics.density) >= ActivityPreferences.MIN_TABLET_WIDTH) {
params.width = (4 * metrics.widthPixels) / 5;
}
getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
@ -106,7 +105,7 @@ public class TagSettingsActivity extends InjectingActionBarActivity {
}
private void setupForDialogOrFullscreen() {
isDialog = AstridPreferences.useTabletLayout(this);
isDialog = preferences.useTabletLayout();
if (isDialog) {
setTheme(ThemeService.getDialogTheme());
if (AndroidUtilities.getSdkVersion() < 14) {

@ -39,6 +39,7 @@ import com.todoroo.astrid.voice.VoiceRecognizer;
import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
@ -85,6 +86,7 @@ public class AstridActivity extends InjectingActionBarActivity
@Inject TaskService taskService;
@Inject StartupService startupService;
@Inject GCalHelper gcalHelper;
@Inject Preferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -169,7 +171,7 @@ public class AstridActivity extends InjectingActionBarActivity
public void setupTasklistFragmentWithFilter(Filter filter, Bundle extras) {
Class<?> customTaskList = null;
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) {
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(preferences, filter)) {
customTaskList = SubtasksHelper.subtasksClassForFilter(filter);
}

@ -78,7 +78,6 @@ import com.todoroo.astrid.ui.HideUntilControlSet;
import com.todoroo.astrid.ui.ImportanceControlSet;
import com.todoroo.astrid.ui.PopupControlSet;
import com.todoroo.astrid.ui.ReminderControlSet;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.voice.VoiceInputAssistant;
import com.todoroo.astrid.voice.VoiceRecognizer;
@ -88,7 +87,7 @@ import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.InjectingFragment;
import org.tasks.notifications.NotificationManager;
import org.tasks.preferences.Preferences;
import org.tasks.preferences.ActivityPreferences;
import java.io.File;
import java.io.FileOutputStream;
@ -182,7 +181,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
@Inject NotificationManager notificationManager;
@Inject AlarmService alarmService;
@Inject GCalHelper gcalHelper;
@Inject Preferences preferences;
@Inject ActivityPreferences preferences;
// --- UI components
@ -966,7 +965,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener {
boolean useSaveAndCancel = preferences.getBoolean(R.string.p_save_and_cancel, false);
if (useSaveAndCancel || AstridPreferences.useTabletLayout(getActivity())) {
if (useSaveAndCancel || preferences.useTabletLayout()) {
if (useSaveAndCancel) {
item = menu.add(Menu.NONE, MENU_DISCARD_ID, 0, R.string.TEA_menu_discard);
item.setIcon(ThemeService.getDrawable(R.drawable.ic_action_cancel));

@ -27,6 +27,7 @@ import android.widget.FrameLayout;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivityTablet;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.Filter;
@ -43,22 +44,22 @@ import com.todoroo.astrid.tags.DeleteTagActivity;
import com.todoroo.astrid.tags.RenameTagActivity;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.tags.TagService;
import com.todoroo.astrid.tags.TagsPlugin;
import com.todoroo.astrid.ui.DateChangedAlerts;
import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.utility.Flags;
import net.simonvt.menudrawer.MenuDrawer;
import org.tasks.R;
import org.tasks.preferences.ActivityPreferences;
import javax.inject.Inject;
public class TaskListActivity extends AstridActivity implements OnPageChangeListener {
@Inject TagDataDao tagDataDao;
@Inject ActivityPreferences preferences;
MenuDrawer menuDrawer;
@ -163,7 +164,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
}
protected int getContentView() {
if (AstridPreferences.useTabletLayout(this)) {
if (preferences.useTabletLayout()) {
return R.layout.task_list_wrapper_activity_3pane;
} else {
return R.layout.task_list_wrapper_activity_no_swipe;
@ -278,7 +279,7 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
private void newListFromLaunch() {
Intent thisIntent = getIntent();
Intent newTagIntent = TagsPlugin.newTagDialog(this);
Intent newTagIntent = newTagDialog();
newTagIntent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_MEMBERS, thisIntent.getStringExtra(TOKEN_CREATE_NEW_LIST_MEMBERS));
newTagIntent.putExtra(TagSettingsActivity.TOKEN_AUTOPOPULATE_NAME, thisIntent.getStringExtra(TOKEN_CREATE_NEW_LIST_NAME));
thisIntent.removeExtra(TOKEN_CREATE_NEW_LIST_MEMBERS);
@ -286,6 +287,14 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
startActivityForResult(newTagIntent, FilterListFragment.REQUEST_NEW_LIST);
}
/**
* Create new tag data
*/
private Intent newTagDialog() {
Class<?> settingsComponent = preferences.useTabletLayout() ? TagSettingsActivityTablet.class : TagSettingsActivity.class;
return new Intent(this, settingsComponent);
}
@Override
public void onTaskListItemClicked(long taskId) {
if (fragmentLayout != LAYOUT_SINGLE) {
@ -504,8 +513,8 @@ public class TaskListActivity extends AstridActivity implements OnPageChangeList
startActivityForResult(intent, TaskListFragment.ACTIVITY_REQUEST_NEW_FILTER);
return true;
case R.id.menu_new_list:
startActivityForResult(TagsPlugin.newTagDialog(this), FilterListFragment.REQUEST_NEW_LIST);
if (!AstridPreferences.useTabletLayout(this)) {
startActivityForResult(newTagDialog(), FilterListFragment.REQUEST_NEW_LIST);
if (!preferences.useTabletLayout()) {
AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_left_in, R.anim.slide_left_out);
}
return true;

@ -12,8 +12,6 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
@ -70,7 +68,6 @@ import com.todoroo.astrid.service.SyncV2Service;
import com.todoroo.astrid.service.TaskDeleter;
import com.todoroo.astrid.service.TaskDuplicator;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.UpgradeService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.subtasks.SubtasksUpdater;
@ -78,16 +75,16 @@ import com.todoroo.astrid.sync.SyncProviderPreferences;
import com.todoroo.astrid.tags.TaskToTagMetadata;
import com.todoroo.astrid.timers.TimerPlugin;
import com.todoroo.astrid.ui.QuickAddBar;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Flags;
import com.todoroo.astrid.widget.TasksWidget;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.injection.ForActivity;
import org.tasks.injection.InjectingListFragment;
import org.tasks.notifications.NotificationManager;
import org.tasks.injection.Injector;
import org.tasks.notifications.NotificationManager;
import org.tasks.preferences.Preferences;
import java.util.List;
@ -97,8 +94,6 @@ import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject;
import static org.tasks.injection.ActivityModule.ForActivity;
/**
* Primary activity for the Bente application. Shows a list of upcoming tasks
* and a user's coaches.
@ -142,7 +137,6 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
// --- instance variables
@Inject TaskService taskService;
@Inject UpgradeService upgradeService;
@Inject TaskListMetadataDao taskListMetadataDao;
@Inject SyncV2Service syncService;
@Inject TaskDeleter taskDeleter;
@ -464,9 +458,8 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
}
});
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(getActivity());
sortFlags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0);
sortSort = publicPrefs.getInt(SortHelper.PREF_SORT_SORT, 0);
sortFlags = preferences.getSortFlags();
sortSort = preferences.getSortMode();
sortFlags = SortHelper.setManualSort(sortFlags, isDraggable());
}
@ -1074,16 +1067,9 @@ public class TaskListFragment extends InjectingListFragment implements OnSortSel
sortSort = sort;
if (always) {
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(context);
if (publicPrefs != null) {
Editor editor = publicPrefs.edit();
if (editor != null) {
editor.putInt(SortHelper.PREF_SORT_FLAGS, flags);
editor.putInt(SortHelper.PREF_SORT_SORT, sort);
editor.commit();
TasksWidget.updateWidgets(context);
}
}
preferences.setSortFlags(flags);
preferences.setSortMode(sort);
TasksWidget.updateWidgets(context);
}
try {

@ -28,7 +28,6 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R;
import org.tasks.preferences.Preferences;

@ -47,10 +47,10 @@ 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 com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R;
import org.tasks.injection.InjectingActionBarActivity;
import org.tasks.preferences.ActivityPreferences;
import java.util.ArrayList;
import java.util.Collections;
@ -147,6 +147,7 @@ public class CustomFilterActivity extends InjectingActionBarActivity {
@Inject Database database;
@Inject StoreObjectDao storeObjectDao;
@Inject ActivityPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -178,7 +179,7 @@ public class CustomFilterActivity extends InjectingActionBarActivity {
}
private void setupForDialogOrFullscreen() {
if (AstridPreferences.useTabletLayout(this)) {
if (preferences.useTabletLayout()) {
setTheme(ThemeService.getDialogTheme());
} else {
ThemeService.applyTheme(this);
@ -354,7 +355,7 @@ public class CustomFilterActivity extends InjectingActionBarActivity {
@Override
public void finish() {
super.finish();
if (!AstridPreferences.useTabletLayout(this)) {
if (!preferences.useTabletLayout()) {
AndroidUtilities.callOverridePendingTransition(this, R.anim.slide_right_in, R.anim.slide_right_out);
}
}

@ -22,9 +22,6 @@ import com.todoroo.astrid.dao.StoreObjectDao;
import com.todoroo.astrid.dao.TaskAttachmentDao;
import com.todoroo.astrid.data.StoreObject;
import com.todoroo.astrid.data.Task;
import org.tasks.sync.IndeterminateProgressBarSyncResultCallback;
import com.todoroo.astrid.service.MetadataService;
import com.todoroo.astrid.service.SyncV2Service;
import com.todoroo.astrid.service.TaskService;
@ -33,11 +30,11 @@ import com.todoroo.astrid.subtasks.OrderedMetadataListFragmentHelper;
import com.todoroo.astrid.subtasks.SubtasksListFragment;
import org.tasks.R;
import org.tasks.injection.ForActivity;
import org.tasks.sync.IndeterminateProgressBarSyncResultCallback;
import javax.inject.Inject;
import static org.tasks.injection.ActivityModule.ForActivity;
public class GtasksListFragment extends SubtasksListFragment {
public static final String TOKEN_STORE_ID = "storeId"; //$NON-NLS-1$

@ -10,10 +10,8 @@ import android.graphics.PixelFormat;
import android.util.Log;
import android.view.WindowManager;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R;
@ -23,7 +21,6 @@ public class ThemeService {
public static final String THEME_BLACK = "black";
public static final int FLAG_FORCE_DARK = 1;
public static final int FLAG_FORCE_LIGHT = 2;
public static final int FLAG_INVERT = 3;
// Widget config activities set this flag since they theme differently than the normal
@ -111,9 +108,6 @@ public class ThemeService {
if (forceFilterInvert) {
return ThemeService.FLAG_INVERT;
}
if (AstridPreferences.useTabletLayout(ContextManager.getContext())) {
return ThemeService.FLAG_FORCE_LIGHT;
}
return 0;
}
@ -124,9 +118,6 @@ public class ThemeService {
case FLAG_FORCE_DARK:
darkTheme = true;
break;
case FLAG_FORCE_LIGHT:
darkTheme = false;
break;
case FLAG_INVERT:
darkTheme = !darkTheme;
break;
@ -134,11 +125,6 @@ public class ThemeService {
break;
}
if (lightDrawable == R.drawable.icn_menu_refresh &&
AstridPreferences.useTabletLayout(ContextManager.getContext())) {
return R.drawable.icn_menu_refresh_tablet;
}
if(!darkTheme) {
return lightDrawable;
}

@ -1,12 +1,10 @@
package com.todoroo.astrid.subtasks;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;
import com.todoroo.andlib.data.Property;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.Query;
import com.todoroo.astrid.actfm.TagViewFragment;
@ -23,17 +21,17 @@ import com.todoroo.astrid.data.TaskListMetadata;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.AstridOrderedListUpdater.Node;
import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
import java.util.HashMap;
public class SubtasksHelper {
public static boolean shouldUseSubtasksFragmentForFilter(Filter filter) {
public static boolean shouldUseSubtasksFragmentForFilter(Preferences preferences, Filter filter) {
if(filter == null || CoreFilterExposer.isInbox(filter) || CoreFilterExposer.isTodayFilter(filter) || SubtasksHelper.isTagFilter(filter)) {
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(ContextManager.getContext());
int sortFlags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0);
int sortFlags = preferences.getSortFlags();
if(SortHelper.isManualSort(sortFlags)) {
return true;
}
@ -60,8 +58,8 @@ public class SubtasksHelper {
return false;
}
public static String applySubtasksToWidgetFilter(TaskService taskService, TagDataService tagDataService, TaskListMetadataDao tlmd, Filter filter, String query, String tagName, int limit) {
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(filter)) {
public static String applySubtasksToWidgetFilter(Preferences preferences, TaskService taskService, TagDataService tagDataService, TaskListMetadataDao tlmd, Filter filter, String query, String tagName, int limit) {
if (SubtasksHelper.shouldUseSubtasksFragmentForFilter(preferences, filter)) {
// care for manual ordering
TagData tagData = tagDataService.getTagByName(tagName, TagData.UUID, TagData.TAG_ORDERING);
TaskListMetadata tlm = null;

@ -18,7 +18,6 @@ import android.text.TextUtils;
import com.todoroo.andlib.service.ContextManager;
import com.todoroo.andlib.sql.Criterion;
import com.todoroo.andlib.sql.QueryTemplate;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.api.AstridFilterExposer;
@ -38,6 +37,7 @@ import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.injection.Injector;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
import java.util.List;
@ -56,6 +56,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr
@Inject TagService tagService;
@Inject @ForApplication Context context;
@Inject Preferences preferences;
/** Create filter from new tag object */
public static FilterWithCustomIntent filterFromTag(Context context, Tag tag, Criterion criterion) {
@ -85,7 +86,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr
newTagIntent(context, DeleteTagActivity.class, tag, tag.uuid)
};
filter.customTaskList = new ComponentName(ContextManager.getContext(), TagViewFragment.class);
filter.customTaskList = new ComponentName(context, TagViewFragment.class);
if(tag.image != null) {
filter.imageUrl = tag.image;
}
@ -139,7 +140,7 @@ public class TagFilterExposer extends InjectingBroadcastReceiver implements Astr
}
private FilterCategory filterFromTags(Tag[] tags, int name) {
boolean shouldAddUntagged = Preferences.getBoolean(R.string.p_show_not_in_list_filter, true);
boolean shouldAddUntagged = preferences.getBoolean(R.string.p_show_not_in_list_filter, true);
ArrayList<Filter> filters = new ArrayList<>(tags.length);

@ -9,11 +9,8 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivityTablet;
import com.todoroo.astrid.api.Addon;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.utility.AstridPreferences;
public class TagsPlugin extends BroadcastReceiver {
@ -28,14 +25,4 @@ public class TagsPlugin extends BroadcastReceiver {
broadcastIntent.putExtra(AstridApiConstants.EXTRAS_ADDON, plugin);
context.sendBroadcast(broadcastIntent, AstridApiConstants.PERMISSION_READ);
}
/**
* Create new tag data
*/
public static Intent newTagDialog(Context context) {
Class<?> settingsComponent = AstridPreferences.useTabletLayout(context) ? TagSettingsActivityTablet.class : TagSettingsActivity.class;
return new Intent(context, settingsComponent);
}
}

@ -253,14 +253,14 @@ public class DateChangedAlerts {
setInt(PREF_NUM_HELPERS_SHOWN, numShows);
}
public static void setBoolean(int keyResource, boolean value) {
private static void setBoolean(int keyResource, boolean value) {
Context context = ContextManager.getContext();
SharedPreferences.Editor editor = Preferences.getPrefs(context).edit();
editor.putBoolean(context.getString(keyResource), value);
editor.commit();
}
public static int getInt(String key, int defValue) {
private static int getInt(String key, int defValue) {
Context context = ContextManager.getContext();
return Preferences.getPrefs(context).getInt(key, defValue);
}

@ -16,13 +16,13 @@ import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.Button;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.helper.TaskEditControlSet;
import com.todoroo.astrid.service.ThemeService;
import org.tasks.R;
import org.tasks.preferences.ActivityPreferences;
public abstract class PopupControlSet extends TaskEditControlSet {
@ -95,11 +95,11 @@ public abstract class PopupControlSet extends TaskEditControlSet {
params.width = LayoutParams.FILL_PARENT;
params.height = LayoutParams.WRAP_CONTENT;
if (AndroidUtilities.isTabletSized(activity)) {
if (ActivityPreferences.isTabletSized(activity)) {
DisplayMetrics metrics = activity.getResources().getDisplayMetrics();
if ((metrics.widthPixels / metrics.density) >= AndroidUtilities.MIN_TABLET_HEIGHT) {
if ((metrics.widthPixels / metrics.density) >= ActivityPreferences.MIN_TABLET_HEIGHT) {
params.width = (3 * metrics.widthPixels) / 5;
} else if ((metrics.widthPixels / metrics.density) >= AndroidUtilities.MIN_TABLET_WIDTH) {
} else if ((metrics.widthPixels / metrics.density) >= ActivityPreferences.MIN_TABLET_WIDTH) {
params.width = (4 * metrics.widthPixels) / 5;
}
}

@ -6,7 +6,6 @@ import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.data.Task;
import org.joda.time.DateTime;
@ -68,18 +67,6 @@ public class AstridDefaultPreferenceSpec {
setIntIfUnset(prefs, editor, r, R.string.p_rmd_quietEnd, r.getInteger(R.integer.default_quiet_hours_end));
setIntIfUnset(prefs, editor, r, R.string.p_rmd_time, r.getInteger(R.integer.default_remind_time));
String dragDropTestInitialized = "android_drag_drop_initialized"; //$NON-NLS-1$
if (!preferences.getBoolean(dragDropTestInitialized, false)) {
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(context);
if (publicPrefs != null) {
Editor edit = publicPrefs.edit();
if (edit != null) {
edit.putInt(SortHelper.PREF_SORT_SORT, SortHelper.SORT_AUTO);
edit.commit();
}
}
preferences.setBoolean(dragDropTestInitialized, true);
}
BeastModePreferences.setDefaultOrder(preferences, context);
editor.commit();

@ -1,35 +0,0 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.utility;
import android.content.Context;
import android.content.SharedPreferences;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.api.AstridApiConstants;
public class AstridPreferences {
/* ======================================================================
* ========================================================= public prefs
* ====================================================================== */
/** Get publicly readable preferences */
public static SharedPreferences getPublicPrefs(Context context) {
context = context.getApplicationContext();
return context.getSharedPreferences(AstridApiConstants.PUBLIC_PREFS,
Context.MODE_WORLD_READABLE);
}
/* ======================================================================
* ========================================================= system prefs
* ====================================================================== */
public static boolean useTabletLayout(Context context) {
return AndroidUtilities.isTabletSized(context);
}
}

@ -20,10 +20,10 @@ import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.utility.AstridPreferences;
import org.tasks.R;
import org.tasks.injection.InjectingAppWidgetProvider;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.widget.WidgetHelper;
import javax.inject.Inject;
@ -51,7 +51,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
taskService.setComplete(task, !task.isCompleted());
break;
case EDIT_TASK:
if(AstridPreferences.useTabletLayout(context)) {
if(ActivityPreferences.isTabletSized(context)) {
intent.setClass(context, TaskListActivity.class);
} else {
intent.setClass(context, TaskEditActivity.class);

@ -5,7 +5,6 @@ import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.IBinder;
import android.util.Log;
@ -25,7 +24,6 @@ import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Constants;
import org.tasks.R;
@ -107,14 +105,13 @@ public class WidgetUpdateService extends InjectingService {
views.setTextViewText(R.id.widget_title, filter.title);
views.removeAllViews(R.id.taskbody);
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(this);
int flags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0);
int sort = publicPrefs.getInt(SortHelper.PREF_SORT_SORT, 0);
int flags = preferences.getSortFlags();
int sort = preferences.getSortMode();
String query = SortHelper.adjustQueryForFlagsAndSort(
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "") + " LIMIT " + numberOfTasks;
String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
query = SubtasksHelper.applySubtasksToWidgetFilter(taskService, tagDataService, taskListMetadataDao, filter, query, tagName, numberOfTasks);
query = SubtasksHelper.applySubtasksToWidgetFilter(preferences, taskService, tagDataService, taskListMetadataDao, filter, query, tagName, numberOfTasks);
database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE);

@ -31,21 +31,11 @@ import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.voice.VoiceCommandActivity;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.inject.Qualifier;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Module(injects = {
TaskListActivity.class,
TaskEditActivity.class,
@ -77,12 +67,12 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
})
public class ActivityModule {
private final Context context;
private Injector injector;
private final Activity activity;
private final Injector injector;
public ActivityModule(Activity activity, Injector injector) {
this.activity = activity;
this.injector = injector;
context = activity.getApplicationContext();
}
@Singleton
@ -95,13 +85,13 @@ public class ActivityModule {
@Provides
@ForApplication
public Context getApplicationContext() {
return context;
return activity.getApplicationContext();
}
@Qualifier
@Target({FIELD, PARAMETER, METHOD})
@Documented
@Retention(RUNTIME)
public @interface ForActivity {
@Singleton
@Provides
@ForActivity
public Context getActivityContext() {
return activity;
}
}

@ -0,0 +1,19 @@
package org.tasks.injection;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import javax.inject.Qualifier;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
@Qualifier
@Target({FIELD, PARAMETER, METHOD})
@Documented
@Retention(RUNTIME)
public @interface ForActivity {
}

@ -23,8 +23,6 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import static org.tasks.injection.ActivityModule.ForActivity;
@Module(injects = {
TaskListFragment.class,
GtasksListFragment.class,

@ -0,0 +1,52 @@
package org.tasks.preferences;
import android.content.Context;
import android.content.res.Configuration;
import android.util.DisplayMetrics;
import org.tasks.injection.ForActivity;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class ActivityPreferences extends Preferences {
public static final int MIN_TABLET_WIDTH = 550;
public static final int MIN_TABLET_HEIGHT = 800;
@Inject
public ActivityPreferences(@ForActivity Context context) {
super(context);
}
public boolean useTabletLayout() {
return isTabletSized(context);
}
/**
* Returns true if the screen is large or xtra large
*/
public static boolean isTabletSized(Context context) {
if (context.getPackageManager().hasSystemFeature("com.google.android.tv")) { //$NON-NLS-1$
return true;
}
int size = context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK;
if (size == Configuration.SCREENLAYOUT_SIZE_XLARGE) {
return true;
} else if (size == Configuration.SCREENLAYOUT_SIZE_LARGE) {
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
float width = metrics.widthPixels / metrics.density;
float height = metrics.heightPixels / metrics.density;
float effectiveWidth = Math.min(width, height);
float effectiveHeight = Math.max(width, height);
return (effectiveWidth >= MIN_TABLET_WIDTH && effectiveHeight >= MIN_TABLET_HEIGHT);
} else {
return false;
}
}
}

@ -5,34 +5,43 @@ import android.content.SharedPreferences;
import android.content.res.Resources;
import android.preference.PreferenceManager;
import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.utility.AstridDefaultPreferenceSpec;
import org.tasks.injection.ForApplication;
import javax.inject.Inject;
import static android.content.SharedPreferences.Editor;
public class Preferences {
private static final String P_CURRENT_VERSION = "cv"; //$NON-NLS-1$
private static final String P_CURRENT_VERSION_NAME = "cvname"; //$NON-NLS-1$
private final Context context;
private static final String PREF_SORT_FLAGS = "sort_flags"; //$NON-NLS-1$
private static final String PREF_SORT_SORT = "sort_sort"; //$NON-NLS-1$
protected final Context context;
private final SharedPreferences prefs;
private final SharedPreferences publicPrefs;
@Inject
public Preferences(@ForApplication Context context) {
this.context = context;
prefs = PreferenceManager.getDefaultSharedPreferences(context);
publicPrefs = context.getSharedPreferences(AstridApiConstants.PUBLIC_PREFS, Context.MODE_WORLD_READABLE);
}
public void setIfUnset(SharedPreferences prefs, SharedPreferences.Editor editor, Resources r, int keyResource, int value) {
public void setIfUnset(SharedPreferences prefs, Editor editor, Resources r, int keyResource, int value) {
String key = r.getString(keyResource);
if(!prefs.contains(key)) {
editor.putString(key, Integer.toString(value));
}
}
public void setIfUnset(SharedPreferences prefs, SharedPreferences.Editor editor, Resources r, int keyResource, boolean value) {
public void setIfUnset(SharedPreferences prefs, Editor editor, Resources r, int keyResource, boolean value) {
String key = r.getString(keyResource);
if(!prefs.contains(key) || !(prefs.getAll().get(key) instanceof Boolean)) {
editor.putBoolean(key, value);
@ -90,13 +99,13 @@ public class Preferences {
}
public void setString(String key, String newValue) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.putString(key, newValue);
editor.commit();
}
public void setStringFromInteger(int keyResource, int newValue) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.putString(context.getString(keyResource), Integer.toString(newValue));
editor.commit();
}
@ -122,7 +131,7 @@ public class Preferences {
}
public void setBoolean(String key, boolean value) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.putBoolean(key, value);
editor.commit();
}
@ -144,7 +153,7 @@ public class Preferences {
}
public void setInt(String key, int value) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.putInt(key, value);
editor.commit();
}
@ -154,13 +163,13 @@ public class Preferences {
}
public void setLong(String key, long value) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.putLong(key, value);
editor.commit();
}
public void clear(String key) {
SharedPreferences.Editor editor = prefs.edit();
Editor editor = prefs.edit();
editor.remove(key);
editor.commit();
}
@ -176,4 +185,29 @@ public class Preferences {
public void setCurrentVersionName(String versionName) {
setString(P_CURRENT_VERSION_NAME, versionName);
}
public int getSortFlags() {
return publicPrefs.getInt(PREF_SORT_FLAGS, 0);
}
public int getSortMode() {
return publicPrefs.getInt(PREF_SORT_SORT, SortHelper.SORT_AUTO);
}
public void setSortFlags(int value) {
setPublicPref(PREF_SORT_FLAGS, value);
}
public void setSortMode(int value) {
setPublicPref(PREF_SORT_SORT, value);
}
private void setPublicPref(String key, int value) {
if (publicPrefs != null) {
Editor edit = publicPrefs.edit();
if (edit != null) {
edit.putInt(key, value).commit();
}
}
}
}

@ -4,7 +4,6 @@ import android.annotation.TargetApi;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Paint;
import android.os.Build;
@ -14,7 +13,6 @@ import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
import com.todoroo.andlib.data.TodorooCursor;
import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.TagViewFragment;
import com.todoroo.astrid.activity.TaskEditFragment;
import com.todoroo.astrid.activity.TaskListActivity;
@ -28,12 +26,12 @@ import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.widget.TasksWidget;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.R;
import org.tasks.preferences.Preferences;
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
@ -42,6 +40,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
private final TaskService taskService;
private final TaskListMetadataDao taskListMetadataDao;
private final TagDataService tagDataService;
private final Preferences preferences;
private final Context context;
private final Filter filter;
private final int widgetId;
@ -50,6 +49,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
private TodorooCursor<Task> cursor;
public ScrollableViewsFactory(
Preferences preferences,
Context context,
Filter filter,
int widgetId,
@ -58,6 +58,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
TaskService taskService,
TaskListMetadataDao taskListMetadataDao,
TagDataService tagDataService) {
this.preferences = preferences;
this.context = context;
this.filter = filter;
this.widgetId = widgetId;
@ -191,10 +192,9 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
((FilterWithCustomIntent) filter).customTaskList = new ComponentName(context, TagViewFragment.class); // In case legacy widget was created with subtasks fragment
}
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(context);
int flags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0);
int flags = preferences.getSortFlags();
flags |= SortHelper.FLAG_SHOW_RECENTLY_COMPLETED;
int sort = publicPrefs.getInt(SortHelper.PREF_SORT_SORT, 0);
int sort = preferences.getSortMode();
if(sort == 0) {
sort = SortHelper.SORT_WIDGET;
}
@ -202,8 +202,8 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
String query = SortHelper.adjustQueryForFlagsAndSort(
filter.getSqlQuery(), flags, sort).replaceAll("LIMIT \\d+", "");
String tagName = Preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
String tagName = preferences.getStringValue(WidgetConfigActivity.PREF_TITLE + widgetId);
return SubtasksHelper.applySubtasksToWidgetFilter(taskService, tagDataService, taskListMetadataDao, filter, query, tagName, 0);
return SubtasksHelper.applySubtasksToWidgetFilter(preferences, taskService, tagDataService, taskListMetadataDao, filter, query, tagName, 0);
}
}

@ -11,6 +11,7 @@ import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.TaskService;
import org.tasks.injection.InjectingRemoteViewsService;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
@ -23,6 +24,7 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
@Inject TaskService taskService;
@Inject TaskListMetadataDao taskListMetadataDao;
@Inject TagDataService tagDataService;
@Inject Preferences preferences;
@Override
public RemoteViewsFactory onGetViewFactory(Intent intent) {
@ -39,7 +41,7 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
Filter filter = (Filter) bundle.get(FILTER);
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
boolean isDarkTheme = extras.getBoolean(IS_DARK_THEME);
return new ScrollableViewsFactory(this, filter, widgetId, isDarkTheme,
return new ScrollableViewsFactory(preferences, this, filter, widgetId, isDarkTheme,
database, taskService, taskListMetadataDao, tagDataService);
}
}

@ -26,13 +26,13 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.service.TagDataService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.tags.TagFilterExposer;
import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Constants;
import com.todoroo.astrid.widget.TasksWidget;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import com.todoroo.astrid.widget.WidgetUpdateService;
import org.tasks.R;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.Preferences;
import javax.inject.Inject;
@ -138,7 +138,7 @@ public class WidgetHelper {
private PendingIntent getEditTaskIntent(Context context, Filter filter, int widgetId) {
Intent intent = new Intent(context, TasksWidget.class);
if (AstridPreferences.useTabletLayout(context)) {
if (ActivityPreferences.isTabletSized(context)) {
if (filter != null && filter instanceof FilterWithCustomIntent) {
Bundle customExtras = ((FilterWithCustomIntent) filter).customExtras;
intent.putExtras(customExtras);
@ -149,7 +149,7 @@ public class WidgetHelper {
public PendingIntent getNewTaskIntent(Context context, Filter filter, int id) {
Intent intent;
boolean tablet = AstridPreferences.useTabletLayout(context);
boolean tablet = ActivityPreferences.isTabletSized(context);
if (tablet) {
intent = new Intent(context, TaskListActivity.class);
intent.putExtra(TaskListActivity.OPEN_TASK, 0L);

Loading…
Cancel
Save