package org.droidplanner.android.fragments.account.editor.tool;
import android.content.Context;
import android.view.View;
import org.droidplanner.android.R;
import org.droidplanner.android.dialogs.SupportYesNoDialog;
import org.droidplanner.android.proxy.mission.item.MissionItemProxy;
import java.util.List;
/**
* Created by Fredia Huya-Kouadio on 8/25/15.
*/
class TrashToolsImpl extends EditorToolsImpl implements View.OnClickListener {
private static final String CLEAR_SELECTED_DIALOG_TAG = "clearSelectedWaypoints";
private static final String CLEAR_MISSION_DIALOG_TAG = "clearMission";
TrashToolsImpl(EditorToolsFragment fragment) {
super(fragment);
}
@Override
public void onListItemClick(MissionItemProxy item) {
if (missionProxy == null)
return;
missionProxy.selection.clearSelection();
missionProxy.removeItem(item);
if (missionProxy.getItems().size() <= 0) {
editorToolsFragment.setTool(EditorToolsFragment.EditorTools.NONE);
}
}
@Override
public void onSelectionUpdate(List<MissionItemProxy> selected) {
super.onSelectionUpdate(selected);
editorToolsFragment.clearSelected.setEnabled(!selected.isEmpty());
}
@Override
public EditorToolsFragment.EditorTools getEditorTools() {
return EditorToolsFragment.EditorTools.TRASH;
}
@Override
public void setup() {
EditorToolsFragment.EditorToolListener listener = editorToolsFragment.listener;
if (listener != null) {
listener.enableGestureDetection(false);
}
if (missionProxy != null) {
List<MissionItemProxy> selected = missionProxy.selection.getSelected();
editorToolsFragment.clearSelected.setEnabled(!selected.isEmpty());
final List<MissionItemProxy> missionItems = missionProxy.getItems();
editorToolsFragment.clearMission.setEnabled(!missionItems.isEmpty());
}
}
private void doClearMissionConfirmation() {
if (missionProxy == null || missionProxy.getItems().isEmpty())
return;
final Context context = editorToolsFragment.getContext();
SupportYesNoDialog ynd = SupportYesNoDialog.newInstance(context, CLEAR_MISSION_DIALOG_TAG,
context.getString(R.string
.dlg_clear_mission_title),
context.getString(R.string.dlg_clear_mission_confirm));
if (ynd != null) {
ynd.show(editorToolsFragment.getChildFragmentManager(), CLEAR_MISSION_DIALOG_TAG);
}
}
private void deleteSelectedItems() {
final Context context = editorToolsFragment.getContext();
SupportYesNoDialog ynd = SupportYesNoDialog.newInstance(context, CLEAR_SELECTED_DIALOG_TAG,
context.getString(R.string.delete_selected_waypoints_title),
context.getString(R.string.delete_selected_waypoints_confirm));
if (ynd != null) {
ynd.show(editorToolsFragment.getChildFragmentManager(), CLEAR_SELECTED_DIALOG_TAG);
}
}
@Override
public void onDialogYes(String dialogTag) {
switch (dialogTag) {
case CLEAR_SELECTED_DIALOG_TAG:
if (missionProxy != null) {
missionProxy.removeSelection(missionProxy.selection);
if (missionProxy.selection.getSelected().isEmpty())
editorToolsFragment.setTool(EditorToolsFragment.EditorTools.NONE);
}
break;
case CLEAR_MISSION_DIALOG_TAG:
if (missionProxy != null) {
missionProxy.clear();
editorToolsFragment.setTool(EditorToolsFragment.EditorTools.NONE);
}
break;
}
}
@Override
public void onDialogNo(String dialogTag) {
switch (dialogTag) {
case CLEAR_SELECTED_DIALOG_TAG:
if (missionProxy != null)
missionProxy.selection.clearSelection();
break;
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.clear_mission_button:
doClearMissionConfirmation();
break;
case R.id.clear_selected_button:
deleteSelectedItems();
break;
}
}
}