All new widget design to match app theme and style

pull/14/head
Sam Bosley 13 years ago
parent 7269e2b5a5
commit 85e503c043

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

@ -5,134 +5,52 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/widget_frame"> android:background="@android:color/transparent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:layout_width="wrap_content" android:id="@+id/widget_header"
android:layout_height="wrap_content" android:layout_width="200dip"
android:layout_height="39dip"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="5dp"> android:padding="3dp"
android:background="@color/widget_header_light">
<TextView <TextView
android:id="@+id/widget_title" android:id="@+id/widget_title"
android:layout_gravity="left" android:layout_width="fill_parent"
android:layout_width="163dp" android:layout_height="39dip"
android:layout_height="47dp" android:layout_gravity="left|center_vertical"
android:textColor="#ffffff" android:paddingLeft="2dip"
android:textSize="14sp" android:textColor="@color/widget_text_color_light"
android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true" android:maxLines="2"
android:gravity="center" android:layout_weight="1"
android:ellipsize="start" /> android:gravity="left|center_vertical"
android:ellipsize="end" />
<ImageButton <ImageButton
android:id="@+id/widget_button" android:id="@+id/widget_button"
android:src="@drawable/button_plus" android:layout_width="33dip"
android:layout_gravity="right" android:layout_height="39dip"
android:layout_width="35dp" android:layout_gravity="right|center_vertical"
android:layout_height="47dp" android:background="@android:color/transparent"
android:background="#00000000" /> android:src="@drawable/plus_button_dark_blue"
android:scaleType="fitCenter"/>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/widget_header_separator"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/dark_blue_theme_color"/>
<LinearLayout android:id="@+id/taskbody" <LinearLayout android:id="@+id/taskbody"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:background="@color/widget_body_light"
android:orientation="vertical"> android:orientation="vertical">
<TextView
android:id="@+id/task_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
android:text="@string/TWi_loading"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"/>
<ImageView
android:id="@+id/separator_1"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_2"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_3"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="50dip"/>
<!-- note that this separator has a huge margin so that no more tasks are displayed -->
<TextView
android:id="@+id/task_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_4"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

@ -5,132 +5,51 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/widget_frame"> android:background="@android:color/transparent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:layout_width="wrap_content" android:id="@+id/widget_header"
android:layout_height="wrap_content" android:layout_width="150dip"
android:layout_height="39dip"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="5dp"> android:padding="3dp"
android:background="@color/widget_header_light">
<TextView <TextView
android:id="@+id/widget_title" android:id="@+id/widget_title"
android:layout_gravity="left" android:layout_width="fill_parent"
android:layout_width="163dp" android:layout_height="39dip"
android:layout_height="40dp" android:layout_gravity="left|center_vertical"
android:textColor="#ffffff" android:paddingLeft="2dip"
android:textSize="14sp" android:textColor="@color/widget_text_color_light"
android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true" android:maxLines="2"
android:gravity="center" android:layout_weight="1"
android:ellipsize="start" /> android:gravity="left|center_vertical"
android:ellipsize="end" />
<ImageButton <ImageButton
android:id="@+id/widget_button" android:id="@+id/widget_button"
android:src="@drawable/button_plus" android:layout_width="33dip"
android:layout_gravity="right" android:layout_height="39dip"
android:layout_width="35dp" android:layout_gravity="right|center_vertical"
android:layout_height="47dp" android:background="@android:color/transparent"
android:background="#00000000" /> android:src="@drawable/plus_button_dark_blue"
android:scaleType="fitCenter"/>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/widget_header_separator"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/dark_blue_theme_color"/>
<LinearLayout android:id="@+id/taskbody" <LinearLayout android:id="@+id/taskbody"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:background="@color/widget_body_light"
android:orientation="vertical"> android:orientation="vertical">
<TextView
android:id="@+id/task_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
android:text="@string/TWi_loading"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"/>
<ImageView
android:id="@+id/separator_1"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_2"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_3"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
<ImageView
android:id="@+id/separator_4"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dip"/>
<TextView
android:id="@+id/task_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="170dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dip"
android:layout_marginTop="4dip"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

