Loading core/java/android/app/ActivityThread.java +5 −2 Original line number Diff line number Diff line Loading @@ -791,6 +791,8 @@ public final class ActivityThread extends ClientTransactionHandler { @Nullable ContentCaptureOptions contentCaptureOptions; long[] disabledCompatChanges; @Override public String toString() { return "AppBindData{appInfo=" + appInfo + "}"; Loading Loading @@ -1003,7 +1005,7 @@ public final class ActivityThread extends ClientTransactionHandler { boolean isRestrictedBackupMode, boolean persistent, Configuration config, CompatibilityInfo compatInfo, Map services, Bundle coreSettings, String buildSerial, AutofillOptions autofillOptions, ContentCaptureOptions contentCaptureOptions) { ContentCaptureOptions contentCaptureOptions, long[] disabledCompatChanges) { if (services != null) { if (false) { // Test code to make sure the app could see the passed-in services. Loading Loading @@ -1051,6 +1053,7 @@ public final class ActivityThread extends ClientTransactionHandler { data.buildSerial = buildSerial; data.autofillOptions = autofillOptions; data.contentCaptureOptions = contentCaptureOptions; data.disabledCompatChanges = disabledCompatChanges; sendMessage(H.BIND_APPLICATION, data); } Loading Loading @@ -6144,10 +6147,10 @@ public final class ActivityThread extends ClientTransactionHandler { if (data.trackAllocation) { DdmVmInternal.enableRecentAllocations(true); } // 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 +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ oneway interface IApplicationThread { boolean restrictedBackupMode, boolean persistent, in Configuration config, in CompatibilityInfo compatInfo, in Map services, in Bundle coreSettings, in String buildSerial, in AutofillOptions autofillOptions, in ContentCaptureOptions contentCaptureOptions); in ContentCaptureOptions contentCaptureOptions, 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 @@ -416,7 +416,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, AutofillOptions ao, ContentCaptureOptions co) throws RemoteException { AutofillOptions ao, ContentCaptureOptions co, long[] disableCompatChanges) throws RemoteException { } @Override Loading Loading
core/java/android/app/ActivityThread.java +5 −2 Original line number Diff line number Diff line Loading @@ -791,6 +791,8 @@ public final class ActivityThread extends ClientTransactionHandler { @Nullable ContentCaptureOptions contentCaptureOptions; long[] disabledCompatChanges; @Override public String toString() { return "AppBindData{appInfo=" + appInfo + "}"; Loading Loading @@ -1003,7 +1005,7 @@ public final class ActivityThread extends ClientTransactionHandler { boolean isRestrictedBackupMode, boolean persistent, Configuration config, CompatibilityInfo compatInfo, Map services, Bundle coreSettings, String buildSerial, AutofillOptions autofillOptions, ContentCaptureOptions contentCaptureOptions) { ContentCaptureOptions contentCaptureOptions, long[] disabledCompatChanges) { if (services != null) { if (false) { // Test code to make sure the app could see the passed-in services. Loading Loading @@ -1051,6 +1053,7 @@ public final class ActivityThread extends ClientTransactionHandler { data.buildSerial = buildSerial; data.autofillOptions = autofillOptions; data.contentCaptureOptions = contentCaptureOptions; data.disabledCompatChanges = disabledCompatChanges; sendMessage(H.BIND_APPLICATION, data); } Loading Loading @@ -6144,10 +6147,10 @@ public final class ActivityThread extends ClientTransactionHandler { if (data.trackAllocation) { DdmVmInternal.enableRecentAllocations(true); } // 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 +1 −1 Original line number Diff line number Diff line Loading @@ -73,7 +73,7 @@ oneway interface IApplicationThread { boolean restrictedBackupMode, boolean persistent, in Configuration config, in CompatibilityInfo compatInfo, in Map services, in Bundle coreSettings, in String buildSerial, in AutofillOptions autofillOptions, in ContentCaptureOptions contentCaptureOptions); in ContentCaptureOptions contentCaptureOptions, 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 @@ -416,7 +416,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, AutofillOptions ao, ContentCaptureOptions co) throws RemoteException { AutofillOptions ao, ContentCaptureOptions co, long[] disableCompatChanges) throws RemoteException { } @Override Loading