1
0
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:
Mauricio Colli 2020-01-28 02:59:49 -03:00
parent 5ea323ce02
commit 3f32573638
No known key found for this signature in database
GPG Key ID: F200BFD6F29DDD85
9 changed files with 37 additions and 29 deletions

View File

@ -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
} }
} }

View File

@ -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)
} }
} }

View File

@ -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 {

View File

@ -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

View File

@ -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)
} }

View File

@ -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
} }
} }

View File

@ -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

View File

@ -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

View File

@ -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) {