mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2024-12-23 08:30:44 +00:00
Small code improvements
Removed some non-translatable strings and just hardcoded them in the code, like it's being done for other string separators. This also deduplicates some code by using Localization. Used some Kotlin feature to reduce code.
This commit is contained in:
parent
a0dc66abe7
commit
5fea12d8eb
@ -14,6 +14,7 @@ import androidx.preference.PreferenceManager
|
|||||||
import org.schabi.newpipe.R
|
import org.schabi.newpipe.R
|
||||||
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
import org.schabi.newpipe.extractor.stream.StreamInfoItem
|
||||||
import org.schabi.newpipe.local.feed.service.FeedUpdateInfo
|
import org.schabi.newpipe.local.feed.service.FeedUpdateInfo
|
||||||
|
import org.schabi.newpipe.util.Localization
|
||||||
import org.schabi.newpipe.util.NavigationHelper
|
import org.schabi.newpipe.util.NavigationHelper
|
||||||
import org.schabi.newpipe.util.PicassoHelper
|
import org.schabi.newpipe.util.PicassoHelper
|
||||||
|
|
||||||
@ -39,13 +40,7 @@ class NotificationHelper(val context: Context) {
|
|||||||
context,
|
context,
|
||||||
context.getString(R.string.streams_notification_channel_id)
|
context.getString(R.string.streams_notification_channel_id)
|
||||||
)
|
)
|
||||||
.setContentTitle(
|
.setContentTitle(Localization.concatenateStrings(data.name, summary))
|
||||||
context.getString(
|
|
||||||
R.string.notification_title_pattern,
|
|
||||||
data.name,
|
|
||||||
summary
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.setContentText(
|
.setContentText(
|
||||||
data.listInfo.relatedItems.joinToString(
|
data.listInfo.relatedItems.joinToString(
|
||||||
context.getString(R.string.enumeration_comma)
|
context.getString(R.string.enumeration_comma)
|
||||||
@ -62,9 +57,7 @@ class NotificationHelper(val context: Context) {
|
|||||||
|
|
||||||
// Build style
|
// Build style
|
||||||
val style = NotificationCompat.InboxStyle()
|
val style = NotificationCompat.InboxStyle()
|
||||||
for (stream in newStreams) {
|
newStreams.forEach { style.addLine(it.name) }
|
||||||
style.addLine(stream.name)
|
|
||||||
}
|
|
||||||
style.setSummaryText(summary)
|
style.setSummaryText(summary)
|
||||||
style.setBigContentTitle(data.name)
|
style.setBigContentTitle(data.name)
|
||||||
builder.setStyle(style)
|
builder.setStyle(style)
|
||||||
|
@ -40,14 +40,14 @@ class FeedLoadManager(private val context: Context) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Start checking for new streams of a subscription group.
|
* Start checking for new streams of a subscription group.
|
||||||
* @param groupId The ID of the subscription group to load.
|
* @param groupId The ID of the subscription group to load. When using
|
||||||
* When using [FeedGroupEntity.GROUP_ALL_ID], all subscriptions are loaded.
|
* [FeedGroupEntity.GROUP_ALL_ID], all subscriptions are loaded. When using
|
||||||
* When using [GROUP_NOTIFICATION_ENABLED], only subscriptions with enabled notifications
|
* [GROUP_NOTIFICATION_ENABLED], only subscriptions with enabled notifications for new streams
|
||||||
* for new streams are loaded.
|
* are loaded. Using an id of a group created by the user results in that specific group to be
|
||||||
|
* loaded.
|
||||||
* @param ignoreOutdatedThreshold When `false`, only subscriptions which have not been updated
|
* @param ignoreOutdatedThreshold When `false`, only subscriptions which have not been updated
|
||||||
* within the `feed_update_threshold` are checked for updates.
|
* within the `feed_update_threshold` are checked for updates. This threshold can be set by
|
||||||
* This threshold can be set by the user in the app settings.
|
* the user in the app settings. When `true`, all subscriptions are checked for new streams.
|
||||||
* When `true`, all subscriptions are checked for new streams.
|
|
||||||
*/
|
*/
|
||||||
fun startLoading(
|
fun startLoading(
|
||||||
groupId: Long = FeedGroupEntity.GROUP_ALL_ID,
|
groupId: Long = FeedGroupEntity.GROUP_ALL_ID,
|
||||||
|
@ -90,7 +90,12 @@ class SubscriptionManager(context: Context) {
|
|||||||
if (info is FeedInfo) {
|
if (info is FeedInfo) {
|
||||||
subscriptionEntity.name = info.name
|
subscriptionEntity.name = info.name
|
||||||
} else if (info is ChannelInfo) {
|
} else if (info is ChannelInfo) {
|
||||||
subscriptionEntity.setData(info.name, info.avatarUrl, info.description, info.subscriberCount)
|
subscriptionEntity.setData(
|
||||||
|
info.name,
|
||||||
|
info.avatarUrl,
|
||||||
|
info.description,
|
||||||
|
info.subscriberCount
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
subscriptionTable.update(subscriptionEntity)
|
subscriptionTable.update(subscriptionEntity)
|
||||||
@ -115,7 +120,7 @@ class SubscriptionManager(context: Context) {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the list of videos for the provided channel and saves them in the database, so that
|
* Fetches the list of videos for the provided channel and saves them in the database, so that
|
||||||
* they will be considered as "old"/"already seen" streams and the user will never notified
|
* they will be considered as "old"/"already seen" streams and the user will never be notified
|
||||||
* about any one of them.
|
* about any one of them.
|
||||||
*/
|
*/
|
||||||
private fun rememberAllStreams(subscription: SubscriptionEntity): Completable {
|
private fun rememberAllStreams(subscription: SubscriptionEntity): Completable {
|
||||||
|
@ -108,13 +108,7 @@ class NotificationsSettingsFragment : BasePreferenceFragment(), OnSharedPreferen
|
|||||||
private fun updateSubscriptions(subscriptions: List<SubscriptionEntity>) {
|
private fun updateSubscriptions(subscriptions: List<SubscriptionEntity>) {
|
||||||
val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED }
|
val notified = subscriptions.count { it.notificationMode != NotificationMode.DISABLED }
|
||||||
val preference = findPreference<Preference>(getString(R.string.streams_notifications_channels_key))
|
val preference = findPreference<Preference>(getString(R.string.streams_notifications_channels_key))
|
||||||
if (preference != null) {
|
preference?.apply { summary = "$notified/${subscriptions.size}" }
|
||||||
preference.summary = preference.context.getString(
|
|
||||||
R.string.streams_notifications_channels_summary,
|
|
||||||
notified,
|
|
||||||
subscriptions.size
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onError(e: Throwable) {
|
private fun onError(e: Throwable) {
|
||||||
|
@ -81,10 +81,6 @@ public final class PicassoHelper {
|
|||||||
picassoInstance.cancelTag(tag);
|
picassoInstance.cancelTag(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void cancelRequest(final Target target) {
|
|
||||||
picassoInstance.cancelRequest(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void setIndicatorsEnabled(final boolean enabled) {
|
public static void setIndicatorsEnabled(final boolean enabled) {
|
||||||
picassoInstance.setIndicatorsEnabled(enabled); // useful for debugging
|
picassoInstance.setIndicatorsEnabled(enabled); // useful for debugging
|
||||||
}
|
}
|
||||||
|
@ -721,7 +721,5 @@
|
|||||||
<string name="get_notified">Get notified</string>
|
<string name="get_notified">Get notified</string>
|
||||||
<string name="you_successfully_subscribed">You now subscribed to this channel</string>
|
<string name="you_successfully_subscribed">You now subscribed to this channel</string>
|
||||||
<string name="enumeration_comma">,</string>
|
<string name="enumeration_comma">,</string>
|
||||||
<string name="notification_title_pattern" translatable="false">%s • %s</string>
|
|
||||||
<string name="streams_notifications_channels_summary" translatable="false">%d/%d</string>
|
|
||||||
<string name="toggle_all">Toggle all</string>
|
<string name="toggle_all">Toggle all</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user