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

Commit 7f881427 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

release-request-f0fc1aa1-730c-4deb-b1ff-e8ebeeccc4b5-for-git_oc-mr1-release-43...

release-request-f0fc1aa1-730c-4deb-b1ff-e8ebeeccc4b5-for-git_oc-mr1-release-4335659 snap-temp-L85900000102427279

Change-Id: Ib5cfbca39fb48291e177d8238e8cfd64d6d18c5a
parents a0acfc25 05c1578c
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1380,8 +1380,13 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate
                                    @Override
                                    public void onAnimationEnd(Animator anim) {
                                        container.endViewTransition(view);
                                        if (fragment.getAnimatingAway() != null) {
                                            fragment.setAnimatingAway(null);
                                        Animator animator = f.getAnimatingAway();
                                        f.setAnimatingAway(null);
                                        // If the animation finished immediately, the fragment's
                                        // view will still be there. If so, we can just pretend
                                        // there was no animation and skip the moveToState()
                                        if (container.indexOfChild(view) == -1
                                                && animator != null) {
                                            moveToState(fragment, fragment.getStateAfterAnimating(),
                                                    0, 0, false);
                                        }
+15 −3
Original line number Diff line number Diff line
@@ -625,17 +625,29 @@ public final class LoadedApk {
        final List<String> zipPaths = new ArrayList<>(10);
        final List<String> libPaths = new ArrayList<>(10);

        final boolean isBundledApp = mApplicationInfo.isSystemApp()
        boolean isBundledApp = mApplicationInfo.isSystemApp()
                && !mApplicationInfo.isUpdatedSystemApp();

        // Vendor apks are treated as bundled only when /vendor/lib is in the default search
        // paths. If not, they are treated as unbundled; access to system libs is limited.
        // Having /vendor/lib in the default search paths means that all system processes
        // are allowed to use any vendor library, which in turn means that system is dependent
        // on vendor partition. In the contrary, not having /vendor/lib in the default search
        // paths mean that the two partitions are separated and thus we can treat vendor apks
        // as unbundled.
        final String defaultSearchPaths = System.getProperty("java.library.path");
        final boolean treatVendorApkAsUnbundled = !defaultSearchPaths.contains("/vendor/lib");
        if (mApplicationInfo.getCodePath().startsWith("/vendor/") && treatVendorApkAsUnbundled) {
            isBundledApp = false;
        }

        makePaths(mActivityThread, isBundledApp, mApplicationInfo, zipPaths, libPaths);

        String libraryPermittedPath = mDataDir;
        if (isBundledApp) {
            // This is necessary to grant bundled apps access to
            // libraries located in subdirectories of /system/lib
            libraryPermittedPath += File.pathSeparator +
                                    System.getProperty("java.library.path");
            libraryPermittedPath += File.pathSeparator + defaultSearchPaths;
        }

        final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths);
+46 −34
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ public final class BluetoothGatt implements BluetoothProfile {
    private static final boolean VDBG = false;

    private IBluetoothGatt mService;
    private BluetoothGattCallback mCallback;
    private volatile BluetoothGattCallback mCallback;
    private Handler mHandler;
    private int mClientIf;
    private BluetoothDevice mDevice;
@@ -159,8 +159,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                    runOrQueueCallback(new Runnable() {
                        @Override
                        public void run() {
                            if (mCallback != null) {
                                mCallback.onConnectionStateChange(BluetoothGatt.this, GATT_FAILURE,
                            final BluetoothGattCallback callback = mCallback;
                            if (callback != null) {
                                callback.onConnectionStateChange(BluetoothGatt.this, GATT_FAILURE,
                                                  BluetoothProfile.STATE_DISCONNECTED);
                            }
                        }
@@ -194,8 +195,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onPhyUpdate(BluetoothGatt.this, txPhy, rxPhy, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onPhyUpdate(BluetoothGatt.this, txPhy, rxPhy, status);
                        }
                    }
                });
@@ -216,8 +218,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onPhyRead(BluetoothGatt.this, txPhy, rxPhy, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onPhyRead(BluetoothGatt.this, txPhy, rxPhy, status);
                        }
                    }
                });
@@ -241,8 +244,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onConnectionStateChange(BluetoothGatt.this, status,
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onConnectionStateChange(BluetoothGatt.this, status,
                                                              profileState);
                        }
                    }
@@ -303,8 +307,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onServicesDiscovered(BluetoothGatt.this, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onServicesDiscovered(BluetoothGatt.this, status);
                        }
                    }
                });
@@ -350,13 +355,13 @@ public final class BluetoothGatt implements BluetoothProfile {
                    return;
                }

                if (status == 0) characteristic.setValue(value);

                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onCharacteristicRead(BluetoothGatt.this, characteristic,
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            if (status == 0) characteristic.setValue(value);
                            callback.onCharacteristicRead(BluetoothGatt.this, characteristic,
                                                           status);
                        }
                    }
@@ -404,8 +409,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onCharacteristicWrite(BluetoothGatt.this, characteristic,
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onCharacteristicWrite(BluetoothGatt.this, characteristic,
                                                            status);
                        }
                    }
@@ -428,13 +434,13 @@ public final class BluetoothGatt implements BluetoothProfile {
                BluetoothGattCharacteristic characteristic = getCharacteristicById(mDevice, handle);
                if (characteristic == null) return;

                characteristic.setValue(value);

                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onCharacteristicChanged(BluetoothGatt.this, characteristic);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            characteristic.setValue(value);
                            callback.onCharacteristicChanged(BluetoothGatt.this, characteristic);
                        }
                    }
                });
