Show hint about how to import subscriptions when there are none
This commit is contained in:
parent
3103fd7302
commit
10977eaefa
|
@ -41,7 +41,6 @@ import org.schabi.newpipe.local.subscription.SubscriptionViewModel.SubscriptionS
|
||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog
|
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog
|
||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupReorderDialog
|
import org.schabi.newpipe.local.subscription.dialog.FeedGroupReorderDialog
|
||||||
import org.schabi.newpipe.local.subscription.item.ChannelItem
|
import org.schabi.newpipe.local.subscription.item.ChannelItem
|
||||||
import org.schabi.newpipe.local.subscription.item.EmptyPlaceholderItem
|
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupAddNewGridItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupAddNewGridItem
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupAddNewItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupAddNewItem
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupCardGridItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupCardGridItem
|
||||||
|
@ -49,6 +48,7 @@ import org.schabi.newpipe.local.subscription.item.FeedGroupCardItem
|
||||||
import org.schabi.newpipe.local.subscription.item.FeedGroupCarouselItem
|
import org.schabi.newpipe.local.subscription.item.FeedGroupCarouselItem
|
||||||
import org.schabi.newpipe.local.subscription.item.GroupsHeader
|
import org.schabi.newpipe.local.subscription.item.GroupsHeader
|
||||||
import org.schabi.newpipe.local.subscription.item.Header
|
import org.schabi.newpipe.local.subscription.item.Header
|
||||||
|
import org.schabi.newpipe.local.subscription.item.ImportSubscriptionsHintPlaceholderItem
|
||||||
import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService
|
import org.schabi.newpipe.local.subscription.services.SubscriptionsExportService
|
||||||
import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService
|
import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService
|
||||||
import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_MODE
|
import org.schabi.newpipe.local.subscription.services.SubscriptionsImportService.KEY_MODE
|
||||||
|
@ -312,7 +312,7 @@ class SubscriptionFragment : BaseStateFragment<SubscriptionState>() {
|
||||||
groupAdapter.add(this)
|
groupAdapter.add(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
subscriptionsSection.setPlaceholder(EmptyPlaceholderItem())
|
subscriptionsSection.setPlaceholder(ImportSubscriptionsHintPlaceholderItem())
|
||||||
subscriptionsSection.setHideWhenEmpty(true)
|
subscriptionsSection.setHideWhenEmpty(true)
|
||||||
|
|
||||||
groupAdapter.add(
|
groupAdapter.add(
|
||||||
|
|
|
@ -35,7 +35,7 @@ import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog.ScreenState.
|
||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog.ScreenState.SubscriptionsPickerScreen
|
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialog.ScreenState.SubscriptionsPickerScreen
|
||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialogViewModel.DialogEvent.ProcessingEvent
|
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialogViewModel.DialogEvent.ProcessingEvent
|
||||||
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialogViewModel.DialogEvent.SuccessEvent
|
import org.schabi.newpipe.local.subscription.dialog.FeedGroupDialogViewModel.DialogEvent.SuccessEvent
|
||||||
import org.schabi.newpipe.local.subscription.item.EmptyPlaceholderItem
|
import org.schabi.newpipe.local.subscription.item.ImportSubscriptionsHintPlaceholderItem
|
||||||
import org.schabi.newpipe.local.subscription.item.PickerIconItem
|
import org.schabi.newpipe.local.subscription.item.PickerIconItem
|
||||||
import org.schabi.newpipe.local.subscription.item.PickerSubscriptionItem
|
import org.schabi.newpipe.local.subscription.item.PickerSubscriptionItem
|
||||||
import org.schabi.newpipe.util.DeviceUtils
|
import org.schabi.newpipe.util.DeviceUtils
|
||||||
|
@ -338,7 +338,7 @@ class FeedGroupDialog : DialogFragment(), BackPressable {
|
||||||
|
|
||||||
if (subscriptions.isEmpty()) {
|
if (subscriptions.isEmpty()) {
|
||||||
subscriptionEmptyFooter.clear()
|
subscriptionEmptyFooter.clear()
|
||||||
subscriptionEmptyFooter.add(EmptyPlaceholderItem())
|
subscriptionEmptyFooter.add(ImportSubscriptionsHintPlaceholderItem())
|
||||||
} else {
|
} else {
|
||||||
subscriptionEmptyFooter.clear()
|
subscriptionEmptyFooter.clear()
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,11 @@ import com.xwray.groupie.viewbinding.BindableItem
|
||||||
import org.schabi.newpipe.R
|
import org.schabi.newpipe.R
|
||||||
import org.schabi.newpipe.databinding.ListEmptyViewBinding
|
import org.schabi.newpipe.databinding.ListEmptyViewBinding
|
||||||
|
|
||||||
class EmptyPlaceholderItem : BindableItem<ListEmptyViewBinding>() {
|
/**
|
||||||
override fun getLayout(): Int = R.layout.list_empty_view
|
* When there are no subscriptions, show a hint to the user about how to import subscriptions
|
||||||
|
*/
|
||||||
|
class ImportSubscriptionsHintPlaceholderItem : BindableItem<ListEmptyViewBinding>() {
|
||||||
|
override fun getLayout(): Int = R.layout.list_empty_view_subscriptions
|
||||||
override fun bind(viewBinding: ListEmptyViewBinding, position: Int) {}
|
override fun bind(viewBinding: ListEmptyViewBinding, position: Int) {}
|
||||||
override fun getSpanSize(spanCount: Int, position: Int): Int = spanCount
|
override fun getSpanSize(spanCount: Int, position: Int): Int = spanCount
|
||||||
override fun initializeViewBinding(view: View) = ListEmptyViewBinding.bind(view)
|
override fun initializeViewBinding(view: View) = ListEmptyViewBinding.bind(view)
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:minHeight="128dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<org.schabi.newpipe.views.NewPipeTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="¯\\_(ツ)_/¯"
|
||||||
|
android:textAppearance="?android:attr/textAppearanceLarge"
|
||||||
|
tools:ignore="HardcodedText" />
|
||||||
|
|
||||||
|
<org.schabi.newpipe.views.NewPipeTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="6dp"
|
||||||
|
android:text="@string/import_subscriptions_hint" />
|
||||||
|
</LinearLayout>
|
|
@ -266,6 +266,7 @@
|
||||||
<string name="description_tab_description">Description</string>
|
<string name="description_tab_description">Description</string>
|
||||||
<string name="search_no_results">No results</string>
|
<string name="search_no_results">No results</string>
|
||||||
<string name="empty_list_subtitle">Nothing here but crickets</string>
|
<string name="empty_list_subtitle">Nothing here but crickets</string>
|
||||||
|
<string name="import_subscriptions_hint">Import or export subscriptions from the 3-dot menu</string>
|
||||||
<string name="detail_drag_description">Drag to reorder</string>
|
<string name="detail_drag_description">Drag to reorder</string>
|
||||||
<string name="video">Video</string>
|
<string name="video">Video</string>
|
||||||
<string name="audio">Audio</string>
|
<string name="audio">Audio</string>
|
||||||
|
|
Loading…
Reference in New Issue