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: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 -->
<activity

@ -14,6 +14,13 @@ public class TaskIntents {
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) {
Intent intent = getTaskListIntent(context, filter);
intent.putExtra(MainActivity.OPEN_TASK, task);

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