mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
fix sub import
This commit is contained in:
parent
98126140a2
commit
00c1259c11
@ -19,17 +19,8 @@ class SubscriptionAdapter(
|
|||||||
) : RecyclerView.Adapter<SubscriptionViewHolder>() {
|
) : RecyclerView.Adapter<SubscriptionViewHolder>() {
|
||||||
private val TAG = "SubscriptionAdapter"
|
private val TAG = "SubscriptionAdapter"
|
||||||
|
|
||||||
var i = 0
|
|
||||||
override fun getItemCount(): Int {
|
override fun getItemCount(): Int {
|
||||||
return i
|
return videoFeed.size
|
||||||
}
|
|
||||||
|
|
||||||
fun updateItems() {
|
|
||||||
i += 10
|
|
||||||
if (i > videoFeed.size) {
|
|
||||||
i = videoFeed.size
|
|
||||||
}
|
|
||||||
notifyDataSetChanged()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SubscriptionViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SubscriptionViewHolder {
|
||||||
|
@ -85,20 +85,6 @@ class SubscriptionsFragment : Fragment() {
|
|||||||
binding.subFeed.visibility = View.VISIBLE
|
binding.subFeed.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.scrollviewSub.viewTreeObserver
|
|
||||||
.addOnScrollChangedListener {
|
|
||||||
if (binding.scrollviewSub.getChildAt(0).bottom
|
|
||||||
== (binding.scrollviewSub.height + binding.scrollviewSub.scrollY)
|
|
||||||
) {
|
|
||||||
// scroll view is at bottom
|
|
||||||
if (isLoaded) {
|
|
||||||
binding.subRefresh.isRefreshing = true
|
|
||||||
subscriptionAdapter?.updateItems()
|
|
||||||
binding.subRefresh.isRefreshing = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
binding.subRefresh.isEnabled = false
|
binding.subRefresh.isEnabled = false
|
||||||
}
|
}
|
||||||
@ -122,7 +108,6 @@ class SubscriptionsFragment : Fragment() {
|
|||||||
if (response.isNotEmpty()) {
|
if (response.isNotEmpty()) {
|
||||||
subscriptionAdapter = SubscriptionAdapter(response, childFragmentManager)
|
subscriptionAdapter = SubscriptionAdapter(response, childFragmentManager)
|
||||||
feedRecView.adapter = subscriptionAdapter
|
feedRecView.adapter = subscriptionAdapter
|
||||||
subscriptionAdapter?.updateItems()
|
|
||||||
} else {
|
} else {
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
with(binding.boogh) {
|
with(binding.boogh) {
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
package com.github.libretube.preferences
|
package com.github.libretube.preferences
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import android.content.ContentResolver
|
import android.content.ContentResolver
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.core.app.ActivityCompat
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.preference.ListPreference
|
import androidx.preference.ListPreference
|
||||||
@ -22,7 +26,6 @@ import com.github.libretube.dialogs.DeleteAccountDialog
|
|||||||
import com.github.libretube.dialogs.LoginDialog
|
import com.github.libretube.dialogs.LoginDialog
|
||||||
import com.github.libretube.dialogs.LogoutDialog
|
import com.github.libretube.dialogs.LogoutDialog
|
||||||
import com.github.libretube.dialogs.RequireRestartDialog
|
import com.github.libretube.dialogs.RequireRestartDialog
|
||||||
import com.github.libretube.util.PermissionHelper
|
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import org.json.JSONTokener
|
import org.json.JSONTokener
|
||||||
@ -286,7 +289,51 @@ class InstanceSettings : PreferenceFragmentCompat() {
|
|||||||
private fun importSubscriptions() {
|
private fun importSubscriptions() {
|
||||||
val token = PreferenceHelper.getToken()
|
val token = PreferenceHelper.getToken()
|
||||||
// check StorageAccess
|
// check StorageAccess
|
||||||
PermissionHelper.requestReadWrite(activity as AppCompatActivity)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||||
|
Log.d("myz", "" + Build.VERSION.SDK_INT)
|
||||||
|
if (ContextCompat.checkSelfPermission(
|
||||||
|
this.requireContext(),
|
||||||
|
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
|
)
|
||||||
|
!= PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
ActivityCompat.requestPermissions(
|
||||||
|
this.requireActivity(),
|
||||||
|
arrayOf(
|
||||||
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
|
Manifest.permission.MANAGE_EXTERNAL_STORAGE
|
||||||
|
),
|
||||||
|
1
|
||||||
|
) // permission request code is just an int
|
||||||
|
} else if (token != "") {
|
||||||
|
MainSettings.getContent.launch("*/*")
|
||||||
|
} else {
|
||||||
|
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ActivityCompat.checkSelfPermission(
|
||||||
|
requireContext(),
|
||||||
|
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
|
) != PackageManager.PERMISSION_GRANTED ||
|
||||||
|
ActivityCompat.checkSelfPermission(
|
||||||
|
requireContext(),
|
||||||
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
|
) != PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
ActivityCompat.requestPermissions(
|
||||||
|
this.requireActivity(),
|
||||||
|
arrayOf(
|
||||||
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
|
),
|
||||||
|
1
|
||||||
|
)
|
||||||
|
} else if (token != "") {
|
||||||
|
MainSettings.getContent.launch("*/*")
|
||||||
|
} else {
|
||||||
|
Toast.makeText(context, R.string.login_first, Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun subscribe(channels: List<String>) {
|
private fun subscribe(channels: List<String>) {
|
||||||
|
@ -20,6 +20,7 @@ import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector
|
|||||||
import com.google.android.exoplayer2.ui.PlayerNotificationManager
|
import com.google.android.exoplayer2.ui.PlayerNotificationManager
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import java.lang.Exception
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads the selected videos audio in background mode with a notification area.
|
* Loads the selected videos audio in background mode with a notification area.
|
||||||
@ -60,9 +61,13 @@ class BackgroundMode : Service() {
|
|||||||
* Initializes the [player] with the [MediaItem].
|
* Initializes the [player] with the [MediaItem].
|
||||||
*/
|
*/
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
|
try {
|
||||||
val videoId = intent?.getStringExtra("videoId")!!
|
val videoId = intent?.getStringExtra("videoId")!!
|
||||||
val seekToPosition = intent.getLongExtra("seekToPosition", 0L)
|
val seekToPosition = intent.getLongExtra("seekToPosition", 0L)
|
||||||
playOnBackgroundMode(this, videoId, seekToPosition)
|
playOnBackgroundMode(this, videoId, seekToPosition)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
stopService(intent)
|
||||||
|
}
|
||||||
return super.onStartCommand(intent, flags, startId)
|
return super.onStartCommand(intent, flags, startId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user