提交 ae412767 编写于 作者: J Jyoti Dubey

Add constructor injection for VMFactory

上级 50326ece
......@@ -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;
......
......@@ -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();
}
/*
* 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);
}
}
......@@ -25,6 +25,6 @@ import dagger.android.ContributesAndroidInjector;
@Module
public abstract class AboutFragmentProvider {
@ContributesAndroidInjector(modules = AboutFragmentModule.class)
@ContributesAndroidInjector
abstract AboutFragment provideAboutFragmentFactory();
}
......@@ -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<ActivityFeedBinding, FeedViewMode
@Inject
FeedPagerAdapter mPagerAdapter;
@Inject
@Named("FeedActivity")
ViewModelProviderFactory factory;
private ActivityFeedBinding mActivityFeedBinding;
private FeedViewModel mFeedViewModel;
......
......@@ -16,12 +16,8 @@
package com.mindorks.framework.mvvm.ui.feed;
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.
......@@ -34,9 +30,4 @@ public class FeedActivityModule {
return new FeedPagerAdapter(activity.getSupportFragmentManager());
}
@Provides
@Named("FeedActivity")
ViewModelProviderFactory provideFeedSourceFactory(DataManager dataManager, SchedulerProvider schedulerProvider) {
return new ViewModelProviderFactory(dataManager, schedulerProvider);
}
}
......@@ -17,7 +17,6 @@
package com.mindorks.framework.mvvm.ui.feed.blogs;
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;
......@@ -41,11 +40,6 @@ public class BlogFragmentModule {
return new BlogAdapter(new ArrayList<>());
}
@Provides
ViewModelProviderFactory provideBlogViewModelFactory(DataManager dataManager, SchedulerProvider schedulerProvider) {
return new ViewModelProviderFactory(dataManager, schedulerProvider);
}
@Provides
LinearLayoutManager provideLinearLayoutManager(BlogFragment fragment) {
return new LinearLayoutManager(fragment.getActivity());
......
......@@ -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);
}
}
/*
* 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);
}
}
......@@ -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<ActivityMainBinding, MainViewModel> implements MainNavigator, HasSupportFragmentInjector {
@Inject
DispatchingAndroidInjector<Fragment> fragmentDispatchingAndroidInjector;
@Inject
@Named("MainActivity")
ViewModelProviderFactory factory;
private ActivityMainBinding mActivityMainBinding;
private SwipePlaceHolderView mCardsContainerView;
......
/*
* 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);
}
}
......@@ -138,7 +138,6 @@ public class MainViewModel extends BaseViewModel<MainNavigator> {
public void removeQuestionCard() {
action = ACTION_DELETE_SINGLE;
questionDataList.remove(0);
questionCardData.getValue().remove(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);
}
}
......@@ -25,6 +25,6 @@ import dagger.android.ContributesAndroidInjector;
@Module
public abstract class RateUsDialogProvider {
@ContributesAndroidInjector(modules = RateUsDialogModule.class)
@ContributesAndroidInjector
abstract RateUsDialog provideRateUsDialogFactory();
}
/*
* 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);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册