Injects activity if an associated AndroidInjector implementation can be found, otherwise throws an IllegalArgumentException. @throws RuntimeException if the Application doesn't implement HasActivityInjector.
(Activity activity)
| 42 | * HasActivityInjector}. |
| 43 | */ |
| 44 | public static void inject(Activity activity) { |
| 45 | checkNotNull(activity, "activity"); |
| 46 | Application application = activity.getApplication(); |
| 47 | if (!(application instanceof HasActivityInjector)) { |
| 48 | throw new RuntimeException( |
| 49 | String.format( |
| 50 | "%s does not implement %s", |
| 51 | application.getClass().getCanonicalName(), |
| 52 | HasActivityInjector.class.getCanonicalName())); |
| 53 | } |
| 54 | |
| 55 | AndroidInjector<Activity> activityInjector = |
| 56 | ((HasActivityInjector) application).activityInjector(); |
| 57 | checkNotNull(activityInjector, "%s.activityInjector() returned null", application.getClass()); |
| 58 | |
| 59 | activityInjector.inject(activity); |
| 60 | } |
| 61 | |
| 62 | /** |
| 63 | * Injects {@code fragment} if an associated {@link AndroidInjector} implementation can be found, |