Skip to content

Commit c52b451

Browse files
quh4gko8thestinger
authored andcommitted
Navigate back when Private Space is locked while in configuration UI
1 parent 285e02c commit c52b451

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/com/android/settings/privatespace/PrivateSpaceDashboardFragment.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
import static com.android.settings.privatespace.PrivateSpaceAuthenticationActivity.EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED;
2020

2121
import android.app.settings.SettingsEnums;
22+
import android.content.BroadcastReceiver;
23+
import android.content.Context;
24+
import android.content.Intent;
25+
import android.content.IntentFilter;
2226
import android.graphics.drawable.Drawable;
2327
import android.os.Bundle;
2428
import android.util.Log;
@@ -31,6 +35,21 @@
3135
public class PrivateSpaceDashboardFragment extends DashboardFragment {
3236
private static final String TAG = "PSDashboardFragment";
3337

38+
private final BroadcastReceiver mBroadcastReceiver =
39+
new BroadcastReceiver() {
40+
@Override
41+
public void onReceive(Context context, Intent intent) {
42+
if (intent == null) {
43+
return;
44+
}
45+
String action = intent.getAction();
46+
if (Intent.ACTION_PROFILE_INACCESSIBLE.equals(action)
47+
|| Intent.ACTION_PROFILE_UNAVAILABLE.equals(action)) {
48+
finishAndRemoveTaskIfLocked();
49+
}
50+
}
51+
};
52+
3453
@Override
3554
public void onCreate(Bundle icicle) {
3655
if (android.os.Flags.allowPrivateProfile()
@@ -55,6 +74,25 @@ && getIntent().getBooleanExtra(EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED, false)) {
5574
@Override
5675
public void onStart() {
5776
super.onStart();
77+
finishAndRemoveTaskIfLocked();
78+
}
79+
80+
@Override
81+
public void onPause() {
82+
super.onPause();
83+
getActivity().unregisterReceiver(mBroadcastReceiver);
84+
}
85+
86+
@Override
87+
public void onResume() {
88+
super.onResume();
89+
final IntentFilter intentFilter = new IntentFilter();
90+
intentFilter.addAction(Intent.ACTION_PROFILE_UNAVAILABLE);
91+
intentFilter.addAction(Intent.ACTION_PROFILE_INACCESSIBLE);
92+
getActivity().registerReceiver(mBroadcastReceiver, intentFilter);
93+
}
94+
95+
private void finishAndRemoveTaskIfLocked() {
5896
if (PrivateSpaceMaintainer.getInstance(getContext()).isPrivateSpaceLocked()) {
5997
// To make sure the task is removed if it is the last activity in that stack.
6098
getActivity().finishAndRemoveTask();

0 commit comments

Comments
 (0)