| /* |
| * Copyright (C) 2020 The Dagger Authors. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package dagger.hilt.android.simpleKotlin |
| |
| import android.os.Bundle |
| import android.view.View |
| import android.widget.TextView |
| import androidx.activity.viewModels |
| import androidx.appcompat.app.AppCompatActivity |
| import androidx.lifecycle.ViewModel |
| import dagger.hilt.android.AndroidEntryPoint |
| import dagger.hilt.android.lifecycle.HiltViewModel |
| import javax.inject.Inject |
| |
| @AndroidEntryPoint |
| class MainActivity : AppCompatActivity() { |
| |
| val viewModel by viewModels<MainViewModel>() |
| |
| override fun onCreate(savedInstanceState: Bundle?) { |
| super.onCreate(savedInstanceState) |
| setContentView(R.layout.activity_main) |
| val greeting = findViewById<View>(R.id.greeting) as TextView |
| val text = resources.getString(R.string.welcome, viewModel.name, viewModel.model) |
| greeting.text = text |
| } |
| |
| // Shows that we can inject bindings into a ViewModel |
| @HiltViewModel |
| class MainViewModel @Inject constructor( |
| @Model val model: String, |
| @UserName val name: String |
| ) : ViewModel() |
| } |