From 5a6e0e13b92b7cf93bfaf9c83a523ef0936b1a81 Mon Sep 17 00:00:00 2001 From: amitshekhariitbhu Date: Fri, 7 Jul 2017 18:36:59 +0530 Subject: [PATCH] Add some sample data binding in Main Activity --- .../mvvm/di/module/ActivityModule.java | 8 +++++ .../mvvm/view/main/MainActivity.java | 31 +++++++++++++++- .../mvvm/viewmodel/main/MainViewModel.java | 18 +++++++++- app/src/main/res/layout/activity_main.xml | 36 ++++++++++++++----- 4 files changed, 82 insertions(+), 11 deletions(-) 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 d2be218..9751c41 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 247788d..c0ccc2f 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 a715682..f22dc1b 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 4dd5731..ba95947 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 -- GitLab