From 12df74b3a7423a964421fd9d8912437bb4fa5c4e Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Fri, 5 Mar 2021 19:55:51 +0100 Subject: [PATCH] Fix fragment style --- .../keepass/activities/fragments/IconFragment.kt | 12 +++++++++--- .../activities/fragments/IconPickerFragment.kt | 4 ++-- .../com/kunzisoft/keepass/adapters/IconAdapter.kt | 15 +++------------ 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconFragment.kt index e2ed4a89e..adcd9cd91 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconFragment.kt @@ -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 : Fragment() { +abstract class IconFragment : StylishFragment() { protected lateinit var iconsGridView: RecyclerView protected lateinit var iconAdapter: IconAdapter @@ -49,7 +50,12 @@ abstract class IconFragment : Fragment() { override fun onAttach(context: Context) { super.onAttach(context) - iconAdapter = IconAdapter(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(context, tintColor).apply { iconDrawableFactory = database.iconDrawableFactory } diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconPickerFragment.kt b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconPickerFragment.kt index f398e291c..8ae303420 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconPickerFragment.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/fragments/IconPickerFragment.kt @@ -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 diff --git a/app/src/main/java/com/kunzisoft/keepass/adapters/IconAdapter.kt b/app/src/main/java/com/kunzisoft/keepass/adapters/IconAdapter.kt index ea239b39e..400b163ec 100644 --- a/app/src/main/java/com/kunzisoft/keepass/adapters/IconAdapter.kt +++ b/app/src/main/java/com/kunzisoft/keepass/adapters/IconAdapter.kt @@ -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(val context: Context) : RecyclerView.Adapter.CustomIconViewHolder>() { +class IconAdapter(val context: Context, val tintIcon: Int) + : RecyclerView.Adapter.CustomIconViewHolder>() { private val inflater: LayoutInflater = LayoutInflater.from(context) @@ -21,15 +21,6 @@ class IconAdapter(val context: Context) : RecyclerView.Adapter var iconDrawableFactory: IconDrawableFactory? = null var iconPickerListener: IconPickerListener? = 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(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) } }