From 805813c001299585229bf9a6e8c30219150ebe04 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 12 Mar 2015 14:01:33 -0500 Subject: [PATCH] Add option to hide widget header Closes #50 --- .../todoroo/astrid/widget/WidgetConfigActivity.java | 8 ++++++-- .../com/todoroo/astrid/widget/WidgetUpdateService.java | 4 ++++ src/main/java/org/tasks/widget/WidgetHelper.java | 4 ++++ src/main/res/layout/widget_config_activity.xml | 10 ++++++++++ src/main/res/values/strings.xml | 1 + 5 files changed, 25 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 59f4a828e..072b04cd1 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetConfigActivity.java @@ -44,6 +44,7 @@ public class WidgetConfigActivity extends InjectingListActivity { public static final String PREF_SHOW_DUE_DATE = "widget-show-due-date-"; 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-"; int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; @@ -110,8 +111,9 @@ public class WidgetConfigActivity extends InjectingListActivity { CheckBox hideDueDate = (CheckBox) findViewById(R.id.hideDueDate); CheckBox darkTheme = (CheckBox) findViewById(R.id.darkTheme); CheckBox hideCheckboxes = (CheckBox) findViewById(R.id.hideCheckboxes); + CheckBox hideHeader = (CheckBox) findViewById(R.id.hideHeader); saveConfiguration(adapter.getSelection(), !hideDueDate.isChecked(), - darkTheme.isChecked(), hideCheckboxes.isChecked()); + darkTheme.isChecked(), hideCheckboxes.isChecked(), hideHeader.isChecked()); updateWidget(); @@ -144,7 +146,8 @@ public class WidgetConfigActivity extends InjectingListActivity { adapter.unregisterRecevier(); } - private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate, boolean darkTheme, boolean hideCheckboxes){ + private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate, + boolean darkTheme, boolean hideCheckboxes, boolean hideHeader){ DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); @@ -167,6 +170,7 @@ public class WidgetConfigActivity extends InjectingListActivity { preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + mAppWidgetId, showDueDate); preferences.setBoolean(WidgetConfigActivity.PREF_DARK_THEME + mAppWidgetId, darkTheme); preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + mAppWidgetId, hideCheckboxes); + preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + mAppWidgetId, hideHeader); 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 49a5ad99b..8e592111b 100644 --- a/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java +++ b/src/main/java/com/todoroo/astrid/widget/WidgetUpdateService.java @@ -102,6 +102,10 @@ public class WidgetUpdateService extends InjectingService { ? R.layout.widget_initialized_dark : R.layout.widget_initialized); + if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + widgetId, false)) { + views.setViewVisibility(R.id.widget_header, View.GONE); + } + int numberOfTasks = NUM_VISIBLE_TASKS; TodorooCursor cursor = null; diff --git a/src/main/java/org/tasks/widget/WidgetHelper.java b/src/main/java/org/tasks/widget/WidgetHelper.java index cd2f60732..c1028c80c 100644 --- a/src/main/java/org/tasks/widget/WidgetHelper.java +++ b/src/main/java/org/tasks/widget/WidgetHelper.java @@ -11,6 +11,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.view.View; import android.widget.RemoteViews; import com.todoroo.andlib.utility.AndroidUtilities; @@ -68,6 +69,9 @@ public class WidgetHelper { rvIntent.setData(Uri.parse(rvIntent.toUri(Intent.URI_INTENT_SCHEME))); boolean darkTheme = preferences.getBoolean(WidgetConfigActivity.PREF_DARK_THEME + id, false); RemoteViews remoteViews = new RemoteViews(context.getPackageName(), darkTheme ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light); + if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + id, false)) { + remoteViews.setViewVisibility(R.id.widget_header, View.GONE); + } 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 f4fbaee03..2fe664f7d 100644 --- a/src/main/res/layout/widget_config_activity.xml +++ b/src/main/res/layout/widget_config_activity.xml @@ -27,6 +27,16 @@ android:paddingTop="10dp" android:paddingBottom="10dp" /> + + Hide due dates Hide checkboxes + Hide header