diff --git a/app/src/main/java/com/github/libretube/Subscriptions.kt b/app/src/main/java/com/github/libretube/Subscriptions.kt index bc26e717a..56ee74638 100644 --- a/app/src/main/java/com/github/libretube/Subscriptions.kt +++ b/app/src/main/java/com/github/libretube/Subscriptions.kt @@ -20,6 +20,7 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.preference.PreferenceManager import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import com.github.libretube.adapters.SubscriptionAdapter @@ -82,7 +83,7 @@ class Subscriptions : Fragment() { toggleSubs.setOnClickListener { if (!channelRecView.isVisible) { if (!loadedSubbedChannels) { - channelRecView?.layoutManager = GridLayoutManager(context, 4) + channelRecView?.layoutManager = LinearLayoutManager(context) fetchChannels(channelRecView) loadedSubbedChannels = true } diff --git a/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt b/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt index a122db98b..cb66dfc9d 100644 --- a/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt @@ -1,19 +1,30 @@ package com.github.libretube.adapters +import android.content.Context +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button import android.widget.ImageView import android.widget.TextView import androidx.core.os.bundleOf import androidx.recyclerview.widget.RecyclerView import com.github.libretube.MainActivity import com.github.libretube.R +import com.github.libretube.obj.Subscribe import com.github.libretube.obj.Subscription +import com.github.libretube.util.RetrofitInstance import com.squareup.picasso.Picasso +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import retrofit2.HttpException +import java.io.IOException class SubscriptionChannelAdapter(private val subscriptions: MutableList) : RecyclerView.Adapter() { + val TAG = "SubChannelAdapter" override fun getItemCount(): Int { return subscriptions.size } @@ -35,6 +46,31 @@ class SubscriptionChannelAdapter(private val subscriptions: MutableList(R.id.subs_subscribe) + unsubscribeBtn.setOnClickListener { + val channel_id = subscription.url?.replace("/channel/", "")!! + unsubscribe(holder.v.context, channel_id) + } + } + + private fun unsubscribe(context: Context, channel_id: String) { + fun run() { + CoroutineScope(Dispatchers.IO).launch { + val response = try { + val sharedPref = context?.getSharedPreferences("token", Context.MODE_PRIVATE) + RetrofitInstance.api.unsubscribe( + sharedPref?.getString("token", "")!!, + Subscribe(channel_id) + ) + } catch (e: IOException) { + println(e) + Log.e(TAG, "IOException, you might not have internet connection") + } catch (e: HttpException) { + Log.e(TAG, "HttpException, unexpected response") + } + } + } + run() } } diff --git a/app/src/main/res/layout/channel_subscription_row.xml b/app/src/main/res/layout/channel_subscription_row.xml index 1f2628518..ddab5d0d7 100644 --- a/app/src/main/res/layout/channel_subscription_row.xml +++ b/app/src/main/res/layout/channel_subscription_row.xml @@ -1,25 +1,39 @@ - + android:layout_centerVertical="true" + android:layout_width="40dp" + android:layout_height="40dp" /> - \ No newline at end of file + android:maxLines="1" + android:text="Channel Name" + android:textSize="16dp" /> + + + \ No newline at end of file