diff options
author | Roman Romanov <rromanov@65gb.net> | 2017-04-18 14:31:57 +0300 |
---|---|---|
committer | Roman Romanov <rromanov@65gb.net> | 2017-04-18 14:31:57 +0300 |
commit | dcc010c066a924759ca4f1c94e75c8a0fda54c2e (patch) | |
tree | d52b29b3f87d2a541e95057472e054b532072be6 | |
parent | c3336d47c277381a31c271b19ee95146d1923f4e (diff) |
[android] Review fixesbeta-764
-rw-r--r-- | android/src/com/mapswithme/maps/MwmActivity.java | 24 | ||||
-rw-r--r-- | android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java | 23 |
2 files changed, 36 insertions, 11 deletions
diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index 6a1813c986..c1d8c9b733 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -136,6 +136,7 @@ public class MwmActivity extends BaseMwmFragmentActivity private final Stack<MapTask> mTasks = new Stack<>(); private final StoragePathManager mPathManager = new StoragePathManager(); + @Nullable private MapFragment mMapFragment; private PlacePageView mPlacePage; @@ -617,10 +618,9 @@ public class MwmActivity extends BaseMwmFragmentActivity mRootView = (ViewGroup) container.getParent(); } - public void detachMap(FragmentTransaction transaction) + public void detachMap(@NonNull FragmentTransaction transaction) { - if (mMapFragment == null) - return; + if (mMapFragment == null) return; transaction .remove(mMapFragment); @@ -630,8 +630,7 @@ public class MwmActivity extends BaseMwmFragmentActivity public void attachMap() { - if (mMapFragment != null) - return; + if (mMapFragment != null) return; mMapFragment = (MapFragment) MapFragment.instantiate(this, MapFragment.class.getName(), null); getSupportFragmentManager() @@ -983,8 +982,11 @@ public class MwmActivity extends BaseMwmFragmentActivity mTasks.add(mapTask); intent.removeExtra(EXTRA_TASK); - if (MapFragment.nativeIsEngineCreated() && mMapFragment.isContextCreated()) + if (MapFragment.nativeIsEngineCreated() && mMapFragment != null + && mMapFragment.isContextCreated()) + { runTasks(); + } // mark intent as consumed intent.putExtra(EXTRA_CONSUMED, true); @@ -994,8 +996,11 @@ public class MwmActivity extends BaseMwmFragmentActivity private void addTask(MapTask task) { mTasks.add(task); - if (MapFragment.nativeIsEngineCreated() && mMapFragment.isContextCreated()) + if (MapFragment.nativeIsEngineCreated() && mMapFragment != null + && mMapFragment.isContextCreated()) + { runTasks(); + } } @Override @@ -1029,7 +1034,8 @@ public class MwmActivity extends BaseMwmFragmentActivity public void recreate() { // Explicitly destroy context before activity recreation. - mMapFragment.destroyContext(); + if (mMapFragment != null) + mMapFragment.destroyContext(); super.recreate(); } @@ -1365,7 +1371,7 @@ public class MwmActivity extends BaseMwmFragmentActivity public boolean onTouch(View view, MotionEvent event) { return mPlacePage.hideOnTouch() || - mMapFragment.onTouch(view, event); + (mMapFragment != null && mMapFragment.onTouch(view, event)); } @Override diff --git a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java index d6c2c842a0..0964826bbb 100644 --- a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java +++ b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java @@ -53,6 +53,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment private boolean mAutoUpdate; @Nullable private String[] mOutdatedMaps; + private boolean mFromInstanceState; @NonNull private final MapManager.StorageCallback mStorageCallback = new MapManager.StorageCallback() @@ -86,14 +87,15 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment MapManager.showError(getActivity(), item, new Utils.Proc<Boolean>() { @Override - public void invoke(@NonNull Boolean param) + public void invoke(@NonNull Boolean result) { - if (param) + if (result) { MapManager.nativeUpdate(CountryItem.getRootId()); } else { +// TODO remove attachMap() when dialog migrated to SplashActivity attachMap(); dismiss(); } @@ -107,6 +109,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment if (!isAllUpdated()) return; +// TODO remove attachMap() when dialog migrated to SplashActivity attachMap(); dismiss(); } @@ -137,6 +140,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment if (MapManager.nativeIsDownloading()) MapManager.nativeCancel(CountryItem.getRootId()); +// TODO remove attachMap() when dialog migrated to SplashActivity attachMap(); dismiss(); } @@ -190,6 +194,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment fragment.setArguments(args); FragmentTransaction transaction = fm.beginTransaction() .setCustomAnimations(android.R.anim.fade_in, android.R.anim.fade_out); +// TODO remove detachMap() when dialog migrated to SplashActivity if (activity instanceof MwmActivity) ((MwmActivity) activity).detachMap(transaction); fragment.show(transaction, UpdaterDialogFragment.class.getName()); @@ -210,6 +215,7 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment { super.onCreate(savedInstanceState); + mFromInstanceState = savedInstanceState != null; readArguments(); } @@ -240,10 +246,21 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment if (isAllUpdated()) { +// TODO remove attachMap() when dialog migrated to SplashActivity + attachMap(); dismiss(); return; } +// TODO remove detachMap() when dialog migrated to SplashActivity + if (getActivity() instanceof MwmActivity && mFromInstanceState) + { + FragmentTransaction transaction = getActivity().getSupportFragmentManager() + .beginTransaction(); + ((MwmActivity) getActivity()).detachMap(transaction); + transaction.commit(); + } + mListenerSlot = MapManager.nativeSubscribe(mStorageCallback); if (mAutoUpdate && !MapManager.nativeIsDownloading()) @@ -271,10 +288,12 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment if (MapManager.nativeIsDownloading()) MapManager.nativeCancel(CountryItem.getRootId()); +// TODO remove attachMap() when dialog migrated to SplashActivity attachMap(); super.onCancel(dialog); } +//TODO remove attachMap() when dialog migrated to SplashActivity private void attachMap() { if (!(getActivity() instanceof MwmActivity)) |