mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-16 07:10:29 +05:30
72 lines
2.3 KiB
Kotlin
72 lines
2.3 KiB
Kotlin
|
package com.github.libretube.util
|
||
|
|
||
|
import android.util.Log
|
||
|
import com.github.libretube.obj.Subscribe
|
||
|
import com.github.libretube.preferences.PreferenceHelper
|
||
|
import kotlinx.coroutines.CoroutineScope
|
||
|
import kotlinx.coroutines.Dispatchers
|
||
|
import kotlinx.coroutines.launch
|
||
|
|
||
|
object SubscriptionHelper {
|
||
|
val TAG = "SubscriptionHelper"
|
||
|
|
||
|
fun subscribe(channelId: String) {
|
||
|
if (PreferenceHelper.getToken() != "") {
|
||
|
CoroutineScope(Dispatchers.IO).launch {
|
||
|
try {
|
||
|
RetrofitInstance.authApi.subscribe(
|
||
|
PreferenceHelper.getToken(),
|
||
|
Subscribe(channelId)
|
||
|
)
|
||
|
} catch (e: Exception) {
|
||
|
Log.e(TAG, e.toString())
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
val channels = PreferenceHelper.getLocalSubscriptions().toMutableList()
|
||
|
channels.add(channelId)
|
||
|
PreferenceHelper.setLocalSubscriptions(channels)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fun unsubscribe(channelId: String) {
|
||
|
if (PreferenceHelper.getToken() != "") {
|
||
|
CoroutineScope(Dispatchers.IO).launch {
|
||
|
try {
|
||
|
RetrofitInstance.authApi.unsubscribe(
|
||
|
PreferenceHelper.getToken(),
|
||
|
Subscribe(channelId)
|
||
|
)
|
||
|
} catch (e: Exception) {
|
||
|
Log.e(TAG, e.toString())
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
val channels = PreferenceHelper.getLocalSubscriptions().toMutableList()
|
||
|
channels.remove(channelId)
|
||
|
PreferenceHelper.setLocalSubscriptions(channels)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
suspend fun isSubscribed(channelId: String): Boolean? {
|
||
|
if (PreferenceHelper.getToken() != "") {
|
||
|
val isSubscribed = try {
|
||
|
RetrofitInstance.authApi.isSubscribed(
|
||
|
channelId,
|
||
|
PreferenceHelper.getToken()
|
||
|
)
|
||
|
} catch (e: Exception) {
|
||
|
Log.e(TAG, e.toString())
|
||
|
return null
|
||
|
}
|
||
|
return isSubscribed.subscribed
|
||
|
} else {
|
||
|
return PreferenceHelper.getLocalSubscriptions().contains(channelId)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fun getFormattedLocalSubscriptions(): String {
|
||
|
return PreferenceHelper.getLocalSubscriptions().joinToString(",")
|
||
|
}
|
||
|
}
|