Toggle subtasks from widget

pull/996/head
Alex Baker 6 years ago
parent ee05a35fe9
commit 8368c3b3d4

@ -225,6 +225,32 @@ class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
row.setViewVisibility(R.id.divider, View.GONE);
}
if (taskContainer.hasChildren()) {
Intent toggleSubtasks = new Intent(WidgetClickActivity.TOGGLE_SUBTASKS);
toggleSubtasks.putExtra(WidgetClickActivity.EXTRA_TASK, task);
toggleSubtasks.putExtra(WidgetClickActivity.EXTRA_COLLAPSED, !taskContainer.isCollapsed());
row.setOnClickFillInIntent(R.id.subtask_button, toggleSubtasks);
row.setInt(
R.id.subtask_button,
"setBackgroundResource",
theme == 0 ? R.drawable.widget_chip_light : R.drawable.widget_chip_dark);
row.setTextColor(R.id.subtask_text, textColorSecondary);
row.setTextViewText(
R.id.subtask_text,
context
.getResources()
.getQuantityString(
R.plurals.subtask_count, taskContainer.children, taskContainer.children));
row.setImageViewResource(
R.id.subtask_icon,
taskContainer.isCollapsed()
? R.drawable.ic_keyboard_arrow_up_black_18dp
: R.drawable.ic_keyboard_arrow_down_black_18dp);
row.setInt(R.id.subtask_icon, "setColorFilter", textColorSecondary);
row.setViewVisibility(R.id.subtask_button, View.VISIBLE);
} else {
row.setViewVisibility(R.id.subtask_button, View.GONE);
}
row.setInt(
R.id.widget_row, "setLayoutDirection", Locale.getInstance(context).getDirectionality());

@ -3,9 +3,11 @@ package org.tasks.widget;
import android.content.Intent;
import android.os.Bundle;
import com.google.common.base.Strings;
import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCompleter;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
@ -14,10 +16,14 @@ public class WidgetClickActivity extends InjectingAppCompatActivity {
public static final String COMPLETE_TASK = "COMPLETE_TASK";
public static final String EDIT_TASK = "EDIT_TASK";
public static final String TOGGLE_SUBTASKS = "TOGGLE_SUBTASKS";
public static final String EXTRA_FILTER = "extra_filter";
public static final String EXTRA_TASK = "extra_task"; // $NON-NLS-1$
public static final String EXTRA_COLLAPSED = "extra_collapsed";
@Inject TaskCompleter taskCompleter;
@Inject TaskDao taskDao;
@Inject LocalBroadcastManager localBroadcastManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -44,6 +50,10 @@ public class WidgetClickActivity extends InjectingAppCompatActivity {
intent.getParcelableExtra(EXTRA_FILTER),
intent.getParcelableExtra(EXTRA_TASK)));
break;
case TOGGLE_SUBTASKS:
taskDao.setCollapsed(task.getId(), intent.getBooleanExtra(EXTRA_COLLAPSED, false));
localBroadcastManager.broadcastRefresh();
break;
}
finish();

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
<stroke android:width="@dimen/chip_stroke" android:color="@color/white_60" />
</shape>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="12dp" />
<stroke android:width="@dimen/chip_stroke" android:color="@color/black_60" />
</shape>

@ -13,7 +13,8 @@
android:id="@+id/start_padding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"/>
android:layout_alignParentStart="true"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/widget_complete_box"
@ -30,7 +31,8 @@
android:layout_alignStart="@id/widget_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/widget_padding"/>
android:paddingTop="@dimen/widget_padding"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/widget_due_end"
@ -69,6 +71,7 @@
android:layout_height="wrap_content"
android:layout_below="@id/widget_text"
android:layout_alignStart="@id/widget_text"
android:paddingTop="2dp"
android:paddingStart="0dp"
android:paddingEnd="@dimen/widget_padding"
android:maxLines="2"
@ -90,19 +93,58 @@
android:textSize="14sp"
tools:text="Tomorrow" />
<LinearLayout
android:id="@+id/subtask_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/widget_due_bottom"
android:layout_marginTop="2dp"
android:layout_alignStart="@id/widget_text"
android:background="@drawable/widget_chip_light"
android:orientation="horizontal"
tools:background="@drawable/widget_chip_light">
<ImageView
android:id="@+id/subtask_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="5dp"
android:paddingEnd="0dp"
android:layout_gravity="center_vertical"
tools:src="@drawable/ic_keyboard_arrow_up_black_18dp"
tools:tint="@color/icon_tint_light_alpha" />
<TextView
android:id="@+id/subtask_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textSize="14sp"
android:maxLines="1"
android:ellipsize="end"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:paddingStart="0dp"
android:paddingEnd="8dp"
tools:text="4 subtasks"/>
</LinearLayout>
<ImageView
android:id="@+id/bottom_padding"
android:layout_below="@id/subtask_button"
android:layout_alignStart="@id/widget_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/widget_padding" />
android:paddingTop="@dimen/widget_padding"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/divider"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:layout_height=".5dp" />
android:layout_height=".5dp"
tools:ignore="ContentDescription" />
</RelativeLayout>
Loading…
Cancel
Save