@ -5,136 +5,51 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/widget_frame"> android:background="@android:color/transparent">
<LinearLayout <LinearLayout
android:layout_width="fill_parent" android:id="@+id/widget_header"
android:layout_height="wrap_content" android:layout_width="150dip"
android:layout_height="39dip"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingLeft="5dp" android:padding="3dp"
android:paddingRight="5dp"> android:background="@color/widget_header_light">
<TextView <TextView
android:id="@+id/widget_title" android:id="@+id/widget_title"
android:layout_width="108dp" android:layout_width="fill_parent"
android:layout_height="50dp" android:layout_height="39dip"
android:layout_gravity="left" android:layout_gravity="left|center_vertical"
android:textColor="#ffffff" android:paddingLeft="2dip"
android:textSize="14sp" android:textColor="@color/widget_text_color_light"
android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
android:singleLine="true" android:maxLines="2"
android:gravity="center" android:layout_weight="1"
android:ellipsize="start" /> android:gravity="left|center_vertical"
android:ellipsize="end" />
<ImageButton <ImageButton
android:id="@+id/widget_button" android:id="@+id/widget_button"
android:src="@drawable/button_plus" android:layout_width="33dip"
android:layout_gravity="right" android:layout_height="39dip"
android:layout_width="35dp" android:layout_gravity="right|center_vertical"
android:layout_height="50dp" android:background="@android:color/transparent"
android:background="#00000000" /> android:src="@drawable/plus_button_dark_blue"
android:scaleType="fitCenter"/>
</LinearLayout> </LinearLayout>
<ImageView
android:id="@+id/widget_header_separator"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/dark_blue_theme_color"/>
<LinearLayout android:id="@+id/taskbody" <LinearLayout android:id="@+id/taskbody"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:background="@color/widget_body_light"
android:orientation="vertical"> android:orientation="vertical">
<TextView
android:id="@+id/task_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
android:text="@string/TWi_loading"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"/>
<ImageView
android:id="@+id/separator_1"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"/>
<TextView
android:id="@+id/task_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
<ImageView
android:id="@+id/separator_2"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"/>
<TextView
android:id="@+id/task_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
<ImageView
android:id="@+id/separator_3"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"/>
<TextView
android:id="@+id/task_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
<ImageView
android:id="@+id/separator_4"
android:layout_width="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/separator"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"/>
<TextView
android:id="@+id/task_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:singleLine="true"
android:maxWidth="115dip"
style="@style/TextAppearance.Widget"
android:layout_marginLeft="23dp"
android:layout_marginTop="4dp"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>

@ -1,20 +1,55 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget" android:id="@+id/widget"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/widget_frame"> android:background="@android:color/transparent">
<LinearLayout
android:id="@+id/widget_header"
android:layout_width="150dip"
android:layout_height="39dip"
android:orientation="horizontal"
android:padding="3dp"
android:background="@color/widget_header_light">
<TextView
android:id="@+id/widget_title"
android:layout_width="fill_parent"
android:layout_height="39dip"
android:layout_gravity="left|center_vertical"
android:paddingLeft="2dip"
android:textColor="@color/widget_text_color_light"
android:textSize="16sp"
android:textStyle="bold"
android:maxLines="2"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:ellipsize="end" />
<ImageButton <ImageButton
android:src="@drawable/button_plus" android:id="@+id/widget_button"
android:layout_gravity="right" android:layout_width="33dip"
android:layout_width="100dip" android:layout_height="39dip"
android:layout_height="50dip" android:layout_gravity="right|center_vertical"
android:background="#00000000" android:background="@android:color/transparent"
android:paddingLeft="38dip" android:src="@drawable/plus_button_dark_blue"
android:paddingTop="8dip"/> android:scaleType="fitCenter"/>
</LinearLayout>
<ImageView
android:id="@+id/widget_header_separator"
android:layout_width="fill_parent"
android:layout_height="1px"
android:background="@color/dark_blue_theme_color"/>
<LinearLayout android:id="@+id/taskbody"
android:layout_width="fill_parent"
android:layout_height="120dip"
android:background="@color/widget_body_light"
android:orientation="vertical">
<TextView <TextView
android:id="@+id/message" android:id="@+id/message"
@ -27,3 +62,4 @@
style="@style/TextAppearance.Widget" /> style="@style/TextAppearance.Widget" />
</LinearLayout> </LinearLayout>
</LinearLayout>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/text"
android:background="@android:color/transparent"
android:paddingLeft="5dip"
android:paddingTop="5dip"
android:paddingBottom="2dip"
android:paddingRight="5dip"
style="@style/TextAppearance.Widget"
android:singleLine="true">
</TextView>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="1px"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:background="#ddbababa" >
</ImageView>

@ -33,5 +33,13 @@
<color name="tablet_list_selected">#000000</color> <color name="tablet_list_selected">#000000</color>
<color name="reminder_background">#262626</color> <color name="reminder_background">#262626</color>
<color name="widget_text_color_light">#535353</color>
<color name="widget_text_color_dark">#ffffff</color>
<color name="widget_header_light">#dde0e0e0</color>
<color name="widget_header_dark">#dd000000</color>
<color name="widget_body_light">#ddffffff</color>
<color name="widget_body_dark">#dd000000</color>
</resources> </resources>

