ViewBinding in some Adapter classes which are using one layout
This commit is contained in:
parent
77e1c653be
commit
2055795c99
8 changed files with 131 additions and 150 deletions
|
@ -11,134 +11,111 @@
|
||||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
* See the GNU General Public License for more details.
|
* See the GNU General Public License for more details.
|
||||||
*/
|
*/
|
||||||
|
package code.name.monkey.retromusic.adapter
|
||||||
|
|
||||||
package code.name.monkey.retromusic.adapter;
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.res.ColorStateList
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.MotionEvent
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.Toast
|
||||||
|
import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
|
||||||
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.PreferenceDialogLibraryCategoriesListitemBinding
|
||||||
|
import code.name.monkey.retromusic.model.CategoryInfo
|
||||||
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
import code.name.monkey.retromusic.util.SwipeAndDragHelper
|
||||||
|
import code.name.monkey.retromusic.util.SwipeAndDragHelper.ActionCompletionContract
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
class CategoryInfoAdapter : RecyclerView.Adapter<CategoryInfoAdapter.ViewHolder>(),
|
||||||
import android.content.res.ColorStateList;
|
ActionCompletionContract {
|
||||||
import android.view.LayoutInflater;
|
var categoryInfos: MutableList<CategoryInfo> =
|
||||||
import android.view.MotionEvent;
|
PreferenceUtil.libraryCategory.toMutableList()
|
||||||
import android.view.View;
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
import android.view.ViewGroup;
|
set(value) {
|
||||||
import android.widget.TextView;
|
field = value
|
||||||
import android.widget.Toast;
|
notifyDataSetChanged()
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.google.android.material.checkbox.MaterialCheckBox;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import code.name.monkey.appthemehelper.ThemeStore;
|
|
||||||
import code.name.monkey.retromusic.R;
|
|
||||||
import code.name.monkey.retromusic.model.CategoryInfo;
|
|
||||||
import code.name.monkey.retromusic.util.SwipeAndDragHelper;
|
|
||||||
|
|
||||||
public class CategoryInfoAdapter extends RecyclerView.Adapter<CategoryInfoAdapter.ViewHolder>
|
|
||||||
implements SwipeAndDragHelper.ActionCompletionContract {
|
|
||||||
|
|
||||||
private List<CategoryInfo> categoryInfos;
|
|
||||||
private final ItemTouchHelper touchHelper;
|
|
||||||
|
|
||||||
public CategoryInfoAdapter() {
|
|
||||||
SwipeAndDragHelper swipeAndDragHelper = new SwipeAndDragHelper(this);
|
|
||||||
touchHelper = new ItemTouchHelper(swipeAndDragHelper);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void attachToRecyclerView(RecyclerView recyclerView) {
|
|
||||||
touchHelper.attachToRecyclerView(recyclerView);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public List<CategoryInfo> getCategoryInfos() {
|
|
||||||
return categoryInfos;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCategoryInfos(@NonNull List<CategoryInfo> categoryInfos) {
|
|
||||||
this.categoryInfos = categoryInfos;
|
|
||||||
notifyDataSetChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemCount() {
|
|
||||||
return categoryInfos.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
|
||||||
@Override
|
|
||||||
public void onBindViewHolder(@NonNull CategoryInfoAdapter.ViewHolder holder, int position) {
|
|
||||||
CategoryInfo categoryInfo = categoryInfos.get(position);
|
|
||||||
|
|
||||||
holder.checkBox.setChecked(categoryInfo.isVisible());
|
|
||||||
holder.title.setText(
|
|
||||||
holder.title.getResources().getString(categoryInfo.getCategory().getStringRes()));
|
|
||||||
|
|
||||||
holder.itemView.setOnClickListener(
|
|
||||||
v -> {
|
|
||||||
if (!(categoryInfo.isVisible() && isLastCheckedCategory(categoryInfo))) {
|
|
||||||
categoryInfo.setVisible(!categoryInfo.isVisible());
|
|
||||||
holder.checkBox.setChecked(categoryInfo.isVisible());
|
|
||||||
} else {
|
|
||||||
Toast.makeText(
|
|
||||||
holder.itemView.getContext(),
|
|
||||||
R.string.you_have_to_select_at_least_one_category,
|
|
||||||
Toast.LENGTH_SHORT)
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
holder.dragView.setOnTouchListener(
|
|
||||||
(view, event) -> {
|
|
||||||
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
|
|
||||||
touchHelper.startDrag(holder);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@NonNull
|
|
||||||
public CategoryInfoAdapter.ViewHolder onCreateViewHolder(
|
|
||||||
@NonNull ViewGroup parent, int viewType) {
|
|
||||||
View view =
|
|
||||||
LayoutInflater.from(parent.getContext())
|
|
||||||
.inflate(R.layout.preference_dialog_library_categories_listitem, parent, false);
|
|
||||||
return new ViewHolder(view);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewMoved(int oldPosition, int newPosition) {
|
|
||||||
CategoryInfo categoryInfo = categoryInfos.get(oldPosition);
|
|
||||||
categoryInfos.remove(oldPosition);
|
|
||||||
categoryInfos.add(newPosition, categoryInfo);
|
|
||||||
notifyItemMoved(oldPosition, newPosition);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isLastCheckedCategory(CategoryInfo categoryInfo) {
|
|
||||||
if (categoryInfo.isVisible()) {
|
|
||||||
for (CategoryInfo c : categoryInfos) {
|
|
||||||
if (c != categoryInfo && c.isVisible()) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
private val touchHelper: ItemTouchHelper
|
||||||
|
fun attachToRecyclerView(recyclerView: RecyclerView?) {
|
||||||
|
touchHelper.attachToRecyclerView(recyclerView)
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
static class ViewHolder extends RecyclerView.ViewHolder {
|
override fun getItemCount(): Int {
|
||||||
private final MaterialCheckBox checkBox;
|
return categoryInfos.size
|
||||||
private final View dragView;
|
|
||||||
private final TextView title;
|
|
||||||
|
|
||||||
ViewHolder(View view) {
|
|
||||||
super(view);
|
|
||||||
checkBox = view.findViewById(R.id.checkbox);
|
|
||||||
checkBox.setButtonTintList(
|
|
||||||
ColorStateList.valueOf(ThemeStore.Companion.accentColor(checkBox.getContext())));
|
|
||||||
title = view.findViewById(R.id.title);
|
|
||||||
dragView = view.findViewById(R.id.drag_view);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
|
val categoryInfo = categoryInfos[position]
|
||||||
|
holder.binding.checkbox.isChecked = categoryInfo.visible
|
||||||
|
holder.binding.title.text =
|
||||||
|
holder.binding.title.resources.getString(categoryInfo.category.stringRes)
|
||||||
|
holder.itemView.setOnClickListener {
|
||||||
|
if (!(categoryInfo.visible && isLastCheckedCategory(categoryInfo))) {
|
||||||
|
categoryInfo.visible = !categoryInfo.visible
|
||||||
|
holder.binding.checkbox.isChecked = categoryInfo.visible
|
||||||
|
} else {
|
||||||
|
Toast.makeText(
|
||||||
|
holder.itemView.context,
|
||||||
|
R.string.you_have_to_select_at_least_one_category,
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
holder.binding.dragView.setOnTouchListener { _: View?, event: MotionEvent ->
|
||||||
|
if (event.actionMasked == MotionEvent.ACTION_DOWN) {
|
||||||
|
touchHelper.startDrag(holder)
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(
|
||||||
|
parent: ViewGroup, viewType: Int
|
||||||
|
): ViewHolder {
|
||||||
|
return ViewHolder(
|
||||||
|
PreferenceDialogLibraryCategoriesListitemBinding.inflate(
|
||||||
|
LayoutInflater.from(
|
||||||
|
parent.context
|
||||||
|
), parent, false
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewMoved(oldPosition: Int, newPosition: Int) {
|
||||||
|
val categoryInfo = categoryInfos[oldPosition]
|
||||||
|
categoryInfos.removeAt(oldPosition)
|
||||||
|
categoryInfos.add(newPosition, categoryInfo)
|
||||||
|
notifyItemMoved(oldPosition, newPosition)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun isLastCheckedCategory(categoryInfo: CategoryInfo): Boolean {
|
||||||
|
if (categoryInfo.visible) {
|
||||||
|
for (c in categoryInfos) {
|
||||||
|
if (c !== categoryInfo && c.visible) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
class ViewHolder(val binding: PreferenceDialogLibraryCategoriesListitemBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
binding.checkbox.buttonTintList =
|
||||||
|
ColorStateList.valueOf(accentColor(binding.checkbox.context))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
init {
|
||||||
|
val swipeAndDragHelper = SwipeAndDragHelper(this)
|
||||||
|
touchHelper = ItemTouchHelper(swipeAndDragHelper)
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,6 +14,7 @@
|
||||||
*/
|
*/
|
||||||
package code.name.monkey.retromusic.adapter
|
package code.name.monkey.retromusic.adapter
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
@ -21,7 +22,7 @@ import android.view.ViewOutlineProvider
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
|
import code.name.monkey.retromusic.databinding.ItemGenreBinding
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||||
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
|
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
|
||||||
|
@ -38,7 +39,6 @@ import java.util.*
|
||||||
class GenreAdapter(
|
class GenreAdapter(
|
||||||
private val activity: FragmentActivity,
|
private val activity: FragmentActivity,
|
||||||
var dataSet: List<Genre>,
|
var dataSet: List<Genre>,
|
||||||
private val mItemLayoutRes: Int,
|
|
||||||
private val listener: IGenreClickListener
|
private val listener: IGenreClickListener
|
||||||
) : RecyclerView.Adapter<GenreAdapter.ViewHolder>() {
|
) : RecyclerView.Adapter<GenreAdapter.ViewHolder>() {
|
||||||
|
|
||||||
|
@ -51,13 +51,13 @@ class GenreAdapter(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
return ViewHolder(LayoutInflater.from(activity).inflate(mItemLayoutRes, parent, false))
|
return ViewHolder(ItemGenreBinding.inflate(LayoutInflater.from(activity), parent, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
val genre = dataSet[position]
|
val genre = dataSet[position]
|
||||||
holder.title?.text = genre.name
|
holder.binding.title.text = genre.name
|
||||||
holder.text?.text = String.format(
|
holder.binding.text.text = String.format(
|
||||||
Locale.getDefault(),
|
Locale.getDefault(),
|
||||||
"%d %s",
|
"%d %s",
|
||||||
genre.songCount,
|
genre.songCount,
|
||||||
|
@ -72,33 +72,39 @@ class GenreAdapter(
|
||||||
.asBitmapPalette()
|
.asBitmapPalette()
|
||||||
.load(RetroGlideExtension.getSongModel(genreSong))
|
.load(RetroGlideExtension.getSongModel(genreSong))
|
||||||
.songCoverOptions(genreSong)
|
.songCoverOptions(genreSong)
|
||||||
.into(object : RetroMusicColoredTarget(holder.image!!) {
|
.into(object : RetroMusicColoredTarget(holder.binding.image) {
|
||||||
override fun onColorReady(colors: MediaNotificationProcessor) {
|
override fun onColorReady(colors: MediaNotificationProcessor) {
|
||||||
setColors(holder, colors)
|
setColors(holder, colors)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// Just for a bit of shadow around image
|
// Just for a bit of shadow around image
|
||||||
holder.image?.outlineProvider = ViewOutlineProvider.BOUNDS
|
holder.binding.image.outlineProvider = ViewOutlineProvider.BOUNDS
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setColors(holder: ViewHolder, color: MediaNotificationProcessor) {
|
private fun setColors(holder: ViewHolder, color: MediaNotificationProcessor) {
|
||||||
holder.imageContainerCard?.setCardBackgroundColor(color.backgroundColor)
|
holder.binding.imageContainerCard.setCardBackgroundColor(color.backgroundColor)
|
||||||
holder.title?.setTextColor(color.primaryTextColor)
|
holder.binding.title.setTextColor(color.primaryTextColor)
|
||||||
holder.text?.setTextColor(color.secondaryTextColor)
|
holder.binding.text.setTextColor(color.secondaryTextColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int {
|
override fun getItemCount(): Int {
|
||||||
return dataSet.size
|
return dataSet.size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
fun swapDataSet(list: List<Genre>) {
|
fun swapDataSet(list: List<Genre>) {
|
||||||
dataSet = list
|
dataSet = list
|
||||||
notifyDataSetChanged()
|
notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(itemView: View) : MediaEntryViewHolder(itemView) {
|
inner class ViewHolder(val binding: ItemGenreBinding) : RecyclerView.ViewHolder(binding.root),
|
||||||
|
View.OnClickListener {
|
||||||
override fun onClick(v: View?) {
|
override fun onClick(v: View?) {
|
||||||
listener.onClickGenre(dataSet[layoutPosition], itemView)
|
listener.onClickGenre(dataSet[layoutPosition], itemView)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
init {
|
||||||
|
itemView.setOnClickListener(this)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -248,7 +248,6 @@ class HomeAdapter(
|
||||||
val genreAdapter = GenreAdapter(
|
val genreAdapter = GenreAdapter(
|
||||||
activity,
|
activity,
|
||||||
home.arrayList as List<Genre>,
|
home.arrayList as List<Genre>,
|
||||||
R.layout.item_grid_genre,
|
|
||||||
this@HomeAdapter
|
this@HomeAdapter
|
||||||
)
|
)
|
||||||
recyclerView.apply {
|
recyclerView.apply {
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
package code.name.monkey.retromusic.adapter.backup
|
package code.name.monkey.retromusic.adapter.backup
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.view.View
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
|
||||||
import androidx.appcompat.widget.AppCompatImageView
|
|
||||||
import androidx.appcompat.widget.PopupMenu
|
import androidx.appcompat.widget.PopupMenu
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.databinding.ItemListBackupBinding
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,27 +20,27 @@ class BackupAdapter(
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
|
||||||
return ViewHolder(
|
return ViewHolder(
|
||||||
LayoutInflater.from(activity).inflate(R.layout.item_list_backup, parent, false)
|
ItemListBackupBinding.inflate(LayoutInflater.from(activity), parent, false)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||||
holder.title.text = dataSet[position].nameWithoutExtension
|
holder.binding.title.text = dataSet[position].nameWithoutExtension
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int = dataSet.size
|
override fun getItemCount(): Int = dataSet.size
|
||||||
|
|
||||||
|
@SuppressLint("NotifyDataSetChanged")
|
||||||
fun swapDataset(dataSet: List<File>) {
|
fun swapDataset(dataSet: List<File>) {
|
||||||
this.dataSet = ArrayList(dataSet)
|
this.dataSet = ArrayList(dataSet)
|
||||||
notifyDataSetChanged()
|
notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
|
||||||
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
inner class ViewHolder(val binding: ItemListBackupBinding) :
|
||||||
val title: TextView = itemView.findViewById(R.id.title)
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
val menu: AppCompatImageView = itemView.findViewById(R.id.menu)
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
menu.setOnClickListener { view ->
|
binding.menu.setOnClickListener { view ->
|
||||||
val popupMenu = PopupMenu(activity, view)
|
val popupMenu = PopupMenu(activity, view)
|
||||||
popupMenu.inflate(R.menu.menu_backup)
|
popupMenu.inflate(R.menu.menu_backup)
|
||||||
popupMenu.setOnMenuItemClickListener { menuItem ->
|
popupMenu.setOnMenuItemClickListener { menuItem ->
|
||||||
|
|
|
@ -164,7 +164,7 @@ abstract class AbsRecyclerViewFragment<A : RecyclerView.Adapter<*>, LM : Recycle
|
||||||
if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
|
||||||
binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height_expanded))
|
binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height_expanded))
|
||||||
} else {
|
} else {
|
||||||
binding.recyclerView.updatePadding(bottom = dip(R.dimen.mini_player_height))
|
binding.recyclerView.updatePadding(bottom = dip(R.dimen.bottom_nav_height))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ GenresFragment : AbsRecyclerViewFragment<GenreAdapter, LinearLayoutManager>(),
|
||||||
|
|
||||||
override fun createAdapter(): GenreAdapter {
|
override fun createAdapter(): GenreAdapter {
|
||||||
val dataSet = if (adapter == null) ArrayList() else adapter!!.dataSet
|
val dataSet = if (adapter == null) ArrayList() else adapter!!.dataSet
|
||||||
return GenreAdapter(requireActivity(), dataSet, R.layout.item_genre, this)
|
return GenreAdapter(requireActivity(), dataSet, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
|
|
|
@ -55,7 +55,6 @@ class LibraryPreferenceDialog : DialogFragment() {
|
||||||
.inflate(R.layout.preference_dialog_library_categories, null)
|
.inflate(R.layout.preference_dialog_library_categories, null)
|
||||||
|
|
||||||
val categoryAdapter = CategoryInfoAdapter()
|
val categoryAdapter = CategoryInfoAdapter()
|
||||||
categoryAdapter.categoryInfos = PreferenceUtil.libraryCategory
|
|
||||||
val recyclerView = view.findViewById<RecyclerView>(R.id.recycler_view)
|
val recyclerView = view.findViewById<RecyclerView>(R.id.recycler_view)
|
||||||
recyclerView.layoutManager = LinearLayoutManager(activity)
|
recyclerView.layoutManager = LinearLayoutManager(activity)
|
||||||
recyclerView.adapter = categoryAdapter
|
recyclerView.adapter = categoryAdapter
|
||||||
|
|
|
@ -20,11 +20,12 @@
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp"
|
||||||
android:layout_gravity="center_vertical"
|
android:layout_gravity="center_vertical"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
|
android:padding="8dp"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
|
android:src="@drawable/ic_restore"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@id/title"
|
app:layout_constraintEnd_toStartOf="@id/title"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
android:src="@drawable/ic_restore"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
<com.google.android.material.textview.MaterialTextView
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue