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

Commit 1e33dc8f authored by Fyodor Kupolov's avatar Fyodor Kupolov
Browse files

Use SystemService lifecycle API in input method service

Change-Id: Ic17667df60b30e5355b61a3601ad27a000cab3a3
parent bcd2b717
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
@@ -570,7 +570,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;
@@ -581,14 +580,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 {
@@ -1167,7 +1159,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;
@@ -1263,11 +1254,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) {