|
|
|
@ -4,14 +4,12 @@ import android.os.Bundle |
|
|
|
|
import android.view.View |
|
|
|
|
import androidx.lifecycle.LiveData |
|
|
|
|
import androidx.lifecycle.Observer |
|
|
|
|
import androidx.recyclerview.widget.GridLayoutManager |
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
|
import androidx.recyclerview.widget.RecyclerView |
|
|
|
|
import io.legado.app.App |
|
|
|
|
import io.legado.app.R |
|
|
|
|
import io.legado.app.base.VMBaseFragment |
|
|
|
|
import io.legado.app.data.entities.RssArticle |
|
|
|
|
import io.legado.app.help.AppConfig |
|
|
|
|
import io.legado.app.lib.theme.ATH |
|
|
|
|
import io.legado.app.ui.rss.read.ReadRssActivity |
|
|
|
|
import io.legado.app.ui.widget.recycler.LoadMoreView |
|
|
|
@ -22,10 +20,9 @@ import io.legado.app.utils.startActivity |
|
|
|
|
import kotlinx.android.synthetic.main.fragment_rss_articles.* |
|
|
|
|
import kotlinx.android.synthetic.main.view_load_more.view.* |
|
|
|
|
import kotlinx.android.synthetic.main.view_refresh_recycler.* |
|
|
|
|
import org.jetbrains.anko.padding |
|
|
|
|
|
|
|
|
|
class RssArticlesFragment : VMBaseFragment<RssArticlesViewModel>(R.layout.fragment_rss_articles), |
|
|
|
|
RssArticlesBaseAdapter.CallBack { |
|
|
|
|
RssArticlesAdapter.CallBack { |
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
|
fun create(sortName: String, sortUrl: String): RssArticlesFragment { |
|
|
|
@ -42,7 +39,7 @@ class RssArticlesFragment : VMBaseFragment<RssArticlesViewModel>(R.layout.fragme |
|
|
|
|
get() = getViewModelOfActivity(RssSortViewModel::class.java) |
|
|
|
|
override val viewModel: RssArticlesViewModel |
|
|
|
|
get() = getViewModel(RssArticlesViewModel::class.java) |
|
|
|
|
lateinit var adapter: RssArticlesBaseAdapter |
|
|
|
|
lateinit var adapter: RssArticlesAdapter |
|
|
|
|
private lateinit var loadMoreView: LoadMoreView |
|
|
|
|
private var rssArticlesData: LiveData<List<RssArticle>>? = null |
|
|
|
|
|
|
|
|
@ -54,36 +51,11 @@ class RssArticlesFragment : VMBaseFragment<RssArticlesViewModel>(R.layout.fragme |
|
|
|
|
initData() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fun switchLayout() { |
|
|
|
|
refresh_recycler_view.startLoading() |
|
|
|
|
initView() |
|
|
|
|
initData() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private fun initView() { |
|
|
|
|
ATH.applyEdgeEffectColor(recycler_view) |
|
|
|
|
|
|
|
|
|
var rssLayoutConfig = activityViewModel.rssSource?.let { AppConfig.getRssLayout(it) } |
|
|
|
|
var layoutId = R.layout.item_rss_article |
|
|
|
|
if (rssLayoutConfig == 1) |
|
|
|
|
layoutId = R.layout.item_rss_article_1 |
|
|
|
|
else if (rssLayoutConfig == 2) |
|
|
|
|
layoutId = R.layout.item_rss_article_2 |
|
|
|
|
|
|
|
|
|
if (rssLayoutConfig == 2) { |
|
|
|
|
recycler_view.setPadding(8, 0, 8, 0) |
|
|
|
|
|
|
|
|
|
recycler_view.layoutManager = GridLayoutManager(requireContext(), 2) |
|
|
|
|
while (recycler_view.itemDecorationCount > 0) |
|
|
|
|
recycler_view.removeItemDecorationAt(0) |
|
|
|
|
adapter = RssArticlesGridAdapter(requireContext(), layoutId, this) |
|
|
|
|
} else { |
|
|
|
|
recycler_view.padding = 0 |
|
|
|
|
recycler_view.layoutManager = LinearLayoutManager(requireContext()) |
|
|
|
|
recycler_view.addItemDecoration(VerticalDivider(requireContext())) |
|
|
|
|
adapter = RssArticlesAdapter(requireContext(), layoutId, this) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
recycler_view.layoutManager = LinearLayoutManager(requireContext()) |
|
|
|
|
recycler_view.addItemDecoration(VerticalDivider(requireContext())) |
|
|
|
|
adapter = RssArticlesAdapter(requireContext(), activityViewModel.layoutId, this) |
|
|
|
|
recycler_view.adapter = adapter |
|
|
|
|
loadMoreView = LoadMoreView(requireContext()) |
|
|
|
|
adapter.addFooterView(loadMoreView) |
|
|
|
|