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

Commit 173305cc authored by Marzia Favaro's avatar Marzia Favaro Committed by Automerger Merge Worker
Browse files

Merge "Solve NPE caused by concurrrent access to mBar" into udc-qpr-dev am:...

Merge "Solve NPE caused by concurrrent access to mBar" into udc-qpr-dev am: 7fadc7a5 am: 8deb58af

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23792425



Change-Id: I827d0d7f15c49c37255c502cdc1d85a68d8873f2
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents e1c813f9 8deb58af
Loading
Loading
Loading
Loading
+161 −107
Original line number Diff line number Diff line
@@ -347,9 +347,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void showScreenPinningRequest(int taskId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showScreenPinningRequest(taskId);
                    bar.showScreenPinningRequest(taskId);
                } catch (RemoteException e) {
                }
            }
@@ -357,9 +358,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void showAssistDisclosure() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showAssistDisclosure();
                    bar.showAssistDisclosure();
                } catch (RemoteException e) {
                }
            }
@@ -367,9 +369,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void startAssist(Bundle args) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.startAssist(args);
                    bar.startAssist(args);
                } catch (RemoteException e) {
                }
            }
@@ -377,9 +380,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void onCameraLaunchGestureDetected(int source) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.onCameraLaunchGestureDetected(source);
                    bar.onCameraLaunchGestureDetected(source);
                } catch (RemoteException e) {
                }
            }
@@ -393,9 +397,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        @Override
        public void onEmergencyActionLaunchGestureDetected() {
            if (SPEW) Slog.d(TAG, "Launching emergency action");
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.onEmergencyActionLaunchGestureDetected();
                    bar.onEmergencyActionLaunchGestureDetected();
                } catch (RemoteException e) {
                    if (SPEW) Slog.d(TAG, "Failed to launch emergency action");
                }
@@ -410,9 +415,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        @Override
        public void toggleSplitScreen() {
            enforceStatusBarService();
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.toggleSplitScreen();
                    bar.toggleSplitScreen();
                } catch (RemoteException ex) {}
            }
        }
@@ -420,27 +426,30 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        @Override
        public void appTransitionFinished(int displayId) {
            enforceStatusBarService();
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.appTransitionFinished(displayId);
                    bar.appTransitionFinished(displayId);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void toggleTaskbar() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.toggleTaskbar();
                    bar.toggleTaskbar();
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void toggleRecentApps() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.toggleRecentApps();
                    bar.toggleRecentApps();
                } catch (RemoteException ex) {}
            }
        }
@@ -454,45 +463,50 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void preloadRecentApps() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.preloadRecentApps();
                    bar.preloadRecentApps();
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void cancelPreloadRecentApps() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.cancelPreloadRecentApps();
                    bar.cancelPreloadRecentApps();
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void showRecentApps(boolean triggeredFromAltTab) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showRecentApps(triggeredFromAltTab);
                    bar.showRecentApps(triggeredFromAltTab);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.hideRecentApps(triggeredFromAltTab, triggeredFromHomeKey);
                    bar.hideRecentApps(triggeredFromAltTab, triggeredFromHomeKey);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void collapsePanels() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.animateCollapsePanels();
                    bar.animateCollapsePanels();
                } catch (RemoteException ex) {
                }
            }
@@ -500,18 +514,20 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void dismissKeyboardShortcutsMenu() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.dismissKeyboardShortcutsMenu();
                    bar.dismissKeyboardShortcutsMenu();
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void toggleKeyboardShortcutsMenu(int deviceId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.toggleKeyboardShortcutsMenu(deviceId);
                    bar.toggleKeyboardShortcutsMenu(deviceId);
                } catch (RemoteException ex) {}
            }
        }
@@ -539,9 +555,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void showChargingAnimation(int batteryLevel) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showWirelessChargingAnimation(batteryLevel);
                    bar.showWirelessChargingAnimation(batteryLevel);
                } catch (RemoteException ex){
                }
            }
@@ -549,7 +566,8 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void showPictureInPictureMenu() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showPictureInPictureMenu();
                } catch (RemoteException ex) {}
@@ -558,27 +576,30 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void setWindowState(int displayId, int window, int state) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.setWindowState(displayId, window, state);
                    bar.setWindowState(displayId, window, state);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void appTransitionPending(int displayId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.appTransitionPending(displayId);
                    bar.appTransitionPending(displayId);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void appTransitionCancelled(int displayId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.appTransitionCancelled(displayId);
                    bar.appTransitionCancelled(displayId);
                } catch (RemoteException ex) {}
            }
        }
@@ -586,9 +607,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        @Override
        public void appTransitionStarting(int displayId, long statusBarAnimationsStartTime,
                long statusBarAnimationsDuration) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.appTransitionStarting(
                    bar.appTransitionStarting(
                            displayId, statusBarAnimationsStartTime, statusBarAnimationsDuration);
                } catch (RemoteException ex) {}
            }
