Convert WidgetClickActivity to Kotlin

pull/1047/head
Alex Baker 4 years ago
parent 012663eebe
commit 9d91346ddf

@ -1,87 +0,0 @@
package org.tasks.widget;
import static org.tasks.Strings.isNullOrEmpty;
import android.content.Intent;
import android.os.Bundle;
import androidx.fragment.app.FragmentManager;
import com.todoroo.astrid.dao.TaskDaoBlocking;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskCompleter;
import dagger.hilt.android.AndroidEntryPoint;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager;
import org.tasks.R;
import org.tasks.dialogs.DateTimePicker;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.Preferences;
@AndroidEntryPoint
public class WidgetClickActivity extends InjectingAppCompatActivity
implements DateTimePicker.OnDismissHandler {
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 RESCHEDULE_TASK = "RESCHEDULE_TASK";
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";
private static final String FRAG_TAG_DATE_TIME_PICKER = "frag_tag_date_time_picker";
@Inject TaskCompleter taskCompleter;
@Inject TaskDaoBlocking taskDao;
@Inject LocalBroadcastManager localBroadcastManager;
@Inject Preferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String action = intent.getAction();
if (isNullOrEmpty(action)) {
return;
}
Task task = intent.getParcelableExtra(EXTRA_TASK);
switch (action) {
case COMPLETE_TASK:
taskCompleter.setComplete(task, !task.isCompleted());
finish();
break;
case EDIT_TASK:
startActivity(
TaskIntents.getEditTaskIntent(
this,
intent.getParcelableExtra(EXTRA_FILTER),
intent.getParcelableExtra(EXTRA_TASK)));
finish();
break;
case TOGGLE_SUBTASKS:
taskDao.setCollapsed(task.getId(), intent.getBooleanExtra(EXTRA_COLLAPSED, false));
localBroadcastManager.broadcastRefresh();
finish();
break;
case RESCHEDULE_TASK:
FragmentManager fragmentManager = getSupportFragmentManager();
if (fragmentManager.findFragmentByTag(FRAG_TAG_DATE_TIME_PICKER) == null) {
DateTimePicker.Companion.newDateTimePicker(
task.getId(),
task.getDueDate(),
preferences.getBoolean(R.string.p_auto_dismiss_datetime_widget, false))
.show(fragmentManager, FRAG_TAG_DATE_TIME_PICKER);
}
break;
}
}
@Override
public void onDismiss() {
finish();
}
}

@ -0,0 +1,82 @@
package org.tasks.widget
import android.os.Bundle
import androidx.lifecycle.lifecycleScope
import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task
import com.todoroo.astrid.service.TaskCompleter
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.launch
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.dialogs.DateTimePicker.Companion.newDateTimePicker
import org.tasks.dialogs.DateTimePicker.OnDismissHandler
import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.intents.TaskIntents
import org.tasks.preferences.Preferences
import javax.inject.Inject
@AndroidEntryPoint
class WidgetClickActivity : InjectingAppCompatActivity(), OnDismissHandler {
@Inject lateinit var taskCompleter: TaskCompleter
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var preferences: Preferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val intent = intent
val action = intent.action
if (action.isNullOrEmpty()) {
return
}
val task: Task = intent.getParcelableExtra(EXTRA_TASK)!!
when (action) {
COMPLETE_TASK -> {
taskCompleter.setComplete(task, !task.isCompleted)
finish()
}
EDIT_TASK -> {
startActivity(
TaskIntents.getEditTaskIntent(
this,
intent.getParcelableExtra(EXTRA_FILTER),
intent.getParcelableExtra(EXTRA_TASK)))
finish()
}
TOGGLE_SUBTASKS -> {
lifecycleScope.launch(NonCancellable) {
taskDao.setCollapsed(task.id, intent.getBooleanExtra(EXTRA_COLLAPSED, false))
localBroadcastManager.broadcastRefresh()
}
finish()
}
RESCHEDULE_TASK -> {
val fragmentManager = supportFragmentManager
if (fragmentManager.findFragmentByTag(FRAG_TAG_DATE_TIME_PICKER) == null) {
newDateTimePicker(
task.id,
task.dueDate,
preferences.getBoolean(R.string.p_auto_dismiss_datetime_widget, false))
.show(fragmentManager, FRAG_TAG_DATE_TIME_PICKER)
}
}
}
}
override fun onDismiss() {
finish()
}
companion object {
const val COMPLETE_TASK = "COMPLETE_TASK"
const val EDIT_TASK = "EDIT_TASK"
const val TOGGLE_SUBTASKS = "TOGGLE_SUBTASKS"
const val RESCHEDULE_TASK = "RESCHEDULE_TASK"
const val EXTRA_FILTER = "extra_filter"
const val EXTRA_TASK = "extra_task" // $NON-NLS-1$
const val EXTRA_COLLAPSED = "extra_collapsed"
private const val FRAG_TAG_DATE_TIME_PICKER = "frag_tag_date_time_picker"
}
}
Loading…
Cancel
Save