Remove FlingAnimationUtils.Builder provider.
Mark it as directly injectable. Use a Provider<> of the Builder so that, if DisplayMetrics changes, the changes get picked up. Fixes: 174653877 Test: manual Change-Id: If8b404cbb7f5111144c21ce4810323d95f962359
This commit is contained in:
@@ -125,9 +125,10 @@ android_library {
|
||||
"protolog-lib",
|
||||
"SettingsLib",
|
||||
"WindowManager-Shell-proto",
|
||||
"jsr330"
|
||||
],
|
||||
kotlincflags: ["-Xjvm-default=enable"],
|
||||
manifest: "AndroidManifest.xml",
|
||||
|
||||
min_sdk_version: "26",
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ import android.view.ViewPropertyAnimator;
|
||||
import android.view.animation.Interpolator;
|
||||
import android.view.animation.PathInterpolator;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Utility class to calculate general fling animation when the finger is released.
|
||||
*/
|
||||
@@ -368,6 +370,7 @@ public class FlingAnimationUtils {
|
||||
float mX2;
|
||||
float mY2;
|
||||
|
||||
@Inject
|
||||
public Builder(DisplayMetrics displayMetrics) {
|
||||
mDisplayMetrics = displayMetrics;
|
||||
reset();
|
||||
|
||||
@@ -30,7 +30,6 @@ import android.os.HandlerThread;
|
||||
import android.os.Looper;
|
||||
import android.os.ServiceManager;
|
||||
import android.os.UserHandle;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Choreographer;
|
||||
import android.view.IWindowManager;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -141,16 +140,6 @@ public class DependencyProvider {
|
||||
return networkController.getDataSaverController();
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
public DisplayMetrics provideDisplayMetrics(Context context, WindowManager windowManager) {
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
context.getDisplay().getMetrics(displayMetrics);
|
||||
return displayMetrics;
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
public INotificationManager provideINotificationManager() {
|
||||
|
||||
@@ -22,7 +22,6 @@ import android.util.DisplayMetrics;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.UiEventLoggerImpl;
|
||||
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
|
||||
import com.android.wm.shell.animation.FlingAnimationUtils;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
@@ -49,15 +48,12 @@ import dagger.Provides;
|
||||
GlobalConcurrencyModule.class})
|
||||
public class GlobalModule {
|
||||
|
||||
// TODO(b/162923491): This should not be a singleton at all, the display metrics can change and
|
||||
// callers should be creating a new builder on demand
|
||||
@Singleton
|
||||
/** */
|
||||
@Provides
|
||||
static FlingAnimationUtils.Builder provideFlingAnimationUtilsBuilder(
|
||||
Context context) {
|
||||
public DisplayMetrics provideDisplayMetrics(Context context) {
|
||||
DisplayMetrics displayMetrics = new DisplayMetrics();
|
||||
context.getDisplay().getMetrics(displayMetrics);
|
||||
return new FlingAnimationUtils.Builder(displayMetrics);
|
||||
return displayMetrics;
|
||||
}
|
||||
|
||||
/** Provides an instance of {@link com.android.internal.logging.UiEventLogger} */
|
||||
|
||||
@@ -140,6 +140,7 @@ import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
|
||||
@StatusBarComponent.StatusBarScope
|
||||
public class NotificationPanelViewController extends PanelViewController {
|
||||
@@ -184,7 +185,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
private final MetricsLogger mMetricsLogger;
|
||||
private final ActivityManager mActivityManager;
|
||||
private final ConfigurationController mConfigurationController;
|
||||
private final FlingAnimationUtils.Builder mFlingAnimationUtilsBuilder;
|
||||
private final Provider<FlingAnimationUtils.Builder> mFlingAnimationUtilsBuilder;
|
||||
private final NotificationStackScrollLayoutController mNotificationStackScrollLayoutController;
|
||||
private final NotificationIconAreaController mNotificationIconAreaController;
|
||||
|
||||
@@ -535,7 +536,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
KeyguardUpdateMonitor keyguardUpdateMonitor, MetricsLogger metricsLogger,
|
||||
ActivityManager activityManager,
|
||||
ConfigurationController configurationController,
|
||||
FlingAnimationUtils.Builder flingAnimationUtilsBuilder,
|
||||
Provider<FlingAnimationUtils.Builder> flingAnimationUtilsBuilder,
|
||||
StatusBarTouchableRegionManager statusBarTouchableRegionManager,
|
||||
ConversationNotificationManager conversationNotificationManager,
|
||||
MediaHierarchyManager mediaHierarchyManager,
|
||||
@@ -549,7 +550,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
QSDetailDisplayer qsDetailDisplayer) {
|
||||
super(view, falsingManager, dozeLog, keyguardStateController,
|
||||
(SysuiStatusBarStateController) statusBarStateController, vibratorHelper,
|
||||
latencyTracker, flingAnimationUtilsBuilder, statusBarTouchableRegionManager);
|
||||
latencyTracker, flingAnimationUtilsBuilder.get(), statusBarTouchableRegionManager);
|
||||
mView = view;
|
||||
mMetricsLogger = metricsLogger;
|
||||
mActivityManager = activityManager;
|
||||
@@ -688,7 +689,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
@Override
|
||||
protected void loadDimens() {
|
||||
super.loadDimens();
|
||||
mFlingAnimationUtils = mFlingAnimationUtilsBuilder.reset()
|
||||
mFlingAnimationUtils = mFlingAnimationUtilsBuilder.get()
|
||||
.setMaxLengthSeconds(0.4f).build();
|
||||
mStatusBarMinHeight = mResources.getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.status_bar_height);
|
||||
|
||||
@@ -267,7 +267,7 @@ public class NotificationPanelViewTest extends SysuiTestCase {
|
||||
mDozeParameters, mCommandQueue, mVibratorHelper,
|
||||
mLatencyTracker, mPowerManager, mAccessibilityManager, 0, mUpdateMonitor,
|
||||
mMetricsLogger, mActivityManager, mConfigurationController,
|
||||
flingAnimationUtilsBuilder, mStatusBarTouchableRegionManager,
|
||||
() -> flingAnimationUtilsBuilder, mStatusBarTouchableRegionManager,
|
||||
mConversationNotificationManager, mMediaHiearchyManager,
|
||||
mBiometricUnlockController, mStatusBarKeyguardViewManager,
|
||||
mNotificationStackScrollLayoutController,
|
||||
|
||||
Reference in New Issue
Block a user