Skip to content

Instantly share code, notes, and snippets.

class MainViewModel: ViewModel() {
private var creditScore = mutableStateOf(0)
private var age = mutableStateOf(18)
val isEligible = derivedStateOf {
creditScore > 400 && age > 18 && age < 70
}
fun creditScore(score: Int) {
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val viewModel: MainViewModel by viewModels()
val isEligible by remember {
viewModel.isEligible
}
Column(
class MainViewModel: ViewModel() {
var creditScore = 0
var age = 18
fun isEligible() = creditScore > 400 && age > 18 && age < 70
}
class MemberListViewHolder(mContext: Context, itemView:View):RecyclerView.ViewHolder(itemView){
lateinit var userPreference: Preference<LoginResponse>
init{
super.itemView
ButterKnife.bind(this,itemView)
inject(context)
}
@InstallIn(ActivityComponent::class)
@EntryPoint
interface UserListViewHolderEntryPoint {
var loginPref: Preference<LoginResponse>
}
class MemberListViewHolder(itemView:View):RecyclerView.ViewHolder(itemView){
@Inject
lateinit var userPreference: Preference<LoginResponse>
init{
super.itemView
ButterKnife.bind(this,itemView)
SheroesApplication.getAppComponent(itemView.context).inject(this)
if(null!=userPreference&&userPreference.isSet&&null!=userPreference.get().userSummary){
mUserId=userPreference.get().userSummary.userId
defaultConfig {
// this will prevent the excetion for InstallIn check on injected modules for time being
javaCompileOptions.annotationProcessorOptions.arguments['dagger.hilt.disableModulesHaveInstallInCheck'] = 'true'
}
@InstallIn(SingletonComponent.class)
@Module(
includes = {
SheroesAppModule.class, VMModule.class, UseCaseModule.class,
ApiModule.class, RepositoryModule.class, AnalyticModule.class
}
)
interface AppModuleComponent{}
@InstallIn(SingletonComponent.class)
public class SheroesApplication extends Application {
SheroesAppComponent mSheroesAppComponent;
@Override
public void onCreate() {
super.onCreate();
mSheroesAppComponent = DaggerSheroesAppComponent.builder()
.sheroesAppModule(
new SheroesAppModule(this, this)
@Singleton
@Component(
modules = {
SheroesAppModule.class, VMModule.class, UseCaseModule.class,
ApiModule.class, RepositoryModule.class, AnalyticModule.class
}
)
public interface SheroesAppComponent {
void inject(HomeActivity homeActivity);