From 528e4684920077f3864648fa33c712abf23a333f Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Thu, 10 Sep 2015 22:21:04 -0700 Subject: [PATCH] Remove unused content observer from AssistManager. Since I45e58de5f48e3769f114ff830d62c287d2b04d4f we always look up Settings.Secure.ASSISTANT just before the assist activity is launched. Hence we don't need to monitor following runtime data anymore. - changes of Settings.Secure.ASSISTANT with a content observer - switches of the current user id The primary goal of this CL is to make it clearer that we are lazily resolving the content of Settings.Secure.ASSISTANT by removing unnecessary code. No user visible behavior change is intended. Bug: 23097413 Change-Id: I079807db761c5543ba666c427d9b074794becf6e --- .../systemui/assist/AssistManager.java | 85 +++++-------------- .../statusbar/phone/PhoneStatusBar.java | 4 - 2 files changed, 23 insertions(+), 66 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java index 9265b631e486e..6f262228da8fa 100644 --- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java +++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java @@ -1,5 +1,7 @@ package com.android.systemui.assist; +import android.annotation.NonNull; +import android.annotation.Nullable; import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.SearchManager; @@ -9,9 +11,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.res.Resources; -import android.database.ContentObserver; import android.graphics.PixelFormat; -import android.media.AudioAttributes; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -21,7 +21,6 @@ import android.provider.Settings; import android.service.voice.VoiceInteractionSession; import android.util.Log; import android.view.Gravity; -import android.view.HapticFeedbackConstants; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -33,10 +32,6 @@ import com.android.internal.app.IVoiceInteractionSessionShowCallback; import com.android.systemui.R; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.CommandQueue; -import com.android.systemui.statusbar.phone.PhoneStatusBar; - -import java.io.FileDescriptor; -import java.io.PrintWriter; /** * Class to manage everything related to assist in SystemUI. @@ -58,8 +53,6 @@ public class AssistManager { private final BaseStatusBar mBar; private final AssistUtils mAssistUtils; - private ComponentName mAssistComponent; - private IVoiceInteractionSessionShowCallback mShowCallback = new IVoiceInteractionSessionShowCallback.Stub() { @@ -82,23 +75,11 @@ public class AssistManager { } }; - private final ContentObserver mAssistSettingsObserver = new ContentObserver(new Handler()) { - @Override - public void onChange(boolean selfChange) { - updateAssistInfo(); - } - }; - public AssistManager(BaseStatusBar bar, Context context) { mContext = context; mBar = bar; mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); mAssistUtils = new AssistUtils(context); - - mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor(Settings.Secure.ASSISTANT), false, - mAssistSettingsObserver); - mAssistSettingsObserver.onChange(false); mAssistDisclosure = new AssistDisclosure(context, new Handler()); } @@ -123,19 +104,19 @@ public class AssistManager { } public void startAssist(Bundle args) { - updateAssistInfo(); - if (mAssistComponent == null) { + final ComponentName assistComponent = getAssistInfo(); + if (assistComponent == null) { return; } - final boolean isService = isAssistantService(); + final boolean isService = assistComponent.equals(getVoiceInteractorComponentName()); if (!isService || !isVoiceSessionRunning()) { - showOrb(); + showOrb(assistComponent, isService); mView.postDelayed(mHideRunnable, isService ? TIMEOUT_SERVICE : TIMEOUT_ACTIVITY); } - startAssistInternal(args); + startAssistInternal(args, assistComponent, isService); } public void hideAssist() { @@ -161,22 +142,21 @@ public class AssistManager { return lp; } - private void showOrb() { - maybeSwapSearchIcon(); + private void showOrb(@NonNull ComponentName assistComponent, boolean isService) { + maybeSwapSearchIcon(assistComponent, isService); mView.show(true /* show */, true /* animate */); } - private void startAssistInternal(Bundle args) { - if (mAssistComponent != null) { - if (isAssistantService()) { - startVoiceInteractor(args); - } else { - startAssistActivity(args); - } + private void startAssistInternal(Bundle args, @NonNull ComponentName assistComponent, + boolean isService) { + if (isService) { + startVoiceInteractor(args); + } else { + startAssistActivity(args, assistComponent); } } - private void startAssistActivity(Bundle args) { + private void startAssistActivity(Bundle args, @NonNull ComponentName assistComponent) { if (!mBar.isDeviceProvisioned()) { return; } @@ -193,9 +173,7 @@ public class AssistManager { if (intent == null) { return; } - if (mAssistComponent != null) { - intent.setComponent(mAssistComponent); - } + intent.setComponent(assistComponent); intent.putExtras(args); if (structureEnabled) { @@ -243,13 +221,9 @@ public class AssistManager { mWindowManager.removeViewImmediate(mView); } - private void maybeSwapSearchIcon() { - if (mAssistComponent != null) { - replaceDrawable(mView.getOrb().getLogo(), mAssistComponent, ASSIST_ICON_METADATA_NAME, - isAssistantService()); - } else { - mView.getOrb().getLogo().setImageDrawable(null); - } + private void maybeSwapSearchIcon(@NonNull ComponentName assistComponent, boolean isService) { + replaceDrawable(mView.getOrb().getLogo(), assistComponent, ASSIST_ICON_METADATA_NAME, + isService); } public void replaceDrawable(ImageView v, ComponentName component, String name, @@ -283,28 +257,15 @@ public class AssistManager { v.setImageDrawable(null); } - private boolean isAssistantService() { - return mAssistComponent == null ? - false : mAssistComponent.equals(getVoiceInteractorComponentName()); - } - - private void updateAssistInfo() { - mAssistComponent = mAssistUtils.getAssistComponentForUser(UserHandle.USER_CURRENT); - } - - public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { - pw.println("AssistManager state:"); - pw.print(" mAssistComponent="); pw.println(mAssistComponent); + @Nullable + private ComponentName getAssistInfo() { + return mAssistUtils.getAssistComponentForUser(UserHandle.USER_CURRENT); } public void showDisclosure() { mAssistDisclosure.postShow(); } - public void onUserSwitched(int newUserId) { - updateAssistInfo(); - } - public void onLockscreenShown() { mAssistUtils.onLockscreenShown(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 44ffc26c33183..cbc64d83ea876 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2793,9 +2793,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mNextAlarmController != null) { mNextAlarmController.dump(fd, pw, args); } - if (mAssistManager != null) { - mAssistManager.dump(fd, pw, args); - } if (mSecurityController != null) { mSecurityController.dump(fd, pw, args); } @@ -3031,7 +3028,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, updateNotifications(); resetUserSetupObserver(); setControllerUsers(); - mAssistManager.onUserSwitched(newUserId); if (mFullscreenUserSwitcher != null) { mFullscreenUserSwitcher.onUserSwitched(newUserId); }