diff options
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rw-r--r-- | services/java/com/android/server/SystemServer.java | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index f465855017cd..b2c9e593c0dc 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -23,6 +23,7 @@ import static android.os.IServiceManager.DUMP_FLAG_PROTO; import static android.view.Display.DEFAULT_DISPLAY; import android.annotation.NonNull; +import android.annotation.StringRes; import android.app.ActivityThread; import android.app.INotificationManager; import android.app.usage.UsageStatsManagerInternal; @@ -38,6 +39,7 @@ import android.database.sqlite.SQLiteCompatibilityWalFlags; import android.database.sqlite.SQLiteGlobal; import android.hardware.display.DisplayManagerInternal; import android.net.ConnectivityModuleConnector; +import android.net.Network; import android.net.NetworkStackClient; import android.os.BaseBundle; import android.os.Binder; @@ -1264,14 +1266,22 @@ public final class SystemServer { startSystemCaptionsManagerService(context); // App prediction manager service - traceBeginAndSlog("StartAppPredictionService"); - mSystemServiceManager.startService(APP_PREDICTION_MANAGER_SERVICE_CLASS); - traceEnd(); + if (deviceHasConfigString(context, R.string.config_defaultAppPredictionService)) { + traceBeginAndSlog("StartAppPredictionService"); + mSystemServiceManager.startService(APP_PREDICTION_MANAGER_SERVICE_CLASS); + traceEnd(); + } else { + Slog.d(TAG, "AppPredictionService not defined by OEM"); + } // Content suggestions manager service - traceBeginAndSlog("StartContentSuggestionsService"); - mSystemServiceManager.startService(CONTENT_SUGGESTIONS_SERVICE_CLASS); - traceEnd(); + if (deviceHasConfigString(context, R.string.config_defaultContentSuggestionsService)) { + traceBeginAndSlog("StartContentSuggestionsService"); + mSystemServiceManager.startService(CONTENT_SUGGESTIONS_SERVICE_CLASS); + traceEnd(); + } else { + Slog.d(TAG, "ContentSuggestionsService not defined by OEM"); + } traceBeginAndSlog("InitConnectivityModuleConnector"); try { @@ -2262,10 +2272,13 @@ public final class SystemServer { }, BOOT_TIMINGS_TRACE_LOG); } + private boolean deviceHasConfigString(@NonNull Context context, @StringRes int resId) { + String serviceName = context.getString(resId); + return !TextUtils.isEmpty(serviceName); + } + private void startSystemCaptionsManagerService(@NonNull Context context) { - String serviceName = context.getString( - com.android.internal.R.string.config_defaultSystemCaptionsManagerService); - if (TextUtils.isEmpty(serviceName)) { + if (!deviceHasConfigString(context, R.string.config_defaultSystemCaptionsManagerService)) { Slog.d(TAG, "SystemCaptionsManagerService disabled because resource is not overlaid"); return; } @@ -2292,9 +2305,7 @@ public final class SystemServer { // Then check if OEM overlaid the resource that defines the service. if (!explicitlyEnabled) { - final String serviceName = context - .getString(com.android.internal.R.string.config_defaultContentCaptureService); - if (TextUtils.isEmpty(serviceName)) { + if (!deviceHasConfigString(context, R.string.config_defaultContentCaptureService)) { Slog.d(TAG, "ContentCaptureService disabled because resource is not overlaid"); return; } |