mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Fix fragment style
This commit is contained in:
@@ -20,20 +20,21 @@
|
||||
package com.kunzisoft.keepass.activities.fragments
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.stylish.StylishFragment
|
||||
import com.kunzisoft.keepass.adapters.IconAdapter
|
||||
import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.database.element.icon.IconImageDraw
|
||||
import com.kunzisoft.keepass.viewmodels.IconPickerViewModel
|
||||
|
||||
abstract class IconFragment<T: IconImageDraw> : Fragment() {
|
||||
abstract class IconFragment<T: IconImageDraw> : StylishFragment() {
|
||||
|
||||
protected lateinit var iconsGridView: RecyclerView
|
||||
protected lateinit var iconAdapter: IconAdapter<T>
|
||||
@@ -49,7 +50,12 @@ abstract class IconFragment<T: IconImageDraw> : Fragment() {
|
||||
override fun onAttach(context: Context) {
|
||||
super.onAttach(context)
|
||||
|
||||
iconAdapter = IconAdapter<T>(requireActivity()).apply {
|
||||
// Retrieve the textColor to tint the icon
|
||||
val ta = contextThemed?.obtainStyledAttributes(intArrayOf(android.R.attr.colorControlNormal))
|
||||
val tintColor = ta?.getColor(0, Color.BLACK) ?: Color.BLACK
|
||||
ta?.recycle()
|
||||
|
||||
iconAdapter = IconAdapter<T>(context, tintColor).apply {
|
||||
iconDrawableFactory = database.iconDrawableFactory
|
||||
}
|
||||
|
||||
|
||||
@@ -4,17 +4,17 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.kunzisoft.keepass.R
|
||||
import com.kunzisoft.keepass.activities.stylish.StylishFragment
|
||||
import com.kunzisoft.keepass.adapters.IconPickerPagerAdapter
|
||||
import com.kunzisoft.keepass.database.element.Database
|
||||
import com.kunzisoft.keepass.viewmodels.IconPickerViewModel
|
||||
|
||||
class IconPickerFragment : Fragment() {
|
||||
class IconPickerFragment : StylishFragment() {
|
||||
|
||||
private var iconPickerPagerAdapter: IconPickerPagerAdapter? = null
|
||||
private lateinit var viewPager: ViewPager2
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.kunzisoft.keepass.adapters
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -12,7 +11,8 @@ import com.kunzisoft.keepass.database.element.icon.IconImageDraw
|
||||
import com.kunzisoft.keepass.icons.IconDrawableFactory
|
||||
import com.kunzisoft.keepass.icons.assignDatabaseIcon
|
||||
|
||||
class IconAdapter<I: IconImageDraw>(val context: Context) : RecyclerView.Adapter<IconAdapter<I>.CustomIconViewHolder>() {
|
||||
class IconAdapter<I: IconImageDraw>(val context: Context, val tintIcon: Int)
|
||||
: RecyclerView.Adapter<IconAdapter<I>.CustomIconViewHolder>() {
|
||||
|
||||
private val inflater: LayoutInflater = LayoutInflater.from(context)
|
||||
|
||||
@@ -21,15 +21,6 @@ class IconAdapter<I: IconImageDraw>(val context: Context) : RecyclerView.Adapter
|
||||
var iconDrawableFactory: IconDrawableFactory? = null
|
||||
var iconPickerListener: IconPickerListener<I>? = null
|
||||
|
||||
var tintColor : Int = Color.BLACK
|
||||
|
||||
init {
|
||||
// Retrieve the textColor to tint the icon
|
||||
val ta = context.theme.obtainStyledAttributes(intArrayOf(android.R.attr.textColor))
|
||||
tintColor = ta.getColor(0, Color.BLACK)
|
||||
ta.recycle()
|
||||
}
|
||||
|
||||
val lastPosition: Int
|
||||
get() = iconList.lastIndex
|
||||
|
||||
@@ -56,7 +47,7 @@ class IconAdapter<I: IconImageDraw>(val context: Context) : RecyclerView.Adapter
|
||||
override fun onBindViewHolder(holder: CustomIconViewHolder, position: Int) {
|
||||
val icon = iconList[position]
|
||||
iconDrawableFactory?.let {
|
||||
holder.iconImageView.assignDatabaseIcon(it, icon, tintColor)
|
||||
holder.iconImageView.assignDatabaseIcon(it, icon, tintIcon)
|
||||
}
|
||||
holder.itemView.setOnClickListener { iconPickerListener?.iconPicked(icon) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user