From 397f24320f79ea439a0206c69264ff1c17fed5dc Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 2 Aug 2010 14:04:31 -0700 Subject: [PATCH] Renamed Constants => SqlConstants for disambiguity, deeper integration with addon servce --- .../com/todoroo/andlib/sql/Criterion.java | 14 +++---- .../com/todoroo/andlib/sql/DBObject.java | 4 +- .../com/todoroo/andlib/sql/Field.java | 12 +++--- .../com/todoroo/andlib/sql/Join.java | 6 +-- .../com/todoroo/andlib/sql/Operator.java | 2 +- .../com/todoroo/andlib/sql/Order.java | 2 +- .../com/todoroo/andlib/sql/Query.java | 20 +++++----- .../com/todoroo/andlib/sql/QueryTemplate.java | 12 +++--- .../sql/{Constants.java => SqlConstants.java} | 2 +- .../todoroo/andlib/sql/UnaryCriterion.java | 2 +- .../todoroo/astrid/core/PluginServices.java | 7 ++++ .../astrid/timers/TimerActionExposer.java | 3 +- .../astrid/activity/TaskEditActivity.java | 5 ++- .../astrid/activity/TaskListActivity.java | 13 +++++++ .../todoroo/astrid/service/AddOnService.java | 39 +++++++++---------- .../service/AstridDependencyInjector.java | 2 +- .../com/todoroo/astrid/utility/Constants.java | 5 +++ 17 files changed, 88 insertions(+), 62 deletions(-) rename astrid/common-src/com/todoroo/andlib/sql/{Constants.java => SqlConstants.java} (93%) diff --git a/astrid/common-src/com/todoroo/andlib/sql/Criterion.java b/astrid/common-src/com/todoroo/andlib/sql/Criterion.java index 32d836a38..a208f6db4 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Criterion.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Criterion.java @@ -1,12 +1,12 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.AND; -import static com.todoroo.andlib.sql.Constants.EXISTS; -import static com.todoroo.andlib.sql.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.NOT; -import static com.todoroo.andlib.sql.Constants.OR; -import static com.todoroo.andlib.sql.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.AND; +import static com.todoroo.andlib.sql.SqlConstants.EXISTS; +import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.NOT; +import static com.todoroo.andlib.sql.SqlConstants.OR; +import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public abstract class Criterion { protected final Operator operator; diff --git a/astrid/common-src/com/todoroo/andlib/sql/DBObject.java b/astrid/common-src/com/todoroo/andlib/sql/DBObject.java index 6539df6a8..4ba9c8f42 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/DBObject.java +++ b/astrid/common-src/com/todoroo/andlib/sql/DBObject.java @@ -1,7 +1,7 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.AS; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.AS; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public abstract class DBObject> implements Cloneable { protected String alias; diff --git a/astrid/common-src/com/todoroo/andlib/sql/Field.java b/astrid/common-src/com/todoroo/andlib/sql/Field.java index 5131ba000..28bbb00b2 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Field.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Field.java @@ -1,11 +1,11 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.AND; -import static com.todoroo.andlib.sql.Constants.BETWEEN; -import static com.todoroo.andlib.sql.Constants.COMMA; -import static com.todoroo.andlib.sql.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.AND; +import static com.todoroo.andlib.sql.SqlConstants.BETWEEN; +import static com.todoroo.andlib.sql.SqlConstants.COMMA; +import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public class Field extends DBObject { diff --git a/astrid/common-src/com/todoroo/andlib/sql/Join.java b/astrid/common-src/com/todoroo/andlib/sql/Join.java index 382c1253f..646ca8cc5 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Join.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Join.java @@ -1,8 +1,8 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.JOIN; -import static com.todoroo.andlib.sql.Constants.ON; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.JOIN; +import static com.todoroo.andlib.sql.SqlConstants.ON; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public class Join { private final SqlTable joinTable; diff --git a/astrid/common-src/com/todoroo/andlib/sql/Operator.java b/astrid/common-src/com/todoroo/andlib/sql/Operator.java index 5f97301c0..414b5d271 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Operator.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Operator.java @@ -1,6 +1,6 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; import java.util.HashMap; import java.util.Map; diff --git a/astrid/common-src/com/todoroo/andlib/sql/Order.java b/astrid/common-src/com/todoroo/andlib/sql/Order.java index fc1049045..2c411fa4d 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Order.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Order.java @@ -1,6 +1,6 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public class Order { private final Object expression; diff --git a/astrid/common-src/com/todoroo/andlib/sql/Query.java b/astrid/common-src/com/todoroo/andlib/sql/Query.java index 9d4398911..cfb8313c6 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Query.java +++ b/astrid/common-src/com/todoroo/andlib/sql/Query.java @@ -1,15 +1,15 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.ALL; -import static com.todoroo.andlib.sql.Constants.COMMA; -import static com.todoroo.andlib.sql.Constants.FROM; -import static com.todoroo.andlib.sql.Constants.GROUP_BY; -import static com.todoroo.andlib.sql.Constants.LEFT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.ORDER_BY; -import static com.todoroo.andlib.sql.Constants.RIGHT_PARENTHESIS; -import static com.todoroo.andlib.sql.Constants.SELECT; -import static com.todoroo.andlib.sql.Constants.SPACE; -import static com.todoroo.andlib.sql.Constants.WHERE; +import static com.todoroo.andlib.sql.SqlConstants.ALL; +import static com.todoroo.andlib.sql.SqlConstants.COMMA; +import static com.todoroo.andlib.sql.SqlConstants.FROM; +import static com.todoroo.andlib.sql.SqlConstants.GROUP_BY; +import static com.todoroo.andlib.sql.SqlConstants.LEFT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.ORDER_BY; +import static com.todoroo.andlib.sql.SqlConstants.RIGHT_PARENTHESIS; +import static com.todoroo.andlib.sql.SqlConstants.SELECT; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.WHERE; import static com.todoroo.andlib.sql.SqlTable.table; import static java.util.Arrays.asList; diff --git a/astrid/common-src/com/todoroo/andlib/sql/QueryTemplate.java b/astrid/common-src/com/todoroo/andlib/sql/QueryTemplate.java index 6251101a4..220905a01 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/QueryTemplate.java +++ b/astrid/common-src/com/todoroo/andlib/sql/QueryTemplate.java @@ -1,11 +1,11 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.COMMA; -import static com.todoroo.andlib.sql.Constants.GROUP_BY; -import static com.todoroo.andlib.sql.Constants.LIMIT; -import static com.todoroo.andlib.sql.Constants.ORDER_BY; -import static com.todoroo.andlib.sql.Constants.SPACE; -import static com.todoroo.andlib.sql.Constants.WHERE; +import static com.todoroo.andlib.sql.SqlConstants.COMMA; +import static com.todoroo.andlib.sql.SqlConstants.GROUP_BY; +import static com.todoroo.andlib.sql.SqlConstants.LIMIT; +import static com.todoroo.andlib.sql.SqlConstants.ORDER_BY; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.WHERE; import static java.util.Arrays.asList; import java.util.ArrayList; diff --git a/astrid/common-src/com/todoroo/andlib/sql/Constants.java b/astrid/common-src/com/todoroo/andlib/sql/SqlConstants.java similarity index 93% rename from astrid/common-src/com/todoroo/andlib/sql/Constants.java rename to astrid/common-src/com/todoroo/andlib/sql/SqlConstants.java index 36e425eae..63fee3fd0 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/Constants.java +++ b/astrid/common-src/com/todoroo/andlib/sql/SqlConstants.java @@ -1,7 +1,7 @@ package com.todoroo.andlib.sql; @SuppressWarnings("nls") -public final class Constants { +public final class SqlConstants { static final String SELECT = "SELECT"; static final String SPACE = " "; static final String AS = "AS"; diff --git a/astrid/common-src/com/todoroo/andlib/sql/UnaryCriterion.java b/astrid/common-src/com/todoroo/andlib/sql/UnaryCriterion.java index 532962bba..d7e958440 100644 --- a/astrid/common-src/com/todoroo/andlib/sql/UnaryCriterion.java +++ b/astrid/common-src/com/todoroo/andlib/sql/UnaryCriterion.java @@ -1,6 +1,6 @@ package com.todoroo.andlib.sql; -import static com.todoroo.andlib.sql.Constants.SPACE; +import static com.todoroo.andlib.sql.SqlConstants.SPACE; public class UnaryCriterion extends Criterion { protected final Field expression; diff --git a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java index 215675206..b2001a228 100644 --- a/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java +++ b/astrid/plugin-src/com/todoroo/astrid/core/PluginServices.java @@ -4,6 +4,7 @@ import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.ExceptionService; import com.todoroo.astrid.dao.Database; +import com.todoroo.astrid.service.AddOnService; import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.TaskService; @@ -27,6 +28,9 @@ public final class PluginServices { @Autowired MetadataService metadataService; + @Autowired + AddOnService addOnService; + private static PluginServices instance; private PluginServices() { @@ -53,4 +57,7 @@ public final class PluginServices { return getInstance().metadataService; } + public static AddOnService getAddOnService() { + return getInstance().addOnService; + } } diff --git a/astrid/plugin-src/com/todoroo/astrid/timers/TimerActionExposer.java b/astrid/plugin-src/com/todoroo/astrid/timers/TimerActionExposer.java index 03dbb5c7f..81748fdff 100644 --- a/astrid/plugin-src/com/todoroo/astrid/timers/TimerActionExposer.java +++ b/astrid/plugin-src/com/todoroo/astrid/timers/TimerActionExposer.java @@ -14,7 +14,6 @@ import com.todoroo.astrid.api.TaskAction; import com.todoroo.astrid.api.TaskDecoration; import com.todoroo.astrid.core.PluginServices; import com.todoroo.astrid.model.Task; -import com.todoroo.astrid.service.AddOnService; /** * Exposes {@link TaskDecoration} for timers @@ -32,7 +31,7 @@ public class TimerActionExposer extends BroadcastReceiver { if(taskId == -1) return; - if(!AddOnService.isPowerPack()) + if(!PluginServices.getAddOnService().isPowerPack()) return; Task task = PluginServices.getTaskService().fetchById(taskId, Task.ID, Task.TIMER_START, diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java index 2872f0209..3ee27dd5c 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditActivity.java @@ -129,6 +129,9 @@ public final class TaskEditActivity extends TabActivity { @Autowired private DateUtilities dateUtilities; + @Autowired + private AddOnService addOnService; + // --- UI components private EditText title; @@ -211,7 +214,7 @@ public final class TaskEditActivity extends TabActivity { controls.add(new RepeatControlSet(this, extrasAddons)); LinearLayout addonsAddons = (LinearLayout) findViewById(R.id.tab_addons_addons); - if(AddOnService.isPowerPack()) { + if(addOnService.isPowerPack()) { controls.add(new GCalControlSet(this, addonsAddons)); controls.add(new TimerControlSet(this, addonsAddons)); } diff --git a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java index 252585aef..1b92e67c2 100644 --- a/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskListActivity.java @@ -56,6 +56,7 @@ import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.TaskAction; import com.todoroo.astrid.api.TaskDecoration; +import com.todoroo.astrid.backup.BackupActivity; import com.todoroo.astrid.core.CoreFilterExposer; import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.TaskDao.TaskCriteria; @@ -64,6 +65,7 @@ import com.todoroo.astrid.model.Task; import com.todoroo.astrid.reminders.Notifications; import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService.AlarmScheduler; +import com.todoroo.astrid.rmilk.MilkPreferences; import com.todoroo.astrid.service.AddOnService; import com.todoroo.astrid.service.MetadataService; import com.todoroo.astrid.service.StartupService; @@ -124,6 +126,9 @@ public class TaskListActivity extends ListActivity implements OnScrollListener { @Autowired protected Database database; + @Autowired + private AddOnService addOnService; + protected TaskAdapter taskAdapter = null; protected DetailReceiver detailReceiver = new DetailReceiver(); @@ -206,6 +211,14 @@ public class TaskListActivity extends ListActivity implements OnScrollListener { int length = resolveInfoList.size(); for(int i = 0; i < length; i++) { ResolveInfo resolveInfo = resolveInfoList.get(i); + + if(!Constants.SYNC && + MilkPreferences.class.getName().equals(resolveInfo.activityInfo.name)) + continue; + if(!addOnService.isPowerPack() && + BackupActivity.class.getName().equals(resolveInfo.activityInfo.name)) + continue; + item = menu.add(Menu.NONE, MENU_ADDON_INTENT_ID, Menu.NONE, resolveInfo.loadLabel(pm)); item.setIcon(resolveInfo.loadIcon(pm)); diff --git a/astrid/src/com/todoroo/astrid/service/AddOnService.java b/astrid/src/com/todoroo/astrid/service/AddOnService.java index 2be038a07..95459c7b5 100644 --- a/astrid/src/com/todoroo/astrid/service/AddOnService.java +++ b/astrid/src/com/todoroo/astrid/service/AddOnService.java @@ -10,7 +10,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.ApplicationInfo; -import android.content.pm.PackageManager; import android.content.res.Resources; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; @@ -47,24 +46,15 @@ public class AddOnService { private static Boolean isPowerPack = null; /** Checks whether power pack should be enabled */ - public static boolean isPowerPack() { - if (isPowerPack != null) - return isPowerPack; - - isPowerPack = false; - if (Preferences.getBoolean(PREF_OEM, false)) - isPowerPack = true; - else { - try { - Context context = ContextManager.getContext(); - ApplicationInfo applicationInfo = context.getPackageManager().getApplicationInfo( - POWER_PACK_PACKAGE, 0); - if(applicationInfo.uid == context.getApplicationInfo().uid) - isPowerPack = true; - } catch (PackageManager.NameNotFoundException e) { - // not found - } + public boolean isPowerPack() { + if (isPowerPack == null) { + isPowerPack = false; + if (Preferences.getBoolean(PREF_OEM, false)) + isPowerPack = true; + else if(isInstalled(POWER_PACK_PACKAGE, true)) + isPowerPack = true; } + return isPowerPack; } @@ -147,18 +137,27 @@ public class AddOnService { * @return */ public boolean isInstalled(AddOn addOn) { + return isInstalled(addOn.getPackageName(), addOn.isInternal()); + } + + /** + * Check whether a given add-on is installed + * @param addOn + * @return + */ + private boolean isInstalled(String packageName, boolean internal) { Context context = ContextManager.getContext(); ApplicationInfo applicationInfo; try { applicationInfo = context.getPackageManager().getApplicationInfo( - addOn.getPackageName(), 0); + packageName, 0); } catch (Exception e) { return false; } if(applicationInfo == null) return false; - if(!addOn.isInternal()) + if(!internal) return true; return applicationInfo.uid == context.getApplicationInfo().uid; } diff --git a/astrid/src/com/todoroo/astrid/service/AstridDependencyInjector.java b/astrid/src/com/todoroo/astrid/service/AstridDependencyInjector.java index 0020f9216..064e6e475 100644 --- a/astrid/src/com/todoroo/astrid/service/AstridDependencyInjector.java +++ b/astrid/src/com/todoroo/astrid/service/AstridDependencyInjector.java @@ -102,7 +102,7 @@ public class AstridDependencyInjector implements AbstractDependencyInjector { injectables.put("taskService", TaskService.class); injectables.put("metadataService", MetadataService.class); injectables.put("upgradeService", UpgradeService.class); - injectables.put("addonService", AddOnService.class); + injectables.put("addOnService", AddOnService.class); // com.timsu.astrid.data injectables.put("tasksTable", "tasks"); diff --git a/astrid/src/com/todoroo/astrid/utility/Constants.java b/astrid/src/com/todoroo/astrid/utility/Constants.java index d52fdbea4..e700e0eaa 100644 --- a/astrid/src/com/todoroo/astrid/utility/Constants.java +++ b/astrid/src/com/todoroo/astrid/utility/Constants.java @@ -21,6 +21,11 @@ public final class Constants { */ public static final boolean OEM = false; + /** + * Whether this is an installation with sync disabled + */ + public static final boolean SYNC = true; + /** * Interval to update the widget (in order to detect hidden tasks * becoming visible)