mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2025-01-11 18:00:32 +00:00
Replace hardcoded value that represents the group "All" with a constant
This commit is contained in:
parent
5ea323ce02
commit
3f32573638
@ -24,5 +24,7 @@ data class FeedGroupEntity(
|
|||||||
const val ID = "uid"
|
const val ID = "uid"
|
||||||
const val NAME = "name"
|
const val NAME = "name"
|
||||||
const val ICON = "icon_id"
|
const val ICON = "icon_id"
|
||||||
|
|
||||||
|
const val GROUP_ALL_ID = -1L
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -42,10 +42,11 @@ class FeedDatabaseManager(context: Context) {
|
|||||||
|
|
||||||
fun database() = database
|
fun database() = database
|
||||||
|
|
||||||
fun asStreamItems(groupId: Long = -1): Flowable<List<StreamInfoItem>> {
|
fun asStreamItems(groupId: Long = FeedGroupEntity.GROUP_ALL_ID): Flowable<List<StreamInfoItem>> {
|
||||||
val streams =
|
val streams = when (groupId) {
|
||||||
if (groupId >= 0) feedTable.getAllStreamsFromGroup(groupId)
|
FeedGroupEntity.GROUP_ALL_ID -> feedTable.getAllStreams()
|
||||||
else feedTable.getAllStreams()
|
else -> feedTable.getAllStreamsFromGroup(groupId)
|
||||||
|
}
|
||||||
|
|
||||||
return streams.map<List<StreamInfoItem>> {
|
return streams.map<List<StreamInfoItem>> {
|
||||||
val items = ArrayList<StreamInfoItem>(it.size)
|
val items = ArrayList<StreamInfoItem>(it.size)
|
||||||
@ -56,15 +57,14 @@ class FeedDatabaseManager(context: Context) {
|
|||||||
|
|
||||||
fun outdatedSubscriptions(outdatedThreshold: Date) = feedTable.getAllOutdated(outdatedThreshold)
|
fun outdatedSubscriptions(outdatedThreshold: Date) = feedTable.getAllOutdated(outdatedThreshold)
|
||||||
|
|
||||||
fun notLoadedCount(groupId: Long = -1): Flowable<Long> {
|
fun notLoadedCount(groupId: Long = FeedGroupEntity.GROUP_ALL_ID): Flowable<Long> {
|
||||||
return if (groupId != -1L) {
|
return when (groupId) {
|
||||||
feedTable.notLoadedCountForGroup(groupId)
|
FeedGroupEntity.GROUP_ALL_ID -> feedTable.notLoadedCount()
|
||||||
} else {
|
else -> feedTable.notLoadedCountForGroup(groupId)
|
||||||
feedTable.notLoadedCount()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun outdatedSubscriptionsForGroup(groupId: Long = -1, outdatedThreshold: Date) =
|
fun outdatedSubscriptionsForGroup(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, outdatedThreshold: Date) =
|
||||||
feedTable.getAllOutdatedForGroup(groupId, outdatedThreshold)
|
feedTable.getAllOutdatedForGroup(groupId, outdatedThreshold)
|
||||||
|
|
||||||
fun markAsOutdated(subscriptionId: Long) = feedTable
|
fun markAsOutdated(subscriptionId: Long) = feedTable
|
||||||
@ -148,10 +148,9 @@ class FeedDatabaseManager(context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun oldestSubscriptionUpdate(groupId: Long): Flowable<List<Date>> {
|
fun oldestSubscriptionUpdate(groupId: Long): Flowable<List<Date>> {
|
||||||
return if (groupId == -1L) {
|
return when (groupId) {
|
||||||
feedTable.oldestSubscriptionUpdateFromAll()
|
FeedGroupEntity.GROUP_ALL_ID -> feedTable.oldestSubscriptionUpdateFromAll()
|
||||||
} else {
|
else -> feedTable.oldestSubscriptionUpdate(groupId)
|
||||||
feedTable.oldestSubscriptionUpdate(groupId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
package org.schabi.newpipe.local.feed
|
package org.schabi.newpipe.local.feed
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.view.*
|
import android.view.*
|
||||||
@ -30,6 +29,7 @@ import icepick.State
|
|||||||
import kotlinx.android.synthetic.main.error_retry.*
|
import kotlinx.android.synthetic.main.error_retry.*
|
||||||
import kotlinx.android.synthetic.main.fragment_feed.*
|
import kotlinx.android.synthetic.main.fragment_feed.*
|
||||||
import org.schabi.newpipe.R
|
import org.schabi.newpipe.R
|
||||||
|
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
|
||||||
import org.schabi.newpipe.fragments.list.BaseListFragment
|
import org.schabi.newpipe.fragments.list.BaseListFragment
|
||||||
import org.schabi.newpipe.local.feed.service.FeedLoadService
|
import org.schabi.newpipe.local.feed.service.FeedLoadService
|
||||||
import org.schabi.newpipe.report.UserAction
|
import org.schabi.newpipe.report.UserAction
|
||||||
@ -41,7 +41,7 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
|
|||||||
private lateinit var viewModel: FeedViewModel
|
private lateinit var viewModel: FeedViewModel
|
||||||
@State @JvmField var listState: Parcelable? = null
|
@State @JvmField var listState: Parcelable? = null
|
||||||
|
|
||||||
private var groupId = -1L
|
private var groupId = FeedGroupEntity.GROUP_ALL_ID
|
||||||
private var groupName = ""
|
private var groupName = ""
|
||||||
private var oldestSubscriptionUpdate: Calendar? = null
|
private var oldestSubscriptionUpdate: Calendar? = null
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
groupId = arguments?.getLong(KEY_GROUP_ID, -1) ?: -1
|
groupId = arguments?.getLong(KEY_GROUP_ID, FeedGroupEntity.GROUP_ALL_ID) ?: FeedGroupEntity.GROUP_ALL_ID
|
||||||
groupName = arguments?.getString(KEY_GROUP_NAME) ?: ""
|
groupName = arguments?.getString(KEY_GROUP_NAME) ?: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +279,7 @@ class FeedFragment : BaseListFragment<FeedState, Unit>() {
|
|||||||
const val KEY_GROUP_NAME = "ARG_GROUP_NAME"
|
const val KEY_GROUP_NAME = "ARG_GROUP_NAME"
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun newInstance(groupId: Long = -1, groupName: String? = null): FeedFragment {
|
fun newInstance(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, groupName: String? = null): FeedFragment {
|
||||||
val feedFragment = FeedFragment()
|
val feedFragment = FeedFragment()
|
||||||
|
|
||||||
feedFragment.arguments = Bundle().apply {
|
feedFragment.arguments = Bundle().apply {
|
||||||
|
@ -8,6 +8,7 @@ import io.reactivex.Flowable
|
|||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
import io.reactivex.functions.Function4
|
import io.reactivex.functions.Function4
|
||||||
import io.reactivex.schedulers.Schedulers
|
import io.reactivex.schedulers.Schedulers
|
||||||
|
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
||||||
import org.schabi.newpipe.local.feed.service.FeedEventManager
|
import org.schabi.newpipe.local.feed.service.FeedEventManager
|
||||||
import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.*
|
import org.schabi.newpipe.local.feed.service.FeedEventManager.Event.*
|
||||||
@ -15,8 +16,8 @@ import org.schabi.newpipe.util.DEFAULT_THROTTLE_TIMEOUT
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class FeedViewModel(applicationContext: Context, val groupId: Long = -1) : ViewModel() {
|
class FeedViewModel(applicationContext: Context, val groupId: Long = FeedGroupEntity.GROUP_ALL_ID) : ViewModel() {
|
||||||
class Factory(val context: Context, val groupId: Long = -1) : ViewModelProvider.Factory {
|
class Factory(val context: Context, val groupId: Long = FeedGroupEntity.GROUP_ALL_ID) : ViewModelProvider.Factory {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
|
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
|
||||||
return FeedViewModel(context.applicationContext, groupId) as T
|
return FeedViewModel(context.applicationContext, groupId) as T
|
||||||
|
@ -40,6 +40,7 @@ import org.reactivestreams.Subscriber
|
|||||||
import org.reactivestreams.Subscription
|
import org.reactivestreams.Subscription
|
||||||
import org.schabi.newpipe.MainActivity.DEBUG
|
import org.schabi.newpipe.MainActivity.DEBUG
|
||||||
import org.schabi.newpipe.R
|
import org.schabi.newpipe.R
|
||||||
|
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
|
||||||
import org.schabi.newpipe.extractor.ListInfo
|
import org.schabi.newpipe.extractor.ListInfo
|
||||||
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException
|
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
||||||
@ -109,7 +110,7 @@ class FeedLoadService : Service() {
|
|||||||
setupNotification()
|
setupNotification()
|
||||||
val defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
|
val defaultSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
val groupId = intent.getLongExtra(EXTRA_GROUP_ID, -1)
|
val groupId = intent.getLongExtra(EXTRA_GROUP_ID, FeedGroupEntity.GROUP_ALL_ID)
|
||||||
val useFeedExtractor = defaultSharedPreferences
|
val useFeedExtractor = defaultSharedPreferences
|
||||||
.getBoolean(getString(R.string.feed_use_dedicated_fetch_method_key), false)
|
.getBoolean(getString(R.string.feed_use_dedicated_fetch_method_key), false)
|
||||||
|
|
||||||
@ -156,7 +157,7 @@ class FeedLoadService : Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun startLoading(groupId: Long = -1, useFeedExtractor: Boolean, thresholdOutdatedMinutes: Int) {
|
private fun startLoading(groupId: Long = FeedGroupEntity.GROUP_ALL_ID, useFeedExtractor: Boolean, thresholdOutdatedMinutes: Int) {
|
||||||
feedResultsHolder = ResultsHolder()
|
feedResultsHolder = ResultsHolder()
|
||||||
|
|
||||||
val outdatedThreshold = Calendar.getInstance().apply {
|
val outdatedThreshold = Calendar.getInstance().apply {
|
||||||
@ -164,7 +165,7 @@ class FeedLoadService : Service() {
|
|||||||
}.time
|
}.time
|
||||||
|
|
||||||
val subscriptions = when (groupId) {
|
val subscriptions = when (groupId) {
|
||||||
-1L -> feedDatabaseManager.outdatedSubscriptions(outdatedThreshold)
|
FeedGroupEntity.GROUP_ALL_ID -> feedDatabaseManager.outdatedSubscriptions(outdatedThreshold)
|
||||||
else -> feedDatabaseManager.outdatedSubscriptionsForGroup(groupId, outdatedThreshold)
|
else -> feedDatabaseManager.outdatedSubscriptionsForGroup(groupId, outdatedThreshold)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ import io.reactivex.disposables.CompositeDisposable
|
|||||||
import kotlinx.android.synthetic.main.dialog_title.view.*
|
import kotlinx.android.synthetic.main.dialog_title.view.*
|
||||||
import kotlinx.android.synthetic.main.fragment_subscription.*
|
import kotlinx.android.synthetic.main.fragment_subscription.*
|
||||||
import org.schabi.newpipe.R
|
import org.schabi.newpipe.R
|
||||||
|
import org.schabi.newpipe.database.feed.model.FeedGroupEntity
|
||||||
import org.schabi.newpipe.extractor.channel.ChannelInfoItem
|
import org.schabi.newpipe.extractor.channel.ChannelInfoItem
|
||||||
import org.schabi.newpipe.fragments.BaseStateFragment
|
import org.schabi.newpipe.fragments.BaseStateFragment
|
||||||
import org.schabi.newpipe.local.subscription.SubscriptionViewModel.*
|
import org.schabi.newpipe.local.subscription.SubscriptionViewModel.*
|
||||||
@ -200,7 +201,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
|
|||||||
}
|
}
|
||||||
carouselAdapter.setOnItemLongClickListener { item, _ ->
|
carouselAdapter.setOnItemLongClickListener { item, _ ->
|
||||||
if (item is FeedGroupCardItem) {
|
if (item is FeedGroupCardItem) {
|
||||||
if (item.groupId == -1L) {
|
if (item.groupId == FeedGroupEntity.GROUP_ALL_ID) {
|
||||||
return@setOnItemLongClickListener false
|
return@setOnItemLongClickListener false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,8 +16,8 @@ import org.schabi.newpipe.local.subscription.FeedGroupIcon
|
|||||||
import org.schabi.newpipe.local.subscription.SubscriptionManager
|
import org.schabi.newpipe.local.subscription.SubscriptionManager
|
||||||
|
|
||||||
|
|
||||||
class FeedGroupDialogViewModel(applicationContext: Context, val groupId: Long = -1) : ViewModel() {
|
class FeedGroupDialogViewModel(applicationContext: Context, val groupId: Long = FeedGroupEntity.GROUP_ALL_ID) : ViewModel() {
|
||||||
class Factory(val context: Context, val groupId: Long = -1) : ViewModelProvider.Factory {
|
class Factory(val context: Context, val groupId: Long = FeedGroupEntity.GROUP_ALL_ID) : ViewModelProvider.Factory {
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
|
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
|
||||||
return FeedGroupDialogViewModel(context.applicationContext, groupId) as T
|
return FeedGroupDialogViewModel(context.applicationContext, groupId) as T
|
||||||
|
@ -8,14 +8,17 @@ import org.schabi.newpipe.database.feed.model.FeedGroupEntity
|
|||||||
import org.schabi.newpipe.local.subscription.FeedGroupIcon
|
import org.schabi.newpipe.local.subscription.FeedGroupIcon
|
||||||
|
|
||||||
data class FeedGroupCardItem(
|
data class FeedGroupCardItem(
|
||||||
val groupId: Long = -1,
|
val groupId: Long = FeedGroupEntity.GROUP_ALL_ID,
|
||||||
val name: String,
|
val name: String,
|
||||||
val icon: FeedGroupIcon
|
val icon: FeedGroupIcon
|
||||||
) : Item() {
|
) : Item() {
|
||||||
constructor (feedGroupEntity: FeedGroupEntity) : this(feedGroupEntity.uid, feedGroupEntity.name, feedGroupEntity.icon)
|
constructor (feedGroupEntity: FeedGroupEntity) : this(feedGroupEntity.uid, feedGroupEntity.name, feedGroupEntity.icon)
|
||||||
|
|
||||||
override fun getId(): Long {
|
override fun getId(): Long {
|
||||||
return if (groupId == -1L) super.getId() else groupId
|
return when (groupId) {
|
||||||
|
FeedGroupEntity.GROUP_ALL_ID -> super.getId()
|
||||||
|
else -> groupId
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getLayout(): Int = R.layout.feed_group_card_item
|
override fun getLayout(): Int = R.layout.feed_group_card_item
|
||||||
|
@ -23,6 +23,7 @@ import org.schabi.newpipe.MainActivity;
|
|||||||
import org.schabi.newpipe.R;
|
import org.schabi.newpipe.R;
|
||||||
import org.schabi.newpipe.RouterActivity;
|
import org.schabi.newpipe.RouterActivity;
|
||||||
import org.schabi.newpipe.about.AboutActivity;
|
import org.schabi.newpipe.about.AboutActivity;
|
||||||
|
import org.schabi.newpipe.database.feed.model.FeedGroupEntity;
|
||||||
import org.schabi.newpipe.download.DownloadActivity;
|
import org.schabi.newpipe.download.DownloadActivity;
|
||||||
import org.schabi.newpipe.extractor.NewPipe;
|
import org.schabi.newpipe.extractor.NewPipe;
|
||||||
import org.schabi.newpipe.extractor.StreamingService;
|
import org.schabi.newpipe.extractor.StreamingService;
|
||||||
@ -344,7 +345,7 @@ public class NavigationHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void openFeedFragment(FragmentManager fragmentManager) {
|
public static void openFeedFragment(FragmentManager fragmentManager) {
|
||||||
openFeedFragment(fragmentManager, -1, null);
|
openFeedFragment(fragmentManager, FeedGroupEntity.GROUP_ALL_ID, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openFeedFragment(FragmentManager fragmentManager, long groupId, @Nullable String groupName) {
|
public static void openFeedFragment(FragmentManager fragmentManager, long groupId, @Nullable String groupName) {
|
||||||
|
Loading…
Reference in New Issue
Block a user