Add 'New task' quick settings tile (Android 7+)

pull/996/head
Alex Baker 6 years ago
parent 32f4b1040d
commit 1fedbc3bee

@ -414,6 +414,17 @@
android:label="@string/app_name" android:label="@string/app_name"
android:name=".dashclock.DashClockSettings"/> android:name=".dashclock.DashClockSettings"/>
<service
android:name=".widget.TileService"
android:icon="@drawable/ic_check_black_24dp"
android:label="@string/action_new_task"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action
android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
</service>
<!-- Tasker/Locale --> <!-- Tasker/Locale -->
<activity <activity

@ -14,6 +14,13 @@ public class TaskIntents {
return getEditTaskIntent(context, null, task); return getEditTaskIntent(context, null, task);
} }
public static Intent getNewTaskIntent(Context context) {
Intent intent = TaskIntents.getTaskListIntent(context, null);
intent.putExtra(MainActivity.CREATE_TASK, 0L);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
return intent;
}
public static Intent getEditTaskIntent(Context context, @Nullable Filter filter, Task task) { public static Intent getEditTaskIntent(Context context, @Nullable Filter filter, Task task) {
Intent intent = getTaskListIntent(context, filter); Intent intent = getTaskListIntent(context, filter);
intent.putExtra(MainActivity.OPEN_TASK, task); intent.putExtra(MainActivity.OPEN_TASK, task);

@ -13,7 +13,6 @@ import android.view.View;
import android.widget.RemoteViews; import android.widget.RemoteViews;
import androidx.annotation.ColorInt; import androidx.annotation.ColorInt;
import androidx.core.graphics.ColorUtils; import androidx.core.graphics.ColorUtils;
import com.todoroo.astrid.activity.MainActivity;
import com.todoroo.astrid.api.Filter; import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import javax.inject.Inject; import javax.inject.Inject;
@ -154,9 +153,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
} }
private PendingIntent getNewTaskIntent(Context context, Filter filter, int widgetId) { private PendingIntent getNewTaskIntent(Context context, Filter filter, int widgetId) {
Intent intent = TaskIntents.getTaskListIntent(context, filter); Intent intent = TaskIntents.getNewTaskIntent(context);
intent.putExtra(MainActivity.CREATE_TASK, 0L);
intent.setFlags(flags);
intent.setAction("new_task"); intent.setAction("new_task");
return PendingIntent.getActivity(context, widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT); return PendingIntent.getActivity(context, widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
} }

@ -0,0 +1,11 @@
package org.tasks.widget
import android.os.Build.VERSION_CODES
import android.service.quicksettings.TileService
import androidx.annotation.RequiresApi
import org.tasks.intents.TaskIntents
@RequiresApi(api = VERSION_CODES.N)
class TileService : TileService() {
override fun onClick() = startActivityAndCollapse(TaskIntents.getNewTaskIntent(applicationContext))
}
Loading…
Cancel
Save