Convert sort activity to dialog

pull/384/head
Alex Baker 10 years ago
parent b8110a9963
commit 77116bfb23

@ -111,10 +111,6 @@
android:theme="@style/TranslucentDialog"
android:taskAffinity="" />
<activity
android:name=".activities.SortActivity"
android:theme="@style/TranslucentDialog" />
<activity
android:name=".activities.FilterSelectionActivity"
android:exported="true"

@ -40,12 +40,13 @@ import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.timers.TimerControlSet;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.dialogs.SortDialog;
import org.tasks.fragments.CommentBarFragment;
import org.tasks.fragments.TaskEditControlSetFragmentManager;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.injection.ThemedInjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
@ -72,7 +73,8 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
TimerControlSet.TimerControlSetCallback,
RepeatControlSet.RepeatChangedListener,
TaskEditFragment.TaskEditFragmentCallbackHandler,
CommentBarFragment.CommentBarFragmentCallback {
CommentBarFragment.CommentBarFragmentCallback,
SortDialog.SortDialogCallback {
@Inject Preferences preferences;
@Inject StartupService startupService;
@ -84,6 +86,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
@Inject GtasksListService gtasksListService;
@Inject TagDataDao tagDataDao;
@Inject ThemeApplicator themeApplicator;
@Inject Broadcaster broadcaster;
public static final int REQUEST_UPGRADE = 505;
@ -469,4 +472,14 @@ public class TaskListActivity extends InjectingAppCompatActivity implements
taskEditFragment.addComment(message, actionCode, picture);
}
}
@Override
public void sortChanged() {
broadcaster.refresh();
reloadCurrentFilter();
}
void reloadCurrentFilter() {
onFilterItemClicked(getTaskListFragment().filter);
}
}

