From 3189182a9356e2d95b6585e0e6701769be70e183 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 12 Mar 2015 14:26:57 -0500 Subject: [PATCH] Add option for transparent widget background Closes #58 --- .../todoroo/astrid/widget/WidgetConfigActivity.java | 9 +++++++-- .../com/todoroo/astrid/widget/WidgetUpdateService.java | 4 ++++ src/main/java/org/tasks/widget/WidgetHelper.java | 5 +++++ src/main/res/layout/widget_config_activity.xml | 10 ++++++++++ src/main/res/values/strings.xml | 1 + 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java index 072b04cd1..1c705f5b2 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -45,6 +45,7 @@ public class WidgetConfigActivity extends InjectingListActivity { public static final String PREF_HIDE_CHECKBOXES = "widget-hide-checkboxes-"; public static final String PREF_DARK_THEME = "widget-dark-theme-"; public static final String PREF_HIDE_HEADER = "widget-hide-header-"; + public static final String PREF_WIDGET_TRANSPARENT = "widget-transparent-"; int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @@ -112,8 +113,10 @@ public class WidgetConfigActivity extends InjectingListActivity { CheckBox darkTheme = (CheckBox) findViewById(R.id.darkTheme); CheckBox hideCheckboxes = (CheckBox) findViewById(R.id.hideCheckboxes); CheckBox hideHeader = (CheckBox) findViewById(R.id.hideHeader); + CheckBox transparent = (CheckBox) findViewById(R.id.transparentBackground); saveConfiguration(adapter.getSelection(), !hideDueDate.isChecked(), - darkTheme.isChecked(), hideCheckboxes.isChecked(), hideHeader.isChecked()); + darkTheme.isChecked(), hideCheckboxes.isChecked(), hideHeader.isChecked(), + transparent.isChecked()); updateWidget(); @@ -147,7 +150,8 @@ public class WidgetConfigActivity extends InjectingListActivity { } private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate, - boolean darkTheme, boolean hideCheckboxes, boolean hideHeader){ + boolean darkTheme, boolean hideCheckboxes, boolean hideHeader, + boolean transparent){ DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); @@ -171,6 +175,7 @@ public class WidgetConfigActivity extends InjectingListActivity { preferences.setBoolean(WidgetConfigActivity.PREF_DARK_THEME + mAppWidgetId, darkTheme); preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + mAppWidgetId, hideCheckboxes); preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + mAppWidgetId, hideHeader); + preferences.setBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + mAppWidgetId, transparent); if(filterListItem instanceof FilterWithCustomIntent) { String flattenedName = ((FilterWithCustomIntent)filterListItem).customTaskList.flattenToString(); diff --git a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java index 8e592111b..a279cacb9 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -105,6 +105,10 @@ public class WidgetUpdateService extends InjectingService { if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + widgetId, false)) { views.setViewVisibility(R.id.widget_header, View.GONE); } + if (preferences.getBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + widgetId, false)) { + views.setInt(R.id.widget_header, "setBackgroundColor", android.R.color.transparent); + views.setInt(R.id.taskbody, "setBackgroundColor", android.R.color.transparent); + } int numberOfTasks = NUM_VISIBLE_TASKS; diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index c1028c80c..79c3c6b4a 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -72,6 +72,11 @@ public class WidgetHelper { if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + id, false)) { remoteViews.setViewVisibility(R.id.widget_header, View.GONE); } + if (preferences.getBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + id, false)) { + remoteViews.setInt(R.id.widget_header, "setBackgroundColor", android.R.color.transparent); + remoteViews.setInt(R.id.list_view, "setBackgroundColor", android.R.color.transparent); + remoteViews.setInt(R.id.empty_view, "setBackgroundColor", android.R.color.transparent); + } remoteViews.setTextViewText(R.id.widget_title, filter.title); remoteViews.setRemoteAdapter(R.id.list_view, rvIntent); remoteViews.setEmptyView(R.id.list_view, R.id.empty_view); diff --git a/src/main/res/layout/widget_config_activity.xml b/src/main/res/layout/widget_config_activity.xml index 2fe664f7d..dad841f50 100644 --- a/src/main/res/layout/widget_config_activity.xml +++ b/src/main/res/layout/widget_config_activity.xml @@ -37,6 +37,16 @@ android:paddingTop="10dp" android:paddingBottom="10dp" /> + + Hide due dates Hide checkboxes Hide header + Transparent background