Merge "Removes camera service prewarming from bottom area." into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a55c15df95
@@ -28,17 +28,13 @@ import static com.android.systemui.tuner.LockscreenFragment.LOCKSCREEN_RIGHT_UNL
|
|||||||
import static com.android.systemui.wallet.controller.QuickAccessWalletController.WalletChangeEvent.DEFAULT_PAYMENT_APP_CHANGE;
|
import static com.android.systemui.wallet.controller.QuickAccessWalletController.WalletChangeEvent.DEFAULT_PAYMENT_APP_CHANGE;
|
||||||
import static com.android.systemui.wallet.controller.QuickAccessWalletController.WalletChangeEvent.WALLET_PREFERENCE_CHANGE;
|
import static com.android.systemui.wallet.controller.QuickAccessWalletController.WalletChangeEvent.WALLET_PREFERENCE_CHANGE;
|
||||||
|
|
||||||
import android.app.ActivityManager;
|
|
||||||
import android.app.ActivityOptions;
|
import android.app.ActivityOptions;
|
||||||
import android.app.ActivityTaskManager;
|
import android.app.ActivityTaskManager;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
|
||||||
import android.content.pm.ActivityInfo;
|
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.content.pm.ResolveInfo;
|
import android.content.pm.ResolveInfo;
|
||||||
import android.content.res.ColorStateList;
|
import android.content.res.ColorStateList;
|
||||||
@@ -46,13 +42,8 @@ import android.content.res.Configuration;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
|
||||||
import android.os.Message;
|
|
||||||
import android.os.Messenger;
|
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.provider.MediaStore;
|
|
||||||
import android.service.media.CameraPrewarmService;
|
|
||||||
import android.service.quickaccesswallet.GetWalletCardsError;
|
import android.service.quickaccesswallet.GetWalletCardsError;
|
||||||
import android.service.quickaccesswallet.GetWalletCardsResponse;
|
import android.service.quickaccesswallet.GetWalletCardsResponse;
|
||||||
import android.service.quickaccesswallet.QuickAccessWalletClient;
|
import android.service.quickaccesswallet.QuickAccessWalletClient;
|
||||||
@@ -172,20 +163,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
private KeyguardAffordanceHelper mAffordanceHelper;
|
private KeyguardAffordanceHelper mAffordanceHelper;
|
||||||
private FalsingManager mFalsingManager;
|
private FalsingManager mFalsingManager;
|
||||||
private boolean mUserSetupComplete;
|
private boolean mUserSetupComplete;
|
||||||
private boolean mPrewarmBound;
|
|
||||||
private Messenger mPrewarmMessenger;
|
|
||||||
private final ServiceConnection mPrewarmConnection = new ServiceConnection() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onServiceConnected(ComponentName name, IBinder service) {
|
|
||||||
mPrewarmMessenger = new Messenger(service);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onServiceDisconnected(ComponentName name) {
|
|
||||||
mPrewarmMessenger = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private boolean mLeftIsVoiceAssist;
|
private boolean mLeftIsVoiceAssist;
|
||||||
private Drawable mLeftAssistIcon;
|
private Drawable mLeftAssistIcon;
|
||||||
@@ -602,46 +579,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void bindCameraPrewarmService() {
|
|
||||||
Intent intent = getCameraIntent();
|
|
||||||
ActivityInfo targetInfo = mActivityIntentHelper.getTargetActivityInfo(intent,
|
|
||||||
KeyguardUpdateMonitor.getCurrentUser(), true /* onlyDirectBootAware */);
|
|
||||||
if (targetInfo != null && targetInfo.metaData != null) {
|
|
||||||
String clazz = targetInfo.metaData.getString(
|
|
||||||
MediaStore.META_DATA_STILL_IMAGE_CAMERA_PREWARM_SERVICE);
|
|
||||||
if (clazz != null) {
|
|
||||||
Intent serviceIntent = new Intent();
|
|
||||||
serviceIntent.setClassName(targetInfo.packageName, clazz);
|
|
||||||
serviceIntent.setAction(CameraPrewarmService.ACTION_PREWARM);
|
|
||||||
try {
|
|
||||||
if (getContext().bindServiceAsUser(serviceIntent, mPrewarmConnection,
|
|
||||||
Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE,
|
|
||||||
new UserHandle(UserHandle.USER_CURRENT))) {
|
|
||||||
mPrewarmBound = true;
|
|
||||||
}
|
|
||||||
} catch (SecurityException e) {
|
|
||||||
Log.w(TAG, "Unable to bind to prewarm service package=" + targetInfo.packageName
|
|
||||||
+ " class=" + clazz, e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void unbindCameraPrewarmService(boolean launched) {
|
|
||||||
if (mPrewarmBound) {
|
|
||||||
if (mPrewarmMessenger != null && launched) {
|
|
||||||
try {
|
|
||||||
mPrewarmMessenger.send(Message.obtain(null /* handler */,
|
|
||||||
CameraPrewarmService.MSG_CAMERA_FIRED));
|
|
||||||
} catch (RemoteException e) {
|
|
||||||
Log.w(TAG, "Error sending camera fired message", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mContext.unbindService(mPrewarmConnection);
|
|
||||||
mPrewarmBound = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void launchCamera(String source) {
|
public void launchCamera(String source) {
|
||||||
final Intent intent = getCameraIntent();
|
final Intent intent = getCameraIntent();
|
||||||
intent.putExtra(EXTRA_CAMERA_LAUNCH_SOURCE, source);
|
intent.putExtra(EXTRA_CAMERA_LAUNCH_SOURCE, source);
|
||||||
@@ -651,8 +588,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
AsyncTask.execute(new Runnable() {
|
AsyncTask.execute(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
int result = ActivityManager.START_CANCELED;
|
|
||||||
|
|
||||||
// Normally an activity will set it's requested rotation
|
// Normally an activity will set it's requested rotation
|
||||||
// animation on its window. However when launching an activity
|
// animation on its window. However when launching an activity
|
||||||
// causes the orientation to change this is too late. In these cases
|
// causes the orientation to change this is too late. In these cases
|
||||||
@@ -666,7 +601,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
o.setRotationAnimationHint(
|
o.setRotationAnimationHint(
|
||||||
WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
|
WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
|
||||||
try {
|
try {
|
||||||
result = ActivityTaskManager.getService().startActivityAsUser(
|
ActivityTaskManager.getService().startActivityAsUser(
|
||||||
null, getContext().getBasePackageName(),
|
null, getContext().getBasePackageName(),
|
||||||
getContext().getAttributionTag(), intent,
|
getContext().getAttributionTag(), intent,
|
||||||
intent.resolveTypeIfNeeded(getContext().getContentResolver()),
|
intent.resolveTypeIfNeeded(getContext().getContentResolver()),
|
||||||
@@ -675,25 +610,12 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Log.w(TAG, "Unable to start camera activity", e);
|
Log.w(TAG, "Unable to start camera activity", e);
|
||||||
}
|
}
|
||||||
final boolean launched = isSuccessfulLaunch(result);
|
|
||||||
post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
unbindCameraPrewarmService(launched);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
// We need to delay starting the activity because ResolverActivity finishes itself if
|
// We need to delay starting the activity because ResolverActivity finishes itself if
|
||||||
// launched behind lockscreen.
|
// launched behind lockscreen.
|
||||||
mActivityStarter.startActivity(intent, false /* dismissShade */,
|
mActivityStarter.startActivity(intent, false /* dismissShade */);
|
||||||
new ActivityStarter.Callback() {
|
|
||||||
@Override
|
|
||||||
public void onActivityStarted(int resultCode) {
|
|
||||||
unbindCameraPrewarmService(isSuccessfulLaunch(resultCode));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -705,12 +627,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
|
|||||||
dozeTimeTick();
|
dozeTimeTick();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isSuccessfulLaunch(int result) {
|
|
||||||
return result == ActivityManager.START_SUCCESS
|
|
||||||
|| result == ActivityManager.START_DELIVERED_TO_TOP
|
|
||||||
|| result == ActivityManager.START_TASK_TO_FRONT;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void launchLeftAffordance() {
|
public void launchLeftAffordance() {
|
||||||
if (mLeftIsVoiceAssist) {
|
if (mLeftIsVoiceAssist) {
|
||||||
launchVoiceAssist();
|
launchVoiceAssist();
|
||||||
|
|||||||
@@ -4591,13 +4591,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
@Override
|
@Override
|
||||||
public void onSwipingStarted(boolean rightIcon) {
|
public void onSwipingStarted(boolean rightIcon) {
|
||||||
mFalsingCollector.onAffordanceSwipingStarted(rightIcon);
|
mFalsingCollector.onAffordanceSwipingStarted(rightIcon);
|
||||||
boolean
|
|
||||||
camera =
|
|
||||||
mView.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL ? !rightIcon
|
|
||||||
: rightIcon;
|
|
||||||
if (camera) {
|
|
||||||
mKeyguardBottomArea.bindCameraPrewarmService();
|
|
||||||
}
|
|
||||||
mView.requestDisallowInterceptTouchEvent(true);
|
mView.requestDisallowInterceptTouchEvent(true);
|
||||||
mOnlyAffordanceInThisMotion = true;
|
mOnlyAffordanceInThisMotion = true;
|
||||||
mQsTracking = false;
|
mQsTracking = false;
|
||||||
@@ -4606,7 +4599,6 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
@Override
|
@Override
|
||||||
public void onSwipingAborted() {
|
public void onSwipingAborted() {
|
||||||
mFalsingCollector.onAffordanceSwipingAborted();
|
mFalsingCollector.onAffordanceSwipingAborted();
|
||||||
mKeyguardBottomArea.unbindCameraPrewarmService(false /* launched */);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user