@ -395,8 +395,8 @@
<!-- ========================================================= Widget == --> <!-- ========================================================= Widget == -->
<style name="TextAppearance.Widget"> <style name="TextAppearance.Widget">
<item name="android:textSize">14sp</item> <item name="android:textSize">16sp</item>
<item name="android:textColor">@android:color/black</item> <item name="android:textColor">@color/widget_text_color_light</item>
</style> </style>
<!-- ========================================================= ViewPager == --> <!-- ========================================================= ViewPager == -->

@ -703,6 +703,9 @@ public class TaskListFragment extends ListFragment implements OnScrollListener,
R.anim.slide_right_in, R.anim.slide_right_out); R.anim.slide_right_in, R.anim.slide_right_out);
} }
getActivity().startActivity(getActivity().getIntent()); getActivity().startActivity(getActivity().getIntent());
ContextManager.getContext().startService(
new Intent(ContextManager.getContext(),
TasksWidget.WidgetUpdateService.class));
} else if (resultCode == SyncProviderPreferences.RESULT_CODE_SYNCHRONIZE) { } else if (resultCode == SyncProviderPreferences.RESULT_CODE_SYNCHRONIZE) {
Preferences.setLong(SyncActionHelper.PREF_LAST_AUTO_SYNC, 0); // Forces autosync to occur after login Preferences.setLong(SyncActionHelper.PREF_LAST_AUTO_SYNC, 0); // Forces autosync to occur after login
} }

