am 20df6234: Merge "Add callback to voice interaction session for lockscreen shown" into mnc-dev

* commit '20df62345910ad390a3bb321990987757db0831d':
  Add callback to voice interaction session for lockscreen shown
This commit is contained in:
Jorim Jaggi
2015-07-22 20:22:56 +00:00
committed by Android Git Automerger
10 changed files with 70 additions and 0 deletions

View File

@ -28825,6 +28825,7 @@ package android.service.voice {
method public void onHandleAssist(android.os.Bundle, android.app.assist.AssistStructure, android.app.assist.AssistContent);
method public void onHandleScreenshot(android.graphics.Bitmap);
method public void onHide();
method public void onLockscreenShown();
method public boolean onKeyDown(int, android.view.KeyEvent);
method public boolean onKeyLongPress(int, android.view.KeyEvent);
method public boolean onKeyMultiple(int, int, android.view.KeyEvent);

View File

@ -30977,6 +30977,7 @@ package android.service.voice {
method public void onHandleAssist(android.os.Bundle, android.app.assist.AssistStructure, android.app.assist.AssistContent);
method public void onHandleScreenshot(android.graphics.Bitmap);
method public void onHide();
method public void onLockscreenShown();
method public boolean onKeyDown(int, android.view.KeyEvent);
method public boolean onKeyLongPress(int, android.view.KeyEvent);
method public boolean onKeyMultiple(int, int, android.view.KeyEvent);

View File

@ -35,5 +35,6 @@ oneway interface IVoiceInteractionSession {
void taskStarted(in Intent intent, int taskId);
void taskFinished(in Intent intent, int taskId);
void closeSystemDialogs();
void onLockscreenShown();
void destroy();
}

View File

@ -264,6 +264,11 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
mHandlerCaller.sendMessage(mHandlerCaller.obtainMessage(MSG_CLOSE_SYSTEM_DIALOGS));
}
@Override
public void onLockscreenShown() {
mHandlerCaller.sendMessage(mHandlerCaller.obtainMessage(MSG_ON_LOCKSCREEN_SHOWN));
}
@Override
public void destroy() {
mHandlerCaller.sendMessage(mHandlerCaller.obtainMessage(MSG_DESTROY));
@ -674,6 +679,7 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
static final int MSG_HANDLE_SCREENSHOT = 105;
static final int MSG_SHOW = 106;
static final int MSG_HIDE = 107;
static final int MSG_ON_LOCKSCREEN_SHOWN = 108;
class MyCallbacks implements HandlerCaller.Callback, SoftInputWindow.Callback {
@Override
@ -752,6 +758,10 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
if (DEBUG) Log.d(TAG, "doHide");
doHide();
break;
case MSG_ON_LOCKSCREEN_SHOWN:
if (DEBUG) Log.d(TAG, "onLockscreenShown");
onLockscreenShown();
break;
}
if (args != null) {
args.recycle();
@ -1296,6 +1306,13 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
hide();
}
/**
* Called when the lockscreen was shown.
*/
public void onLockscreenShown() {
hide();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
}

View File

@ -122,6 +122,16 @@ public class AssistUtils {
}
}
public void onLockscreenShown() {
try {
if (mVoiceInteractionManagerService != null) {
mVoiceInteractionManagerService.onLockscreenShown();
}
} catch (RemoteException e) {
Log.w(TAG, "Failed to call onLockscreenShown", e);
}
}
public ComponentName getAssistComponentForUser(int userId) {
final String setting = Settings.Secure.getStringForUser(mContext.getContentResolver(),
Settings.Secure.ASSISTANT, userId);

View File

@ -131,4 +131,9 @@ interface IVoiceInteractionManagerService {
* from the lockscreen.
*/
boolean activeServiceSupportsLaunchFromKeyguard();
/**
* Called when the lockscreen got shown.
*/
void onLockscreenShown();
}

View File

@ -304,4 +304,8 @@ public class AssistManager {
public void onUserSwitched(int newUserId) {
updateAssistInfo();
}
public void onLockscreenShown() {
mAssistUtils.onLockscreenShown();
}
}

View File

@ -3311,6 +3311,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mDraggedDownRow.notifyHeightChanged(false /* needsAnimation */);
mDraggedDownRow = null;
}
mAssistManager.onLockscreenShown();
}
private void onLaunchTransitionFadingEnded() {

View File

@ -893,6 +893,28 @@ public class VoiceInteractionManagerService extends SystemService {
}
}
@Override
public void onLockscreenShown() {
enforceCallingPermission(Manifest.permission.ACCESS_VOICE_INTERACTION_SERVICE);
synchronized (this) {
if (mImpl == null) {
return;
}
final long caller = Binder.clearCallingIdentity();
try {
if (mImpl.mActiveSession != null && mImpl.mActiveSession.mSession != null) {
try {
mImpl.mActiveSession.mSession.onLockscreenShown();
} catch (RemoteException e) {
Log.w(TAG, "Failed to call onLockscreenShown", e);
}
}
} finally {
Binder.restoreCallingIdentity(caller);
}
}
}
@Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)

View File

@ -24,6 +24,7 @@ import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.service.voice.VoiceInteractionSession;
import android.util.Log;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewTreeObserver;
@ -69,6 +70,7 @@ public class AssistInteractionSession extends VoiceInteractionSession {
@Override
public void onCreate() {
super.onCreate();
// Simulate slowness of Assist app
try {
Thread.sleep(1000);
@ -105,6 +107,12 @@ public class AssistInteractionSession extends VoiceInteractionSession {
}
}
@Override
public void onLockscreenShown() {
super.onLockscreenShown();
Log.i("Assistant", "Lockscreen was shown");
}
private void playAssistAnimation() {
Interpolator linearOutSlowIn = AnimationUtils.loadInterpolator(mBackground.getContext(),
android.R.interpolator.linear_out_slow_in);