diff options
Diffstat (limited to 'java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java')
-rw-r--r-- | java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java | 52 |
1 files changed, 22 insertions, 30 deletions
diff --git a/java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java b/java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java index 86fbaa712..ce9ad14c5 100644 --- a/java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java +++ b/java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java @@ -17,9 +17,9 @@ package dagger.hilt.android.processor.internal.androidentrypoint; import com.squareup.javapoet.ClassName; -import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.JavaFile; import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; import com.squareup.javapoet.TypeSpec; import com.squareup.javapoet.TypeVariableName; import dagger.hilt.android.processor.internal.AndroidClassNames; @@ -30,6 +30,7 @@ import javax.lang.model.element.Modifier; /** Generates an Hilt Activity class for the @AndroidEntryPoint annotated class. */ public final class ActivityGenerator { + private final ProcessingEnvironment env; private final AndroidEntryPointMetadata metadata; private final ClassName generatedClassName; @@ -55,11 +56,9 @@ public final class ActivityGenerator { Generators.addGeneratedBaseClassJavadoc(builder, AndroidClassNames.ANDROID_ENTRY_POINT); Processors.addGeneratedAnnotation(builder, env, getClass()); - Generators.copyConstructors( - metadata.baseElement(), - CodeBlock.builder().addStatement("_initHiltInternal()").build(), - builder); - builder.addMethod(init()); + Generators.copyConstructors(metadata.baseElement(), builder); + builder.addMethod(onCreate()); + metadata.baseElement().getTypeParameters().stream() .map(TypeVariableName::get) @@ -80,36 +79,29 @@ public final class ActivityGenerator { .writeTo(env.getFiler()); } - // private void init() { - // addOnContextAvailableListener(new OnContextAvailableListener() { - // @Override - // public void onContextAvailable(Context context) { - // inject(); - // } - // }); + // @CallSuper + // @Override + // protected void onCreate(@Nullable Bundle savedInstanceState) { + // inject(); + // super.onCreate(savedInstanceState); // } - private MethodSpec init() { - return MethodSpec.methodBuilder("_initHiltInternal") - .addModifiers(Modifier.PRIVATE) - .addStatement( - "addOnContextAvailableListener($L)", - TypeSpec.anonymousClassBuilder("") - .addSuperinterface(AndroidClassNames.ON_CONTEXT_AVAILABLE_LISTENER) - .addMethod( - MethodSpec.methodBuilder("onContextAvailable") - .addAnnotation(Override.class) - .addModifiers(Modifier.PUBLIC) - .addParameter(AndroidClassNames.CONTEXT, "context") - .addStatement("inject()") - .build()) + private MethodSpec onCreate() { + return MethodSpec.methodBuilder("onCreate") + .addAnnotation(AndroidClassNames.CALL_SUPER) + .addAnnotation(Override.class) + .addModifiers(Modifier.PROTECTED) + .addParameter( + ParameterSpec.builder(AndroidClassNames.BUNDLE, "savedInstanceState") + .addAnnotation(AndroidClassNames.NULLABLE) .build()) + .addStatement("inject()") + .addStatement("super.onCreate(savedInstanceState)") .build(); } // @Override // public ViewModelProvider.Factory getDefaultViewModelProviderFactory() { - // return DefaultViewModelFactories.getActivityFactory( - // this, super.getDefaultViewModelProviderFactory()); + // return DefaultViewModelFactories.getActivityFactory(this); // } private MethodSpec getDefaultViewModelProviderFactory() { return MethodSpec.methodBuilder("getDefaultViewModelProviderFactory") @@ -117,7 +109,7 @@ public final class ActivityGenerator { .addModifiers(Modifier.PUBLIC) .returns(AndroidClassNames.VIEW_MODEL_PROVIDER_FACTORY) .addStatement( - "return $T.getActivityFactory(this, super.getDefaultViewModelProviderFactory())", + "return $T.getActivityFactory(this)", AndroidClassNames.DEFAULT_VIEW_MODEL_FACTORIES) .build(); } |