Fix several crashes
This commit is contained in:
parent
45539461c2
commit
5f98962573
7 changed files with 19 additions and 12 deletions
|
@ -8,10 +8,10 @@ import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import net.osmand.GPXUtilities;
|
import net.osmand.GPXUtilities;
|
||||||
import net.osmand.GPXUtilities.GPXFile;
|
import net.osmand.GPXUtilities.GPXFile;
|
||||||
import net.osmand.plus.track.GpxSplitType;
|
|
||||||
import net.osmand.GPXUtilities.GPXTrackAnalysis;
|
import net.osmand.GPXUtilities.GPXTrackAnalysis;
|
||||||
import net.osmand.plus.GPXDatabase.GpxDataItem;
|
import net.osmand.plus.GPXDatabase.GpxDataItem;
|
||||||
import net.osmand.plus.api.SQLiteAPI.SQLiteConnection;
|
import net.osmand.plus.api.SQLiteAPI.SQLiteConnection;
|
||||||
|
import net.osmand.plus.track.GpxSplitType;
|
||||||
import net.osmand.plus.track.GradientScaleType;
|
import net.osmand.plus.track.GradientScaleType;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -238,7 +238,7 @@ public class GpxDbHelper {
|
||||||
gpxFile = readingItems.poll();
|
gpxFile = readingItems.poll();
|
||||||
while (gpxFile != null && !isCancelled()) {
|
while (gpxFile != null && !isCancelled()) {
|
||||||
GpxDataItem item = readingItemsMap.remove(gpxFile);
|
GpxDataItem item = readingItemsMap.remove(gpxFile);
|
||||||
if (item.getFile() == null) {
|
if (item != null && item.getFile() == null) {
|
||||||
item = db.getItem(gpxFile, conn);
|
item = db.getItem(gpxFile, conn);
|
||||||
}
|
}
|
||||||
if (isAnalyseNeeded(gpxFile, item)) {
|
if (isAnalyseNeeded(gpxFile, item)) {
|
||||||
|
|
|
@ -257,7 +257,7 @@ public class IntentHelper {
|
||||||
if (intent.hasExtra(TrackMenuFragment.OPEN_TRACK_MENU)) {
|
if (intent.hasExtra(TrackMenuFragment.OPEN_TRACK_MENU)) {
|
||||||
String path = intent.getStringExtra(TRACK_FILE_NAME);
|
String path = intent.getStringExtra(TRACK_FILE_NAME);
|
||||||
boolean currentRecording = intent.getBooleanExtra(CURRENT_RECORDING, false);
|
boolean currentRecording = intent.getBooleanExtra(CURRENT_RECORDING, false);
|
||||||
TrackMenuFragment.showInstance(mapActivity, path, currentRecording);
|
TrackMenuFragment.showInstance(mapActivity, path, currentRecording, null);
|
||||||
mapActivity.setIntent(null);
|
mapActivity.setIntent(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1257,7 +1257,9 @@ public class MenuBuilder {
|
||||||
controller.setOnBackButtonClickListener(new OnClickListener() {
|
controller.setOnBackButtonClickListener(new OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
mapContextMenu.show();
|
if (mapContextMenu != null) {
|
||||||
|
mapContextMenu.show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
controller.setOnTitleClickListener(new OnClickListener() {
|
controller.setOnTitleClickListener(new OnClickListener() {
|
||||||
|
|
|
@ -45,7 +45,9 @@ public class SelectedGpxMenuController extends MenuController {
|
||||||
mapContextMenu.hide(false);
|
mapContextMenu.hide(false);
|
||||||
WptPt wptPt = selectedGpxPoint.selectedPoint;
|
WptPt wptPt = selectedGpxPoint.selectedPoint;
|
||||||
LatLon latLon = new LatLon(wptPt.lat, wptPt.lon);
|
LatLon latLon = new LatLon(wptPt.lat, wptPt.lon);
|
||||||
TrackMenuFragment.showInstance(mapActivity, selectedGpxPoint.getSelectedGpxFile(), latLon);
|
SelectedGpxFile selectedGpxFile = selectedGpxPoint.getSelectedGpxFile();
|
||||||
|
String path = selectedGpxFile.getGpxFile().path;
|
||||||
|
TrackMenuFragment.showInstance(mapActivity, path, selectedGpxFile.isShowCurrentTrack(), latLon);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_open_track);
|
leftTitleButtonController.caption = mapActivity.getString(R.string.shared_string_open_track);
|
||||||
|
|
|
@ -1236,11 +1236,10 @@ public class MapMarkersHelper {
|
||||||
removeGroupActiveMarkers(group, true);
|
removeGroupActiveMarkers(group, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (FavouritePoint fp : favGroup.getPoints()) {
|
List<FavouritePoint> points = new ArrayList<>(favGroup.getPoints());
|
||||||
|
for (FavouritePoint fp : points) {
|
||||||
addNewMarkerIfNeeded(group, groupMarkers, new LatLon(fp.getLatitude(), fp.getLongitude()), fp.getName(), fp, null);
|
addNewMarkerIfNeeded(group, groupMarkers, new LatLon(fp.getLatitude(), fp.getLongitude()), fp.getName(), fp, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} else if (group.getType() == MapMarkersGroup.GPX_TYPE) {
|
} else if (group.getType() == MapMarkersGroup.GPX_TYPE) {
|
||||||
GpxSelectionHelper gpxHelper = ctx.getSelectedGpxHelper();
|
GpxSelectionHelper gpxHelper = ctx.getSelectedGpxHelper();
|
||||||
File file = new File(group.getId());
|
File file = new File(group.getId());
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.os.AsyncTask;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import com.github.scribejava.core.builder.api.DefaultApi10a;
|
import com.github.scribejava.core.builder.api.DefaultApi10a;
|
||||||
|
import com.github.scribejava.core.exceptions.OAuthException;
|
||||||
import com.github.scribejava.core.model.OAuth1AccessToken;
|
import com.github.scribejava.core.model.OAuth1AccessToken;
|
||||||
import com.github.scribejava.core.model.OAuth1RequestToken;
|
import com.github.scribejava.core.model.OAuth1RequestToken;
|
||||||
import com.github.scribejava.core.model.OAuthAsyncRequestCallback;
|
import com.github.scribejava.core.model.OAuthAsyncRequestCallback;
|
||||||
|
@ -171,6 +172,8 @@ public class OsmOAuthAuthorizationAdapter {
|
||||||
log.error(e);
|
log.error(e);
|
||||||
} catch (XmlPullParserException e) {
|
} catch (XmlPullParserException e) {
|
||||||
log.error(e);
|
log.error(e);
|
||||||
|
} catch (OAuthException e) {
|
||||||
|
log.error(e);
|
||||||
}
|
}
|
||||||
app.getSettings().OSM_USER_DISPLAY_NAME.set(userName);
|
app.getSettings().OSM_USER_DISPLAY_NAME.set(userName);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1099,7 +1099,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
||||||
boolean currentRecording = file == null;
|
boolean currentRecording = file == null;
|
||||||
String path = file != null ? file.getAbsolutePath() : null;
|
String path = file != null ? file.getAbsolutePath() : null;
|
||||||
if (context instanceof MapActivity) {
|
if (context instanceof MapActivity) {
|
||||||
TrackMenuFragment.showInstance((MapActivity) context, path, currentRecording);
|
TrackMenuFragment.showInstance((MapActivity) context, path, currentRecording, null);
|
||||||
} else {
|
} else {
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString(TRACK_FILE_NAME, path);
|
bundle.putString(TRACK_FILE_NAME, path);
|
||||||
|
@ -1109,7 +1109,8 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showInstance(@NonNull final MapActivity mapActivity, @Nullable String path, boolean showCurrentTrack) {
|
public static void showInstance(@NonNull final MapActivity mapActivity, @Nullable String path,
|
||||||
|
boolean showCurrentTrack, @Nullable final LatLon latLon) {
|
||||||
OsmandApplication app = mapActivity.getMyApplication();
|
OsmandApplication app = mapActivity.getMyApplication();
|
||||||
SelectedGpxFile selectedGpxFile;
|
SelectedGpxFile selectedGpxFile;
|
||||||
if (showCurrentTrack) {
|
if (showCurrentTrack) {
|
||||||
|
@ -1118,7 +1119,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
||||||
selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(path);
|
selectedGpxFile = app.getSelectedGpxHelper().getSelectedFileByPath(path);
|
||||||
}
|
}
|
||||||
if (selectedGpxFile != null) {
|
if (selectedGpxFile != null) {
|
||||||
showInstance(mapActivity, selectedGpxFile, null);
|
showInstance(mapActivity, selectedGpxFile, latLon);
|
||||||
} else if (!Algorithms.isEmpty(path)) {
|
} else if (!Algorithms.isEmpty(path)) {
|
||||||
String title = app.getString(R.string.loading_smth, "");
|
String title = app.getString(R.string.loading_smth, "");
|
||||||
final ProgressDialog progress = ProgressDialog.show(mapActivity, title, app.getString(R.string.loading_data));
|
final ProgressDialog progress = ProgressDialog.show(mapActivity, title, app.getString(R.string.loading_data));
|
||||||
|
@ -1132,7 +1133,7 @@ public class TrackMenuFragment extends ContextMenuScrollFragment implements Card
|
||||||
OsmandApplication app = mapActivity.getMyApplication();
|
OsmandApplication app = mapActivity.getMyApplication();
|
||||||
SelectedGpxFile selectedGpxFile = app.getSelectedGpxHelper().selectGpxFile(result, true, false);
|
SelectedGpxFile selectedGpxFile = app.getSelectedGpxHelper().selectGpxFile(result, true, false);
|
||||||
if (selectedGpxFile != null) {
|
if (selectedGpxFile != null) {
|
||||||
showInstance(mapActivity, selectedGpxFile, null);
|
showInstance(mapActivity, selectedGpxFile, latLon);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (progress != null && AndroidUtils.isActivityNotDestroyed(mapActivity)) {
|
if (progress != null && AndroidUtils.isActivityNotDestroyed(mapActivity)) {
|
||||||
|
|
Loading…
Reference in a new issue