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

Commit ffeab27d authored by Chalard Jean's avatar Chalard Jean
Browse files

Remove the static application context fetcher

On the plus side, this is no longer used and can be removed.
On the minus side, the bug it used to solve is back : b/202978965

Still this should be removed.

Test: build
Change-Id: I32f5b38539864ce2846793863cc20e245823e3c7
parent b4b88809
Loading
Loading
Loading
Loading
+0 −33
Original line number Diff line number Diff line
@@ -1914,39 +1914,6 @@ public final class SystemServiceRegistry {
        public abstract T createService() throws ServiceNotFoundException;
    }

    /**
     * Like StaticServiceFetcher, creates only one instance of the service per application, but when
     * creating the service for the first time, passes it the application context of the creating
     * application.
     *
     * TODO: Delete this once its only user (ConnectivityManager) is known to work well in the
     * case where multiple application components each have their own ConnectivityManager object.
     */
    static abstract class StaticApplicationContextServiceFetcher<T> implements ServiceFetcher<T> {
        private T mCachedInstance;

        @Override
        public final T getService(ContextImpl ctx) {
            synchronized (StaticApplicationContextServiceFetcher.this) {
                if (mCachedInstance == null) {
                    Context appContext = ctx.getApplicationContext();
                    // If the application context is null, we're either in the system process or
                    // it's the application context very early in app initialization. In both these
                    // cases, the passed-in ContextImpl will not be freed, so it's safe to pass it
                    // to the service. http://b/27532714 .
                    try {
                        mCachedInstance = createService(appContext != null ? appContext : ctx);
                    } catch (ServiceNotFoundException e) {
                        onServiceNotFound(e);
                    }
                }
                return mCachedInstance;
            }
        }

        public abstract T createService(Context applicationContext) throws ServiceNotFoundException;
    }

    /** @hide */
    public static void onServiceNotFound(ServiceNotFoundException e) {
        // We're mostly interested in tracking down long-lived core system