@@ -596,9 +618,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void setTopAppHidesStatusBar(boolean hidesStatusBar) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.setTopAppHidesStatusBar(hidesStatusBar);
                    bar.setTopAppHidesStatusBar(hidesStatusBar);
                } catch (RemoteException ex) {}
            }
        }
@@ -608,9 +631,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            if (!mContext.getResources().getBoolean(R.bool.config_showSysuiShutdown)) {
                return false;
            }
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showShutdownUi(isReboot, reason);
                    bar.showShutdownUi(isReboot, reason);
                    return true;
                } catch (RemoteException ex) {}
            }
@@ -629,18 +653,20 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void onDisplayReady(int displayId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.onDisplayReady(displayId);
                    bar.onDisplayReady(displayId);
                } catch (RemoteException ex) {}
            }
        }

        @Override
        public void onRecentsAnimationStateChanged(boolean running) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.onRecentsAnimationStateChanged(running);
                    bar.onRecentsAnimationStateChanged(running);
                } catch (RemoteException ex) {}
            }

@@ -654,9 +680,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            getUiState(displayId).setBarAttributes(appearance, appearanceRegions,
                    navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName,
                    letterboxDetails);
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.onSystemBarAttributesChanged(displayId, appearance, appearanceRegions,
                    bar.onSystemBarAttributesChanged(displayId, appearance, appearanceRegions,
                            navbarColorManagedByIme, behavior, requestedVisibleTypes, packageName,
                            letterboxDetails);
                } catch (RemoteException ex) { }
@@ -667,9 +694,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        public void showTransient(int displayId, @InsetsType int types,
                boolean isGestureOnSystemBar) {
            getUiState(displayId).showTransient(types);
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showTransient(displayId, types, isGestureOnSystemBar);
                    bar.showTransient(displayId, types, isGestureOnSystemBar);
                } catch (RemoteException ex) { }
            }
        }
@@ -677,9 +705,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        @Override
        public void abortTransient(int displayId, @InsetsType int types) {
            getUiState(displayId).clearTransient(types);
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.abortTransient(displayId, types);
                    bar.abortTransient(displayId, types);
                } catch (RemoteException ex) { }
            }
        }
@@ -688,9 +717,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        public void showToast(int uid, String packageName, IBinder token, CharSequence text,
                IBinder windowToken, int duration,
                @Nullable ITransientNotificationCallback callback, int displayId) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showToast(uid, packageName, token, text, windowToken, duration, callback,
                    bar.showToast(uid, packageName, token, text, windowToken, duration, callback,
                            displayId);
                } catch (RemoteException ex) { }
            }
@@ -698,18 +728,20 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void hideToast(String packageName, IBinder token) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.hideToast(packageName, token);
                    bar.hideToast(packageName, token);
                } catch (RemoteException ex) { }
            }
        }

        @Override
        public boolean requestWindowMagnificationConnection(boolean request) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.requestWindowMagnificationConnection(request);
                    bar.requestWindowMagnificationConnection(request);
                    return true;
                } catch (RemoteException ex) { }
            }
@@ -718,9 +750,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void setNavigationBarLumaSamplingEnabled(int displayId, boolean enable) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.setNavigationBarLumaSamplingEnabled(displayId, enable);
                    bar.setNavigationBarLumaSamplingEnabled(displayId, enable);
                } catch (RemoteException ex) { }
            }
        }
@@ -730,45 +763,50 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            synchronized (mLock) {
                mUdfpsRefreshRateRequestCallback = callback;
            }
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.setUdfpsRefreshRateCallback(callback);
                    bar.setUdfpsRefreshRateCallback(callback);
                } catch (RemoteException ex) { }
            }
        }

        @Override
        public void showRearDisplayDialog(int currentBaseState) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showRearDisplayDialog(currentBaseState);
                    bar.showRearDisplayDialog(currentBaseState);
                } catch (RemoteException ex) { }
            }
        }

        @Override
        public void goToFullscreenFromSplit() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.goToFullscreenFromSplit();
                    bar.goToFullscreenFromSplit();
                } catch (RemoteException ex) { }
            }
        }

        @Override
        public void enterStageSplitFromRunningApp(boolean leftOrTop) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.enterStageSplitFromRunningApp(leftOrTop);
                    bar.enterStageSplitFromRunningApp(leftOrTop);
                } catch (RemoteException ex) { }
            }
        }

        @Override
        public void showMediaOutputSwitcher(String packageName) {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showMediaOutputSwitcher(packageName);
                    bar.showMediaOutputSwitcher(packageName);
                } catch (RemoteException ex) {
                }
            }
@@ -791,9 +829,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        @Override
        public void showGlobalActions() {
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.showGlobalActionsMenu();
                    bar.showGlobalActionsMenu();
                } catch (RemoteException ex) {}
            }
        }
@@ -1116,9 +1155,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        if (!state.disableEquals(net1, net2)) {
            state.setDisabled(net1, net2);
            mHandler.post(() -> mNotificationDelegate.onSetDisabled(net1));
            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.disable(displayId, net1, net2);
                    bar.disable(displayId, net1, net2);
                } catch (RemoteException ex) {
                }
            }
