Loading core/java/android/app/ActivityThread.java +6 −1 Original line number Diff line number Diff line Loading @@ -703,6 +703,8 @@ public final class ActivityThread extends ClientTransactionHandler { boolean autofillCompatibilityEnabled; long[] disabledCompatChanges; public String toString() { return "AppBindData{appInfo=" + appInfo + "}"; } Loading Loading @@ -920,7 +922,8 @@ public final class ActivityThread extends ClientTransactionHandler { boolean enableBinderTracking, boolean trackAllocation, boolean isRestrictedBackupMode, boolean persistent, Configuration config, CompatibilityInfo compatInfo, Map services, Bundle coreSettings, String buildSerial, boolean autofillCompatibilityEnabled) { String buildSerial, boolean autofillCompatibilityEnabled, long[] disabledCompatChanges) { if (services != null) { if (false) { Loading Loading @@ -968,6 +971,7 @@ public final class ActivityThread extends ClientTransactionHandler { data.initProfilerInfo = profilerInfo; data.buildSerial = buildSerial; data.autofillCompatibilityEnabled = autofillCompatibilityEnabled; data.disabledCompatChanges = disabledCompatChanges; sendMessage(H.BIND_APPLICATION, data); } Loading Loading @@ -5670,6 +5674,7 @@ public final class ActivityThread extends ClientTransactionHandler { // Note when this process has started. Process.setStartTimes(SystemClock.elapsedRealtime(), SystemClock.uptimeMillis()); AppCompatCallbacks.install(data.disabledCompatChanges); mBoundApplication = data; mConfiguration = new Configuration(data.config); mCompatConfiguration = new Configuration(data.config); Loading core/java/android/app/AppCompatCallbacks.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * 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 android.app; import android.compat.Compatibility; import android.os.Process; import android.util.Log; import java.util.Arrays; /** * App process implementation of the {@link Compatibility} API. * * @hide */ public final class AppCompatCallbacks extends Compatibility.Callbacks { private static final String TAG = "Compatibility"; private final long[] mDisabledChanges; /** * Install this class into the current process. * * @param disabledChanges Set of compatibility changes that are disabled for this process. */ public static void install(long[] disabledChanges) { Compatibility.setCallbacks(new AppCompatCallbacks(disabledChanges)); } private AppCompatCallbacks(long[] disabledChanges) { mDisabledChanges = Arrays.copyOf(disabledChanges, disabledChanges.length); Arrays.sort(mDisabledChanges); } protected void reportChange(long changeId) { Log.d(TAG, "Compat change reported: " + changeId + "; UID " + Process.myUid()); // TODO log via StatsLog } protected boolean isChangeEnabled(long changeId) { if (Arrays.binarySearch(mDisabledChanges, changeId) < 0) { // Not present in the disabled array reportChange(changeId); return true; } return false; } } core/java/android/app/IApplicationThread.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,8 @@ oneway interface IApplicationThread { int debugMode, boolean enableBinderTracking, boolean trackAllocation, boolean restrictedBackupMode, boolean persistent, in Configuration config, in CompatibilityInfo compatInfo, in Map services, in Bundle coreSettings, in String buildSerial, boolean isAutofillCompatEnabled); in Bundle coreSettings, in String buildSerial, boolean isAutofillCompatEnabled, in long[] disabledCompatChanges); void runIsolatedEntryPoint(in String entryPoint, in String[] entryPointArgs); void scheduleExit(); void scheduleServiceArgs(IBinder token, in ParceledListSlice args); Loading core/java/android/content/res/CompatibilityInfo.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ import android.view.WindowManager; import android.view.WindowManager.LayoutParams; /** * CompatibilityInfo class keeps the information about compatibility mode that the application is * running under. * CompatibilityInfo class keeps the information about the screen compatibility mode that the * application is running under. * * {@hide} */ Loading core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java +2 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,8 @@ public class TransactionParcelTests { IUiAutomationConnection iUiAutomationConnection, int i, boolean b, boolean b1, boolean b2, boolean b3, Configuration configuration, CompatibilityInfo compatibilityInfo, Map map, Bundle bundle1, String s1, boolean autofillCompatEnabled) throws RemoteException { boolean autofillCompatEnabled, long[] disableCompatChanges) throws RemoteException { } @Override Loading Loading
core/java/android/app/ActivityThread.java +6 −1 Original line number Diff line number Diff line Loading @@ -703,6 +703,8 @@ public final class ActivityThread extends ClientTransactionHandler { boolean autofillCompatibilityEnabled; long[] disabledCompatChanges; public String toString() { return "AppBindData{appInfo=" + appInfo + "}"; } Loading Loading @@ -920,7 +922,8 @@ public final class ActivityThread extends ClientTransactionHandler { boolean enableBinderTracking, boolean trackAllocation, boolean isRestrictedBackupMode, boolean persistent, Configuration config, CompatibilityInfo compatInfo, Map services, Bundle coreSettings, String buildSerial, boolean autofillCompatibilityEnabled) { String buildSerial, boolean autofillCompatibilityEnabled, long[] disabledCompatChanges) { if (services != null) { if (false) { Loading Loading @@ -968,6 +971,7 @@ public final class ActivityThread extends ClientTransactionHandler { data.initProfilerInfo = profilerInfo; data.buildSerial = buildSerial; data.autofillCompatibilityEnabled = autofillCompatibilityEnabled; data.disabledCompatChanges = disabledCompatChanges; sendMessage(H.BIND_APPLICATION, data); } Loading Loading @@ -5670,6 +5674,7 @@ public final class ActivityThread extends ClientTransactionHandler { // Note when this process has started. Process.setStartTimes(SystemClock.elapsedRealtime(), SystemClock.uptimeMillis()); AppCompatCallbacks.install(data.disabledCompatChanges); mBoundApplication = data; mConfiguration = new Configuration(data.config); mCompatConfiguration = new Configuration(data.config); Loading
core/java/android/app/AppCompatCallbacks.java 0 → 100644 +64 −0 Original line number Diff line number Diff line /* * 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 android.app; import android.compat.Compatibility; import android.os.Process; import android.util.Log; import java.util.Arrays; /** * App process implementation of the {@link Compatibility} API. * * @hide */ public final class AppCompatCallbacks extends Compatibility.Callbacks { private static final String TAG = "Compatibility"; private final long[] mDisabledChanges; /** * Install this class into the current process. * * @param disabledChanges Set of compatibility changes that are disabled for this process. */ public static void install(long[] disabledChanges) { Compatibility.setCallbacks(new AppCompatCallbacks(disabledChanges)); } private AppCompatCallbacks(long[] disabledChanges) { mDisabledChanges = Arrays.copyOf(disabledChanges, disabledChanges.length); Arrays.sort(mDisabledChanges); } protected void reportChange(long changeId) { Log.d(TAG, "Compat change reported: " + changeId + "; UID " + Process.myUid()); // TODO log via StatsLog } protected boolean isChangeEnabled(long changeId) { if (Arrays.binarySearch(mDisabledChanges, changeId) < 0) { // Not present in the disabled array reportChange(changeId); return true; } return false; } }
core/java/android/app/IApplicationThread.aidl +2 −1 Original line number Diff line number Diff line Loading @@ -67,7 +67,8 @@ oneway interface IApplicationThread { int debugMode, boolean enableBinderTracking, boolean trackAllocation, boolean restrictedBackupMode, boolean persistent, in Configuration config, in CompatibilityInfo compatInfo, in Map services, in Bundle coreSettings, in String buildSerial, boolean isAutofillCompatEnabled); in Bundle coreSettings, in String buildSerial, boolean isAutofillCompatEnabled, in long[] disabledCompatChanges); void runIsolatedEntryPoint(in String entryPoint, in String[] entryPointArgs); void scheduleExit(); void scheduleServiceArgs(IBinder token, in ParceledListSlice args); Loading
core/java/android/content/res/CompatibilityInfo.java +2 −2 Original line number Diff line number Diff line Loading @@ -32,8 +32,8 @@ import android.view.WindowManager; import android.view.WindowManager.LayoutParams; /** * CompatibilityInfo class keeps the information about compatibility mode that the application is * running under. * CompatibilityInfo class keeps the information about the screen compatibility mode that the * application is running under. * * {@hide} */ Loading
core/tests/coretests/src/android/app/servertransaction/TransactionParcelTests.java +2 −1 Original line number Diff line number Diff line Loading @@ -412,7 +412,8 @@ public class TransactionParcelTests { IUiAutomationConnection iUiAutomationConnection, int i, boolean b, boolean b1, boolean b2, boolean b3, Configuration configuration, CompatibilityInfo compatibilityInfo, Map map, Bundle bundle1, String s1, boolean autofillCompatEnabled) throws RemoteException { boolean autofillCompatEnabled, long[] disableCompatChanges) throws RemoteException { } @Override Loading