summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Joshua Trask <joshtrask@google.com> 2024-01-23 16:16:02 +0000
committer Joshua Trask <joshtrask@google.com> 2024-01-23 17:46:35 +0000
commit561298bef94365950247075723dafdcfe998c745 (patch)
tree8b770648719e54cbfd2875efbafa797a427d0318 /java/src
parentde331d241074e2d8d3f78fe660a9940233afbc4c (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')
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserActivity.java36
-rw-r--r--java/src/com/android/intentresolver/v2/ChooserMultiProfilePagerAdapter.java54
-rw-r--r--java/src/com/android/intentresolver/v2/ResolverActivity.java36
-rw-r--r--java/src/com/android/intentresolver/v2/ResolverMultiProfilePagerAdapter.java50
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,