mirror of https://github.com/tasks/tasks
Handle widget clicks in activity
Previous broadcast solution violated Q background activity launch restrictionspull/795/head
parent
7abea7ff9e
commit
83dc575ba9
@ -0,0 +1,56 @@
|
|||||||
|
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 javax.inject.Inject;
|
||||||
|
import org.tasks.injection.ActivityComponent;
|
||||||
|
import org.tasks.injection.InjectingAppCompatActivity;
|
||||||
|
import org.tasks.intents.TaskIntents;
|
||||||
|
|
||||||
|
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 EXTRA_FILTER = "extra_filter";
|
||||||
|
public static final String EXTRA_TASK = "extra_task"; // $NON-NLS-1$
|
||||||
|
|
||||||
|
@Inject TaskDao taskDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
Intent intent = getIntent();
|
||||||
|
|
||||||
|
String action = intent.getAction();
|
||||||
|
|
||||||
|
if (Strings.isNullOrEmpty(action)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Task task = intent.getParcelableExtra(EXTRA_TASK);
|
||||||
|
|
||||||
|
switch (action) {
|
||||||
|
case COMPLETE_TASK:
|
||||||
|
taskDao.setComplete(task, !task.isCompleted());
|
||||||
|
break;
|
||||||
|
case EDIT_TASK:
|
||||||
|
startActivity(
|
||||||
|
TaskIntents.getEditTaskIntent(
|
||||||
|
this,
|
||||||
|
intent.getParcelableExtra(EXTRA_FILTER),
|
||||||
|
intent.getParcelableExtra(EXTRA_TASK)));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void inject(ActivityComponent component) {
|
||||||
|
component.inject(this);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue