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

Commit 7fadc7a5 authored by Marzia Favaro's avatar Marzia Favaro Committed by Android (Google) Code Review
Browse files

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

parents 59d74fa2 47f2ffa2
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);
            }