Skip to content

Commit 3d9479e

Browse files
Chang-EricDagger Team
authored andcommitted
Internal changes.
RELNOTES=n/a PiperOrigin-RevId: 785623299
1 parent fc6107f commit 3d9479e

8 files changed

Lines changed: 36 additions & 281 deletions

File tree

hilt-android/main/java/dagger/hilt/android/internal/managers/SavedStateHandleModule.java renamed to hilt-android/main/java/dagger/hilt/android/internal/managers/ActivitySavedStateHandleModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
/** Module providing SavedStateHandle from ActivityRetainedComponent. */
3030
@Module
3131
@InstallIn(ActivityRetainedComponent.class)
32-
abstract class SavedStateHandleModule {
32+
abstract class ActivitySavedStateHandleModule {
3333
@OptIn(markerClass = UnstableApi.class)
3434
@ActivityRetainedSavedState
3535
@ActivityRetainedScoped

hilt-android/main/java/dagger/hilt/android/internal/managers/BUILD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ android_library(
2929
srcs = [
3030
"ActivityComponentManager.java",
3131
"ActivityRetainedComponentManager.java",
32+
"ActivitySavedStateHandleModule.java",
3233
"ApplicationComponentManager.java",
3334
"BroadcastReceiverComponentManager.java",
3435
"FragmentComponentManager.java",
35-
"SavedStateHandleModule.java",
3636
"ServiceComponentManager.java",
3737
"ViewComponentManager.java",
3838
],

hilt-android/main/java/dagger/hilt/android/internal/managers/SavedStateHandleHolder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ public final class SavedStateHandleHolder {
3333
@Nullable private SavedStateHandle handle;
3434
private final boolean isComponentActivity;
3535

36-
SavedStateHandleHolder(@Nullable CreationExtras extras) {
36+
public SavedStateHandleHolder(@Nullable CreationExtras extras) {
3737
isComponentActivity = (extras != null);
3838
this.extras = extras;
3939
}
4040

41-
SavedStateHandle getSavedStateHandle() {
41+
public SavedStateHandle getSavedStateHandle() {
4242
ThreadUtil.ensureMainThread();
4343
checkState(
4444
isComponentActivity,

hilt-compiler/main/java/dagger/hilt/android/processor/internal/androidentrypoint/ActivityGenerator.java

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616

1717
package dagger.hilt.android.processor.internal.androidentrypoint;
1818

19-
import static com.google.common.base.Preconditions.checkState;
2019
import static dagger.internal.codegen.extension.DaggerCollectors.toOptional;
21-
import static dagger.internal.codegen.extension.DaggerStreams.toImmutableList;
22-
import static kotlin.streams.jdk8.StreamsKt.asStream;
2320

2421
import androidx.room.compiler.processing.JavaPoetExtKt;
2522
import androidx.room.compiler.processing.XAnnotated;
@@ -29,8 +26,6 @@
2926
import androidx.room.compiler.processing.XProcessingEnv;
3027
import androidx.room.compiler.processing.XTypeParameterElement;
3128
import com.google.common.base.CaseFormat;
32-
import com.google.common.collect.ImmutableList;
33-
import com.google.common.collect.Iterables;
3429
import com.squareup.javapoet.ClassName;
3530
import com.squareup.javapoet.CodeBlock;
3631
import com.squareup.javapoet.FieldSpec;
@@ -187,7 +182,7 @@ private MethodSpec getDefaultViewModelProviderFactory() {
187182
//
188183
private MethodSpec onCreateComponentActivity() {
189184
XMethodElement nearestSuperClassMethod =
190-
nearestSuperClassMethod(ActivityMethod.ON_CREATE, metadata);
185+
Generators.nearestSuperClassMethod(ActivityMethod.ON_CREATE.signature, metadata);
191186
if (nearestSuperClassMethod.isFinal()) {
192187
env.getMessager()
193188
.printMessage(
@@ -262,7 +257,7 @@ private static boolean hasNullableAnnotation(XAnnotated element) {
262257
// }
263258
private MethodSpec onDestroyComponentActivity() {
264259
XMethodElement nearestSuperClassMethod =
265-
nearestSuperClassMethod(ActivityMethod.ON_DESTROY, metadata);
260+
Generators.nearestSuperClassMethod(ActivityMethod.ON_DESTROY.signature, metadata);
266261
if (nearestSuperClassMethod.isFinal()) {
267262
env.getMessager()
268263
.printMessage(
@@ -287,14 +282,4 @@ private static Optional<XMethodElement> androidEntryPointMethod(
287282
.filter(method -> MethodSignature.of(method).equals(activityMethod.signature))
288283
.collect(toOptional());
289284
}
290-
291-
private static XMethodElement nearestSuperClassMethod(
292-
ActivityMethod activityMethod, AndroidEntryPointMetadata metadata) {
293-
ImmutableList<XMethodElement> methodOnBaseElement =
294-
asStream(metadata.baseElement().getAllMethods())
295-
.filter(method -> MethodSignature.of(method).equals(activityMethod.signature))
296-
.collect(toImmutableList());
297-
checkState(methodOnBaseElement.size() >= 1);
298-
return Iterables.getLast(methodOnBaseElement);
299-
}
300285
}

hilt-compiler/main/java/dagger/hilt/android/processor/internal/androidentrypoint/FragmentGenerator.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,17 @@ TypeSpec createTypeSpec() {
111111
// initializeComponentContext();
112112
// inject();
113113
// }
114-
private static MethodSpec onAttachContextMethod() {
115-
return MethodSpec.methodBuilder("onAttach")
114+
private MethodSpec onAttachContextMethod() {
115+
MethodSpec.Builder builder = MethodSpec.methodBuilder("onAttach")
116116
.addAnnotation(Override.class)
117117
.addAnnotation(AndroidClassNames.CALL_SUPER)
118118
.addModifiers(Modifier.PUBLIC)
119119
.addParameter(AndroidClassNames.CONTEXT, "context")
120120
.addStatement("super.onAttach(context)")
121-
.addStatement("initializeComponentContext()")
122-
// The inject method will internally check if injected already
123-
.addStatement("inject()")
124-
.build();
121+
.addStatement("initializeComponentContext()");
122+
// The inject method will internally check if injected already
123+
builder.addStatement("inject()");
124+
return builder.build();
125125
}
126126

127127
// @CallSuper
@@ -135,8 +135,8 @@ private static MethodSpec onAttachContextMethod() {
135135
// initializeComponentContext();
136136
// inject();
137137
// }
138-
private static MethodSpec onAttachActivityMethod() {
139-
return MethodSpec.methodBuilder("onAttach")
138+
private MethodSpec onAttachActivityMethod() {
139+
MethodSpec.Builder builder = MethodSpec.methodBuilder("onAttach")
140140
.addAnnotation(Override.class)
141141
.addAnnotation(
142142
AnnotationSpec.builder(ClassNames.SUPPRESS_WARNINGS)
@@ -155,10 +155,10 @@ private static MethodSpec onAttachActivityMethod() {
155155
COMPONENT_CONTEXT_FIELD,
156156
"onAttach called multiple times with different Context! "
157157
+ "Hilt Fragments should not be retained.")
158-
.addStatement("initializeComponentContext()")
159-
// The inject method will internally check if injected already
160-
.addStatement("inject()")
161-
.build();
158+
.addStatement("initializeComponentContext()");
159+
// The inject method will internally check if injected already
160+
builder.addStatement("inject()");
161+
return builder.build();
162162
}
163163

164164
// private void initializeComponentContext() {

hilt-compiler/main/java/dagger/hilt/android/processor/internal/androidentrypoint/Generators.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,21 @@
2323
import static dagger.internal.codegen.extension.DaggerStreams.toImmutableSet;
2424
import static dagger.internal.codegen.xprocessing.XElements.getSimpleName;
2525
import static java.util.stream.Collectors.joining;
26+
import static kotlin.streams.jdk8.StreamsKt.asStream;
2627

2728
import androidx.room.compiler.processing.JavaPoetExtKt;
2829
import androidx.room.compiler.processing.XAnnotation;
2930
import androidx.room.compiler.processing.XConstructorElement;
3031
import androidx.room.compiler.processing.XElement;
32+
import androidx.room.compiler.processing.XMethodElement;
3133
import androidx.room.compiler.processing.XType;
3234
import androidx.room.compiler.processing.XTypeElement;
3335
import androidx.room.compiler.processing.XVariableElement;
3436
import com.google.common.base.Preconditions;
3537
import com.google.common.collect.ImmutableList;
3638
import com.google.common.collect.ImmutableMap;
3739
import com.google.common.collect.ImmutableSet;
40+
import com.google.common.collect.Iterables;
3841
import com.squareup.javapoet.AnnotationSpec;
3942
import com.squareup.javapoet.ClassName;
4043
import com.squareup.javapoet.CodeBlock;
@@ -46,6 +49,7 @@
4649
import dagger.hilt.android.processor.internal.AndroidClassNames;
4750
import dagger.hilt.android.processor.internal.androidentrypoint.AndroidEntryPointMetadata.AndroidType;
4851
import dagger.hilt.processor.internal.ClassNames;
52+
import dagger.hilt.processor.internal.MethodSignature;
4953
import dagger.hilt.processor.internal.Processors;
5054
import java.util.List;
5155
import java.util.Optional;
@@ -262,6 +266,17 @@ static void addInjectionMethods(AndroidEntryPointMetadata metadata, TypeSpec.Bui
262266
}
263267
}
264268

269+
/** Returns the nearest super class method for the given method signature. */
270+
static XMethodElement nearestSuperClassMethod(
271+
MethodSignature methodSignature, AndroidEntryPointMetadata metadata) {
272+
ImmutableList<XMethodElement> methodOnBaseElement =
273+
asStream(metadata.baseElement().getAllMethods())
274+
.filter(method -> MethodSignature.of(method).equals(methodSignature))
275+
.collect(toImmutableList());
276+
Preconditions.checkState(methodOnBaseElement.size() >= 1);
277+
return Iterables.getLast(methodOnBaseElement);
278+
}
279+
265280
// @Override
266281
// public FragmentComponentManager componentManager() {
267282
// if (componentManager == null) {

javatests/dagger/hilt/android/EntryPointAccessorsTest.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,16 @@ import com.google.common.truth.Truth
2727
import dagger.Module
2828
import dagger.Provides
2929
import dagger.hilt.EntryPoint
30-
import dagger.hilt.EntryPoints
3130
import dagger.hilt.InstallIn
3231
import dagger.hilt.android.components.ActivityComponent
3332
import dagger.hilt.android.components.FragmentComponent
3433
import dagger.hilt.android.components.FragmentRetainedComponent
3534
import dagger.hilt.android.components.ViewComponent
36-
import dagger.hilt.android.internal.managers.InternalFragmentRetainedComponent
35+
import dagger.hilt.android.scopes.FragmentRetainedScoped
3736
import dagger.hilt.android.testing.HiltAndroidRule
3837
import dagger.hilt.android.testing.HiltAndroidTest
3938
import dagger.hilt.android.testing.HiltTestApplication
4039
import dagger.hilt.components.SingletonComponent
41-
import javax.inject.Inject
4240
import javax.inject.Qualifier
4341
import org.junit.Rule
4442
import org.junit.Test
@@ -125,6 +123,7 @@ class EntryPointAccessorsTest {
125123
@InstallIn(FragmentComponent::class)
126124
internal interface FragmentEntryPoint {
127125
@FragmentLevel fun getString(): String
126+
128127
}
129128

130129
@EntryPoint
@@ -172,8 +171,7 @@ class EntryPointAccessorsTest {
172171
class TestActivity : Hilt_EntryPointAccessorsTest_TestActivity()
173172

174173
@AndroidEntryPoint(Fragment::class)
175-
class TestFragment : Hilt_EntryPointAccessorsTest_TestFragment() {
176-
}
174+
class TestFragment : Hilt_EntryPointAccessorsTest_TestFragment() {}
177175

178176
@AndroidEntryPoint(View::class)
179177
class TestView(context: Context) : Hilt_EntryPointAccessorsTest_TestView(context)

0 commit comments

Comments
 (0)