diff options
Diffstat (limited to 'src/com/android/launcher3/testing/TestInformationHandler.java')
-rw-r--r-- | src/com/android/launcher3/testing/TestInformationHandler.java | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/src/com/android/launcher3/testing/TestInformationHandler.java b/src/com/android/launcher3/testing/TestInformationHandler.java new file mode 100644 index 000000000..b8476aa1d --- /dev/null +++ b/src/com/android/launcher3/testing/TestInformationHandler.java @@ -0,0 +1,83 @@ +/* + * 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.launcher3.testing; + +import android.content.Context; +import android.os.Bundle; + +import com.android.launcher3.DeviceProfile; +import com.android.launcher3.InvariantDeviceProfile; +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherAppState; +import com.android.launcher3.LauncherState; +import com.android.launcher3.R; +import com.android.launcher3.util.ResourceBasedOverride; + +public class TestInformationHandler implements ResourceBasedOverride { + + public static TestInformationHandler newInstance(Context context) { + return Overrides.getObject(TestInformationHandler.class, + context, R.string.test_information_handler_class); + } + + protected Context mContext; + protected DeviceProfile mDeviceProfile; + protected LauncherAppState mLauncherAppState; + protected Launcher mLauncher; + + public void init(Context context) { + mContext = context; + mDeviceProfile = InvariantDeviceProfile.INSTANCE. + get(context).getDeviceProfile(context); + mLauncherAppState = LauncherAppState.getInstanceNoCreate(); + mLauncher = mLauncherAppState != null ? + (Launcher) mLauncherAppState.getModel().getCallback() : null; + } + + public Bundle call(String method) { + final Bundle response = new Bundle(); + switch (method) { + case TestProtocol.REQUEST_ALL_APPS_TO_OVERVIEW_SWIPE_HEIGHT: { + if (mLauncher == null) return null; + + final float progress = LauncherState.OVERVIEW.getVerticalProgress(mLauncher) + - LauncherState.ALL_APPS.getVerticalProgress(mLauncher); + final float distance = mLauncher.getAllAppsController().getShiftRange() * progress; + response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, (int) distance); + break; + } + + case TestProtocol.REQUEST_HOME_TO_ALL_APPS_SWIPE_HEIGHT: { + if (mLauncher == null) return null; + + final float progress = LauncherState.NORMAL.getVerticalProgress(mLauncher) + - LauncherState.ALL_APPS.getVerticalProgress(mLauncher); + final float distance = mLauncher.getAllAppsController().getShiftRange() * progress; + response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD, (int) distance); + break; + } + + case TestProtocol.REQUEST_ENABLE_DEBUG_TRACING: + TestProtocol.sDebugTracing = true; + break; + + case TestProtocol.REQUEST_DISABLE_DEBUG_TRACING: + TestProtocol.sDebugTracing = false; + break; + } + return response; + } +} |