diff options
| author | 2024-01-23 16:16:02 +0000 | |
|---|---|---|
| committer | 2024-01-23 17:46:35 +0000 | |
| commit | 561298bef94365950247075723dafdcfe998c745 (patch) | |
| tree | 8b770648719e54cbfd2875efbafa797a427d0318 /java/src | |
| parent | de331d241074e2d8d3f78fe660a9940233afbc4c (diff) | |
Specify tabs to display by a list of `TabConfig`s
This was the last "snapshot" (#37) from my prototype CL ag/25335069.
We should now be able to support arbitrary sets of tabs as specified
by the activity (or other client, if/when we move the instantiation).
Test: IntentResolver-tests-{unit,activity}; ResolverActivityTest
Bug: 310211468
Change-Id: I1526cbce97bff6305c4e79c53a96181e185ab27f
Diffstat (limited to 'java/src')
4 files changed, 52 insertions, 124 deletions
diff --git a/java/src/com/android/intentresolver/v2/ChooserActivity.java b/java/src/com/android/intentresolver/v2/ChooserActivity.java index 343e1af1..eea9fd2c 100644 --- a/java/src/com/android/intentresolver/v2/ChooserActivity.java +++ b/java/src/com/android/intentresolver/v2/ChooserActivity.java @@ -139,6 +139,7 @@ import com.android.intentresolver.model.ResolverRankerServiceResolverComparator; import com.android.intentresolver.shortcuts.AppPredictorFactory; import com.android.intentresolver.shortcuts.ShortcutLoader; import com.android.intentresolver.v2.MultiProfilePagerAdapter.ProfileType; +import com.android.intentresolver.v2.MultiProfilePagerAdapter.TabConfig; import com.android.intentresolver.v2.data.repository.DevicePolicyResources; import com.android.intentresolver.v2.emptystate.NoAppsAvailableEmptyStateProvider; import com.android.intentresolver.v2.emptystate.NoCrossProfileEmptyStateProvider; @@ -159,6 +160,8 @@ import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.LatencyTracker; +import com.google.common.collect.ImmutableList; + import dagger.hilt.android.AndroidEntryPoint; import kotlin.Unit; @@ -1286,12 +1289,16 @@ public class ChooserActivity extends Hilt_ChooserActivity implements ); return new ChooserMultiProfilePagerAdapter( /* context */ this, - mDevicePolicyResources.getPersonalTabLabel(), - mDevicePolicyResources.getPersonalTabAccessibilityLabel(), - TAB_TAG_PERSONAL, - adapter, + ImmutableList.of( + new TabConfig<>( + PROFILE_PERSONAL, + mDevicePolicyResources.getPersonalTabLabel(), + mDevicePolicyResources.getPersonalTabAccessibilityLabel(), + TAB_TAG_PERSONAL, + adapter)), createEmptyStateProvider(/* workProfileUserHandle= */ null), /* workProfileQuietModeChecker= */ () -> false, + /* defaultProfile= */ PROFILE_PERSONAL, /* workProfileUserHandle= */ null, requireAnnotatedUserHandles().cloneProfileUserHandle, mMaxTargetsPerRow, @@ -1321,14 +1328,19 @@ public class ChooserActivity extends Hilt_ChooserActivity implements ); return new ChooserMultiProfilePagerAdapter( /* context */ this, - mDevicePolicyResources.getPersonalTabLabel(), - mDevicePolicyResources.getPersonalTabAccessibilityLabel(), - TAB_TAG_PERSONAL, - personalAdapter, - mDevicePolicyResources.getWorkTabLabel(), - mDevicePolicyResources.getWorkTabAccessibilityLabel(), - TAB_TAG_WORK, - workAdapter, + ImmutableList.of( + new TabConfig<>( + PROFILE_PERSONAL, + mDevicePolicyResources.getPersonalTabLabel(), + mDevicePolicyResources.getPersonalTabAccessibilityLabel(), + TAB_TAG_PERSONAL, + personalAdapter), + new TabConfig<>( + PROFILE_WORK, + mDevicePolicyResources.getWorkTabLabel(), + mDevicePolicyResources.getWorkTabAccessibilityLabel(), + TAB_TAG_WORK, + workAdapter)), createEmptyStateProvider(requireAnnotatedUserHandles().workProfileUserHandle), () -> mLogic.getWorkProfileAvailabilityManager().isQuietModeEnabled(), selectedProfile, diff --git a/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java b/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java index 7bbeedc9..42eb077b 100644 --- a/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java +++ b/java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java @@ -50,45 +50,7 @@ public class ChooserMultiProfilePagerAdapter extends MultiProfilePagerAdapter< public ChooserMultiProfilePagerAdapter( Context context, - String personalTabLabel, - String personalTabAccessibilityLabel, - String personalTabTag, - ChooserGridAdapter personalAdapter, - EmptyStateProvider emptyStateProvider, - Supplier<Boolean> workProfileQuietModeChecker, - UserHandle workProfileUserHandle, - UserHandle cloneProfileUserHandle, - int maxTargetsPerRow, - FeatureFlags featureFlags) { - this( - context, - new ChooserProfileAdapterBinder(maxTargetsPerRow), - ImmutableList.of( - new TabConfig<>( - PROFILE_PERSONAL, - personalTabLabel, - personalTabAccessibilityLabel, - personalTabTag, - personalAdapter)), - emptyStateProvider, - workProfileQuietModeChecker, - /* defaultProfile= */ 0, - workProfileUserHandle, - cloneProfileUserHandle, - new BottomPaddingOverrideSupplier(context), - featureFlags); - } - - public ChooserMultiProfilePagerAdapter( - Context context, - String personalTabLabel, - String personalTabAccessibilityLabel, - String personalTabTag, - ChooserGridAdapter personalAdapter, - String workTabLabel, - String workTabAccessibilityLabel, - String workTabTag, - ChooserGridAdapter workAdapter, + ImmutableList<TabConfig<ChooserGridAdapter>> tabs, EmptyStateProvider emptyStateProvider, Supplier<Boolean> workProfileQuietModeChecker, @ProfileType int defaultProfile, @@ -99,19 +61,7 @@ public class ChooserMultiProfilePagerAdapter extends MultiProfilePagerAdapter< this( context, new ChooserProfileAdapterBinder(maxTargetsPerRow), - ImmutableList.of( - new TabConfig<>( - PROFILE_PERSONAL, - personalTabLabel, - personalTabAccessibilityLabel, - personalTabTag, - personalAdapter), - new TabConfig<>( - PROFILE_WORK, - workTabLabel, - workTabAccessibilityLabel, - workTabTag, - workAdapter)), + tabs, emptyStateProvider, workProfileQuietModeChecker, defaultProfile, diff --git a/java/src/com/android/intentresolver/v2/ResolverActivity.java b/java/src/com/android/intentresolver/v2/ResolverActivity.java index 1450a883..55e698a6 100644 --- a/java/src/com/android/intentresolver/v2/ResolverActivity.java +++ b/java/src/com/android/intentresolver/v2/ResolverActivity.java @@ -101,6 +101,7 @@ import com.android.intentresolver.icons.TargetDataLoader; import com.android.intentresolver.model.ResolverRankerServiceResolverComparator; import com.android.intentresolver.v2.MultiProfilePagerAdapter.OnSwitchOnWorkSelectedListener; import com.android.intentresolver.v2.MultiProfilePagerAdapter.ProfileType; +import com.android.intentresolver.v2.MultiProfilePagerAdapter.TabConfig; import com.android.intentresolver.v2.data.repository.DevicePolicyResources; import com.android.intentresolver.v2.emptystate.NoAppsAvailableEmptyStateProvider; import com.android.intentresolver.v2.emptystate.NoCrossProfileEmptyStateProvider; @@ -114,6 +115,8 @@ import com.android.internal.content.PackageMonitor; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto; +import com.google.common.collect.ImmutableList; + import dagger.hilt.android.AndroidEntryPoint; import kotlin.Unit; @@ -954,12 +957,16 @@ public class ResolverActivity extends Hilt_ResolverActivity implements ); return new ResolverMultiProfilePagerAdapter( /* context */ this, - mDevicePolicyResources.getPersonalTabLabel(), - mDevicePolicyResources.getPersonalTabAccessibilityLabel(), - TAB_TAG_PERSONAL, - personalAdapter, + ImmutableList.of( + new TabConfig<>( + PROFILE_PERSONAL, + mDevicePolicyResources.getPersonalTabLabel(), + mDevicePolicyResources.getPersonalTabAccessibilityLabel(), + TAB_TAG_PERSONAL, + personalAdapter)), createEmptyStateProvider(/* workProfileUserHandle= */ null), /* workProfileQuietModeChecker= */ () -> false, + /* defaultProfile= */ PROFILE_PERSONAL, /* workProfileUserHandle= */ null, requireAnnotatedUserHandles().cloneProfileUserHandle); } @@ -1015,14 +1022,19 @@ public class ResolverActivity extends Hilt_ResolverActivity implements ); return new ResolverMultiProfilePagerAdapter( /* context */ this, - mDevicePolicyResources.getPersonalTabLabel(), - mDevicePolicyResources.getPersonalTabAccessibilityLabel(), - TAB_TAG_PERSONAL, - personalAdapter, - mDevicePolicyResources.getWorkTabLabel(), - mDevicePolicyResources.getWorkTabAccessibilityLabel(), - TAB_TAG_WORK, - workAdapter, + ImmutableList.of( + new TabConfig<>( + PROFILE_PERSONAL, + mDevicePolicyResources.getPersonalTabLabel(), + mDevicePolicyResources.getPersonalTabAccessibilityLabel(), + TAB_TAG_PERSONAL, + personalAdapter), + new TabConfig<>( + PROFILE_WORK, + mDevicePolicyResources.getWorkTabLabel(), + mDevicePolicyResources.getWorkTabAccessibilityLabel(), + TAB_TAG_WORK, + workAdapter)), createEmptyStateProvider(workProfileUserHandle), () -> mLogic.getWorkProfileAvailabilityManager().isQuietModeEnabled(), selectedProfile, diff --git a/java/src/com/android/intentresolver/v2/ResolverMultiProfilePagerAdapter.java b/java/src/com/android/intentresolver/v2/ResolverMultiProfilePagerAdapter.java index 9c98d574..c2e1ae07 100644 --- a/java/src/com/android/intentresolver/v2/ResolverMultiProfilePagerAdapter.java +++ b/java/src/com/android/intentresolver/v2/ResolverMultiProfilePagerAdapter.java @@ -40,42 +40,8 @@ public class ResolverMultiProfilePagerAdapter extends MultiProfilePagerAdapter<ListView, ResolverListAdapter, ResolverListAdapter> { private final BottomPaddingOverrideSupplier mBottomPaddingOverrideSupplier; - public ResolverMultiProfilePagerAdapter( - Context context, - String personalTabLabel, - String personalTabAccessibilityLabel, - String personalTabTag, - ResolverListAdapter personalAdapter, - EmptyStateProvider emptyStateProvider, - Supplier<Boolean> workProfileQuietModeChecker, - UserHandle workProfileUserHandle, - UserHandle cloneProfileUserHandle) { - this( - context, - ImmutableList.of( - new TabConfig<>( - PROFILE_PERSONAL, - personalTabLabel, - personalTabAccessibilityLabel, - personalTabTag, - personalAdapter)), - emptyStateProvider, - workProfileQuietModeChecker, - /* defaultProfile= */ 0, - workProfileUserHandle, - cloneProfileUserHandle, - new BottomPaddingOverrideSupplier()); - } - public ResolverMultiProfilePagerAdapter(Context context, - String personalTabLabel, - String personalTabAccessibilityLabel, - String personalTabTag, - ResolverListAdapter personalAdapter, - String workTabLabel, - String workTabAccessibilityLabel, - String workTabTag, - ResolverListAdapter workAdapter, + ImmutableList<TabConfig<ResolverListAdapter>> tabs, EmptyStateProvider emptyStateProvider, Supplier<Boolean> workProfileQuietModeChecker, @ProfileType int defaultProfile, @@ -83,19 +49,7 @@ public class ResolverMultiProfilePagerAdapter extends UserHandle cloneProfileUserHandle) { this( context, - ImmutableList.of( - new TabConfig<>( - PROFILE_PERSONAL, - personalTabLabel, - personalTabAccessibilityLabel, - personalTabTag, - personalAdapter), - new TabConfig<>( - PROFILE_WORK, - workTabLabel, - workTabAccessibilityLabel, - workTabTag, - workAdapter)), + tabs, emptyStateProvider, workProfileQuietModeChecker, defaultProfile, |