@@ -1176,9 +1216,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            //Slog.d(TAG, "setIcon slot=" + slot + " index=" + index + " icon=" + icon);
            mIcons.put(slot, icon);

            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.setIcon(slot, icon);
                    bar.setIcon(slot, icon);
                } catch (RemoteException ex) {
                }
            }
@@ -1197,9 +1238,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            if (icon.visible != visibility) {
                icon.visible = visibility;

                if (mBar != null) {
                IStatusBar bar = mBar;
                if (bar != null) {
                    try {
                        mBar.setIcon(slot, icon);
                        bar.setIcon(slot, icon);
                    } catch (RemoteException ex) {
                    }
                }
@@ -1214,9 +1256,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
        synchronized (mIcons) {
            mIcons.remove(slot);

            if (mBar != null) {
            IStatusBar bar = mBar;
            if (bar != null) {
                try {
                    mBar.removeIcon(slot);
                    bar.removeIcon(slot);
                } catch (RemoteException ex) {
                }
            }
@@ -1823,9 +1866,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    @Override
    public void showInattentiveSleepWarning() {
        enforceStatusBarService();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.showInattentiveSleepWarning();
                bar.showInattentiveSleepWarning();
            } catch (RemoteException ex) {
            }
        }
@@ -1834,9 +1878,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    @Override
    public void dismissInattentiveSleepWarning(boolean animated) {
        enforceStatusBarService();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.dismissInattentiveSleepWarning(animated);
                bar.dismissInattentiveSleepWarning(animated);
            } catch (RemoteException ex) {
            }
        }
@@ -1845,9 +1890,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    @Override
    public void suppressAmbientDisplay(boolean suppress) {
        enforceStatusBarService();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.suppressAmbientDisplay(suppress);
                bar.suppressAmbientDisplay(suppress);
            } catch (RemoteException ex) {
            }
        }
@@ -1921,9 +1967,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
                }
            }
        }
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.requestTileServiceListeningState(componentName);
                bar.requestTileServiceListeningState(componentName);
            } catch (RemoteException e) {
                Slog.e(TAG, "requestTileServiceListeningState", e);
            }
@@ -2036,9 +2083,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

        CharSequence appName = r.serviceInfo.applicationInfo
                .loadLabel(mContext.getPackageManager());
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.requestAddTile(componentName, appName, label, icon, proxyCallback);
                bar.requestAddTile(componentName, appName, label, icon, proxyCallback);
                return;
            } catch (RemoteException e) {
                Slog.e(TAG, "requestAddTile", e);
@@ -2060,9 +2108,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D

    private void cancelRequestAddTileInternal(String packageName) {
        clearTileAddRequest(packageName);
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.cancelRequestAddTile(packageName);
                bar.cancelRequestAddTile(packageName);
            } catch (RemoteException e) {
                Slog.e(TAG, "requestAddTile", e);
            }
@@ -2191,9 +2240,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            @Nullable IUndoMediaTransferCallback undoCallback
    ) {
        enforceMediaContentControl();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.updateMediaTapToTransferSenderDisplay(displayState, routeInfo, undoCallback);
                bar.updateMediaTapToTransferSenderDisplay(displayState, routeInfo, undoCallback);
            } catch (RemoteException e) {
                Slog.e(TAG, "updateMediaTapToTransferSenderDisplay", e);
            }
@@ -2214,9 +2264,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            @Nullable Icon appIcon,
            @Nullable CharSequence appName) {
        enforceMediaContentControl();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.updateMediaTapToTransferReceiverDisplay(
                bar.updateMediaTapToTransferReceiverDisplay(
                        displayState, routeInfo, appIcon, appName);
            } catch (RemoteException e) {
                Slog.e(TAG, "updateMediaTapToTransferReceiverDisplay", e);
@@ -2240,9 +2291,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            @NonNull INearbyMediaDevicesProvider provider
    ) {
        enforceMediaContentControl();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.registerNearbyMediaDevicesProvider(provider);
                bar.registerNearbyMediaDevicesProvider(provider);
            } catch (RemoteException e) {
                Slog.e(TAG, "registerNearbyMediaDevicesProvider", e);
            }
@@ -2265,9 +2317,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
            @NonNull INearbyMediaDevicesProvider provider
    ) {
        enforceMediaContentControl();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.unregisterNearbyMediaDevicesProvider(provider);
                bar.unregisterNearbyMediaDevicesProvider(provider);
            } catch (RemoteException e) {
                Slog.e(TAG, "unregisterNearbyMediaDevicesProvider", e);
            }
@@ -2278,9 +2331,10 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D
    @Override
    public void showRearDisplayDialog(int currentState) {
        enforceControlDeviceStatePermission();
        if (mBar != null) {
        IStatusBar bar = mBar;
        if (bar != null) {
            try {
                mBar.showRearDisplayDialog(currentState);
                bar.showRearDisplayDialog(currentState);
            } catch (RemoteException e) {
                Slog.e(TAG, "showRearDisplayDialog", e);
            }