summaryrefslogtreecommitdiffstats
path: root/go
diff options
context:
space:
mode:
authorKevin <kevhan@google.com>2019-01-25 10:27:08 -0800
committerKevin <kevhan@google.com>2019-02-25 13:39:42 -0800
commiteee12ee4cfe9aa5d799fa2f538f5df48d2fda9c4 (patch)
tree53a6fd50b9d1efc75673b8547bf865c058890e8f /go
parent517163e0ae686efc8ba9a07adadec50da0d29270 (diff)
downloadpackages_apps_Trebuchet-eee12ee4cfe9aa5d799fa2f538f5df48d2fda9c4.tar.gz
packages_apps_Trebuchet-eee12ee4cfe9aa5d799fa2f538f5df48d2fda9c4.tar.bz2
packages_apps_Trebuchet-eee12ee4cfe9aa5d799fa2f538f5df48d2fda9c4.zip
Stub out most of TouchInteractionService for Go
Most of TouchInteractionService is not used in Go since we don't support a lot of the gestures, so this code swaps the file and stubs out everything except the atomic overview commands for Go only. Bug: 114136250 Test: Manual test NexusLauncher, l3GoIconRecents Change-Id: I449746d01d3bbf619663399deb9600f0e4ecc000
Diffstat (limited to 'go')
-rw-r--r--go/quickstep/src/com/android/quickstep/TouchInteractionService.java133
1 files changed, 133 insertions, 0 deletions
diff --git a/go/quickstep/src/com/android/quickstep/TouchInteractionService.java b/go/quickstep/src/com/android/quickstep/TouchInteractionService.java
new file mode 100644
index 000000000..2858deb6f
--- /dev/null
+++ b/go/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.quickstep;
+
+import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_SYSUI_PROXY;
+
+import android.annotation.TargetApi;
+import android.app.Service;
+import android.content.Intent;
+import android.graphics.Region;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.Log;
+import android.view.MotionEvent;
+
+import com.android.systemui.shared.recents.IOverviewProxy;
+import com.android.systemui.shared.recents.ISystemUiProxy;
+import com.android.systemui.shared.system.NavigationBarCompat.HitTarget;
+
+/**
+ * Service connected by system-UI for handling touch interaction.
+ */
+@TargetApi(Build.VERSION_CODES.O)
+public class TouchInteractionService extends Service {
+
+ public static final int EDGE_NAV_BAR = 1 << 8;
+
+ private static final String TAG = "TouchInteractionService";
+
+ private final IBinder mMyBinder = new IOverviewProxy.Stub() {
+
+ @Override
+ public void onActiveNavBarRegionChanges(Region region) throws RemoteException { }
+
+ @Override
+ public void onInitialize(Bundle bundle) throws RemoteException {
+ ISystemUiProxy iSystemUiProxy = ISystemUiProxy.Stub
+ .asInterface(bundle.getBinder(KEY_EXTRA_SYSUI_PROXY));
+ mRecentsModel.setSystemUiProxy(iSystemUiProxy);
+ }
+
+ @Override
+ public void onOverviewToggle() {
+ mOverviewCommandHelper.onOverviewToggle();
+ }
+
+ @Override
+ public void onOverviewShown(boolean triggeredFromAltTab) {
+ mOverviewCommandHelper.onOverviewShown(triggeredFromAltTab);
+ }
+
+ @Override
+ public void onOverviewHidden(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
+ if (triggeredFromAltTab && !triggeredFromHomeKey) {
+ // onOverviewShownFromAltTab hides the overview and ends at the target app
+ mOverviewCommandHelper.onOverviewHidden();
+ }
+ }
+
+ @Override
+ public void onTip(int actionType, int viewType) {
+ mOverviewCommandHelper.onTip(actionType, viewType);
+ }
+
+ /** Deprecated methods **/
+ public void onQuickStep(MotionEvent motionEvent) { }
+
+ public void onQuickScrubEnd() { }
+
+ public void onQuickScrubProgress(float progress) { }
+
+ public void onQuickScrubStart() { }
+
+ public void onPreMotionEvent(int downHitTarget) { }
+
+ public void onMotionEvent(MotionEvent ev) { }
+
+ public void onBind(ISystemUiProxy iSystemUiProxy) {
+ mRecentsModel.setSystemUiProxy(iSystemUiProxy);
+ }
+ };
+
+ private static boolean sConnected = false;;
+
+ public static boolean isConnected() {
+ return sConnected;
+ }
+
+ private RecentsModel mRecentsModel;
+ private OverviewComponentObserver mOverviewComponentObserver;
+ private OverviewCommandHelper mOverviewCommandHelper;
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ mRecentsModel = RecentsModel.INSTANCE.get(this);
+ mOverviewComponentObserver = new OverviewComponentObserver(this);
+ mOverviewCommandHelper = new OverviewCommandHelper(this,
+ mOverviewComponentObserver);
+
+ sConnected = true;
+ }
+
+ @Override
+ public void onDestroy() {
+ mOverviewComponentObserver.onDestroy();
+ sConnected = false;
+ super.onDestroy();
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Touch service connected");
+ }
+ return mMyBinder;
+ }
+}