Add a delete button to TrackSegmentFragment
This commit is contained in:
parent
c1dcd503c8
commit
6188343341
3 changed files with 43 additions and 18 deletions
|
@ -84,8 +84,8 @@ import net.osmand.plus.monitoring.OsmandMonitoringPlugin;
|
|||
import net.osmand.plus.osmedit.OsmEditingPlugin;
|
||||
import net.osmand.plus.osmedit.oauth.OsmOAuthHelper.OsmAuthorizationListener;
|
||||
import net.osmand.plus.settings.backend.OsmandSettings;
|
||||
import net.osmand.plus.widgets.popup.PopUpMenuItem;
|
||||
import net.osmand.plus.widgets.popup.PopUpMenuHelper;
|
||||
import net.osmand.plus.widgets.popup.PopUpMenuItem;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.DateFormat;
|
||||
|
@ -105,6 +105,7 @@ import java.util.regex.Pattern;
|
|||
|
||||
import static net.osmand.plus.GpxSelectionHelper.CURRENT_TRACK;
|
||||
import static net.osmand.plus.myplaces.FavoritesActivity.GPX_TAB;
|
||||
import static net.osmand.plus.myplaces.FavoritesActivity.OPEN_GPX_REQUEST;
|
||||
import static net.osmand.plus.myplaces.FavoritesActivity.TAB_ID;
|
||||
import static net.osmand.util.Algorithms.capitalizeFirstLetter;
|
||||
import static net.osmand.util.Algorithms.collectDirs;
|
||||
|
@ -426,7 +427,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
|
|||
newIntent.putExtra(TrackActivity.TRACK_FILE_NAME, f.getAbsolutePath());
|
||||
}
|
||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
a.startActivity(newIntent);
|
||||
a.startActivityForResult(newIntent, OPEN_GPX_REQUEST);
|
||||
}
|
||||
|
||||
public void reloadTracks() {
|
||||
|
@ -434,6 +435,10 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
|
|||
asyncLoader.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, getActivity());
|
||||
}
|
||||
|
||||
public void resetTracksLoader() {
|
||||
asyncLoader = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
|
||||
menu.clear();
|
||||
|
@ -1711,20 +1716,7 @@ public class AvailableGPXFragment extends OsmandExpandableListFragment implement
|
|||
GpxInfo item = allGpxAdapter.getChild(groupPosition, childPosition);
|
||||
|
||||
if (!selectionMode) {
|
||||
Intent newIntent = new Intent(getActivity(), getMyApplication().getAppCustomization().getTrackActivity());
|
||||
// causes wrong position caching: newIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
|
||||
if (item.currentlyRecordingTrack) {
|
||||
newIntent.putExtra(TrackActivity.CURRENT_RECORDING, true);
|
||||
} else {
|
||||
newIntent.putExtra(TrackActivity.TRACK_FILE_NAME, item.file.getAbsolutePath());
|
||||
}
|
||||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(newIntent);
|
||||
// item.setExpanded(!item.isExpanded());
|
||||
// if (item.isExpanded()) {
|
||||
// descriptionLoader = new LoadLocalIndexDescriptionTask();
|
||||
// descriptionLoader.execute(item);
|
||||
// }
|
||||
openTrack(getActivity(), item.file);
|
||||
} else {
|
||||
if (!selectedItems.contains(item)) {
|
||||
selectedItems.add(item);
|
||||
|
|
|
@ -42,6 +42,8 @@ import java.lang.ref.WeakReference;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static net.osmand.plus.myplaces.TrackSegmentFragment.TRACK_DELETED_KEY;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -50,6 +52,7 @@ public class FavoritesActivity extends TabActivity {
|
|||
|
||||
private static final int OPEN_GPX_DOCUMENT_REQUEST = 1006;
|
||||
private static final int IMPORT_FAVOURITES_REQUEST = 1007;
|
||||
protected static final int OPEN_GPX_REQUEST = 1008;
|
||||
|
||||
public static final String TAB_ID = "selected_tab_id";
|
||||
|
||||
|
@ -152,6 +155,13 @@ public class FavoritesActivity extends TabActivity {
|
|||
if (data != null && data.getData() != null) {
|
||||
importHelper.handleGpxOrFavouritesImport(data.getData());
|
||||
}
|
||||
} else if (requestCode == OPEN_GPX_REQUEST && resultCode == Activity.RESULT_OK) {
|
||||
if (data != null && data.getBooleanExtra(TRACK_DELETED_KEY, false)) {
|
||||
AvailableGPXFragment gpxFragment = getGpxFragment();
|
||||
if (gpxFragment != null) {
|
||||
gpxFragment.resetTracksLoader();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
package net.osmand.plus.myplaces;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.AsyncTask;
|
||||
|
@ -23,6 +25,7 @@ import androidx.fragment.app.FragmentManager;
|
|||
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
|
||||
|
||||
import net.osmand.AndroidUtils;
|
||||
import net.osmand.FileUtils;
|
||||
import net.osmand.GPXUtilities.GPXFile;
|
||||
import net.osmand.GPXUtilities.Track;
|
||||
import net.osmand.GPXUtilities.TrkSegment;
|
||||
|
@ -55,6 +58,8 @@ import java.util.List;
|
|||
|
||||
public class TrackSegmentFragment extends OsmAndListFragment implements TrackBitmapDrawerListener, SegmentActionsListener {
|
||||
|
||||
public static final String TRACK_DELETED_KEY = "track_deleted_key";
|
||||
|
||||
private OsmandApplication app;
|
||||
private TrackDisplayHelper displayHelper;
|
||||
private TrackActivityFragmentAdapter fragmentAdapter;
|
||||
|
@ -134,8 +139,26 @@ public class TrackSegmentFragment extends OsmAndListFragment implements TrackBit
|
|||
}
|
||||
});
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
}
|
||||
if (gpxFile.showCurrentTrack) {
|
||||
MenuItem deleteItem = menu.add(R.string.shared_string_delete)
|
||||
.setIcon(app.getUIUtilities().getIcon((R.drawable.ic_action_delete_dark)))
|
||||
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
public boolean onMenuItemClick(MenuItem item) {
|
||||
GPXFile gpx = displayHelper.getGpx();
|
||||
FragmentActivity activity = getActivity();
|
||||
if (activity != null && gpx != null) {
|
||||
if (FileUtils.removeGpxFile(app, new File((gpx.path)))) {
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(TRACK_DELETED_KEY, true);
|
||||
activity.setResult(Activity.RESULT_OK, intent);
|
||||
activity.onBackPressed();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
});
|
||||
deleteItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
|
||||
} else if (gpxFile.showCurrentTrack) {
|
||||
MenuItem item = menu.add(R.string.shared_string_refresh).setIcon(R.drawable.ic_action_refresh_dark)
|
||||
.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue