From fb2d12fec30e3a6e2fce3de5b3e35eb432f6af59 Mon Sep 17 00:00:00 2001 From: Mark Renouf Date: Mon, 9 Dec 2024 13:45:31 -0500 Subject: Replace injection of 'FeatureFlags' with static flag references Flag methods should be statically imported and called directly. This aligns usage with SystemUI best practices. For tests, flags are overridden using the @EnableFlags or @DisableFlags test method annotations. Bug: NONE simple cleanup Flag: NONE no functional change Test: NONE no functional change Change-Id: I7213ad2dc969d8c1e1eacd88e00ee702face7cda --- .../android/intentresolver/ChooserActivity.java | 25 ++++++------- .../com/android/intentresolver/ProfileHelper.kt | 9 +---- .../android/intentresolver/ResolverActivity.java | 5 +-- .../contentpreview/ImageLoaderModule.kt | 6 ++-- .../ui/viewmodel/ShareouselViewModel.kt | 15 +++----- .../intentresolver/grid/ChooserGridAdapter.java | 6 +--- .../intentresolver/inject/FeatureFlagsModule.kt | 41 ---------------------- 7 files changed, 24 insertions(+), 83 deletions(-) delete mode 100644 java/src/com/android/intentresolver/inject/FeatureFlagsModule.kt (limited to 'java') diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java index 54f575d7..3ff296a2 100644 --- a/java/src/com/android/intentresolver/ChooserActivity.java +++ b/java/src/com/android/intentresolver/ChooserActivity.java @@ -23,9 +23,14 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE import static androidx.lifecycle.LifecycleKt.getCoroutineScope; import static com.android.intentresolver.ChooserActionFactory.EDIT_SOURCE; +import static com.android.intentresolver.Flags.fixDrawerOffsetOnConfigChange; +import static com.android.intentresolver.Flags.fixEmptyStatePaddingBug; +import static com.android.intentresolver.Flags.fixMissingDrawerOffsetCalculation; +import static com.android.intentresolver.Flags.fixPrivateSpaceLockedOnRestart; import static com.android.intentresolver.Flags.fixShortcutsFlashing; import static com.android.intentresolver.Flags.keyboardNavigationFix; import static com.android.intentresolver.Flags.rebuildAdaptersOnTargetPinning; +import static com.android.intentresolver.Flags.refineSystemActions; import static com.android.intentresolver.Flags.shareouselUpdateExcludeComponentsExtra; import static com.android.intentresolver.Flags.unselectFinalItem; import static com.android.intentresolver.ext.CreationExtrasExtKt.replaceDefaultArgs; @@ -256,7 +261,6 @@ public class ChooserActivity extends Hilt_ChooserActivity implements @Inject public UserInteractor mUserInteractor; @Inject @Background public CoroutineDispatcher mBackgroundDispatcher; @Inject public ChooserHelper mChooserHelper; - @Inject public FeatureFlags mFeatureFlags; @Inject public EventLog mEventLog; @Inject @AppPredictionAvailable public boolean mAppPredictionAvailable; @Inject @ImageEditor public Optional mImageEditor; @@ -422,7 +426,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements @Override protected final void onRestart() { super.onRestart(); - if (mFeatureFlags.fixPrivateSpaceLockedOnRestart()) { + if (fixPrivateSpaceLockedOnRestart()) { if (mChooserMultiProfilePagerAdapter.hasPageForProfile(Profile.Type.PRIVATE.ordinal()) && !mProfileAvailability.isAvailable(mProfiles.getPrivateProfile())) { Log.d(TAG, "Exiting due to unavailable profile"); @@ -481,9 +485,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements mProfiles = new ProfileHelper( mUserInteractor, - getCoroutineScope(getLifecycle()), - mBackgroundDispatcher, - mFeatureFlags); + mBackgroundDispatcher); mProfileAvailability = new ProfileAvailability( mUserInteractor, @@ -2073,8 +2075,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements }, chooserListAdapter, shouldShowContentPreview(), - mMaxTargetsPerRow, - mFeatureFlags); + mMaxTargetsPerRow); } @VisibleForTesting @@ -2168,7 +2169,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements private ChooserContentPreviewUi.ActionFactory decorateActionFactoryWithRefinement( ChooserContentPreviewUi.ActionFactory originalFactory) { - if (!mFeatureFlags.refineSystemActions()) { + if (!refineSystemActions()) { return originalFactory; } @@ -2317,7 +2318,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements if (isLayoutUpdated || insetsChanged || mLastNumberOfChildren != recyclerView.getChildCount() - || mFeatureFlags.fixMissingDrawerOffsetCalculation()) { + || fixMissingDrawerOffsetCalculation()) { mCurrAvailableWidth = availableWidth; if (isLayoutUpdated) { // It is very important we call setAdapter from here. Otherwise in some cases @@ -2331,7 +2332,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } int currentProfile = mChooserMultiProfilePagerAdapter.getActiveProfile(); - int initialProfile = Flags.fixDrawerOffsetOnConfigChange() + int initialProfile = fixDrawerOffsetOnConfigChange() ? mInitialProfile : findSelectedProfile(); if (currentProfile != initialProfile) { @@ -2339,7 +2340,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements } if (mLastNumberOfChildren == recyclerView.getChildCount() && !insetsChanged - && !mFeatureFlags.fixMissingDrawerOffsetCalculation()) { + && !fixMissingDrawerOffsetCalculation()) { return; } @@ -2690,7 +2691,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements protected WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { mSystemWindowInsets = insets.getInsets(WindowInsets.Type.systemBars()); - if (mFeatureFlags.fixEmptyStatePaddingBug() || mProfiles.getWorkProfilePresent()) { + if (fixEmptyStatePaddingBug() || mProfiles.getWorkProfilePresent()) { mChooserMultiProfilePagerAdapter .setEmptyStateBottomOffset(mSystemWindowInsets.bottom); } diff --git a/java/src/com/android/intentresolver/ProfileHelper.kt b/java/src/com/android/intentresolver/ProfileHelper.kt index 53a873a3..b87f7e3f 100644 --- a/java/src/com/android/intentresolver/ProfileHelper.kt +++ b/java/src/com/android/intentresolver/ProfileHelper.kt @@ -20,12 +20,10 @@ import android.os.UserHandle import androidx.annotation.MainThread import com.android.intentresolver.annotation.JavaInterop import com.android.intentresolver.domain.interactor.UserInteractor -import com.android.intentresolver.inject.IntentResolverFlags import com.android.intentresolver.shared.model.Profile import com.android.intentresolver.shared.model.User import javax.inject.Inject import kotlinx.coroutines.CoroutineDispatcher -import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking @@ -33,12 +31,7 @@ import kotlinx.coroutines.runBlocking @MainThread class ProfileHelper @Inject -constructor( - interactor: UserInteractor, - private val scope: CoroutineScope, - private val background: CoroutineDispatcher, - private val flags: IntentResolverFlags, -) { +constructor(interactor: UserInteractor, private val background: CoroutineDispatcher) { private val launchedByHandle: UserHandle = interactor.launchedAs val launchedAsProfile by lazy { diff --git a/java/src/com/android/intentresolver/ResolverActivity.java b/java/src/com/android/intentresolver/ResolverActivity.java index 38259281..a63b3a98 100644 --- a/java/src/com/android/intentresolver/ResolverActivity.java +++ b/java/src/com/android/intentresolver/ResolverActivity.java @@ -148,7 +148,6 @@ public class ResolverActivity extends Hilt_ResolverActivity implements @Inject public DevicePolicyResources mDevicePolicyResources; @Inject public ProfilePagerResources mProfilePagerResources; @Inject public IntentForwarding mIntentForwarding; - @Inject public FeatureFlags mFeatureFlags; @Inject public ActivityModelRepository mActivityModelRepository; @Inject public DefaultTargetDataLoader.Factory mTargetDataLoaderFactory; @@ -323,9 +322,7 @@ public class ResolverActivity extends Hilt_ResolverActivity implements mProfiles = new ProfileHelper( mUserInteractor, - getCoroutineScope(getLifecycle()), - mBackgroundDispatcher, - mFeatureFlags); + mBackgroundDispatcher); mProfileAvailability = new ProfileAvailability( mUserInteractor, diff --git a/java/src/com/android/intentresolver/contentpreview/ImageLoaderModule.kt b/java/src/com/android/intentresolver/contentpreview/ImageLoaderModule.kt index 27e817db..7df98cd2 100644 --- a/java/src/com/android/intentresolver/contentpreview/ImageLoaderModule.kt +++ b/java/src/com/android/intentresolver/contentpreview/ImageLoaderModule.kt @@ -17,7 +17,7 @@ package com.android.intentresolver.contentpreview import android.content.res.Resources -import com.android.intentresolver.Flags +import com.android.intentresolver.Flags.previewImageLoader import com.android.intentresolver.R import com.android.intentresolver.inject.ApplicationOwned import dagger.Binds @@ -36,9 +36,9 @@ interface ImageLoaderModule { @Provides fun imageLoader( imagePreviewImageLoader: Provider, - previewImageLoader: Provider + previewImageLoader: Provider, ): ImageLoader = - if (Flags.previewImageLoader()) { + if (previewImageLoader()) { previewImageLoader.get() } else { imagePreviewImageLoader.get() diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt index ebcd58d1..7f363949 100644 --- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt +++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/ui/viewmodel/ShareouselViewModel.kt @@ -16,7 +16,7 @@ package com.android.intentresolver.contentpreview.payloadtoggle.ui.viewmodel import android.util.Size -import com.android.intentresolver.Flags +import com.android.intentresolver.Flags.previewImageLoader import com.android.intentresolver.Flags.unselectFinalItem import com.android.intentresolver.contentpreview.CachingImagePreviewImageLoader import com.android.intentresolver.contentpreview.HeadlineGenerator @@ -65,7 +65,7 @@ data class ShareouselViewModel( /** Creates a [ShareouselPreviewViewModel] for a [PreviewModel] present in [previews]. */ val preview: ( - key: PreviewModel, previewHeight: Int, index: Int?, scope: CoroutineScope + key: PreviewModel, previewHeight: Int, index: Int?, scope: CoroutineScope, ) -> ShareouselPreviewViewModel, ) @@ -77,9 +77,9 @@ object ShareouselViewModelModule { @PayloadToggle fun imageLoader( cachingImageLoader: Provider, - previewImageLoader: Provider + previewImageLoader: Provider, ): ImageLoader = - if (Flags.previewImageLoader()) { + if (previewImageLoader()) { previewImageLoader.get() } else { cachingImageLoader.get() @@ -97,12 +97,7 @@ object ShareouselViewModelModule { // TODO: remove if possible @ViewModelOwned scope: CoroutineScope, ): ShareouselViewModel { - val keySet = - interactor.previews.stateIn( - scope, - SharingStarted.Eagerly, - initialValue = null, - ) + val keySet = interactor.previews.stateIn(scope, SharingStarted.Eagerly, initialValue = null) return ShareouselViewModel( headline = selectionInteractor.aggregateContentType.zip(selectionInteractor.amountSelected) { diff --git a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java index 9a50d7e4..f78fffd6 100644 --- a/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java +++ b/java/src/com/android/intentresolver/grid/ChooserGridAdapter.java @@ -37,7 +37,6 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.RecyclerView; import com.android.intentresolver.ChooserListAdapter; -import com.android.intentresolver.FeatureFlags; import com.android.intentresolver.R; import com.android.intentresolver.ResolverListAdapter.ViewHolder; @@ -89,7 +88,6 @@ public final class ChooserGridAdapter extends RecyclerView.Adapter