Skip to content

Commit

Permalink
Add a private constructor to the generated @HiltViewModel module.
Browse files Browse the repository at this point in the history
RELNOTES=n/a
PiperOrigin-RevId: 367674245
  • Loading branch information
Chang-Eric authored and Dagger Team committed Apr 9, 2021
1 parent e8e12a0 commit c57ab0a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ internal class ViewModelModuleGenerator(
component = AndroidClassNames.VIEW_MODEL_COMPONENT
)
.addModifiers(Modifier.ABSTRACT)
.addMethod(
MethodSpec.constructorBuilder()
.addModifiers(Modifier.PRIVATE)
.build()
)
.addMethod(getViewModelBindsMethod())
.build()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class ViewModelGeneratorTest {

val expected = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -60,31 +60,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = MyViewModel.class
)
public final class MyViewModel_HiltModules {
private MyViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.MyViewModel")
@HiltViewModelMap
public abstract ViewModel binds(MyViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down Expand Up @@ -123,7 +125,7 @@ class ViewModelGeneratorTest {

val expected = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -138,31 +140,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = MyViewModel.class
)
public final class MyViewModel_HiltModules {
private MyViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.MyViewModel")
@HiltViewModelMap
public abstract ViewModel binds(MyViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down Expand Up @@ -208,7 +212,7 @@ class ViewModelGeneratorTest {

val expected = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -223,31 +227,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = MyViewModel.class
)
public final class MyViewModel_HiltModules {
private MyViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.MyViewModel")
@HiltViewModelMap
public abstract ViewModel binds(MyViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down Expand Up @@ -294,7 +300,7 @@ class ViewModelGeneratorTest {

val expected = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -309,31 +315,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE;
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = MyViewModel.class
)
public final class MyViewModel_HiltModules {
private MyViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.MyViewModel")
@HiltViewModelMap
public abstract ViewModel binds(MyViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down Expand Up @@ -387,7 +395,7 @@ class ViewModelGeneratorTest {

val expected = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -402,31 +410,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE;
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = MyViewModel.class
)
public final class MyViewModel_HiltModules {
private MyViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.MyViewModel")
@HiltViewModelMap
public abstract ViewModel binds(MyViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down Expand Up @@ -466,7 +476,7 @@ class ViewModelGeneratorTest {

val expectedModule = """
package dagger.hilt.android.test;
import androidx.lifecycle.ViewModel;
import dagger.Binds;
import dagger.Module;
Expand All @@ -481,31 +491,33 @@ class ViewModelGeneratorTest {
import dagger.multibindings.StringKey;
import java.lang.String;
import $GENERATED_TYPE
$GENERATED_ANNOTATION
@OriginatingElement(
topLevelClass = Outer.class
)
public final class Outer_InnerViewModel_HiltModules {
private Outer_InnerViewModel_HiltModules() {
}
@Module
@InstallIn(ViewModelComponent.class)
public static abstract class BindsModule {
private BindsModule() {}
@Binds
@IntoMap
@StringKey("dagger.hilt.android.test.Outer${'$'}InnerViewModel")
@HiltViewModelMap
public abstract ViewModel binds(Outer.InnerViewModel vm);
}
@Module
@InstallIn(ActivityRetainedComponent.class)
public static final class KeyModule {
private KeyModule() {
}
@Provides
@IntoSet
@HiltViewModelMap.KeySet
Expand Down

0 comments on commit c57ab0a

Please sign in to comment.