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
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user