diff options
| author | 2022-12-05 23:16:44 +0000 | |
|---|---|---|
| committer | 2022-12-05 23:16:44 +0000 | |
| commit | bb41b308393d013f98b8c94aa2b7b18bd18d2138 (patch) | |
| tree | 7d52cf4bee5486c6696f83908aa33f007b3545f0 /java/src | |
| parent | 5526eb113f05e947677ecd7f87fae2fbe873af44 (diff) | |
| parent | 71342b3d9f6f64c3c2c5b7a2b4ebb244ad983964 (diff) | |
Merge "Fix work profile record initialization." into tm-qpr-dev
Diffstat (limited to 'java/src')
| -rw-r--r-- | java/src/com/android/intentresolver/ResolverActivity.java | 27 | 
1 files changed, 18 insertions, 9 deletions
diff --git a/java/src/com/android/intentresolver/ResolverActivity.java b/java/src/com/android/intentresolver/ResolverActivity.java index 5a116b43..adcfecef 100644 --- a/java/src/com/android/intentresolver/ResolverActivity.java +++ b/java/src/com/android/intentresolver/ResolverActivity.java @@ -107,7 +107,6 @@ import com.android.intentresolver.AbstractMultiProfilePagerAdapter.OnSwitchOnWor  import com.android.intentresolver.AbstractMultiProfilePagerAdapter.Profile;  import com.android.intentresolver.AbstractMultiProfilePagerAdapter.QuietModeManager;  import com.android.intentresolver.NoCrossProfileEmptyStateProvider.DevicePolicyBlockerEmptyState; -import com.android.intentresolver.chooser.ChooserTargetInfo;  import com.android.intentresolver.chooser.DisplayResolveInfo;  import com.android.intentresolver.chooser.TargetInfo;  import com.android.intentresolver.widget.ResolverDrawerLayout; @@ -123,6 +122,7 @@ import java.util.Iterator;  import java.util.List;  import java.util.Objects;  import java.util.Set; +import java.util.function.Supplier;  /**   * This activity is displayed when the system attempts to start an Intent for @@ -223,7 +223,11 @@ public class ResolverActivity extends FragmentActivity implements      private BroadcastReceiver mWorkProfileStateReceiver;      private UserHandle mHeaderCreatorUser; -    private UserHandle mWorkProfileUserHandle; +    private Supplier<UserHandle> mLazyWorkProfileUserHandle = () -> { +        final UserHandle result = fetchWorkProfileUserProfile(); +        mLazyWorkProfileUserHandle = () -> result; +        return result; +    };      @Nullable      private OnSwitchOnWorkSelectedListener mOnSwitchOnWorkSelectedListener; @@ -408,7 +412,6 @@ public class ResolverActivity extends FragmentActivity implements          mDefaultTitleResId = defaultTitleRes;          mSupportsAlwaysUseOption = supportsAlwaysUseOption; -        mWorkProfileUserHandle = fetchWorkProfileUserProfile();          // The last argument of createResolverListAdapter is whether to do special handling          // of the last used choice to highlight it in the list.  We need to always @@ -699,19 +702,25 @@ public class ResolverActivity extends FragmentActivity implements      protected UserHandle getPersonalProfileUserHandle() {          return UserHandle.of(ActivityManager.getCurrentUser());      } -    protected @Nullable UserHandle getWorkProfileUserHandle() { -        return mWorkProfileUserHandle; + +    @Nullable +    protected UserHandle getWorkProfileUserHandle() { +        return mLazyWorkProfileUserHandle.get();      } -    protected @Nullable UserHandle fetchWorkProfileUserProfile() { -        mWorkProfileUserHandle = null; +    @Nullable +    private UserHandle fetchWorkProfileUserProfile() {          UserManager userManager = getSystemService(UserManager.class); +        if (userManager == null) { +            return null; +        } +        UserHandle result = null;          for (final UserInfo userInfo : userManager.getProfiles(ActivityManager.getCurrentUser())) {              if (userInfo.isManagedProfile()) { -                mWorkProfileUserHandle = userInfo.getUserHandle(); +                result = userInfo.getUserHandle();              }          } -        return mWorkProfileUserHandle; +        return result;      }      private boolean hasWorkProfile() {  |