diff --git a/app/build.gradle b/app/build.gradle index 0e063ce46..24a9bac54 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -41,6 +41,7 @@ dependencies { implementation 'androidx.navigation:navigation-fragment-ktx:2.4.0' implementation 'androidx.navigation:navigation-ui-ktx:2.4.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0' + implementation("androidx.preference:preference-ktx:1.2.0") androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' diff --git a/app/src/main/java/com/github/libretube/ChannelFragment.kt b/app/src/main/java/com/github/libretube/ChannelFragment.kt index 7a91275a9..2f3cfbbe9 100644 --- a/app/src/main/java/com/github/libretube/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/ChannelFragment.kt @@ -53,6 +53,19 @@ class ChannelFragment : Fragment() { recyclerView.layoutManager = LinearLayoutManager(context) fetchChannel(view) + val scrollView = view.findViewById(R.id.channel_scrollView) + scrollView.viewTreeObserver + .addOnScrollChangedListener { + if (scrollView.getChildAt(0).bottom + == (scrollView.height + scrollView.scrollY)) { + //scroll view is at bottom + if(nextPage!=null && !isLoading){ + isLoading=true + fetchNextPage() + } + + } + } } @@ -81,21 +94,7 @@ class ChannelFragment : Fragment() { Picasso.get().load(response.avatarUrl).into(channelImage) channelAdapter = ChannelAdapter(response.relatedStreams!!.toMutableList()) view.findViewById(R.id.channel_recView).adapter = channelAdapter - val scrollView = view.findViewById(R.id.channel_scrollView) - scrollView.viewTreeObserver - .addOnScrollChangedListener { - if (scrollView.getChildAt(0).bottom - == (scrollView.height + scrollView.scrollY)) { - //scroll view is at bottom - if(nextPage!=null && !isLoading){ - isLoading=true - fetchNextPage() - } - } else { - //scroll view is not at bottom - } - } } } } diff --git a/app/src/main/java/com/github/libretube/Home.kt b/app/src/main/java/com/github/libretube/Home.kt index c45442550..28bd5ce16 100644 --- a/app/src/main/java/com/github/libretube/Home.kt +++ b/app/src/main/java/com/github/libretube/Home.kt @@ -8,6 +8,7 @@ import android.view.View import android.view.ViewGroup import android.widget.ProgressBar import androidx.lifecycle.lifecycleScope +import androidx.preference.PreferenceManager import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -51,7 +52,8 @@ class Home : Fragment() { fun run() { lifecycleScope.launchWhenCreated { val response = try { - RetrofitInstance.api.getTrending("US") + val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) + RetrofitInstance.api.getTrending(sharedPreferences.getString("region", "US")!!) }catch(e: IOException) { println(e) Log.e(TAG, "IOException, you might not have internet connection") diff --git a/app/src/main/java/com/github/libretube/LoginDialog.kt b/app/src/main/java/com/github/libretube/LoginDialog.kt index 7e91142dc..de47771fc 100644 --- a/app/src/main/java/com/github/libretube/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/LoginDialog.kt @@ -1,6 +1,7 @@ package com.github.libretube import android.app.Dialog +import android.content.Context import android.content.DialogInterface import android.os.Bundle import android.util.Log @@ -11,6 +12,7 @@ import android.widget.Toast import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope +import androidx.preference.PreferenceManager import com.github.libretube.adapters.TrendingAdapter import com.github.libretube.obj.Login import retrofit2.HttpException @@ -27,22 +29,35 @@ class LoginDialog : DialogFragment() { val builder = AlertDialog.Builder(it) // Get the layout inflater val inflater = requireActivity().layoutInflater; - - // Inflate and set the layout for the dialog - // Pass null as the parent view because its going in the dialog layout - val view = inflater.inflate(R.layout.dialog_login, null) - username=view.findViewById(R.id.username) - password=view.findViewById(R.id.password) - view.findViewById