Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3020e050 authored by Mathew Inwood's avatar Mathew Inwood
Browse files

resolve merge conflicts of 9acd72c6 to stage-aosp-master

Bug: None
Test: TH
Merged-In: I2fcf25264c62acc801f9e62967072cd04e4641e7
Change-Id: I5bc6b8c20bda03b3760f13f747b1e2069bfd9ac1
parents 1f51d97b 9acd72c6
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -790,6 +790,8 @@ public final class ActivityThread extends ClientTransactionHandler {
        @Nullable
        ContentCaptureOptions contentCaptureOptions;

        long[] disabledCompatChanges;

        @Override
        public String toString() {
            return "AppBindData{appInfo=" + appInfo + "}";
@@ -1002,7 +1004,8 @@ 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.
@@ -1048,8 +1051,7 @@ public final class ActivityThread extends ClientTransactionHandler {
            data.compatInfo = compatInfo;
            data.initProfilerInfo = profilerInfo;
            data.buildSerial = buildSerial;
            data.autofillOptions = autofillOptions;
            data.contentCaptureOptions = contentCaptureOptions;
            data.disabledCompatChanges = disabledCompatChanges;
            sendMessage(H.BIND_APPLICATION, data);
        }

@@ -6134,6 +6136,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);
+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;
    }

}
+1 −1
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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} 
 */
+2 −1
Original line number Diff line number Diff line
@@ -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