@ -72,7 +72,7 @@ import com.todoroo.astrid.voice.VoiceInputAssistant;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.activities.SortActivity;
import org.tasks.dialogs.SortDialog;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ForActivity;
import org.tasks.injection.FragmentComponent;
@ -100,7 +100,9 @@ import static com.todoroo.astrid.voice.VoiceInputAssistant.voiceInputAvailable;
* @author Tim Su <tim@todoroo.com>
*
*/
public class TaskListFragment extends InjectingListFragment implements SwipeRefreshLayout.OnRefreshListener, Toolbar.OnMenuItemClickListener {
public class TaskListFragment extends InjectingListFragment implements
SwipeRefreshLayout.OnRefreshListener,
Toolbar.OnMenuItemClickListener {
public static TaskListFragment newTaskListFragment(Filter filter) {
TaskListFragment fragment = new TaskListFragment();
@ -109,12 +111,12 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
}
private static final String EXTRA_FILTER = "extra_filter";
private static final String FRAG_TAG_SORT_DIALOG = "frag_tag_sort_dialog";
public static final String TAG_TASKLIST_FRAGMENT = "tasklist_fragment"; //$NON-NLS-1$
public static final int VOICE_RECOGNITION_REQUEST_CODE = 1234;
private static final int REQUEST_EDIT_FILTER = 11544;
private static final int REQUEST_SORT = 11545;
// --- activities
@ -337,9 +339,7 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
voiceInputAssistant.startVoiceRecognitionActivity(R.string.voice_create_prompt);
return true;
case R.id.menu_sort:
startActivityForResult(new Intent(getActivity(), SortActivity.class) {{
putExtra(SortActivity.EXTRA_MANUAL_ENABLED, hasDraggableOption());
}}, REQUEST_SORT);
SortDialog.newSortDialog(hasDraggableOption()).show(getFragmentManager(), FRAG_TAG_SORT_DIALOG);
return true;
case R.id.menu_show_hidden:
item.setChecked(!item.isChecked());
@ -741,11 +741,6 @@ public class TaskListFragment extends InjectingListFragment implements SwipeRefr
((TaskListActivity) getActivity()).refreshNavigationDrawer();
broadcaster.refresh();
}
} else if (requestCode == REQUEST_SORT) {
if (resultCode == Activity.RESULT_OK) {
broadcaster.refresh();
((TaskListActivity) getActivity()).onFilterItemClicked(filter);
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}

@ -1,5 +1,7 @@
package org.tasks.activities;
package org.tasks.dialogs;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
@ -9,9 +11,8 @@ import android.widget.Button;
import com.todoroo.astrid.core.SortHelper;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.ActivityComponent;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.injection.DialogFragmentComponent;
import org.tasks.injection.InjectingDialogFragment;
import org.tasks.preferences.Preferences;
import java.util.ArrayList;
@ -23,22 +24,39 @@ import timber.log.Timber;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastLollipop;
public class SortActivity extends InjectingAppCompatActivity {
public class SortDialog extends InjectingDialogFragment {
public static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled";
public static SortDialog newSortDialog(boolean manualEnabled) {
SortDialog sortDialog = new SortDialog();
sortDialog.manualEnabled = manualEnabled;
return sortDialog;
}
public interface SortDialogCallback {
void sortChanged();
}
private static final String EXTRA_MANUAL_ENABLED = "extra_manual_enabled";
private static final String EXTRA_SELECTED_INDEX = "extra_selected_index";
@Inject Preferences preferences;
@Inject DialogBuilder dialogBuilder;
private boolean manualEnabled;
private AlertDialog alertDialog;
private int selectedIndex;
private AlertDialog alertDialog;
private SortDialogCallback callback;
@Override
protected void onCreate(Bundle savedInstanceState) {
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
manualEnabled = getIntent().getBooleanExtra(EXTRA_MANUAL_ENABLED, false);
if (savedInstanceState != null) {
manualEnabled = savedInstanceState.getBoolean(EXTRA_MANUAL_ENABLED);
selectedIndex = savedInstanceState.getInt(EXTRA_SELECTED_INDEX);
} else {
selectedIndex = getIndex(preferences.getSortMode());
}
List<String> items = new ArrayList<>();
@ -52,7 +70,6 @@ public class SortActivity extends InjectingAppCompatActivity {
items.add(getString(R.string.SSD_sort_alpha));
items.add(getString(R.string.SSD_sort_modified));
selectedIndex = getIndex(preferences.getSortMode());
if (manualEnabled) {
if (preferences.getBoolean(R.string.p_manual_sort, false)) {
selectedIndex = 0;
@ -81,26 +98,27 @@ public class SortActivity extends InjectingAppCompatActivity {
setSelection(true);
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
})
.setNegativeButton(android.R.string.cancel, null)
.show();
enableReverse();
return alertDialog;
}
@Override
public void inject(ActivityComponent component) {
component.inject(this);
public void onAttach(Activity activity) {
super.onAttach(activity);
callback = (SortDialogCallback) activity;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean(EXTRA_MANUAL_ENABLED, manualEnabled);
outState.putInt(EXTRA_SELECTED_INDEX, selectedIndex);
}
private void enableReverse() {
@ -125,9 +143,7 @@ public class SortActivity extends InjectingAppCompatActivity {
preferences.setSortMode(getSortMode(manualEnabled ? selectedIndex : selectedIndex + 1));
}
setResult(RESULT_OK);
finish();
callback.sortChanged();
}
private int getIndex(int sortMode) {
@ -165,4 +181,9 @@ public class SortActivity extends InjectingAppCompatActivity {
Timber.e("Invalid sort mode: %s", index);
return SortHelper.SORT_ALPHA;
}
@Override
protected void inject(DialogFragmentComponent component) {
component.inject(this);
}
}

@ -3,7 +3,6 @@ package org.tasks.injection;
import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.BeastModePreferences;
import org.tasks.widget.ShortcutConfigActivity;
import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.core.CustomFilterActivity;
@ -13,7 +12,6 @@ import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.gcal.CalendarReminderActivity;
import com.todoroo.astrid.reminders.ReminderPreferences;
import com.todoroo.astrid.service.UpgradeActivity;
import org.tasks.widget.WidgetConfigActivity;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.CalendarSelectionActivity;
@ -30,7 +28,6 @@ import org.tasks.activities.FilterSelectionActivity;
import org.tasks.activities.ImportTaskActivity;
import org.tasks.activities.PurgeDeletedActivity;
import org.tasks.activities.ResetPreferencesActivity;
import org.tasks.activities.SortActivity;
import org.tasks.activities.TimePickerActivity;
import org.tasks.files.FileExplore;
import org.tasks.preferences.AppearancePreferences;
@ -43,6 +40,8 @@ import org.tasks.reminders.MissedCallActivity;
import org.tasks.reminders.NotificationActivity;
import org.tasks.reminders.SnoozeActivity;
import org.tasks.voice.VoiceCommandActivity;
import org.tasks.widget.ShortcutConfigActivity;
import org.tasks.widget.WidgetConfigActivity;
public interface BaseActivityComponent {
@ -80,8 +79,6 @@ public interface BaseActivityComponent {
void inject(CalendarSelectionActivity calendarSelectionActivity);
void inject(SortActivity sortActivity);
void inject(DeleteAllCalendarEventsActivity deleteAllCalendarEventsActivity);
void inject(DeleteCompletedEventsActivity deleteCompletedEventsActivity);

@ -1,5 +1,6 @@
package org.tasks.injection;
import org.tasks.dialogs.SortDialog;
import org.tasks.dialogs.ThemePickerDialog;
import org.tasks.widget.WidgetConfigDialog;
@ -29,4 +30,6 @@ public interface DialogFragmentComponent {
void inject(WidgetConfigDialog widgetConfigDialog);
void inject(ThemePickerDialog themePickerDialog);
void inject(SortDialog sortDialog);
}

Loading…
Cancel
Save