blob: 25106f91cb58fcf4627bdbfae81ae8168cce473e [file] [log] [blame]
/*
* Copyright (C) 2016 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.compat.testing;
import android.compat.Compatibility;
import android.content.Context;
import android.os.RemoteException;
import android.os.ServiceManager;
import com.android.internal.compat.IPlatformCompat;
/**
* This is a dummy API to test gating
*
* @hide
*/
public class DummyApi {
public static final long CHANGE_ID = 666013;
public static final long CHANGE_ID_1 = 666014;
public static final long CHANGE_ID_2 = 666015;
public static final long CHANGE_SYSTEM_SERVER = 666016;
/**
* Dummy method
* @return "A" if change is enabled, "B" otherwise.
*/
public static String dummyFunc() {
if (Compatibility.isChangeEnabled(CHANGE_ID)) {
return "A";
}
return "B";
}
/**
* Dummy combined method
* @return "0" if {@link CHANGE_ID_1} is disabled and {@link CHANGE_ID_2} is disabled,
"1" if {@link CHANGE_ID_1} is disabled and {@link CHANGE_ID_2} is enabled,
"2" if {@link CHANGE_ID_1} is enabled and {@link CHANGE_ID_2} is disabled,
"3" if {@link CHANGE_ID_1} is enabled and {@link CHANGE_ID_2} is enabled.
*/
public static String dummyCombinedFunc() {
if (!Compatibility.isChangeEnabled(CHANGE_ID_1)
&& !Compatibility.isChangeEnabled(CHANGE_ID_2)) {
return "0";
} else if (!Compatibility.isChangeEnabled(CHANGE_ID_1)
&& Compatibility.isChangeEnabled(CHANGE_ID_2)) {
return "1";
} else if (Compatibility.isChangeEnabled(CHANGE_ID_1)
&& !Compatibility.isChangeEnabled(CHANGE_ID_2)) {
return "2";
}
return "3";
}
/**
* Dummy api using system server API.
*/
public static String dummySystemServer(Context context) {
IPlatformCompat platformCompat = IPlatformCompat.Stub
.asInterface(ServiceManager.getService(Context.PLATFORM_COMPAT_SERVICE));
if (platformCompat == null) {
throw new RuntimeException("Could not obtain IPlatformCompat instance!");
}
String packageName = context.getPackageName();
try {
if (platformCompat.isChangeEnabledByPackageName(CHANGE_SYSTEM_SERVER, packageName,
context.getUserId())) {
return "True";
} else {
return "False";
}
} catch (RemoteException e) {
throw new RuntimeException("Could not get change value!", e);
}
}
}