Add option for system accent

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-04-29 15:03:56 +05:30
parent ad1a893d8b
commit 4391e485c3
11 changed files with 59 additions and 8 deletions

View File

@@ -21,6 +21,7 @@ package com.aurora.store.util
import android.content.Context
import android.os.Build
import com.aurora.extensions.isSAndAbove
import com.aurora.store.R
import java.text.DecimalFormat
import java.util.*
@@ -164,6 +165,7 @@ object CommonUtil {
fun getAccentStyleById(accentId: Int): Int {
return when (accentId) {
0 -> R.style.Accent00
1 -> R.style.Accent01
2 -> R.style.Accent02
3 -> R.style.Accent03
@@ -177,7 +179,7 @@ object CommonUtil {
11 -> R.style.Accent11
12 -> R.style.Accent12
13 -> R.style.Accent13
else -> R.style.Accent01
else -> if (isSAndAbove()) R.style.Accent00 else R.style.Accent01
}
}
}
}

View File

@@ -24,6 +24,7 @@ import android.content.res.ColorStateList
import android.graphics.Color
import android.util.AttributeSet
import android.widget.RelativeLayout
import androidx.core.content.res.ResourcesCompat
import androidx.core.view.isVisible
import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp
@@ -63,13 +64,22 @@ class AccentView : RelativeLayout {
@ModelProp
fun accent(accent: Accent) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
B.img.backgroundTintList = ColorStateList.valueOf(Color.parseColor(accent.accent))
if (accent.accent.isBlank()) {
B.img.background = ResourcesCompat.getDrawable(
context.resources,
R.drawable.ic_settings_suggest,
context.theme
)
} else {
B.img.setBackgroundColor(Color.parseColor(accent.accent))
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
B.img.backgroundTintList = ColorStateList.valueOf(Color.parseColor(accent.accent))
} else {
B.img.setBackgroundColor(Color.parseColor(accent.accent))
}
}
}
@ModelProp
fun markChecked(isChecked: Boolean) {
B.tick.isVisible = isChecked

View File

@@ -37,6 +37,7 @@ import com.aurora.store.util.Preferences.PREFERENCE_THEME_ACCENT
import com.aurora.store.util.Preferences.PREFERENCE_THEME_TYPE
import com.aurora.extensions.applyTheme
import com.aurora.extensions.hide
import com.aurora.extensions.isSAndAbove
import com.aurora.extensions.isVisible
import com.aurora.extensions.show
import com.aurora.store.util.save
@@ -54,7 +55,7 @@ class AccentFragment : BaseFragment() {
private lateinit var B: FragmentOnboardingAccentBinding
private var themeId: Int = 0
private var accentId: Int = 1
private var accentId: Int = if (isSAndAbove()) 0 else 1
override fun onCreateView(
inflater: LayoutInflater,
@@ -102,6 +103,10 @@ class AccentFragment : BaseFragment() {
setFilterDuplicates(true)
accentList.forEach {
if (it.id == 0) {
if (!isSAndAbove()) return@forEach
}
add(
AccentViewModel_()
.id(it.id)

View File

@@ -26,6 +26,7 @@ import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.aurora.Constants
import com.aurora.extensions.isSAndAbove
import com.aurora.extensions.open
import com.aurora.store.R
import com.aurora.store.databinding.ActivityOnboardingBinding
@@ -177,7 +178,7 @@ class OnboardingActivity : BaseActivity() {
/*Customization*/
save(PREFERENCE_THEME_TYPE, 0)
save(PREFERENCE_THEME_ACCENT, 1)
save(PREFERENCE_THEME_ACCENT, if (isSAndAbove()) 0 else 1)
save(PREFERENCE_DEFAULT_SELECTED_TAB, 0)
save(PREFERENCE_QUICK_EXIT, false)
save(PREFERENCE_FOR_YOU, true)