Merge "Cleanup GlobalModule." into tm-dev

This commit is contained in:
Dave Mankoff
2022-04-21 20:48:54 +00:00
committed by Android (Google) Code Review
6 changed files with 83 additions and 40 deletions

View File

@@ -19,9 +19,13 @@ package com.android.systemui.dagger;
import android.content.Context;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
import com.android.internal.util.NotificationMessagingUtil;
import com.android.internal.widget.LockPatternUtils;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@@ -32,14 +36,14 @@ import dagger.Provides;
public class AndroidInternalsModule {
/** */
@Provides
@SysUISingleton
@Singleton
public LockPatternUtils provideLockPatternUtils(Context context) {
return new LockPatternUtils(context);
}
/** */
@Provides
@SysUISingleton
@Singleton
public MetricsLogger provideMetricsLogger() {
return new MetricsLogger();
}
@@ -50,4 +54,10 @@ public class AndroidInternalsModule {
return new NotificationMessagingUtil(context);
}
/** Provides an instance of {@link com.android.internal.logging.UiEventLogger} */
@Provides
@Singleton
static UiEventLogger provideUiEventLogger() {
return new UiEventLoggerImpl();
}
}

View File

@@ -27,7 +27,6 @@ import dagger.Module;
*/
@Deprecated
@Module(includes = {
AndroidInternalsModule.class,
BroadcastDispatcherModule.class,
LeakModule.class,
NightDisplayListenerModule.class,

View File

@@ -90,6 +90,7 @@ import com.android.internal.util.LatencyTracker;
import com.android.systemui.Prefs;
import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.TestHarness;
import com.android.systemui.shared.system.PackageManagerWrapper;
import java.util.Optional;
@@ -443,6 +444,13 @@ public class FrameworkServicesModule {
return context.getSystemService(TelephonyManager.class);
}
@Provides
@Singleton
@TestHarness
static boolean provideIsTestHarness() {
return ActivityManager.isRunningInUserTestHarness();
}
@Provides
@Singleton
static TrustManager provideTrustManager(Context context) {

View File

@@ -16,23 +16,15 @@
package com.android.systemui.dagger;
import android.app.ActivityManager;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.Display;
import com.android.internal.logging.UiEventLogger;
import com.android.internal.logging.UiEventLoggerImpl;
import com.android.systemui.dagger.qualifiers.TestHarness;
import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.dagger.qualifiers.Application;
import com.android.systemui.plugins.PluginsModule;
import com.android.systemui.unfold.UnfoldTransitionModule;
import com.android.systemui.util.concurrency.GlobalConcurrencyModule;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
@@ -52,43 +44,29 @@ import dagger.Provides;
* Please use discretion when adding things to the global scope.
*/
@Module(includes = {
AndroidInternalsModule.class,
FrameworkServicesModule.class,
GlobalConcurrencyModule.class,
UnfoldTransitionModule.class,
PluginsModule.class,
})
public class GlobalModule {
/**
* TODO(b/229228871): This should be the default. No undecorated context should be available.
*/
@Provides
@Application
public Context provideApplicationContext(Context context) {
return context.getApplicationContext();
}
/** */
/**
* @deprecated Deprecdated because {@link Display#getMetrics} is deprecated.
*/
@Provides
public DisplayMetrics provideDisplayMetrics(Context context) {
DisplayMetrics displayMetrics = new DisplayMetrics();
context.getDisplay().getMetrics(displayMetrics);
return displayMetrics;
}
/** Provides an instance of {@link com.android.internal.logging.UiEventLogger} */
@Provides
@Singleton
static UiEventLogger provideUiEventLogger() {
return new UiEventLoggerImpl();
}
@Provides
@TestHarness
static boolean provideIsTestHarness() {
return ActivityManager.isRunningInUserTestHarness();
}
/**
* Provide an Executor specifically for running UI operations on a separate thread.
*
* Keep submitted runnables short and to the point, just as with any other UI code.
*/
@Provides
@Singleton
@UiBackground
public static Executor provideUiBackgroundExecutor() {
return Executors.newSingleThreadExecutor();
}
}

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2019 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.systemui.dagger.qualifiers;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import android.content.Context;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import javax.inject.Qualifier;
/**
* Used to qualify a context as {@link Context#getApplicationContext}
*/
@Qualifier
@Documented
@Retention(RUNTIME)
public @interface Application {
}

View File

@@ -21,9 +21,11 @@ import android.os.Handler;
import android.os.Looper;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.UiBackground;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import javax.inject.Named;
import javax.inject.Singleton;
@@ -72,6 +74,18 @@ public abstract class GlobalConcurrencyModule {
return new Handler();
}
/**
* Provide an Executor specifically for running UI operations on a separate thread.
*
* Keep submitted runnables short and to the point, just as with any other UI code.
*/
@Provides
@Singleton
@UiBackground
public static Executor provideUiBackgroundExecutor() {
return Executors.newSingleThreadExecutor();
}
/**
* Provide a Main-Thread Executor.
*/
@@ -92,7 +106,6 @@ public abstract class GlobalConcurrencyModule {
return new ExecutorImpl(looper);
}
/** */
@Binds
@Singleton