From 9a72877c7c3c798cd26f4668abc344de67423801 Mon Sep 17 00:00:00 2001 From: "ot_hemant.yadav" Date: Thu, 7 Jul 2022 18:17:42 +0800 Subject: [PATCH] Crash happens if back button is pressed during "Format as Portable" SD card format as internal, during migrate process press back key or During "Format as Portable", press back key crash happened. Fix: Hide the bottom navigation from that particular activity so that user can not accidentally press back key. /packages/apps/Settings/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java /packages/apps/Settings/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java Bug: 238596768 Test: 1. Insert sdcard or generate virtual disk using command : adb shell "sm set-virtual-disk true" 2. Go to Settings -> Storage -> SD Card -> Format as Internal -> move later 3. After step 1, back to storage 4. Again enter in Storage -> SD Card -> to do migrate data 5. during migrate process press back key 6. Storage -> SD Card -> Format as Portable 7. During "Format as Portable", press back key Change-Id: I1f393ffb872bb90d7dfeb4e1c86648b3413645a1 --- .../deviceinfo/StorageWizardFormatProgress.java | 11 +++++++++++ .../deviceinfo/StorageWizardMigrateProgress.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java index ea4a2fd29e6..c97d5c9de51 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java +++ b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java @@ -36,6 +36,7 @@ import com.android.settings.R; import java.util.Objects; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; +import android.view.WindowManager; public class StorageWizardFormatProgress extends StorageWizardBase { private static final String TAG = "StorageWizardFormatProgress"; @@ -54,6 +55,16 @@ public class StorageWizardFormatProgress extends StorageWizardBase { return; } setContentView(R.layout.storage_wizard_progress); + + // hide the navigation bar for this activity only. So that user can not press back button accidentally. + View decorView = getWindow().getDecorView(); + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + decorView.setSystemUiVisibility(uiOptions); + + //disable touch in activity so user can not make the hidden navigation bar visible. + getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); + setKeepScreenOn(true); mFormatPrivate = getIntent().getBooleanExtra(EXTRA_FORMAT_PRIVATE, false); diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java index 7e042c1f395..a4b29afb15e 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java +++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java @@ -31,6 +31,8 @@ import android.widget.Toast; import com.android.settings.R; +import android.view.WindowManager; + public class StorageWizardMigrateProgress extends StorageWizardBase { private static final String TAG = "StorageWizardMigrateProgress"; @@ -46,7 +48,16 @@ public class StorageWizardMigrateProgress extends StorageWizardBase { return; } setContentView(R.layout.storage_wizard_progress); + + // hide the navigation bar for this activity only. So that user can not press back button accidentally. + View decorView = getWindow().getDecorView(); + int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; + decorView.setSystemUiVisibility(uiOptions); + //disable touch in activity so user can not make the hidden navigation bar visible. + getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); + mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1); setIcon(R.drawable.ic_swap_horiz);