@ -8,7 +8,7 @@ import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.graphics.Color; import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
@ -39,6 +39,7 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.AstridDependencyInjector; import com.todoroo.astrid.service.AstridDependencyInjector;
import com.todoroo.astrid.service.TaskService; import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.service.ThemeService;
import com.todoroo.astrid.utility.AstridPreferences; import com.todoroo.astrid.utility.AstridPreferences;
import com.todoroo.astrid.utility.Constants; import com.todoroo.astrid.utility.Constants;
@ -48,11 +49,6 @@ public class TasksWidget extends AppWidgetProvider {
AstridDependencyInjector.initialize(); AstridDependencyInjector.initialize();
} }
public final static int[] TEXT_IDS = { R.id.task_1, R.id.task_2,
R.id.task_3, R.id.task_4, R.id.task_5 };
public final static int[] SEPARATOR_IDS = { R.id.separator_1,
R.id.separator_2, R.id.separator_3, R.id.separator_4 };
@Override @Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) { int[] appWidgetIds) {
@ -152,18 +148,16 @@ public class TasksWidget extends AppWidgetProvider {
views = new RemoteViews(context.getPackageName(), views = new RemoteViews(context.getPackageName(),
R.layout.widget_initialized); R.layout.widget_initialized);
int[] textIDs = TEXT_IDS; applyThemeToWidget(views);
int[] separatorIDs = SEPARATOR_IDS;
int numberOfTasks = 5;
for(int i = 0; i < textIDs.length; i++) int numberOfTasks = getNumberOfTasks();
views.setTextViewText(textIDs[i], "");
TodorooCursor<Task> cursor = null; TodorooCursor<Task> cursor = null;
Filter filter = null; Filter filter = null;
try { try {
filter = getFilter(widgetId); filter = getFilter(widgetId);
views.setTextViewText(R.id.widget_title, filter.title); views.setTextViewText(R.id.widget_title, filter.title);
views.removeAllViews(R.id.taskbody);
SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(this); SharedPreferences publicPrefs = AstridPreferences.getPublicPrefs(this);
int flags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0); int flags = publicPrefs.getInt(SortHelper.PREF_SORT_FLAGS, 0);
@ -174,12 +168,14 @@ public class TasksWidget extends AppWidgetProvider {
database.openForReading(); database.openForReading();
cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE); cursor = taskService.fetchFiltered(query, null, Task.ID, Task.TITLE, Task.DUE_DATE, Task.COMPLETION_DATE);
Task task = new Task(); Task task = new Task();
for (int i = 0; i < cursor.getCount() && i < numberOfTasks; i++) { int i = 0;
for (i = 0; i < cursor.getCount() && i < numberOfTasks; i++) {
cursor.moveToPosition(i); cursor.moveToPosition(i);
task.readFromCursor(cursor); task.readFromCursor(cursor);
String textContent = ""; String textContent = "";
int textColor = Color.WHITE; int textColor = context.getResources()
.getColor(isDarkTheme() ? R.color.widget_text_color_dark : R.color.widget_text_color_light);
textContent = task.getValue(Task.TITLE); textContent = task.getValue(Task.TITLE);
@ -188,16 +184,22 @@ public class TasksWidget extends AppWidgetProvider {
else if(task.hasDueDate() && task.getValue(Task.DUE_DATE) < DateUtilities.now()) else if(task.hasDueDate() && task.getValue(Task.DUE_DATE) < DateUtilities.now())
textColor = context.getResources().getColor(R.color.task_list_overdue); textColor = context.getResources().getColor(R.color.task_list_overdue);
if(i > 0) RemoteViews row = new RemoteViews(Constants.PACKAGE, R.layout.widget_row);
views.setViewVisibility(separatorIDs[i-1], View.VISIBLE);
views.setTextViewText(textIDs[i], textContent); row.setTextViewText(R.id.text, textContent);
views.setTextColor(textIDs[i], textColor); row.setTextColor(R.id.text, textColor);
}
views.addView(R.id.taskbody, row);
for(int i = cursor.getCount() - 1; i < separatorIDs.length; i++) { RemoteViews separator = new RemoteViews(Constants.PACKAGE, R.layout.widget_separator);
if(i >= 0) views.addView(R.id.taskbody, separator);
views.setViewVisibility(separatorIDs[i], View.INVISIBLE);
} }
for (; i < numberOfTasks; i++) {
RemoteViews row = new RemoteViews(Constants.PACKAGE, R.layout.widget_row);
row.setViewVisibility(R.id.text, View.INVISIBLE);
views.addView(R.id.taskbody, row);
}
} catch (Exception e) { } catch (Exception e) {
// can happen if database is not ready // can happen if database is not ready
Log.e("WIDGET-UPDATE", "Error updating widget", e); Log.e("WIDGET-UPDATE", "Error updating widget", e);
@ -206,8 +208,6 @@ public class TasksWidget extends AppWidgetProvider {
cursor.close(); cursor.close();
} }
updateForScreenSize(views);
Intent listIntent = new Intent(context, TaskListActivity.class); Intent listIntent = new Intent(context, TaskListActivity.class);
String customIntent = Preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT String customIntent = Preferences.getStringValue(WidgetConfigActivity.PREF_CUSTOM_INTENT
+ widgetId); + widgetId);
@ -255,17 +255,58 @@ public class TasksWidget extends AppWidgetProvider {
return views; return views;
} }
private void updateForScreenSize(RemoteViews views) { private boolean isDarkTheme() {
int theme = ThemeService.getTheme();
return (theme == R.style.Theme || theme == R.style.Theme_Transparent);
}
@SuppressWarnings("nls")
private void applyThemeToWidget(RemoteViews views) {
int theme = ThemeService.getTheme();
Resources r = getResources();
int headerColor;
int titleColor;
int bodyColor;
int buttonDrawable;
int separatorColor;
if (isDarkTheme()) {
headerColor = r.getColor(R.color.widget_header_dark);
titleColor = r.getColor(R.color.widget_text_color_dark);
bodyColor = r.getColor(R.color.widget_body_dark);
buttonDrawable = R.drawable.plus_button_blue;
separatorColor = r.getColor(R.color.blue_theme_color);
} else if (theme == R.style.Theme_White) {
headerColor = r.getColor(R.color.widget_header_light);
titleColor = r.getColor(R.color.widget_text_color_light);
bodyColor = r.getColor(R.color.widget_body_light);
buttonDrawable = R.drawable.plus_button_red;
separatorColor = r.getColor(R.color.red_theme_color);
} else {
headerColor = r.getColor(R.color.widget_header_light);
titleColor = r.getColor(R.color.widget_text_color_light);
bodyColor = r.getColor(R.color.widget_body_light);
buttonDrawable = R.drawable.plus_button_dark_blue;
separatorColor = r.getColor(R.color.dark_blue_theme_color);
}
views.setInt(R.id.widget_header, "setBackgroundColor", headerColor);
views.setTextColor(R.id.widget_title, titleColor);
views.setInt(R.id.taskbody, "setBackgroundColor", bodyColor);
views.setInt(R.id.widget_button, "setImageResource", buttonDrawable);
views.setInt(R.id.widget_header_separator, "setBackgroundColor", separatorColor);
}
private int getNumberOfTasks() {
Display display = ((WindowManager) this.getSystemService( Display display = ((WindowManager) this.getSystemService(
Context.WINDOW_SERVICE)).getDefaultDisplay(); Context.WINDOW_SERVICE)).getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics(); DisplayMetrics metrics = new DisplayMetrics();
display.getMetrics(metrics); display.getMetrics(metrics);
if(metrics.density <= 0.75) { if(metrics.density <= 0.75)
views.setViewVisibility(SEPARATOR_IDS[3], View.INVISIBLE); return 4;
views.setViewVisibility(TEXT_IDS[4], View.INVISIBLE); else
} return 5;
} }
private Filter getFilter(int widgetId) { private Filter getFilter(int widgetId) {

Loading…
Cancel
Save