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
This commit is contained in:
ot_hemant.yadav
2022-07-07 18:17:42 +08:00
committed by Ramneek Kalra
parent e27d1790f8
commit 9a72877c7c
2 changed files with 22 additions and 0 deletions

View File

@@ -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);

View File

@@ -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";
@@ -47,6 +49,15 @@ public class StorageWizardMigrateProgress extends StorageWizardBase {
}
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);