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

Commit 295f9a6e authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Turn ContentProvider injection failures into errors." into main

parents 191cafda 75f5cbea
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import android.content.BroadcastReceiver
import android.content.ContentProvider
import android.content.Context
import android.content.Intent
import android.util.Log
import androidx.core.app.AppComponentFactory
import com.android.systemui.dagger.ContextComponentHelper
import com.android.systemui.dagger.SysUIComponent
@@ -91,7 +90,8 @@ abstract class SystemUIAppComponentFactoryBase : AppComponentFactory() {
        return app
    }

    @UsesReflection(KeepTarget(instanceOfClassConstant = SysUIComponent::class, methodName = "inject"))
    @UsesReflection(
            KeepTarget(instanceOfClassConstant = SysUIComponent::class, methodName = "inject"))
    override fun instantiateProviderCompat(cl: ClassLoader, className: String): ContentProvider {
        val contentProvider = super.instantiateProviderCompat(cl, className)
        if (contentProvider is ContextInitializer) {
@@ -103,11 +103,12 @@ abstract class SystemUIAppComponentFactoryBase : AppComponentFactory() {
                        .getMethod("inject", contentProvider.javaClass)
                    injectMethod.invoke(rootComponent, contentProvider)
                } catch (e: NoSuchMethodException) {
                    Log.w(TAG, "No injector for class: " + contentProvider.javaClass, e)
                    throw RuntimeException("No injector for class: " + contentProvider.javaClass, e)
                } catch (e: IllegalAccessException) {
                    Log.w(TAG, "No injector for class: " + contentProvider.javaClass, e)
                    throw RuntimeException("Injector inaccessible for class: " +
                            contentProvider.javaClass, e)
                } catch (e: InvocationTargetException) {
                    Log.w(TAG, "No injector for class: " + contentProvider.javaClass, e)
                    throw RuntimeException("Error while injecting: " + contentProvider.javaClass, e)
                }
                initializer
            }