version:1.5
fix:迁移到奥乐云平台 add:
This commit is contained in:
113
src/com/aoleyun/os/testing/TestInformationHandler.java
Normal file
113
src/com/aoleyun/os/testing/TestInformationHandler.java
Normal file
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* 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.aoleyun.os.testing;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.aoleyun.os.DeviceProfile;
|
||||
import com.aoleyun.os.InvariantDeviceProfile;
|
||||
import com.aoleyun.os.Launcher;
|
||||
import com.aoleyun.os.LauncherAppState;
|
||||
import com.aoleyun.os.LauncherState;
|
||||
import com.aoleyun.os.MainThreadExecutor;
|
||||
import com.aoleyun.os.R;
|
||||
import com.aoleyun.os.allapps.AllAppsStore;
|
||||
import com.aoleyun.os.util.ResourceBasedOverride;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
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;
|
||||
|
||||
case TestProtocol.REQUEST_FREEZE_APP_LIST:
|
||||
new MainThreadExecutor().execute(() ->
|
||||
mLauncher.getAppsView().getAppsStore().enableDeferUpdates(
|
||||
AllAppsStore.DEFER_UPDATES_TEST));
|
||||
break;
|
||||
|
||||
case TestProtocol.REQUEST_UNFREEZE_APP_LIST:
|
||||
new MainThreadExecutor().execute(() ->
|
||||
mLauncher.getAppsView().getAppsStore().disableDeferUpdates(
|
||||
AllAppsStore.DEFER_UPDATES_TEST));
|
||||
break;
|
||||
|
||||
case TestProtocol.REQUEST_APP_LIST_FREEZE_FLAGS: {
|
||||
try {
|
||||
final int deferUpdatesFlags = new MainThreadExecutor().submit(() ->
|
||||
mLauncher.getAppsView().getAppsStore().getDeferUpdatesFlags()).get();
|
||||
response.putInt(TestProtocol.TEST_INFO_RESPONSE_FIELD,
|
||||
deferUpdatesFlags);
|
||||
} catch (ExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
||||
67
src/com/aoleyun/os/testing/TestInformationProvider.java
Normal file
67
src/com/aoleyun/os/testing/TestInformationProvider.java
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* 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.aoleyun.os.testing;
|
||||
|
||||
import android.content.ContentProvider;
|
||||
import android.content.ContentValues;
|
||||
import android.database.Cursor;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.aoleyun.os.Utilities;
|
||||
|
||||
public class TestInformationProvider extends ContentProvider {
|
||||
@Override
|
||||
public boolean onCreate() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update(Uri uri, ContentValues contentValues, String s, String[] strings) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete(Uri uri, String s, String[] strings) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Uri insert(Uri uri, ContentValues contentValues) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getType(Uri uri) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bundle call(String method, String arg, Bundle extras) {
|
||||
if (Utilities.IS_RUNNING_IN_TEST_HARNESS) {
|
||||
TestInformationHandler handler = TestInformationHandler.newInstance(getContext());
|
||||
handler.init(getContext());
|
||||
return handler.call(method);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
81
src/com/aoleyun/os/testing/TestProtocol.java
Normal file
81
src/com/aoleyun/os/testing/TestProtocol.java
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (C) 2018 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.aoleyun.os.testing;
|
||||
|
||||
/**
|
||||
* Protocol for custom accessibility events for communication with UI Automation tests.
|
||||
*/
|
||||
public final class TestProtocol {
|
||||
public static final String GET_SCROLL_MESSAGE = "TAPL_GET_SCROLL";
|
||||
public static final String SCROLL_Y_FIELD = "scrollY";
|
||||
public static final String STATE_FIELD = "state";
|
||||
public static final String SWITCHED_TO_STATE_MESSAGE = "TAPL_SWITCHED_TO_STATE";
|
||||
public static final String SCROLL_FINISHED_MESSAGE = "TAPL_SCROLL_FINISHED";
|
||||
public static final String PAUSE_DETECTED_MESSAGE = "TAPL_PAUSE_DETECTED";
|
||||
public static final String RESPONSE_MESSAGE_POSTFIX = "_RESPONSE";
|
||||
public static final int NORMAL_STATE_ORDINAL = 0;
|
||||
public static final int SPRING_LOADED_STATE_ORDINAL = 1;
|
||||
public static final int OVERVIEW_STATE_ORDINAL = 2;
|
||||
public static final int OVERVIEW_PEEK_STATE_ORDINAL = 3;
|
||||
public static final int QUICK_SWITCH_STATE_ORDINAL = 4;
|
||||
public static final int ALL_APPS_STATE_ORDINAL = 5;
|
||||
public static final int BACKGROUND_APP_STATE_ORDINAL = 6;
|
||||
|
||||
public static String stateOrdinalToString(int ordinal) {
|
||||
switch (ordinal) {
|
||||
case NORMAL_STATE_ORDINAL:
|
||||
return "Normal";
|
||||
case SPRING_LOADED_STATE_ORDINAL:
|
||||
return "SpringLoaded";
|
||||
case OVERVIEW_STATE_ORDINAL:
|
||||
return "Overview";
|
||||
case OVERVIEW_PEEK_STATE_ORDINAL:
|
||||
return "OverviewPeek";
|
||||
case QUICK_SWITCH_STATE_ORDINAL:
|
||||
return "QuickSwitch";
|
||||
case ALL_APPS_STATE_ORDINAL:
|
||||
return "AllApps";
|
||||
case BACKGROUND_APP_STATE_ORDINAL:
|
||||
return "Background";
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static final String TEST_INFO_RESPONSE_FIELD = "response";
|
||||
|
||||
public static final String REQUEST_HOME_TO_OVERVIEW_SWIPE_HEIGHT =
|
||||
"home-to-overview-swipe-height";
|
||||
public static final String REQUEST_BACKGROUND_TO_OVERVIEW_SWIPE_HEIGHT =
|
||||
"background-to-overview-swipe-height";
|
||||
public static final String REQUEST_ALL_APPS_TO_OVERVIEW_SWIPE_HEIGHT =
|
||||
"all-apps-to-overview-swipe-height";
|
||||
public static final String REQUEST_HOME_TO_ALL_APPS_SWIPE_HEIGHT =
|
||||
"home-to-all-apps-swipe-height";
|
||||
public static final String REQUEST_FREEZE_APP_LIST = "freeze-app-list";
|
||||
public static final String REQUEST_UNFREEZE_APP_LIST = "unfreeze-app-list";
|
||||
public static final String REQUEST_APP_LIST_FREEZE_FLAGS = "app-list-freeze-flags";
|
||||
|
||||
public static boolean sDebugTracing = false;
|
||||
public static final String REQUEST_ENABLE_DEBUG_TRACING = "enable-debug-tracing";
|
||||
public static final String REQUEST_DISABLE_DEBUG_TRACING = "disable-debug-tracing";
|
||||
public static final String NO_ALLAPPS_EVENT_TAG = "b/133867119";
|
||||
public static final String NO_DRAG_TAG = "b/133009122";
|
||||
public static final String NO_START_TAG = "b/132900132";
|
||||
public static final String NO_START_TASK_TAG = "b/133765434";
|
||||
public static final String NO_OVERVIEW_EVENT_TAG = "b/134532571";
|
||||
}
|
||||
Reference in New Issue
Block a user