--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ArticleListActivity.kt Wed Mar 27 17:07:42 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ArticleListActivity.kt Wed Mar 27 17:21:31 2019 -0700
@@ -259,7 +259,7 @@
title = feed.title
binding.toolbar.toolbar.title = title
supportFragmentManager.commit {
- val hf = ArticlesListFragment.newInstance(feed.id)
+ val hf = ArticlesListFragment.newInstance(supportFragmentManager.fragmentFactory, feed.id)
replace(R.id.middle_pane_layout, hf, FRAGMENT_ARTICLES_LIST)
}
if (twoPane) {
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesListFragment.java Wed Mar 27 17:07:42 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/ArticlesListFragment.java Wed Mar 27 17:21:31 2019 -0700
@@ -27,25 +27,29 @@
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentFactory;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import com.geekorum.geekdroid.dagger.DaggerDelegateFragmentFactory;
+import com.geekorum.geekdroid.dagger.DaggerDelegateViewModelsFactory;
import com.geekorum.geekdroid.views.recyclerview.ItemSwiper;
import com.geekorum.geekdroid.views.recyclerview.ScrollFromBottomAppearanceItemAnimator;
-import com.geekorum.ttrss.BaseFragment;
+import com.geekorum.ttrss.BaseFragment2;
import com.geekorum.ttrss.R;
import com.geekorum.ttrss.data.Article;
import com.geekorum.ttrss.databinding.FragmentArticleListBinding;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.google.android.material.snackbar.Snackbar;
-import dagger.android.support.AndroidSupportInjection;
+
+import javax.inject.Inject;
/**
* Display all the articles in a list.
*/
-public class ArticlesListFragment extends BaseFragment {
+public class ArticlesListFragment extends BaseFragment2 {
private static final String ARG_FEED_ID = "feed_id";
private long feedId;
@@ -57,8 +61,9 @@
private ActivityViewModel activityViewModel;
private Snackbar setUnreadSnackbar = null;
- public ArticlesListFragment() {
- // Required public constructor
+ @Inject
+ public ArticlesListFragment(@NonNull DaggerDelegateViewModelsFactory viewModelsFactory, DaggerDelegateFragmentFactory fragmentFactory) {
+ super(viewModelsFactory, fragmentFactory);
}
/**
@@ -69,8 +74,9 @@
*
* @return A new instance of fragment ArticlesListFragment.
*/
- public static ArticlesListFragment newInstance(long feedId) {
- ArticlesListFragment fragment = new ArticlesListFragment();
+ public static ArticlesListFragment newInstance(FragmentFactory fragmentFactory, long feedId) {
+ ArticlesListFragment fragment = (ArticlesListFragment) fragmentFactory.instantiate(ArticlesListFragment.class.getClassLoader(),
+ ArticlesListFragment.class.getName());
Bundle args = new Bundle();
args.putLong(ARG_FEED_ID, feedId);
fragment.setArguments(args);
@@ -78,12 +84,6 @@
}
@Override
- public void onAttach(Context context) {
- AndroidSupportInjection.inject(this);
- super.onAttach(context);
- }
-
- @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
feedId = getArguments().getLong(ARG_FEED_ID);
--- a/app/src/main/java/com/geekorum/ttrss/articles_list/di.kt Wed Mar 27 17:07:42 2019 -0700
+++ b/app/src/main/java/com/geekorum/ttrss/articles_list/di.kt Wed Mar 27 17:21:31 2019 -0700
@@ -74,8 +74,10 @@
@Module(includes = [ViewModelModule::class])
abstract class FragmentsInjectorModule {
- @ContributesAndroidInjector
- internal abstract fun contributesArticleListFragmentInjector(): ArticlesListFragment
+ @Binds
+ @IntoMap
+ @FragmentKey(ArticlesListFragment::class)
+ abstract fun bindArticlesListFragment(articlesListFragment: ArticlesListFragment): Fragment
@Binds
@IntoMap
@@ -99,7 +101,7 @@
}
@Module
-private abstract class ActivityViewModelModule{
+private abstract class ActivityViewModelModule {
@Binds
@IntoMap
@ViewModelKey(ActivityViewModel::class)