Add pull down search bar to stickers and auto hide when scrolling.

fork-5.53.8
Cody Henthorne 2021-06-03 11:32:47 -04:00
rodzic 2131c56513
commit 27b9fbe490
3 zmienionych plików z 76 dodań i 66 usunięć

Wyświetl plik

@ -6,10 +6,12 @@ import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import com.google.android.material.appbar.AppBarLayout
import org.thoughtcrime.securesms.LoggingFragment
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.emoji.MediaKeyboardBottomTabAdapter
import org.thoughtcrime.securesms.components.emoji.MediaKeyboardProvider
import org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView
import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.stickers.StickerKeyboardProvider
import org.thoughtcrime.securesms.stickers.StickerKeyboardProvider.StickerEventListener
@ -20,7 +22,6 @@ class StickerKeyboardPageFragment : LoggingFragment(R.layout.keyboard_pager_stic
private lateinit var provider: StickerKeyboardProvider
private lateinit var stickerPager: ViewPager
private lateinit var searchView: View
private lateinit var stickerPacksRecycler: RecyclerView
private lateinit var manageStickers: View
private lateinit var tabAdapter: MediaKeyboardBottomTabAdapter
@ -30,11 +31,18 @@ class StickerKeyboardPageFragment : LoggingFragment(R.layout.keyboard_pager_stic
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
stickerPager = view.findViewById(R.id.sticker_pager)
searchView = view.findViewById(R.id.sticker_search)
manageStickers = view.findViewById(R.id.sticker_manage)
stickerPacksRecycler = view.findViewById(R.id.sticker_packs_recycler)
searchView.setOnClickListener { StickerSearchDialogFragment.show(requireActivity().supportFragmentManager) }
view.findViewById<KeyboardPageSearchView>(R.id.sticker_keyboard_search_text).callbacks = object : KeyboardPageSearchView.Callbacks {
override fun onClicked() {
StickerSearchDialogFragment.show(requireActivity().supportFragmentManager)
}
}
view.findViewById<View>(R.id.sticker_search).setOnClickListener { StickerSearchDialogFragment.show(requireActivity().supportFragmentManager) }
view.findViewById<AppBarLayout>(R.id.sticker_appbar).setExpanded(false)
}
override fun onActivityCreated(savedInstanceState: Bundle?) {

Wyświetl plik

@ -4,7 +4,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@id/gif_keyboard_packs_background"
tools:background="@color/signal_background_secondary">
<com.google.android.material.appbar.AppBarLayout
@ -21,7 +20,7 @@
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:click_only="true"
app:layout_scrollFlags="scroll"
app:layout_scrollFlags="scroll|snap"
app:search_hint="@string/KeyboardPagerFragment_search_giphy"
app:show_always="true" />

Wyświetl plik

@ -1,77 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:background="@color/signal_background_secondary">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/sticker_appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/signal_background_secondary"
app:elevation="0dp">
<org.thoughtcrime.securesms.keyboard.emoji.KeyboardPageSearchView
android:id="@+id/sticker_keyboard_search_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:click_only="true"
app:layout_scrollFlags="scroll|snap"
app:search_hint="@string/StickerSearchDialogFragment_search_stickers"
app:show_always="true" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/sticker_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toTopOf="@id/sticker_packs_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginTop="0dp" />
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<View
android:id="@+id/sticker_packs_background"
<LinearLayout
android:id="@+id/sticker_keyboard_packs_background"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_height="?actionBarSize"
android:layout_gravity="bottom"
android:background="@color/signal_background_secondary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sticker_search"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?selectableItemBackground"
android:contentDescription="@string/KeyboardPagerFragment_open_sticker_search"
android:padding="13dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@id/sticker_packs_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/sticker_packs_background"
app:srcCompat="@drawable/ic_search_24"
app:tint="@color/icon_tab_selector" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sticker_manage"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?selectableItemBackground"
android:contentDescription="@string/KeyboardPagerFragment_backspace"
android:padding="13dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@id/sticker_packs_background"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/sticker_packs_background"
app:srcCompat="@drawable/ic_plus_24"
app:tint="@color/icon_tab_selector" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/sticker_packs_recycler"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="@id/sticker_packs_background"
app:layout_constraintEnd_toStartOf="@id/sticker_manage"
app:layout_constraintStart_toEndOf="@id/sticker_search"
app:layout_constraintTop_toTopOf="@id/sticker_packs_background"
tools:itemCount="10"
tools:listitem="@layout/keyboard_pager_category_icon" />
app:layout_behavior="@string/hide_bottom_view_on_scroll_behavior">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="top"
android:background="@color/signal_inverse_transparent_05"
app:layout_constraintBottom_toTopOf="@+id/sticker_packs_background"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sticker_search"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?selectableItemBackground"
android:contentDescription="@string/KeyboardPagerFragment_open_sticker_search"
android:padding="13dp"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_search_24"
app:tint="@color/icon_tab_selector" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/sticker_packs_recycler"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="10"
tools:listitem="@layout/keyboard_pager_category_icon" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/sticker_manage"
android:layout_width="48dp"
android:layout_height="48dp"
android:background="?selectableItemBackground"
android:contentDescription="@string/KeyboardPagerFragment_backspace"
android:padding="13dp"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_plus_24"
app:tint="@color/icon_tab_selector" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>