diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/adapters/UnitTypesAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/adapters/UnitTypesAdapter.kt index bc71b1f6..e63fd4ab 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/adapters/UnitTypesAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/adapters/UnitTypesAdapter.kt @@ -1,14 +1,17 @@ package com.simplemobiletools.calculator.adapters +import android.graphics.drawable.LayerDrawable +import android.graphics.drawable.RippleDrawable import android.view.View import android.view.ViewGroup +import androidx.core.content.res.ResourcesCompat import androidx.recyclerview.widget.RecyclerView +import com.simplemobiletools.calculator.R import com.simplemobiletools.calculator.activities.SimpleActivity import com.simplemobiletools.calculator.databinding.ItemUnitTypeBinding +import com.simplemobiletools.calculator.extensions.getStrokeColor import com.simplemobiletools.calculator.helpers.converters.Converter -import com.simplemobiletools.commons.extensions.applyColorFilter -import com.simplemobiletools.commons.extensions.getProperPrimaryColor -import com.simplemobiletools.commons.extensions.getProperTextColor +import com.simplemobiletools.commons.extensions.* class UnitTypesAdapter (val activity: SimpleActivity, val items: List, val itemClick: (id: Int) -> Unit) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder = @@ -28,6 +31,12 @@ class UnitTypesAdapter (val activity: SimpleActivity, val items: List binding.unitImage.setImageResource(item.imageResId) binding.unitLabel.setText(item.nameResId) + val rippleBg = ResourcesCompat.getDrawable(resources, R.drawable.unit_type_background, context.theme) as RippleDrawable + val layerDrawable = rippleBg.findDrawableByLayerId(R.id.background_holder) as LayerDrawable + layerDrawable.findDrawableByLayerId(R.id.background_stroke).applyColorFilter(context.getStrokeColor()) + layerDrawable.findDrawableByLayerId(R.id.background_shape).applyColorFilter(context.getProperBackgroundColor().darkenColor(2)) + binding.unitBackground.background = rippleBg + binding.unitLabel.setTextColor(activity.getProperTextColor()) binding.unitImage.applyColorFilter(activity.getProperPrimaryColor()) diff --git a/app/src/main/kotlin/com/simplemobiletools/calculator/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calculator/extensions/Context.kt index 82ab729f..ee059d3b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calculator/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calculator/extensions/Context.kt @@ -4,6 +4,7 @@ import android.appwidget.AppWidgetManager import android.content.ComponentName import android.content.Context import android.content.Intent +import android.graphics.Color import android.net.Uri import android.os.Build import android.provider.Settings @@ -15,6 +16,9 @@ import com.simplemobiletools.calculator.databases.CalculatorDatabase import com.simplemobiletools.calculator.helpers.Config import com.simplemobiletools.calculator.helpers.MyWidgetProvider import com.simplemobiletools.calculator.interfaces.CalculatorDao +import com.simplemobiletools.commons.extensions.getProperBackgroundColor +import com.simplemobiletools.commons.extensions.isUsingSystemDarkTheme +import com.simplemobiletools.commons.extensions.lightenColor import com.simplemobiletools.commons.extensions.showErrorToast val Context.config: Config get() = Config.newInstance(applicationContext) @@ -64,3 +68,20 @@ fun Context.launchChangeAppLanguageIntent() { } } } + +fun Context.getStrokeColor(): Int { + return if (config.isUsingSystemTheme) { + if (isUsingSystemDarkTheme()) { + resources.getColor(com.simplemobiletools.commons.R.color.md_grey_800, theme) + } else { + resources.getColor(com.simplemobiletools.commons.R.color.md_grey_400, theme) + } + } else { + val lighterColor = getProperBackgroundColor().lightenColor() + if (lighterColor == Color.WHITE || lighterColor == Color.BLACK) { + resources.getColor(com.simplemobiletools.commons.R.color.divider_grey, theme) + } else { + lighterColor + } + } +} diff --git a/app/src/main/res/drawable/unit_type_background.xml b/app/src/main/res/drawable/unit_type_background.xml index 7d03375e..4388d332 100644 --- a/app/src/main/res/drawable/unit_type_background.xml +++ b/app/src/main/res/drawable/unit_type_background.xml @@ -1,15 +1,15 @@ - + - + - +