diff --git a/OsmAnd/res/layout/split_segments_layout.xml b/OsmAnd/res/layout/split_segments_layout.xml
index e2975d8df6..8dcebd5d8c 100644
--- a/OsmAnd/res/layout/split_segments_layout.xml
+++ b/OsmAnd/res/layout/split_segments_layout.xml
@@ -11,21 +11,26 @@
android:id="@+id/split_interval_toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/dashboard_map_toolbar"
- android:background="@color/osmand_orange"
android:minHeight="@dimen/dashboard_map_toolbar"
- android:theme="?attr/toolbar_theme"
+ android:theme="?attr/actionBarStyle"
app:contentInsetLeft="54dp"
app:contentInsetStart="54dp">
+ tools:text="2017-02-16"/>
+
+
diff --git a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
index 66d8822c71..aff88e1662 100644
--- a/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
+++ b/OsmAnd/src/net/osmand/plus/activities/TrackActivity.java
@@ -30,7 +30,7 @@ import net.osmand.plus.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.measurementtool.NewGpxData;
import net.osmand.plus.myplaces.FavoritesActivity;
-import net.osmand.plus.myplaces.SplitSegmentFragment;
+import net.osmand.plus.myplaces.SplitSegmentDialogFragment;
import net.osmand.plus.myplaces.TrackPointFragment;
import net.osmand.plus.myplaces.TrackSegmentFragment;
import net.osmand.plus.views.AddGpxPointBottomSheetHelper.NewGpxPoint;
@@ -61,10 +61,6 @@ public class TrackActivity extends TabActivity {
private boolean openPointsTab = false;
private boolean openTracksList = false;
- public PagerSlidingTabStrip getSlidingTabLayout() {
- return slidingTabLayout;
- }
-
@Override
public void onCreate(Bundle icicle) {
this.app = getMyApplication();
@@ -294,8 +290,8 @@ public class TrackActivity extends TabActivity {
Fragment frag = f.get();
if (frag instanceof TrackSegmentFragment) {
((TrackSegmentFragment) frag).updateContent();
- } else if (frag instanceof SplitSegmentFragment) {
- ((SplitSegmentFragment) frag).reloadSplitFragment();
+ } else if (frag instanceof SplitSegmentDialogFragment) {
+ ((SplitSegmentDialogFragment) frag).updateContent();
} else if (frag instanceof TrackPointFragment) {
((TrackPointFragment) frag).setContent();
}
@@ -348,23 +344,6 @@ public class TrackActivity extends TabActivity {
int itemId = item.getItemId();
switch (itemId) {
case android.R.id.home:
- int backStackEntriesCount = getSupportFragmentManager().getBackStackEntryCount();
- if (backStackEntriesCount > 0) {
- FragmentManager.BackStackEntry backStackEntry = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1);
- if (backStackEntry.getName().equals(SplitSegmentFragment.TAG)) {
- for (WeakReference f : fragList) {
- Fragment frag = f.get();
- if (frag instanceof TrackSegmentFragment) {
- ((TrackSegmentFragment) frag).updateSplitView();
- }
- }
- getSupportFragmentManager().popBackStack();
- if (isHavingWayPoints() || isHavingRoutePoints()) {
- getSlidingTabLayout().setVisibility(View.VISIBLE);
- }
- return true;
- }
- }
if (getIntent().hasExtra(MapActivity.INTENT_KEY_PARENT_MAP_ACTIVITY) || openTracksList) {
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
final Intent favorites = new Intent(this, appCustomization.getFavoritesActivity());
@@ -379,25 +358,17 @@ public class TrackActivity extends TabActivity {
return false;
}
- @Override
- public void onBackPressed() {
- int backStackEntriesCount = getSupportFragmentManager().getBackStackEntryCount();
- if (backStackEntriesCount > 0) {
- FragmentManager.BackStackEntry backStackEntry = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1);
- if (backStackEntry.getName().equals(SplitSegmentFragment.TAG)) {
- for (WeakReference f : fragList) {
- Fragment frag = f.get();
- if (frag instanceof TrackSegmentFragment) {
- ((TrackSegmentFragment) frag).updateSplitView();
- }
- }
- getSupportFragmentManager().popBackStack();
- if (isHavingWayPoints() || isHavingRoutePoints()) {
- getSlidingTabLayout().setVisibility(View.VISIBLE);
- }
- return;
+ public void updateSplitView() {
+ for (WeakReference f : fragList) {
+ Fragment frag = f.get();
+ if (frag instanceof TrackSegmentFragment) {
+ ((TrackSegmentFragment) frag).updateSplitView();
}
}
+ }
+
+ @Override
+ public void onBackPressed() {
if (openTracksList) {
OsmAndAppCustomization appCustomization = getMyApplication().getAppCustomization();
final Intent favorites = new Intent(this, appCustomization.getFavoritesActivity());
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentDialogFragment.java
similarity index 95%
rename from OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java
rename to OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentDialogFragment.java
index 716c8aee80..726b33404b 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/SplitSegmentDialogFragment.java
@@ -1,5 +1,6 @@
package net.osmand.plus.myplaces;
+import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.graphics.Paint;
import android.graphics.Rect;
@@ -8,13 +9,12 @@ import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
+import android.support.v7.app.ActionBar;
import android.support.v7.widget.ListPopupWindow;
import android.support.v7.widget.Toolbar;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
@@ -22,6 +22,7 @@ import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
+import android.widget.ProgressBar;
import android.widget.TextView;
import net.osmand.AndroidUtils;
@@ -51,9 +52,9 @@ import gnu.trove.list.array.TIntArrayList;
import static net.osmand.plus.myplaces.TrackSegmentFragment.ARG_TO_FILTER_SHORT_TRACKS;
-public class SplitSegmentFragment extends DialogFragment {
+public class SplitSegmentDialogFragment extends DialogFragment {
- public final static String TAG = "SPLIT_SEGMENT_FRAGMENT";
+ public final static String TAG = "SPLIT_SEGMENT_DIALOG_FRAGMENT";
private OsmandApplication app;
private SplitSegmentsAdapter adapter;
@@ -69,6 +70,7 @@ public class SplitSegmentFragment extends DialogFragment {
private Paint minMaxSpeedPaint;
private Rect minMaxSpeedTextBounds;
private ListView listView;
+ private ProgressBar progressBar;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -89,12 +91,6 @@ public class SplitSegmentFragment extends DialogFragment {
getTrackActivity().onAttachFragment(this);
}
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- menu.clear();
- getTrackActivity().getClearToolbar(false);
- }
-
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
minMaxSpeedPaint = new Paint();
@@ -106,6 +102,16 @@ public class SplitSegmentFragment extends DialogFragment {
final View view = getActivity().getLayoutInflater().inflate(R.layout.split_segments_layout, container, false);
Toolbar toolbar = (Toolbar) view.findViewById(R.id.split_interval_toolbar);
+ TextView titleTextView = (TextView) toolbar.findViewById(R.id.title);
+ if (app.getSettings().isLightContent()) {
+ titleTextView.setTextAppearance(getContext(), R.style.Widget_Styled_LightActionBarHeader);
+ } else {
+ titleTextView.setTextAppearance(getContext(), R.style.TextAppearance_AppCompat_Widget_ActionBar_Title);
+ }
+ ActionBar trackActivityActionBar = getTrackActivity().getSupportActionBar();
+ if (trackActivityActionBar != null) {
+ titleTextView.setText(trackActivityActionBar.getTitle());
+ }
toolbar.setNavigationIcon(getMyApplication().getIconsCache().getIcon(R.drawable.ic_arrow_back));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
@@ -114,6 +120,8 @@ public class SplitSegmentFragment extends DialogFragment {
}
});
+ progressBar = view.findViewById(R.id.progress_bar);
+
listView = (ListView) view.findViewById(R.id.list);
listView.setDivider(null);
listView.setDividerHeight(0);
@@ -388,12 +396,16 @@ public class SplitSegmentFragment extends DialogFragment {
return false;
}
- public void reloadSplitFragment() {
- getFragmentManager()
- .beginTransaction()
- .detach(this)
- .attach(this)
- .commit();
+ @Override
+ public void dismiss() {
+ getTrackActivity().updateSplitView();
+ super.dismiss();
+ }
+
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ getTrackActivity().updateSplitView();
+ super.onCancel(dialog);
}
private class SplitSegmentsAdapter extends ArrayAdapter {
@@ -652,41 +664,38 @@ public class SplitSegmentFragment extends DialogFragment {
private class SplitTrackAsyncTask extends AsyncTask {
@Nullable
private final GpxSelectionHelper.SelectedGpxFile mSelectedGpxFile;
- @NonNull private final TrackActivity mActivity;
private final List groups;
SplitTrackAsyncTask(@Nullable GpxSelectionHelper.SelectedGpxFile selectedGpxFile, List groups) {
mSelectedGpxFile = selectedGpxFile;
- mActivity = getTrackActivity();
this.groups = groups;
}
+ protected void onPreExecute() {
+ progressBar.setVisibility(View.VISIBLE);
+ }
+
protected void onPostExecute(Void result) {
- if (!mActivity.isFinishing()) {
- mActivity.setSupportProgressBarIndeterminateVisibility(false);
- }
+ progressBar.setVisibility(View.GONE);
if (mSelectedGpxFile != null) {
List groups = getDisplayGroups();
mSelectedGpxFile.setDisplayGroups(groups);
}
- updateContent();
- }
-
- protected void onPreExecute() {
- mActivity.setSupportProgressBarIndeterminateVisibility(true);
+ if (getTrackActivity() != null) {
+ updateContent();
+ }
}
@Override
protected Void doInBackground(Void... params) {
for (GpxDisplayGroup model : groups) {
- OsmandApplication application = mActivity.getMyApplication();
if (selectedSplitInterval == 0) {
- model.noSplit(application);
+ model.noSplit(app);
} else if (distanceSplit.get(selectedSplitInterval) > 0) {
- model.splitByDistance(application, distanceSplit.get(selectedSplitInterval));
+ model.splitByDistance(app, distanceSplit.get(selectedSplitInterval));
} else if (timeSplit.get(selectedSplitInterval) > 0) {
- model.splitByTime(application, timeSplit.get(selectedSplitInterval));
+ model.splitByTime(app, timeSplit.get(selectedSplitInterval));
}
}
@@ -700,7 +709,7 @@ public class SplitSegmentFragment extends DialogFragment {
public static boolean showInstance(TrackActivity trackActivity) {
try {
- SplitSegmentFragment fragment = new SplitSegmentFragment();
+ SplitSegmentDialogFragment fragment = new SplitSegmentDialogFragment();
fragment.show(trackActivity.getSupportFragmentManager(), TAG);
return true;
} catch (RuntimeException e) {
diff --git a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
index 7a4bfbeff2..a9c87bbd16 100644
--- a/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
+++ b/OsmAnd/src/net/osmand/plus/myplaces/TrackSegmentFragment.java
@@ -840,7 +840,6 @@ public class TrackSegmentFragment extends OsmAndListFragment {
for (GpxDisplayItem i : flatten(groups)) {
adapter.add(i);
}
- // Obsolete: adapter.setNotifyOnChange(true);
adapter.notifyDataSetChanged();
if (getActivity() != null) {
updateHeader();
@@ -1773,7 +1772,7 @@ public class TrackSegmentFragment extends OsmAndListFragment {
}
void openSplitIntervalScreen() {
- SplitSegmentFragment.showInstance(getTrackActivity());
+ SplitSegmentDialogFragment.showInstance(getTrackActivity());
}
private class SaveGpxAsyncTask extends AsyncTask {