@@ -459,7 +465,6 @@ public final class BluetoothGatt implements BluetoothProfile {
                BluetoothGattDescriptor descriptor = getDescriptorById(mDevice, handle);
                if (descriptor == null) return;

                if (status == 0) descriptor.setValue(value);

                if ((status == GATT_INSUFFICIENT_AUTHENTICATION
                  || status == GATT_INSUFFICIENT_ENCRYPTION)
@@ -480,8 +485,10 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onDescriptorRead(BluetoothGatt.this, descriptor, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            if (status == 0) descriptor.setValue(value);
                            callback.onDescriptorRead(BluetoothGatt.this, descriptor, status);
                        }
                    }
                });
@@ -526,8 +533,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onDescriptorWrite(BluetoothGatt.this, descriptor, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onDescriptorWrite(BluetoothGatt.this, descriptor, status);
                        }
                    }
                });
@@ -552,8 +560,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                           mCallback.onReliableWriteCompleted(BluetoothGatt.this, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onReliableWriteCompleted(BluetoothGatt.this, status);
                        }
                    }
                });
@@ -573,8 +582,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onReadRemoteRssi(BluetoothGatt.this, rssi, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onReadRemoteRssi(BluetoothGatt.this, rssi, status);
                        }
                    }
                });
@@ -595,8 +605,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onMtuChanged(BluetoothGatt.this, mtu, status);
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onMtuChanged(BluetoothGatt.this, mtu, status);
                        }
                    }
                });
@@ -619,8 +630,9 @@ public final class BluetoothGatt implements BluetoothProfile {
                runOrQueueCallback(new Runnable() {
                    @Override
                    public void run() {
                        if (mCallback != null) {
                            mCallback.onConnectionUpdated(BluetoothGatt.this, interval, latency,
                        final BluetoothGattCallback callback = mCallback;
                        if (callback != null) {
                            callback.onConnectionUpdated(BluetoothGatt.this, interval, latency,
                                                          timeout, status);
                        }
                    }
+1 −1
Original line number Diff line number Diff line
@@ -791,7 +791,7 @@ public final class StrictMode {

            /**
             * Detect when an {@link java.io.Closeable} or other
             * object with a explict termination method is finalized
             * object with an explicit termination method is finalized
             * without having been closed.
             *
             * <p>You always want to explicitly close such objects to
+42 −10
Original line number Diff line number Diff line
@@ -5159,17 +5159,39 @@ public final class Settings {
        public static final String ALLOW_MOCK_LOCATION = "mock_location";

        /**
         * A 64-bit number (as a hex string) that is randomly
         * On Android 8.0 (API level 26) and higher versions of the platform,
         * a 64-bit number (expressed as a hexadecimal string), unique to
         * each combination of app-signing key, user, and device.
         * Values of {@code ANDROID_ID} are scoped by signing key and user.
         * The value may change if a factory reset is performed on the
         * device or if an APK signing key changes.
         *
         * For more information about how the platform handles {@code ANDROID_ID}
         * in Android 8.0 (API level 26) and higher, see <a
         * href="{@docRoot}preview/behavior-changes.html#privacy-all">
         * Android 8.0 Behavior Changes</a>.
         *
         * <p class="note"><strong>Note:</strong> For apps that were installed
         * prior to updating the device to a version of Android 8.0
         * (API level 26) or higher, the value of {@code ANDROID_ID} changes
         * if the app is uninstalled and then reinstalled after the OTA.
         * To preserve values across uninstalls after an OTA to Android 8.0
         * or higher, developers can use
         * <a href="{@docRoot}guide/topics/data/keyvaluebackup.html">
         * Key/Value Backup</a>.</p>
         *
         * <p>In versions of the platform lower than Android 8.0 (API level 26),
         * a 64-bit number (expressed as a hexadecimal string) that is randomly
         * generated when the user first sets up the device and should remain
         * constant for the lifetime of the user's device. The value may
         * change if a factory reset is performed on the device.
         * <p class="note"><strong>Note:</strong> When a device has <a
         * href="{@docRoot}about/versions/android-4.2.html#MultipleUsers">multiple users</a>
         * (available on certain devices running Android 4.2 or higher), each user appears as a
         * completely separate device, so the {@code ANDROID_ID} value is unique to each
         * user.</p>
         *
         * <p class="note"><strong>Note:</strong> If the caller is an Instant App the id is scoped
         * constant for the lifetime of the user's device.
         *
         * On devices that have
         * <a href="{@docRoot}about/versions/android-4.2.html#MultipleUsers">
         * multiple users</a>, each user appears as a
         * completely separate device, so the {@code ANDROID_ID} value is
         * unique to each user.</p>
         *
         * <p class="note"><strong>Note:</strong> If the caller is an Instant App the ID is scoped
         * to the Instant App, it is generated when the Instant App is first installed and reset if
         * the user clears the Instant App.
         */
@@ -8531,6 +8553,16 @@ public final class Settings {
         */
        public static final String NETWORK_SCORING_UI_ENABLED = "network_scoring_ui_enabled";

        /**
         * Value to specify how long in milliseconds to retain seen score cache curves to be used
         * when generating SSID only bases score curves.
         *
         * Type: long
         * @hide
         */
        public static final String SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS =
                "speed_label_cache_eviction_age_millis";

        /**
         * Value to specify if network recommendations from
         * {@link com.android.server.NetworkScoreService} are enabled.
Loading