diff --git a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java index bf918c96bb..2a5e51e9fd 100644 --- a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java +++ b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java @@ -78,11 +78,52 @@ public class TrackActivity extends TabActivity { setContentView(R.layout.tab_content); } - @Override - protected void onStart() { - super.onStart(); - stopped = false; + protected void setGpxDataItem(GpxDataItem gpxDataItem) { + this.gpxDataItem = gpxDataItem; + } + protected void setGpx(GPXFile result) { + this.gpxFile = result; + if (file == null) { + this.gpxFile = getMyApplication().getSavingTrackHelper().getCurrentGpx(); + } + } + + public List getGpxFile(boolean useDisplayGroups) { + if (gpxFile == null) { + return new ArrayList<>(); + } + if (gpxFile.modifiedTime != modifiedTime) { + modifiedTime = gpxFile.modifiedTime; + GpxSelectionHelper selectedGpxHelper = ((OsmandApplication) getApplication()).getSelectedGpxHelper(); + displayGroups = selectedGpxHelper.collectDisplayGroups(gpxFile); + originalGroups.clear(); + for (GpxDisplayGroup g : displayGroups) { + originalGroups.add(g.cloneInstance()); + } + if (file != null) { + SelectedGpxFile sf = selectedGpxHelper.getSelectedFileByPath(gpxFile.path); + if (sf != null && file != null && sf.getDisplayGroups() != null) { + displayGroups = sf.getDisplayGroups(); + } + } + } + if (useDisplayGroups) { + return displayGroups; + } else { + return originalGroups; + } + } + + @Override + public void onAttachFragment(Fragment fragment) { + fragList.add(new WeakReference<>(fragment)); + } + + @Override + protected void onResume() { + super.onResume(); + stopped = false; slidingTabLayout = (PagerSlidingTabStrip) findViewById(R.id.sliding_tabs); if (slidingTabLayout != null) { slidingTabLayout.setShouldExpand(true); @@ -157,53 +198,6 @@ public class TrackActivity extends TabActivity { } } - protected void setGpxDataItem(GpxDataItem gpxDataItem) { - this.gpxDataItem = gpxDataItem; - } - - protected void setGpx(GPXFile result) { - this.gpxFile = result; - if (file == null) { - this.gpxFile = getMyApplication().getSavingTrackHelper().getCurrentGpx(); - } - } - - public List getGpxFile(boolean useDisplayGroups) { - if (gpxFile == null) { - return new ArrayList<>(); - } - if (gpxFile.modifiedTime != modifiedTime) { - modifiedTime = gpxFile.modifiedTime; - GpxSelectionHelper selectedGpxHelper = ((OsmandApplication) getApplication()).getSelectedGpxHelper(); - displayGroups = selectedGpxHelper.collectDisplayGroups(gpxFile); - originalGroups.clear(); - for (GpxDisplayGroup g : displayGroups) { - originalGroups.add(g.cloneInstance()); - } - if (file != null) { - SelectedGpxFile sf = selectedGpxHelper.getSelectedFileByPath(gpxFile.path); - if (sf != null && file != null && sf.getDisplayGroups() != null) { - displayGroups = sf.getDisplayGroups(); - } - } - } - if (useDisplayGroups) { - return displayGroups; - } else { - return originalGroups; - } - } - - @Override - public void onAttachFragment(Fragment fragment) { - fragList.add(new WeakReference<>(fragment)); - } - - @Override - protected void onResume() { - super.onResume(); - } - public OsmandApplication getMyApplication() { return (OsmandApplication) getApplication(); } diff --git a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java index 231e4ef379..5a39560aeb 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java @@ -322,29 +322,28 @@ public class SplitSegmentFragment extends OsmAndListFragment { } private List filterGroups(boolean useDisplayGroups) { - if (getTrackActivity() == null) { - return null; - } - List result = getTrackActivity().getGpxFile(useDisplayGroups); List groups = new ArrayList<>(); - for (GpxDisplayGroup group : result) { - boolean add = hasFilterType(group.getType()); - if (isArgumentTrue(ARG_TO_FILTER_SHORT_TRACKS)) { - Iterator item = group.getModifiableList().iterator(); - while (item.hasNext()) { - GpxDisplayItem it2 = item.next(); - if (it2.analysis != null && it2.analysis.totalDistance < 100) { - item.remove(); + if (getTrackActivity() != null) { + List result = getTrackActivity().getGpxFile(useDisplayGroups); + for (GpxDisplayGroup group : result) { + boolean add = hasFilterType(group.getType()); + if (isArgumentTrue(ARG_TO_FILTER_SHORT_TRACKS)) { + Iterator item = group.getModifiableList().iterator(); + while (item.hasNext()) { + GpxDisplayItem it2 = item.next(); + if (it2.analysis != null && it2.analysis.totalDistance < 100) { + item.remove(); + } + } + if (group.getModifiableList().isEmpty()) { + add = false; } } - if (group.getModifiableList().isEmpty()) { - add = false; + if (add) { + groups.add(group); } - } - if (add) { - groups.add(group); - } + } } return groups; } @@ -657,9 +656,6 @@ public class SplitSegmentFragment extends OsmAndListFragment { } if (mSelectedGpxFile != null) { List groups = getDisplayGroups(); - if (groups == null) { - return; - } mSelectedGpxFile.setDisplayGroups(groups); } updateContent(); diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java index 74f2273db3..df7be4a354 100644 --- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java +++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java @@ -710,29 +710,28 @@ public class TrackSegmentFragment extends OsmAndListFragment { } private List filterGroups(boolean useDisplayGroups) { - if (getTrackActivity() == null) { - return null; - } - List result = getTrackActivity().getGpxFile(useDisplayGroups); List groups = new ArrayList<>(); - for (GpxDisplayGroup group : result) { - boolean add = hasFilterType(group.getType()); - if (isArgumentTrue(ARG_TO_FILTER_SHORT_TRACKS)) { - Iterator item = group.getModifiableList().iterator(); - while (item.hasNext()) { - GpxDisplayItem it2 = item.next(); - if (it2.analysis != null && it2.analysis.totalDistance < 100) { - item.remove(); + if (getTrackActivity() != null) { + List result = getTrackActivity().getGpxFile(useDisplayGroups); + for (GpxDisplayGroup group : result) { + boolean add = hasFilterType(group.getType()); + if (isArgumentTrue(ARG_TO_FILTER_SHORT_TRACKS)) { + Iterator item = group.getModifiableList().iterator(); + while (item.hasNext()) { + GpxDisplayItem it2 = item.next(); + if (it2.analysis != null && it2.analysis.totalDistance < 100) { + item.remove(); + } + } + if (group.getModifiableList().isEmpty()) { + add = false; } } - if (group.getModifiableList().isEmpty()) { - add = false; + if (add) { + groups.add(group); } - } - if (add) { - groups.add(group); - } + } } return groups; } @@ -746,7 +745,9 @@ public class TrackSegmentFragment extends OsmAndListFragment { } adapter.setNotifyOnChange(true); adapter.notifyDataSetChanged(); - updateHeader(); + if (getActivity() != null) { + updateHeader(); + } } protected List flatten(List groups) { @@ -1541,9 +1542,6 @@ public class TrackSegmentFragment extends OsmAndListFragment { } if (mSelectedGpxFile != null) { List groups = getDisplayGroups(); - if (groups == null) { - return; - } mSelectedGpxFile.setDisplayGroups(groups); } if (mFragment.isVisible()) {