Merge pull request #217 from Bnyro/subs

New Channels Layout in Subscriptions Tab and Option to change App startup page
This commit is contained in:
Bnyro 2022-05-16 15:48:49 +02:00 committed by GitHub
commit 2907bebd41
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 76 additions and 4 deletions

View File

@ -18,6 +18,7 @@ import android.view.*
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.LinearLayout
import android.widget.Toast
import androidx.appcompat.app.AppCompatDelegate
import androidx.appcompat.widget.Toolbar
import androidx.constraintlayout.motion.widget.MotionLayout
@ -86,6 +87,12 @@ class MainActivity : AppCompatActivity() {
navController = findNavController(R.id.fragment)
bottomNavigationView.setupWithNavController(navController)
when (sharedPreferences.getString("default_tab", "home")!!) {
"home" -> navController.navigate(R.id.home2)
"subscriptions" -> navController.navigate(R.id.subscriptions)
"library" -> navController.navigate(R.id.library)
}
bottomNavigationView.setOnItemSelectedListener {
when (it.itemId) {
R.id.home2 -> {

View File

@ -8,6 +8,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.GridLayoutManager
@ -16,6 +17,7 @@ import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.github.libretube.adapters.SubscriptionAdapter
import com.github.libretube.adapters.SubscriptionChannelAdapter
import org.chromium.base.ThreadUtils.runOnUiThread
import retrofit2.HttpException
import java.io.IOException
@ -52,8 +54,6 @@ class Subscriptions : Fragment() {
progressBar.visibility=View.VISIBLE
var channelRecView = view.findViewById<RecyclerView>(R.id.sub_channels)
channelRecView?.layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
fetchChannels(channelRecView)
var feedRecView = view.findViewById<RecyclerView>(R.id.sub_feed)
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
@ -66,6 +66,25 @@ class Subscriptions : Fragment() {
fetchFeed(feedRecView, progressBar, view)
}
var toggleSubs = view.findViewById<RelativeLayout>(R.id.toggle_subs)
toggleSubs.visibility = View.VISIBLE
var loadedSubbedChannels = false
toggleSubs.setOnClickListener {
if (!channelRecView.isVisible) {
if (!loadedSubbedChannels) {
channelRecView?.layoutManager = GridLayoutManager(context, 4)
fetchChannels(channelRecView)
loadedSubbedChannels = true
}
channelRecView.visibility = View.VISIBLE
feedRecView.visibility = View.GONE
}
else {
channelRecView.visibility = View.GONE
feedRecView.visibility = View.VISIBLE
}
}
val scrollView = view.findViewById<ScrollView>(R.id.scrollview_sub)
scrollView.viewTreeObserver
.addOnScrollChangedListener {

View File

@ -9,8 +9,8 @@
>
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/subscription_channel_image"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_marginBottom="4dp"/>
<TextView

View File

@ -54,12 +54,35 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/toggle_subs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="12dp"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/subscriptions"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/ic_arrow_down"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants">
<androidx.recyclerview.widget.RecyclerView
android:visibility="gone"
android:id="@+id/sub_channels"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -470,6 +470,19 @@
<item>L</item>
<item>D</item>
</string-array>
<string-array name="tabs">
<item>@string/startpage</item>
<item>@string/subscriptions</item>
<item>@string/library</item>
</string-array>
<string-array name="tabsValue">
<item>home</item>
<item>subscriptions</item>
<item>library</item>
</string-array>
<string-array name="defres">
<item>HLS</item>
<item>1080p</item>

View File

@ -72,4 +72,5 @@
<string name="noInternet">No Internet Connection</string>
<string name="retry">Retry</string>
<string name="comments">Comments</string>
<string name="defaultTab">Default Tab</string>
</resources>

View File

@ -71,6 +71,15 @@
android:icon="@drawable/ic_theme"
/>
<ListPreference
app:title="@string/defaultTab"
app:key="default_tab"
app:entries="@array/tabs"
app:entryValues="@array/tabsValue"
app:defaultValue="home"
android:icon="@drawable/ic_home"
/>
<ListPreference
app:title="@string/defres"
app:key="default_res"