diff --git a/astrid/AndroidManifest.xml b/astrid/AndroidManifest.xml
index 4bfa3e352..82a3f211f 100644
--- a/astrid/AndroidManifest.xml
+++ b/astrid/AndroidManifest.xml
@@ -127,11 +127,24 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -139,16 +152,18 @@
-
-
+
-
-
+
diff --git a/astrid/res/layout/power_widget_configure.xml b/astrid/res/layout/power_widget_configure.xml
deleted file mode 100644
index eb3c23a2c..000000000
--- a/astrid/res/layout/power_widget_configure.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/astrid/res/layout/widget_config_activity.xml b/astrid/res/layout/widget_config_activity.xml
index 108b501ee..756d62ba2 100644
--- a/astrid/res/layout/widget_config_activity.xml
+++ b/astrid/res/layout/widget_config_activity.xml
@@ -1,11 +1,36 @@
-
+
+
+
+
+
+
+
+
+
Have time to finish something?
- Gosh, you are looking suave today!
+
+
+ - Black
+ - White
+ - Blue
+ - Red
+
+
diff --git a/astrid/res/xml/power_widget_42_provider_info.xml b/astrid/res/xml/power_widget_42_provider_info.xml
index 033e8cc6c..02f637f1e 100644
--- a/astrid/res/xml/power_widget_42_provider_info.xml
+++ b/astrid/res/xml/power_widget_42_provider_info.xml
@@ -1,7 +1,7 @@
colorAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, colors);
- colorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
- Spinner colorSpinner = (Spinner) findViewById(R.id.PPW_color);
- colorSpinner.setAdapter(colorAdapter);
-
- // set up ui
- adapter = new FilterAdapter(this, getExpandableListView(),
- R.layout.filter_adapter_row, true);
- setListAdapter(adapter);
-
- Button button = (Button)findViewById(R.id.ok);
- button.setOnClickListener(mOnClickListener);
-
- StatisticsService.reportEvent("power-widget-config"); //$NON-NLS-1$
- }
-
- View.OnClickListener mOnClickListener = new View.OnClickListener() {
- public void onClick(View v) {
- final Context context = ConfigurePowerWidget42Activity.this;
-
-
- Spinner colorSpinner = (Spinner) findViewById(R.id.PPW_color);
- int colorPos = colorSpinner.getSelectedItemPosition();
- String color = colors[colorPos];
-
- // removed calendar option
-// CheckBox chk_enableCalendar = (CheckBox) findViewById(R.id.PPW_enable_calendar);
-// boolean enableCalendar = chk_enableCalendar.isChecked();
- boolean enableCalendar = false;
-
- CheckBox chk_disableEncouragements = (CheckBox) findViewById(R.id.PPW_disable_encouragements);
- boolean disableEncouragements = chk_disableEncouragements.isChecked();
-
- // Save configuration options
- saveConfiguration(adapter.getSelection(), color, enableCalendar, !disableEncouragements);
-
- // Push widget update to surface with newly set prefix
- PowerWidget42.updateAppWidget(context, mAppWidgetId);
-
- // Make sure we pass back the original appWidgetId
- Intent resultValue = new Intent();
- resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
- setResult(RESULT_OK, resultValue);
- finish();
- }
- };
-
- @Override
- public boolean onChildClick(ExpandableListView parent, View v,
- int groupPosition, int childPosition, long id) {
- FilterListItem item = (FilterListItem) adapter.getChild(groupPosition,
- childPosition);
- if(item instanceof Filter) {
- adapter.setSelection(item);
- }
- return true;
- }
-
- @Override
- public void onGroupExpand(int groupPosition) {
- FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
- if(item instanceof Filter)
- adapter.setSelection(item);
- else if(item instanceof FilterCategory)
- adapter.saveExpansionSetting((FilterCategory) item, true);
- }
-
- @Override
- public void onGroupCollapse(int groupPosition) {
- FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
- if(item instanceof Filter)
- adapter.setSelection(item);
- else if(item instanceof FilterCategory)
- adapter.saveExpansionSetting((FilterCategory) item, false);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- adapter.registerRecevier();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- adapter.unregisterRecevier();
- }
-
- @Override
- protected void onStart() {
- super.onStart();
- StatisticsService.sessionStart(this);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- StatisticsService.sessionStop(this);
- }
-
- private void saveConfiguration(FilterListItem filterListItem, String color, boolean enableCalendar, boolean enableEncouragements){
- DisplayMetrics metrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(metrics);
-
- String sql = null, contentValuesString = null, title = null;
-
- if(filterListItem != null && filterListItem instanceof Filter) {
- sql = ((Filter)filterListItem).sqlQuery;
- ContentValues values = ((Filter)filterListItem).valuesForNewTasks;
- if(values != null)
- contentValuesString = AndroidUtilities.contentValuesToSerializedString(values);
- title = ((Filter)filterListItem).title;
- }
-
- Preferences.setString(PowerWidget.PREF_TITLE + mAppWidgetId, title);
- Preferences.setString(PowerWidget.PREF_SQL + mAppWidgetId, sql);
- Preferences.setString(PowerWidget.PREF_VALUES + mAppWidgetId, contentValuesString);
-
- Preferences.setString(PowerWidget.PREF_COLOR + mAppWidgetId, color);
- Preferences.setBoolean(PowerWidget.PREF_ENABLE_CALENDAR + mAppWidgetId, enableCalendar);
- Preferences.setBoolean(PowerWidget.PREF_ENCOURAGEMENTS + mAppWidgetId, enableEncouragements);
- }
-}
diff --git a/astrid/src/com/todoroo/astrid/widget/ConfigurePowerWidgetActivity.java b/astrid/src/com/todoroo/astrid/widget/ConfigurePowerWidgetActivity.java
deleted file mode 100644
index 2c6ec8a9a..000000000
--- a/astrid/src/com/todoroo/astrid/widget/ConfigurePowerWidgetActivity.java
+++ /dev/null
@@ -1,200 +0,0 @@
-package com.todoroo.astrid.widget;
-
-import android.app.ExpandableListActivity;
-import android.appwidget.AppWidgetManager;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.DisplayMetrics;
-import android.view.View;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.CheckBox;
-import android.widget.ExpandableListView;
-import android.widget.Spinner;
-
-import com.todoroo.astrid.service.StatisticsService;
-import com.timsu.astrid.R;
-import com.todoroo.andlib.utility.AndroidUtilities;
-import com.todoroo.astrid.adapter.FilterAdapter;
-import com.todoroo.astrid.api.Filter;
-import com.todoroo.astrid.api.FilterCategory;
-import com.todoroo.astrid.api.FilterListItem;
-import com.todoroo.astrid.utility.Constants;
-import com.todoroo.andlib.utility.Preferences;
-
-/**
- * Configure options for the Power Pack widget. Select a color, filter to use, enable/disable encouragements.
- *
- * @author jwong
- *
- */
-public class ConfigurePowerWidgetActivity extends ExpandableListActivity {
-
-
- int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
-
- FilterAdapter adapter = null;
-
- String[] colors = new String[]{
- "Black",
- "Blue",
- "Red",
- "White"
- };
-
- public ConfigurePowerWidgetActivity() {
- super();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- super.onCreate(icicle);
-
- // Set the result to CANCELED. This will cause the widget host to cancel
- // out of the widget placement if they press the back button.
- setResult(RESULT_CANCELED);
-
- // Set the view layout resource to use.
- setContentView(R.layout.power_widget_configure);
-
- setTitle(R.string.PPW_configure_title);
-
- // Find the widget id from the intent.
- Intent intent = getIntent();
- Bundle extras = intent.getExtras();
- if (extras != null) {
- mAppWidgetId = extras.getInt(
- AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
- }
-
- // If they gave us an intent without the widget id, just bail.
- if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
- finish();
- }
-
- ArrayAdapter colorAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, colors);
- colorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-
- Spinner colorSpinner = (Spinner) findViewById(R.id.PPW_color);
- colorSpinner.setAdapter(colorAdapter);
-
- // set up ui
- adapter = new FilterAdapter(this, getExpandableListView(),
- R.layout.filter_adapter_row, true);
- setListAdapter(adapter);
-
- Button button = (Button)findViewById(R.id.ok);
- button.setOnClickListener(mOnClickListener);
-
- StatisticsService.reportEvent("power-widget-config"); //$NON-NLS-1$
- }
-
- View.OnClickListener mOnClickListener = new View.OnClickListener() {
- public void onClick(View v) {
- final Context context = ConfigurePowerWidgetActivity.this;
-
-
- Spinner colorSpinner = (Spinner) findViewById(R.id.PPW_color);
- int colorPos = colorSpinner.getSelectedItemPosition();
- String color = colors[colorPos];
-
- // removed calendar option
-// CheckBox chk_enableCalendar = (CheckBox) findViewById(R.id.PPW_enable_calendar);
-// boolean enableCalendar = chk_enableCalendar.isChecked();
- boolean enableCalendar = false;
-
- CheckBox chk_disableEncouragements = (CheckBox) findViewById(R.id.PPW_disable_encouragements);
- boolean disableEncouragements = chk_disableEncouragements.isChecked();
-
- // Save configuration options
- saveConfiguration(adapter.getSelection(), color, enableCalendar, !disableEncouragements);
-
- // Push widget update to surface with newly set prefix
- PowerWidget.updateAppWidget(context, mAppWidgetId);
-
- // Make sure we pass back the original appWidgetId
- Intent resultValue = new Intent();
- resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
- setResult(RESULT_OK, resultValue);
- finish();
- }
- };
-
- @Override
- public boolean onChildClick(ExpandableListView parent, View v,
- int groupPosition, int childPosition, long id) {
- FilterListItem item = (FilterListItem) adapter.getChild(groupPosition,
- childPosition);
- if(item instanceof Filter) {
- adapter.setSelection(item);
- }
- return true;
- }
-
- @Override
- public void onGroupExpand(int groupPosition) {
- FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
- if(item instanceof Filter)
- adapter.setSelection(item);
- else if(item instanceof FilterCategory)
- adapter.saveExpansionSetting((FilterCategory) item, true);
- }
-
- @Override
- public void onGroupCollapse(int groupPosition) {
- FilterListItem item = (FilterListItem) adapter.getGroup(groupPosition);
- if(item instanceof Filter)
- adapter.setSelection(item);
- else if(item instanceof FilterCategory)
- adapter.saveExpansionSetting((FilterCategory) item, false);
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- adapter.registerRecevier();
- }
-
- @Override
- protected void onPause() {
- super.onPause();
- adapter.unregisterRecevier();
- }
-
- @Override
- protected void onStart() {
- super.onStart();
- StatisticsService.sessionStart(this);
- }
-
- @Override
- protected void onStop() {
- super.onStop();
- StatisticsService.sessionStop(this);
- }
-
- private void saveConfiguration(FilterListItem filterListItem, String color, boolean enableCalendar, boolean enableEncouragements){
- DisplayMetrics metrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(metrics);
-
- String sql = null, contentValuesString = null, title = null;
-
- if(filterListItem != null && filterListItem instanceof Filter) {
- sql = ((Filter)filterListItem).sqlQuery;
- ContentValues values = ((Filter)filterListItem).valuesForNewTasks;
- if(values != null)
- contentValuesString = AndroidUtilities.contentValuesToSerializedString(values);
- title = ((Filter)filterListItem).title;
- }
-
- Preferences.setString(PowerWidget.PREF_TITLE + mAppWidgetId, title);
- Preferences.setString(PowerWidget.PREF_SQL + mAppWidgetId, sql);
- Preferences.setString(PowerWidget.PREF_VALUES + mAppWidgetId, contentValuesString);
-
- Preferences.setString(PowerWidget.PREF_COLOR + mAppWidgetId, color);
- Preferences.setBoolean(PowerWidget.PREF_ENABLE_CALENDAR + mAppWidgetId, enableCalendar);
- Preferences.setBoolean(PowerWidget.PREF_ENCOURAGEMENTS + mAppWidgetId, enableEncouragements);
- }
-}
diff --git a/astrid/src/com/todoroo/astrid/widget/PowerWidget42.java b/astrid/src/com/todoroo/astrid/widget/PowerWidget42.java
index 9cdba9a0f..0891259fe 100644
--- a/astrid/src/com/todoroo/astrid/widget/PowerWidget42.java
+++ b/astrid/src/com/todoroo/astrid/widget/PowerWidget42.java
@@ -11,10 +11,7 @@ import com.timsu.astrid.R;
* @author jwong (jwong@dayspring-tech.com)
*
*/
-@SuppressWarnings("nls")
public class PowerWidget42 extends PowerWidget {
- static final String LOG_TAG = "PowerWidget42";
-
static {
// set reference to my UpdateService for calls to launch the service
diff --git a/astrid/src/com/todoroo/astrid/widget/WidgetConfigActivity.java b/astrid/src/com/todoroo/astrid/widget/WidgetConfigActivity.java
index 4f9f0b623..93041bc92 100644
--- a/astrid/src/com/todoroo/astrid/widget/WidgetConfigActivity.java
+++ b/astrid/src/com/todoroo/astrid/widget/WidgetConfigActivity.java
@@ -3,21 +3,24 @@ package com.todoroo.astrid.widget;
import android.app.ExpandableListActivity;
import android.appwidget.AppWidgetManager;
import android.content.ContentValues;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.util.DisplayMetrics;
import android.view.View;
import android.widget.Button;
+import android.widget.CheckBox;
import android.widget.ExpandableListView;
+import android.widget.Spinner;
-import com.todoroo.astrid.service.StatisticsService;
import com.timsu.astrid.R;
import com.todoroo.andlib.utility.AndroidUtilities;
+import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.adapter.FilterAdapter;
import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.api.FilterCategory;
import com.todoroo.astrid.api.FilterListItem;
-import com.todoroo.astrid.utility.Constants;
-import com.todoroo.andlib.utility.Preferences;
+import com.todoroo.astrid.service.StatisticsService;
public class WidgetConfigActivity extends ExpandableListActivity {
@@ -25,6 +28,28 @@ public class WidgetConfigActivity extends ExpandableListActivity {
FilterAdapter adapter = null;
+ @SuppressWarnings("nls")
+ public String[] COLORS = new String[] {
+ "Black",
+ "White",
+ "Blue",
+ "Red"
+ };
+
+ public WidgetConfigActivity() {
+ super();
+ }
+
+ /** whether to show 'hide encouragements' */
+ public boolean showEncouragementSetting() {
+ return false;
+ }
+
+ /** whether to show color selection */
+ public boolean showColorSelectionSetting() {
+ return false;
+ }
+
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -36,7 +61,7 @@ public class WidgetConfigActivity extends ExpandableListActivity {
// Set the view layout resource to use.
setContentView(R.layout.widget_config_activity);
- setTitle(R.string.WCA_title);
+ setTitle(R.string.PPW_configure_title);
// Find the widget id from the intent.
Intent intent = getIntent();
@@ -51,6 +76,12 @@ public class WidgetConfigActivity extends ExpandableListActivity {
finish();
}
+ if(!showColorSelectionSetting())
+ findViewById(R.id.colors).setVisibility(View.GONE);
+
+ if(!showEncouragementSetting())
+ findViewById(R.id.PPW_disable_encouragements).setVisibility(View.GONE);
+
// set up ui
adapter = new FilterAdapter(this, getExpandableListView(),
R.layout.filter_adapter_row, true);
@@ -64,11 +95,24 @@ public class WidgetConfigActivity extends ExpandableListActivity {
View.OnClickListener mOnClickListener = new View.OnClickListener() {
public void onClick(View v) {
+ final Context context = WidgetConfigActivity.this;
+
+ Spinner colorSpinner = (Spinner) findViewById(R.id.PPW_color);
+ int colorPos = colorSpinner.getSelectedItemPosition();
+ String color = COLORS[colorPos];
+
+ boolean enableCalendar = false;
+
+ CheckBox chk_disableEncouragements = (CheckBox) findViewById(R.id.PPW_disable_encouragements);
+ boolean disableEncouragements = chk_disableEncouragements.isChecked();
+ if(!showEncouragementSetting())
+ disableEncouragements = true;
+
// Save configuration options
- saveConfiguration(adapter.getSelection());
+ saveConfiguration(adapter.getSelection(), color, enableCalendar, !disableEncouragements);
// Push widget update to surface with newly set prefix
- TasksWidget.updateWidget(WidgetConfigActivity.this, mAppWidgetId);
+ PowerWidget.updateAppWidget(context, mAppWidgetId);
// Make sure we pass back the original appWidgetId
Intent resultValue = new Intent();
@@ -131,7 +175,10 @@ public class WidgetConfigActivity extends ExpandableListActivity {
StatisticsService.sessionStop(this);
}
- private void saveConfiguration(FilterListItem filterListItem) {
+ private void saveConfiguration(FilterListItem filterListItem, String color, boolean enableCalendar, boolean enableEncouragements){
+ DisplayMetrics metrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(metrics);
+
String sql = null, contentValuesString = null, title = null;
if(filterListItem != null && filterListItem instanceof Filter) {
@@ -142,10 +189,29 @@ public class WidgetConfigActivity extends ExpandableListActivity {
title = ((Filter)filterListItem).title;
}
- Preferences.setString(TasksWidget.PREF_TITLE + mAppWidgetId, title);
- Preferences.setString(TasksWidget.PREF_SQL + mAppWidgetId, sql);
- Preferences.setString(TasksWidget.PREF_VALUES + mAppWidgetId, contentValuesString);
+ Preferences.setString(PowerWidget.PREF_TITLE + mAppWidgetId, title);
+ Preferences.setString(PowerWidget.PREF_SQL + mAppWidgetId, sql);
+ Preferences.setString(PowerWidget.PREF_VALUES + mAppWidgetId, contentValuesString);
- StatisticsService.reportEvent("widget-config"); //$NON-NLS-1$
+ Preferences.setString(PowerWidget.PREF_COLOR + mAppWidgetId, color);
+ Preferences.setBoolean(PowerWidget.PREF_ENABLE_CALENDAR + mAppWidgetId, enableCalendar);
+ Preferences.setBoolean(PowerWidget.PREF_ENCOURAGEMENTS + mAppWidgetId, enableEncouragements);
+ }
+
+ // --- related configuration activities
+
+ public static class WithColors extends WidgetConfigActivity {
+ @Override
+ public boolean showColorSelectionSetting() {
+ return true;
+ }
}
+
+ public static class WithColorsAndEncouragements extends WithColors {
+ @Override
+ public boolean showEncouragementSetting() {
+ return true;
+ }
+ }
+
}