From 9ba4b17c0d0732f01db82099264ba478a3e7bab4 Mon Sep 17 00:00:00 2001 From: rimthekid Date: Tue, 8 Feb 2022 13:28:50 +0400 Subject: [PATCH 1/3] settings fragment --- app/build.gradle | 1 + .../com/github/libretube/ChannelFragment.kt | 29 ++++++++++--------- .../java/com/github/libretube/LoginDialog.kt | 4 +-- .../java/com/github/libretube/MainActivity.kt | 3 +- .../java/com/github/libretube/Settings.kt | 10 +++++++ app/src/main/res/navigation/nav.xml | 4 +++ app/src/main/res/xml/settings.xml | 14 +++++++++ 7 files changed, 47 insertions(+), 18 deletions(-) create mode 100644 app/src/main/java/com/github/libretube/Settings.kt create mode 100644 app/src/main/res/xml/settings.xml 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..439500a5d 100644 --- a/app/src/main/java/com/github/libretube/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/ChannelFragment.kt @@ -53,6 +53,21 @@ 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() + } + + } else { + //scroll view is not at bottom + } + } } @@ -81,21 +96,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/LoginDialog.kt b/app/src/main/java/com/github/libretube/LoginDialog.kt index 7e91142dc..d18d86ff7 100644 --- a/app/src/main/java/com/github/libretube/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/LoginDialog.kt @@ -64,7 +64,7 @@ class LoginDialog : DialogFragment() { } if (response.error!= null){ Toast.makeText(context, response.error, Toast.LENGTH_SHORT).show() - }else{ + }else if(response.token!=null){ Toast.makeText(context,R.string.loggedIn, Toast.LENGTH_SHORT).show() dialog?.dismiss() } @@ -91,7 +91,7 @@ class LoginDialog : DialogFragment() { } if (response.error!= null){ Toast.makeText(context, response.error, Toast.LENGTH_SHORT).show() - }else{ + }else if(response.token!=null){ Toast.makeText(context,R.string.registered, Toast.LENGTH_SHORT).show() dialog?.dismiss() } diff --git a/app/src/main/java/com/github/libretube/MainActivity.kt b/app/src/main/java/com/github/libretube/MainActivity.kt index a0dc61bd3..e2b55b576 100644 --- a/app/src/main/java/com/github/libretube/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/MainActivity.kt @@ -28,8 +28,6 @@ class MainActivity : AppCompatActivity() { lateinit var bottomNavigationView: BottomNavigationView lateinit var toolbar: Toolbar lateinit var navController : NavController - - var f = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -57,6 +55,7 @@ class MainActivity : AppCompatActivity() { toolbar.setNavigationOnClickListener{ //settings fragment stuff + navController.navigate(R.id.settings) true } diff --git a/app/src/main/java/com/github/libretube/Settings.kt b/app/src/main/java/com/github/libretube/Settings.kt new file mode 100644 index 000000000..48d92b703 --- /dev/null +++ b/app/src/main/java/com/github/libretube/Settings.kt @@ -0,0 +1,10 @@ +package com.github.libretube + +import android.os.Bundle +import androidx.preference.PreferenceFragmentCompat + +class Settings : PreferenceFragmentCompat() { + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + setPreferencesFromResource(R.xml.settings, rootKey) + } +} diff --git a/app/src/main/res/navigation/nav.xml b/app/src/main/res/navigation/nav.xml index 803933ff9..918b24dd7 100644 --- a/app/src/main/res/navigation/nav.xml +++ b/app/src/main/res/navigation/nav.xml @@ -54,4 +54,8 @@ android:name="playlist_id" app:argType="string" /> + \ No newline at end of file diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml new file mode 100644 index 000000000..ba7093668 --- /dev/null +++ b/app/src/main/res/xml/settings.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file From a829ed03c7959c40c1ea0f6174ff20f4b6dacd9f Mon Sep 17 00:00:00 2001 From: alefvanoon Date: Tue, 8 Feb 2022 17:54:32 +0330 Subject: [PATCH 2/3] Changing gradlew permissions --- gradlew | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 gradlew diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From dd3e2b00cd157889239601d2cef3375385340903 Mon Sep 17 00:00:00 2001 From: rimthekid Date: Tue, 8 Feb 2022 18:27:13 +0400 Subject: [PATCH 3/3] settings --- .../com/github/libretube/ChannelFragment.kt | 2 - .../main/java/com/github/libretube/Home.kt | 4 +- .../java/com/github/libretube/LoginDialog.kt | 53 ++- .../java/com/github/libretube/MainActivity.kt | 3 + .../com/github/libretube/RetrofitInstance.kt | 8 +- .../com/github/libretube/SearchFragment.kt | 2 +- .../java/com/github/libretube/Settings.kt | 16 + .../com/github/libretube/Subscriptions.kt | 8 +- .../com/github/libretube/obj/SearchItem.kt | 3 +- app/src/main/res/layout/dialog_logout.xml | 30 ++ app/src/main/res/values/array.xml | 401 ++++++++++++++++++ app/src/main/res/values/strings.xml | 7 + app/src/main/res/xml/settings.xml | 31 +- 13 files changed, 538 insertions(+), 30 deletions(-) create mode 100644 app/src/main/res/layout/dialog_logout.xml create mode 100644 app/src/main/res/values/array.xml diff --git a/app/src/main/java/com/github/libretube/ChannelFragment.kt b/app/src/main/java/com/github/libretube/ChannelFragment.kt index 439500a5d..2f3cfbbe9 100644 --- a/app/src/main/java/com/github/libretube/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/ChannelFragment.kt @@ -64,8 +64,6 @@ class ChannelFragment : Fragment() { 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 d18d86ff7..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