Save fragment instance
This commit is contained in:
parent
dd5017a42e
commit
26a07b83a5
3 changed files with 18 additions and 18 deletions
|
@ -944,7 +944,7 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
NewGpxLine newGpxLine = (NewGpxLine) toShow;
|
||||
QuadRect qr = newGpxLine.getRect();
|
||||
mapView.fitRectToMap(qr.left, qr.right, qr.top, qr.bottom, (int) qr.width(), (int) qr.height(), 0);
|
||||
openAddingNewGpxLine(newGpxLine);
|
||||
MeasurementToolFragment.showInstance(getSupportFragmentManager(), newGpxLine);
|
||||
} else {
|
||||
mapContextMenu.show(latLonToShow, mapLabelToShow, toShow);
|
||||
}
|
||||
|
@ -958,16 +958,6 @@ public class MapActivity extends OsmandActionBarActivity implements DownloadEven
|
|||
}
|
||||
}
|
||||
|
||||
private void openAddingNewGpxLine(NewGpxLine newGpxLine) {
|
||||
MeasurementToolFragment fragment = new MeasurementToolFragment();
|
||||
fragment.setNewGpxLine(newGpxLine);
|
||||
getSupportFragmentManager()
|
||||
.beginTransaction()
|
||||
.add(R.id.bottomFragmentContainer, fragment, MeasurementToolFragment.TAG)
|
||||
.addToBackStack(MeasurementToolFragment.TAG)
|
||||
.commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
public OsmandApplication getMyApplication() {
|
||||
return ((OsmandApplication) getApplication());
|
||||
}
|
||||
|
|
|
@ -764,12 +764,7 @@ public class MapActivityActions implements DialogProvider {
|
|||
.setListener(new ContextMenuAdapter.ItemClickListener() {
|
||||
@Override
|
||||
public boolean onContextMenuClick(ArrayAdapter<ContextMenuItem> adapter, int itemId, int position, boolean isChecked) {
|
||||
MeasurementToolFragment fragment = new MeasurementToolFragment();
|
||||
mapActivity.getSupportFragmentManager()
|
||||
.beginTransaction()
|
||||
.add(R.id.bottomFragmentContainer, fragment, MeasurementToolFragment.TAG)
|
||||
.addToBackStack(MeasurementToolFragment.TAG)
|
||||
.commitAllowingStateLoss();
|
||||
MeasurementToolFragment.showInstance(mapActivity.getSupportFragmentManager(), null);
|
||||
return true;
|
||||
}
|
||||
}).createItem());
|
||||
|
|
|
@ -1101,7 +1101,7 @@ public class MeasurementToolFragment extends Fragment {
|
|||
newIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(newIntent);
|
||||
}
|
||||
mapActivity.getSupportFragmentManager().popBackStackImmediate(TAG, FragmentManager.POP_BACK_STACK_INCLUSIVE);
|
||||
mapActivity.getSupportFragmentManager().beginTransaction().remove(this).commitAllowingStateLoss();
|
||||
} catch (Exception e) {
|
||||
// ignore
|
||||
}
|
||||
|
@ -1133,4 +1133,19 @@ public class MeasurementToolFragment extends Fragment {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean showInstance(FragmentManager fragmentManager, NewGpxLine newGpxLine) {
|
||||
try {
|
||||
MeasurementToolFragment fragment = new MeasurementToolFragment();
|
||||
fragment.setNewGpxLine(newGpxLine);
|
||||
fragment.setRetainInstance(true);
|
||||
fragmentManager
|
||||
.beginTransaction()
|
||||
.add(R.id.bottomFragmentContainer, fragment, MeasurementToolFragment.TAG)
|
||||
.commitAllowingStateLoss();
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue