From ae412767d3ffa9f4f8ece1ac736ed125a948c08c Mon Sep 17 00:00:00 2001 From: Jyoti Dubey Date: Fri, 22 Feb 2019 23:24:28 +0530 Subject: [PATCH] Add constructor injection for VMFactory --- .../mvvm/ViewModelProviderFactory.java | 2 + .../mvvm/di/builder/ActivityBuilder.java | 8 +--- .../mvvm/ui/about/AboutFragmentModule.java | 34 ----------------- .../mvvm/ui/about/AboutFragmentProvider.java | 2 +- .../framework/mvvm/ui/feed/FeedActivity.java | 2 - .../mvvm/ui/feed/FeedActivityModule.java | 9 ----- .../ui/feed/blogs/BlogFragmentModule.java | 6 --- .../opensource/OpenSourceFragmentModule.java | 5 --- .../mvvm/ui/login/LoginActivityModule.java | 35 ----------------- .../framework/mvvm/ui/main/MainActivity.java | 2 - .../mvvm/ui/main/MainActivityModule.java | 38 ------------------- .../framework/mvvm/ui/main/MainViewModel.java | 1 - .../ui/main/rating/RateUsDialogModule.java | 35 ----------------- .../ui/main/rating/RateUsDialogProvider.java | 2 +- .../mvvm/ui/splash/SplashActivityModule.java | 35 ----------------- 15 files changed, 6 insertions(+), 210 deletions(-) delete mode 100644 app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentModule.java delete mode 100644 app/src/main/java/com/mindorks/framework/mvvm/ui/login/LoginActivityModule.java delete mode 100644 app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivityModule.java delete mode 100644 app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogModule.java delete mode 100644 app/src/main/java/com/mindorks/framework/mvvm/ui/splash/SplashActivityModule.java diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java b/app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java index 530d571..81c9b6d 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ViewModelProviderFactory.java @@ -12,6 +12,7 @@ import com.mindorks.framework.mvvm.ui.main.MainViewModel; import com.mindorks.framework.mvvm.ui.main.rating.RateUsViewModel; import com.mindorks.framework.mvvm.ui.splash.SplashViewModel; import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; +import javax.inject.Inject; /** * Created by jyotidubey on 22/02/19. @@ -22,6 +23,7 @@ public class ViewModelProviderFactory extends ViewModelProvider.NewInstanceFacto private final DataManager dataManager; private final SchedulerProvider schedulerProvider; + @Inject public ViewModelProviderFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { this.dataManager = dataManager; diff --git a/app/src/main/java/com/mindorks/framework/mvvm/di/builder/ActivityBuilder.java b/app/src/main/java/com/mindorks/framework/mvvm/di/builder/ActivityBuilder.java index 7a63bd5..d42bb36 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/di/builder/ActivityBuilder.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/di/builder/ActivityBuilder.java @@ -22,12 +22,9 @@ import com.mindorks.framework.mvvm.ui.feed.FeedActivityModule; import com.mindorks.framework.mvvm.ui.feed.blogs.BlogFragmentProvider; import com.mindorks.framework.mvvm.ui.feed.opensource.OpenSourceFragmentProvider; import com.mindorks.framework.mvvm.ui.login.LoginActivity; -import com.mindorks.framework.mvvm.ui.login.LoginActivityModule; import com.mindorks.framework.mvvm.ui.main.MainActivity; -import com.mindorks.framework.mvvm.ui.main.MainActivityModule; import com.mindorks.framework.mvvm.ui.main.rating.RateUsDialogProvider; import com.mindorks.framework.mvvm.ui.splash.SplashActivity; -import com.mindorks.framework.mvvm.ui.splash.SplashActivityModule; import dagger.Module; import dagger.android.ContributesAndroidInjector; @@ -43,15 +40,14 @@ public abstract class ActivityBuilder { OpenSourceFragmentProvider.class}) abstract FeedActivity bindFeedActivity(); - @ContributesAndroidInjector(modules = LoginActivityModule.class) + @ContributesAndroidInjector abstract LoginActivity bindLoginActivity(); @ContributesAndroidInjector(modules = { - MainActivityModule.class, AboutFragmentProvider.class, RateUsDialogProvider.class}) abstract MainActivity bindMainActivity(); - @ContributesAndroidInjector(modules = SplashActivityModule.class) + @ContributesAndroidInjector abstract SplashActivity bindSplashActivity(); } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentModule.java deleted file mode 100644 index e4f3d53..0000000 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentModule.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED - * - * 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 - * - * https://mindorks.com/license/apache-v2 - * - * 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 com.mindorks.framework.mvvm.ui.about; - -import com.mindorks.framework.mvvm.ViewModelProviderFactory; -import com.mindorks.framework.mvvm.data.DataManager; -import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; -import dagger.Module; -import dagger.Provides; - -/** - * Created by amitshekhar on 14/09/17. - */ -@Module -public class AboutFragmentModule { - @Provides - ViewModelProviderFactory provideSplashViewModel(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } -} diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentProvider.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentProvider.java index 4318abd..c0e1c23 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentProvider.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/about/AboutFragmentProvider.java @@ -25,6 +25,6 @@ import dagger.android.ContributesAndroidInjector; @Module public abstract class AboutFragmentProvider { - @ContributesAndroidInjector(modules = AboutFragmentModule.class) + @ContributesAndroidInjector abstract AboutFragment provideAboutFragmentFactory(); } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/FeedActivity.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/FeedActivity.java index f3ed18a..326db9a 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/FeedActivity.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/FeedActivity.java @@ -34,7 +34,6 @@ import dagger.android.AndroidInjector; import dagger.android.DispatchingAndroidInjector; import dagger.android.support.HasSupportFragmentInjector; import javax.inject.Inject; -import javax.inject.Named; /** * Created by amitshekhar on 10/07/17. @@ -47,7 +46,6 @@ public class FeedActivity extends BaseActivity()); } - @Provides - ViewModelProviderFactory provideBlogViewModelFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } - @Provides LinearLayoutManager provideLinearLayoutManager(BlogFragment fragment) { return new LinearLayoutManager(fragment.getActivity()); diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceFragmentModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceFragmentModule.java index eedc90f..baddc81 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceFragmentModule.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/feed/opensource/OpenSourceFragmentModule.java @@ -17,7 +17,6 @@ package com.mindorks.framework.mvvm.ui.feed.opensource; import android.support.v7.widget.LinearLayoutManager; -import com.mindorks.framework.mvvm.ViewModelProviderFactory; import com.mindorks.framework.mvvm.data.DataManager; import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; import dagger.Module; @@ -44,8 +43,4 @@ public class OpenSourceFragmentModule { return new OpenSourceAdapter(); } - @Provides - ViewModelProviderFactory provideOpenSourceFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/login/LoginActivityModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/login/LoginActivityModule.java deleted file mode 100644 index d36734c..0000000 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/login/LoginActivityModule.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED - * - * 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 - * - * https://mindorks.com/license/apache-v2 - * - * 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 com.mindorks.framework.mvvm.ui.login; - -import com.mindorks.framework.mvvm.ViewModelProviderFactory; -import com.mindorks.framework.mvvm.data.DataManager; -import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; -import dagger.Module; -import dagger.Provides; - -/** - * Created by amitshekhar on 14/09/17. - */ -@Module -public class LoginActivityModule { - - @Provides - ViewModelProviderFactory provideLoginViewModelFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } -} diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivity.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivity.java index d913cb3..854dd83 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivity.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivity.java @@ -52,14 +52,12 @@ import dagger.android.AndroidInjector; import dagger.android.DispatchingAndroidInjector; import dagger.android.support.HasSupportFragmentInjector; import javax.inject.Inject; -import javax.inject.Named; public class MainActivity extends BaseActivity implements MainNavigator, HasSupportFragmentInjector { @Inject DispatchingAndroidInjector fragmentDispatchingAndroidInjector; @Inject - @Named("MainActivity") ViewModelProviderFactory factory; private ActivityMainBinding mActivityMainBinding; private SwipePlaceHolderView mCardsContainerView; diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivityModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivityModule.java deleted file mode 100644 index d99f9a0..0000000 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainActivityModule.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED - * - * 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 - * - * https://mindorks.com/license/apache-v2 - * - * 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 com.mindorks.framework.mvvm.ui.main; - -import com.mindorks.framework.mvvm.ViewModelProviderFactory; -import com.mindorks.framework.mvvm.data.DataManager; -import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; -import dagger.Module; -import dagger.Provides; -import javax.inject.Named; - -/** - * Created by amitshekhar on 14/09/17. - */ -@Module -public class MainActivityModule { - - @Provides - @Named("MainActivity") - ViewModelProviderFactory provideMainSourceFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } - -} diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainViewModel.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainViewModel.java index d906461..f3874db 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainViewModel.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/MainViewModel.java @@ -138,7 +138,6 @@ public class MainViewModel extends BaseViewModel { public void removeQuestionCard() { action = ACTION_DELETE_SINGLE; - questionDataList.remove(0); questionCardData.getValue().remove(0); } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogModule.java deleted file mode 100644 index f50c039..0000000 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogModule.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED - * - * 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 - * - * https://mindorks.com/license/apache-v2 - * - * 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 com.mindorks.framework.mvvm.ui.main.rating; - -import com.mindorks.framework.mvvm.ViewModelProviderFactory; -import com.mindorks.framework.mvvm.data.DataManager; -import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; -import dagger.Module; -import dagger.Provides; - -/** - * Created by amitshekhar on 14/09/17. - */ -@Module -public class RateUsDialogModule { - - @Provides - ViewModelProviderFactory provideRateUsViewModelFactory(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } -} diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogProvider.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogProvider.java index 3222948..f02d724 100644 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogProvider.java +++ b/app/src/main/java/com/mindorks/framework/mvvm/ui/main/rating/RateUsDialogProvider.java @@ -25,6 +25,6 @@ import dagger.android.ContributesAndroidInjector; @Module public abstract class RateUsDialogProvider { - @ContributesAndroidInjector(modules = RateUsDialogModule.class) + @ContributesAndroidInjector abstract RateUsDialog provideRateUsDialogFactory(); } diff --git a/app/src/main/java/com/mindorks/framework/mvvm/ui/splash/SplashActivityModule.java b/app/src/main/java/com/mindorks/framework/mvvm/ui/splash/SplashActivityModule.java deleted file mode 100644 index 0d6f86f..0000000 --- a/app/src/main/java/com/mindorks/framework/mvvm/ui/splash/SplashActivityModule.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED - * - * 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 - * - * https://mindorks.com/license/apache-v2 - * - * 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 com.mindorks.framework.mvvm.ui.splash; - -import com.mindorks.framework.mvvm.ViewModelProviderFactory; -import com.mindorks.framework.mvvm.data.DataManager; -import com.mindorks.framework.mvvm.utils.rx.SchedulerProvider; -import dagger.Module; -import dagger.Provides; - -/** - * Created by amitshekhar on 14/09/17. - */ -@Module -public class SplashActivityModule { - - @Provides - ViewModelProviderFactory provideSplashViewModel(DataManager dataManager, SchedulerProvider schedulerProvider) { - return new ViewModelProviderFactory(dataManager, schedulerProvider); - } -} -- GitLab