diff --git a/app/src/main/java/com/mindorks/framework/mvvm/di/module/ActivityModule.java b/app/src/main/java/com/mindorks/framework/mvvm/di/module/ActivityModule.java index d2be2183c5a49fc0bf51331dacc70e7e8eeb3d1c..9751c419290ec3f7582a8e547bfa08901d11afea 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/di/module/ActivityModule.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/di/module/ActivityModule.java @@ -20,6 +20,8 @@ import android.content.Context; import android.support.v7.app.AppCompatActivity; import com.mindorks.framework.mvvm.di.ActivityContext; +import com.mindorks.framework.mvvm.di.PerActivity; +import com.mindorks.framework.mvvm.viewmodel.main.MainViewModel; import dagger.Module; import dagger.Provides; @@ -46,4 +48,10 @@ public class ActivityModule { AppCompatActivity provideActivity() { return mActivity; } + + @Provides + @PerActivity + MainViewModel provideMainViewModel() { + return new MainViewModel("MainViewModel"); + } } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/view/main/MainActivity.java b/app/src/main/java/com/mindorks/framework/mvvm/view/main/MainActivity.java index 247788ddfc22d4ee9914390bd776cdbeb5a57a30..c0ccc2f5569ed28696170cd1c2112a31418b276c 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/view/main/MainActivity.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/view/main/MainActivity.java @@ -16,16 +16,45 @@ package com.mindorks.framework.mvvm.view.main; +import android.databinding.DataBindingUtil; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; +import com.mindorks.framework.mvvm.MvvmApp; import com.mindorks.framework.mvvm.R; +import com.mindorks.framework.mvvm.databinding.ActivityMainBinding; +import com.mindorks.framework.mvvm.di.component.ActivityComponent; +import com.mindorks.framework.mvvm.di.component.DaggerActivityComponent; +import com.mindorks.framework.mvvm.di.module.ActivityModule; +import com.mindorks.framework.mvvm.viewmodel.main.MainViewModel; + +import javax.inject.Inject; public class MainActivity extends AppCompatActivity { + private ActivityComponent mActivityComponent; + + @Inject + public MainViewModel mainViewModel; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); + ActivityMainBinding mainBinding = DataBindingUtil.setContentView(this, R.layout.activity_main); + + mActivityComponent = DaggerActivityComponent.builder() + .activityModule(new ActivityModule(this)) + .applicationComponent(((MvvmApp) getApplication()).getComponent()) + .build(); + + mActivityComponent.inject(this); + + mainBinding.setViewmodel(mainViewModel); + } + + @Override + protected void onResume() { + mainViewModel.setText("Amit Shekhar"); + super.onResume(); } } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/viewmodel/main/MainViewModel.java b/app/src/main/java/com/mindorks/framework/mvvm/viewmodel/main/MainViewModel.java index a7156822800706abb119388a38eef2cb17400060..f22dc1bfece928aac769a4601d5f117d64cd1f5c 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/viewmodel/main/MainViewModel.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/viewmodel/main/MainViewModel.java @@ -16,9 +16,25 @@ package com.mindorks.framework.mvvm.viewmodel.main; +import android.databinding.BaseObservable; +import android.databinding.ObservableField; + /** * Created by amitshekhar on 07/07/17. */ -public class MainViewModel { +public class MainViewModel extends BaseObservable { + + public final ObservableField value = new ObservableField<>(); + + private final String dummyValue; + + public MainViewModel(String value) { + this.dummyValue = value; + } + + public void setText(String text) { + this.value.set(text); + } + } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 4dd5731121fbb939504deb4a136333d2e72c15df..ba959473bd5b92b657067ddd147fc3d30ccfe08a 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -13,16 +13,34 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> - - - + + + + + + + + + + + + + + + + - + \ No newline at end of file