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

Commit aae84105 authored by Fyodor Kupolov's avatar Fyodor Kupolov Committed by Android (Google) Code Review
Browse files

Merge "Use SystemService lifecycle API in input method service"

parents 2e98a110 1e33dc8f
Loading
Loading
Loading
Loading
+25 −1
Original line number Original line Diff line number Diff line
@@ -742,6 +742,31 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
        }
        }
    }
    }


    public static final class Lifecycle extends SystemService {
        private InputMethodManagerService mService;

        public Lifecycle(Context context) {
            super(context);
            mService = new InputMethodManagerService(context);
        }

        @Override
        public void onStart() {
            LocalServices.addService(InputMethodManagerInternal.class,
                    new LocalServiceImpl(mService.mHandler));
            publishBinderService(Context.INPUT_METHOD_SERVICE, mService);
        }

        @Override
        public void onBootPhase(int phase) {
            if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
                StatusBarManagerService statusBarService = (StatusBarManagerService) ServiceManager
                        .getService(Context.STATUS_BAR_SERVICE);
                mService.systemRunning(statusBarService);
            }
        }
    }

    public InputMethodManagerService(Context context) {
    public InputMethodManagerService(Context context) {
        mIPackageManager = AppGlobals.getPackageManager();
        mIPackageManager = AppGlobals.getPackageManager();
        mContext = context;
        mContext = context;
@@ -894,7 +919,6 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
                        }
                        }
                    }
                    }
                }, filter);
                }, filter);
        LocalServices.addService(InputMethodManagerInternal.class, new LocalServiceImpl(mHandler));
    }
    }


    private void resetDefaultImeLocked(Context context) {
    private void resetDefaultImeLocked(Context context) {
+1 −15
Original line number Original line Diff line number Diff line
@@ -602,7 +602,6 @@ public final class SystemServer {


        StatusBarManagerService statusBar = null;
        StatusBarManagerService statusBar = null;
        INotificationManager notification = null;
        INotificationManager notification = null;
        InputMethodManagerService imm = null;
        WallpaperManagerService wallpaper = null;
        WallpaperManagerService wallpaper = null;
        LocationManagerService location = null;
        LocationManagerService location = null;
        CountryDetectorService countryDetector = null;
        CountryDetectorService countryDetector = null;
@@ -613,14 +612,7 @@ public final class SystemServer {


        // Bring up services needed for UI.
        // Bring up services needed for UI.
        if (mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
        if (mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
            traceBeginAndSlog("StartInputMethodManagerService");
            mSystemServiceManager.startService(InputMethodManagerService.Lifecycle.class);
            try {
                imm = new InputMethodManagerService(context);
                ServiceManager.addService(Context.INPUT_METHOD_SERVICE, imm);
            } catch (Throwable e) {
                reportWtf("starting Input Manager Service", e);
            }
            Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER);


            traceBeginAndSlog("StartAccessibilityManagerService");
            traceBeginAndSlog("StartAccessibilityManagerService");
            try {
            try {
@@ -1207,7 +1199,6 @@ public final class SystemServer {
        final ConnectivityService connectivityF = connectivity;
        final ConnectivityService connectivityF = connectivity;
        final NetworkScoreService networkScoreF = networkScore;
        final NetworkScoreService networkScoreF = networkScore;
        final WallpaperManagerService wallpaperF = wallpaper;
        final WallpaperManagerService wallpaperF = wallpaper;
        final InputMethodManagerService immF = imm;
        final LocationManagerService locationF = location;
        final LocationManagerService locationF = location;
        final CountryDetectorService countryDetectorF = countryDetector;
        final CountryDetectorService countryDetectorF = countryDetector;
        final NetworkTimeUpdateService networkTimeUpdaterF = networkTimeUpdater;
        final NetworkTimeUpdateService networkTimeUpdaterF = networkTimeUpdater;
@@ -1303,11 +1294,6 @@ public final class SystemServer {
                } catch (Throwable e) {
                } catch (Throwable e) {
                    reportWtf("Notifying WallpaperService running", e);
                    reportWtf("Notifying WallpaperService running", e);
                }
                }
                try {
                    if (immF != null) immF.systemRunning(statusBarF);
                } catch (Throwable e) {
                    reportWtf("Notifying InputMethodService running", e);
                }
                try {
                try {
                    if (locationF != null) locationF.systemRunning();
                    if (locationF != null) locationF.systemRunning();
                } catch (Throwable e) {
                } catch (Throwable e) {