1919import static com .android .settings .privatespace .PrivateSpaceAuthenticationActivity .EXTRA_SHOW_PRIVATE_SPACE_UNLOCKED ;
2020
2121import android .app .settings .SettingsEnums ;
22+ import android .content .BroadcastReceiver ;
23+ import android .content .Context ;
24+ import android .content .Intent ;
25+ import android .content .IntentFilter ;
2226import android .graphics .drawable .Drawable ;
2327import android .os .Bundle ;
2428import android .util .Log ;
3135public 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