From 7d0d03327bcb7d4b7071c876a3ef4a87b8d65576 Mon Sep 17 00:00:00 2001 From: Arsentiy Milchakov Date: Wed, 28 Feb 2018 09:24:39 +0300 Subject: [PATCH] [android] fix rotation bug during autoupdate. --- .../maps/downloader/UpdaterDialogFragment.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java index 8695119bf8..9b589c931f 100644 --- a/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java +++ b/android/src/com/mapswithme/maps/downloader/UpdaterDialogFragment.java @@ -45,6 +45,8 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment private static final String TAG = UpdaterDialogFragment.class.getSimpleName(); private static final String EXTRA_LEFTOVER_MAPS = "extra_leftover_maps"; + private static final String EXTRA_PROCESSED_MAP_ID = "extra_processed_map_id"; + private static final String EXTRA_COMMON_STATUS_RES_ID = "extra_common_status_res_id"; private static final String ARG_UPDATE_IMMEDIATELY = "arg_update_immediately"; private static final String ARG_TOTAL_SIZE = "arg_total_size"; @@ -80,6 +82,11 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment @Nullable private DetachableStorageCallback mStorageCallback; + @Nullable + private String mProcessedMapId; + @StringRes + private int mCommonStatusResId; + private void finish() { dismiss(); @@ -185,6 +192,8 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment { // As long as we use HashSet to store leftover maps this cast is safe. //noinspection unchecked mLeftoverMaps = (HashSet) savedInstanceState.getSerializable(EXTRA_LEFTOVER_MAPS); + mProcessedMapId = savedInstanceState.getString(EXTRA_PROCESSED_MAP_ID); + mCommonStatusResId = savedInstanceState.getInt(EXTRA_COMMON_STATUS_RES_ID); } readArguments(); mStorageCallback = new DetachableStorageCallback(this, mLeftoverMaps, mOutdatedMaps); @@ -195,6 +204,8 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment { super.onSaveInstanceState(outState); outState.putSerializable(EXTRA_LEFTOVER_MAPS, mLeftoverMaps); + outState.putString(EXTRA_PROCESSED_MAP_ID, mProcessedMapId); + outState.putInt(EXTRA_COMMON_STATUS_RES_ID, mCommonStatusResId); } @NonNull @@ -322,6 +333,9 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment { int progress = MapManager.nativeGetOverallProgress(mOutdatedMaps); setProgress(progress, mTotalSizeMb * progress / 100, mTotalSizeMb); + + if (mProcessedMapId != null) + setCommonStatus(mProcessedMapId, mCommonStatusResId); } } @@ -345,6 +359,9 @@ public class UpdaterDialogFragment extends BaseMwmDialogFragment void setCommonStatus(@NonNull String mwmId, @StringRes int mwmStatusResId) { + mProcessedMapId = mwmId; + mCommonStatusResId = mwmStatusResId; + String status = getString(mwmStatusResId, MapManager.nativeGetName(mwmId)); mCommonStatus.setText(status); }