some more work on the color customization themes
This commit is contained in:
parent
895bd88fe4
commit
67fc045817
7 changed files with 1249 additions and 33 deletions
|
@ -4,8 +4,6 @@ import android.annotation.SuppressLint
|
|||
import android.annotation.TargetApi
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
|
@ -14,9 +12,7 @@ import android.provider.DocumentsContract
|
|||
import android.support.v4.app.ActivityCompat
|
||||
import android.support.v4.util.Pair
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.text.SpannableString
|
||||
import android.text.style.AbsoluteSizeSpan
|
||||
import android.view.Menu
|
||||
import android.text.Html
|
||||
import android.view.MenuItem
|
||||
import com.simplemobiletools.commons.R
|
||||
import com.simplemobiletools.commons.asynctasks.CopyMoveTask
|
||||
|
@ -40,6 +36,7 @@ open class BaseSimpleActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
setTheme(getThemeId())
|
||||
super.onCreate(savedInstanceState)
|
||||
if (!packageName.startsWith("com.simplemobiletools.", true)) {
|
||||
if ((0..50).random() == 10 || baseConfig.appRunCount % 100 == 0) {
|
||||
|
@ -54,7 +51,6 @@ open class BaseSimpleActivity : AppCompatActivity() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
updateBackgroundColor()
|
||||
updateActionbarColor()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
|
@ -81,6 +77,7 @@ open class BaseSimpleActivity : AppCompatActivity() {
|
|||
|
||||
fun updateActionbarColor(color: Int = baseConfig.primaryColor) {
|
||||
supportActionBar?.setBackgroundDrawable(ColorDrawable(color))
|
||||
supportActionBar?.title = Html.fromHtml("<font color='${color.getContrastColor().toHex()}'>${supportActionBar?.title}</font>")
|
||||
updateStatusbarColor(color)
|
||||
}
|
||||
|
||||
|
@ -90,18 +87,6 @@ open class BaseSimpleActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
fun updateMenuTextSize(resources: Resources, menu: Menu) {
|
||||
val textSize = resources.getDimension(R.dimen.normal_text_size).toInt()
|
||||
(0 until menu.size())
|
||||
.map { menu.getItem(it) }
|
||||
.forEach {
|
||||
SpannableString(it.title).apply {
|
||||
setSpan(AbsoluteSizeSpan(textSize, false), 0, length, 0)
|
||||
it.title = this
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, resultData)
|
||||
if (requestCode == OPEN_DOCUMENT_TREE && resultCode == Activity.RESULT_OK && resultData != null) {
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.*
|
|||
|
||||
class LineColorPickerDialog(val activity: BaseSimpleActivity, val callback: (wasChanged: Boolean, color: Int) -> Unit) {
|
||||
private val PRIMARY_COLORS_COUNT = 19
|
||||
private val DEFAULT_COLOR_VALUE = -689152
|
||||
private val DEFAULT_PRIMARY_COLOR_INDEX = 14
|
||||
private val DEFAULT_SECONDARY_COLOR_INDEX = 6
|
||||
|
||||
|
@ -29,7 +30,7 @@ class LineColorPickerDialog(val activity: BaseSimpleActivity, val callback: (was
|
|||
val secondaryColors = getColorsForIndex(index)
|
||||
secondary_line_color_picker.updateColors(secondaryColors)
|
||||
dialog?.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
|
||||
activity.updateActionbarColor(secondary_line_color_picker.selectedColor())
|
||||
activity.updateActionbarColor(secondary_line_color_picker.getCurrentColor())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,21 +53,28 @@ class LineColorPickerDialog(val activity: BaseSimpleActivity, val callback: (was
|
|||
}
|
||||
|
||||
private fun getColorIndexes(color: Int): Pair<Int, Int> {
|
||||
if (color == DEFAULT_COLOR_VALUE) {
|
||||
return getDefaultColorPair()
|
||||
}
|
||||
|
||||
for (i in 0 until PRIMARY_COLORS_COUNT) {
|
||||
val colors = getColorsForIndex(i)
|
||||
val size = colors.size
|
||||
(0 until size).filter { color == colors[it] }
|
||||
.forEach { return Pair(i, it) }
|
||||
}
|
||||
return Pair(DEFAULT_PRIMARY_COLOR_INDEX, DEFAULT_SECONDARY_COLOR_INDEX)
|
||||
|
||||
return getDefaultColorPair()
|
||||
}
|
||||
|
||||
private fun getDefaultColorPair() = Pair(DEFAULT_PRIMARY_COLOR_INDEX, DEFAULT_SECONDARY_COLOR_INDEX)
|
||||
|
||||
private fun dialogDismissed() {
|
||||
callback(false, 0)
|
||||
}
|
||||
|
||||
private fun dialogConfirmed() {
|
||||
val color = view.secondary_line_color_picker.selectedColor()
|
||||
val color = view.secondary_line_color_picker.getCurrentColor()
|
||||
callback(true, color)
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,198 @@
|
|||
package com.simplemobiletools.commons.extensions
|
||||
|
||||
import android.app.Activity
|
||||
import com.simplemobiletools.commons.R
|
||||
|
||||
fun Activity.getThemeId() = when (baseConfig.primaryColor) {
|
||||
-12846 -> R.style.AppTheme_Red_100
|
||||
-1074534 -> R.style.AppTheme_Red_200
|
||||
-1739917 -> R.style.AppTheme_Red_300
|
||||
-1092784 -> R.style.AppTheme_Red_400
|
||||
-769226 -> R.style.AppTheme_Red_500
|
||||
-1754827 -> R.style.AppTheme_Red_600
|
||||
-2937041 -> R.style.AppTheme_Red_700
|
||||
-3790808 -> R.style.AppTheme_Red_800
|
||||
-4776932 -> R.style.AppTheme_Red_900
|
||||
|
||||
-476208 -> R.style.AppTheme_Pink_100
|
||||
-749647 -> R.style.AppTheme_Pink_200
|
||||
-1023342 -> R.style.AppTheme_Pink_300
|
||||
-1294214 -> R.style.AppTheme_Pink_400
|
||||
-1499549 -> R.style.AppTheme_Pink_500
|
||||
-2614432 -> R.style.AppTheme_Pink_600
|
||||
-4056997 -> R.style.AppTheme_Pink_700
|
||||
-5434281 -> R.style.AppTheme_Pink_800
|
||||
-7860657 -> R.style.AppTheme_Pink_900
|
||||
|
||||
-1982745 -> R.style.AppTheme_Purple_100
|
||||
-3238952 -> R.style.AppTheme_Purple_200
|
||||
-4560696 -> R.style.AppTheme_Purple_300
|
||||
-5552196 -> R.style.AppTheme_Purple_400
|
||||
-6543440 -> R.style.AppTheme_Purple_500
|
||||
-7461718 -> R.style.AppTheme_Purple_600
|
||||
-8708190 -> R.style.AppTheme_Purple_700
|
||||
-9823334 -> R.style.AppTheme_Purple_800
|
||||
-11922292 -> R.style.AppTheme_Purple_900
|
||||
|
||||
-3029783 -> R.style.AppTheme_Deep_Purple_100
|
||||
-5005861 -> R.style.AppTheme_Deep_Purple_200
|
||||
-6982195 -> R.style.AppTheme_Deep_Purple_300
|
||||
-8497214 -> R.style.AppTheme_Deep_Purple_400
|
||||
-10011977 -> R.style.AppTheme_Deep_Purple_500
|
||||
-10603087 -> R.style.AppTheme_Deep_Purple_600
|
||||
-11457112 -> R.style.AppTheme_Deep_Purple_700
|
||||
-12245088 -> R.style.AppTheme_Deep_Purple_800
|
||||
-13558894 -> R.style.AppTheme_Deep_Purple_900
|
||||
|
||||
-3814679 -> R.style.AppTheme_Indigo_100
|
||||
-6313766 -> R.style.AppTheme_Indigo_200
|
||||
-8812853 -> R.style.AppTheme_Indigo_300
|
||||
-10720320 -> R.style.AppTheme_Indigo_400
|
||||
-12627531 -> R.style.AppTheme_Indigo_500
|
||||
-13022805 -> R.style.AppTheme_Indigo_600
|
||||
-13615201 -> R.style.AppTheme_Indigo_700
|
||||
-14142061 -> R.style.AppTheme_Indigo_800
|
||||
-15064194 -> R.style.AppTheme_Indigo_900
|
||||
|
||||
-4464901 -> R.style.AppTheme_Blue_100
|
||||
-7288071 -> R.style.AppTheme_Blue_200
|
||||
-10177034 -> R.style.AppTheme_Blue_300
|
||||
-12409355 -> R.style.AppTheme_Blue_400
|
||||
-14575885 -> R.style.AppTheme_Blue_500
|
||||
-14776091 -> R.style.AppTheme_Blue_600
|
||||
-15108398 -> R.style.AppTheme_Blue_700
|
||||
-15374912 -> R.style.AppTheme_Blue_800
|
||||
-15906911 -> R.style.AppTheme_Blue_900
|
||||
|
||||
-4987396 -> R.style.AppTheme_Light_Blue_100
|
||||
-8268550 -> R.style.AppTheme_Light_Blue_200
|
||||
-11549705 -> R.style.AppTheme_Light_Blue_300
|
||||
-14043396 -> R.style.AppTheme_Light_Blue_400
|
||||
-16537100 -> R.style.AppTheme_Light_Blue_500
|
||||
-16540699 -> R.style.AppTheme_Light_Blue_600
|
||||
-16611119 -> R.style.AppTheme_Light_Blue_700
|
||||
-16615491 -> R.style.AppTheme_Light_Blue_800
|
||||
-16689253 -> R.style.AppTheme_Light_Blue_900
|
||||
|
||||
-5051406 -> R.style.AppTheme_Cyan_100
|
||||
-8331542 -> R.style.AppTheme_Cyan_200
|
||||
-11677471 -> R.style.AppTheme_Cyan_300
|
||||
-14235942 -> R.style.AppTheme_Cyan_400
|
||||
-16728876 -> R.style.AppTheme_Cyan_500
|
||||
-16732991 -> R.style.AppTheme_Cyan_600
|
||||
-16738393 -> R.style.AppTheme_Cyan_700
|
||||
-16743537 -> R.style.AppTheme_Cyan_800
|
||||
-16752540 -> R.style.AppTheme_Cyan_900
|
||||
|
||||
-5054501 -> R.style.AppTheme_Teal_100
|
||||
-8336444 -> R.style.AppTheme_Teal_200
|
||||
-11684180 -> R.style.AppTheme_Teal_300
|
||||
-14244198 -> R.style.AppTheme_Teal_400
|
||||
-16738680 -> R.style.AppTheme_Teal_500
|
||||
-16742021 -> R.style.AppTheme_Teal_600
|
||||
-16746133 -> R.style.AppTheme_Teal_700
|
||||
-16750244 -> R.style.AppTheme_Teal_800
|
||||
-16757440 -> R.style.AppTheme_Teal_900
|
||||
|
||||
-3610935 -> R.style.AppTheme_Green_100
|
||||
-5908825 -> R.style.AppTheme_Green_200
|
||||
-8271996 -> R.style.AppTheme_Green_300
|
||||
-10044566 -> R.style.AppTheme_Green_400
|
||||
-11751600 -> R.style.AppTheme_Green_500
|
||||
-12345273 -> R.style.AppTheme_Green_600
|
||||
-13070788 -> R.style.AppTheme_Green_700
|
||||
-13730510 -> R.style.AppTheme_Green_800
|
||||
-14983648 -> R.style.AppTheme_Green_900
|
||||
|
||||
-2298424 -> R.style.AppTheme_Light_Green_100
|
||||
-3808859 -> R.style.AppTheme_Light_Green_200
|
||||
-5319295 -> R.style.AppTheme_Light_Green_300
|
||||
-6501275 -> R.style.AppTheme_Light_Green_400
|
||||
-7617718 -> R.style.AppTheme_Light_Green_500
|
||||
-8604862 -> R.style.AppTheme_Light_Green_600
|
||||
-9920712 -> R.style.AppTheme_Light_Green_700
|
||||
-11171025 -> R.style.AppTheme_Light_Green_800
|
||||
-13407970 -> R.style.AppTheme_Light_Green_900
|
||||
|
||||
-985917 -> R.style.AppTheme_Lime_100
|
||||
-1642852 -> R.style.AppTheme_Lime_200
|
||||
-2300043 -> R.style.AppTheme_Lime_300
|
||||
-2825897 -> R.style.AppTheme_Lime_400
|
||||
-3285959 -> R.style.AppTheme_Lime_500
|
||||
-4142541 -> R.style.AppTheme_Lime_600
|
||||
-5983189 -> R.style.AppTheme_Lime_700
|
||||
-6382300 -> R.style.AppTheme_Lime_800
|
||||
-8227049 -> R.style.AppTheme_Lime_900
|
||||
|
||||
-1596 -> R.style.AppTheme_Yellow_100
|
||||
-2672 -> R.style.AppTheme_Yellow_200
|
||||
-3722 -> R.style.AppTheme_Yellow_300
|
||||
-4520 -> R.style.AppTheme_Yellow_400
|
||||
-5317 -> R.style.AppTheme_Yellow_500
|
||||
-141259 -> R.style.AppTheme_Yellow_600
|
||||
-278483 -> R.style.AppTheme_Yellow_700
|
||||
-415707 -> R.style.AppTheme_Yellow_800
|
||||
-688361 -> R.style.AppTheme_Yellow_900
|
||||
|
||||
-4941 -> R.style.AppTheme_Amber_100
|
||||
-8062 -> R.style.AppTheme_Amber_200
|
||||
-10929 -> R.style.AppTheme_Amber_300
|
||||
-13784 -> R.style.AppTheme_Amber_400
|
||||
-16121 -> R.style.AppTheme_Amber_500
|
||||
-19712 -> R.style.AppTheme_Amber_600
|
||||
-24576 -> R.style.AppTheme_Amber_700
|
||||
-28928 -> R.style.AppTheme_Amber_800
|
||||
-37120 -> R.style.AppTheme_Amber_900
|
||||
|
||||
-8014 -> R.style.AppTheme_Orange_100
|
||||
-13184 -> R.style.AppTheme_Orange_200
|
||||
-18611 -> R.style.AppTheme_Orange_300
|
||||
-22746 -> R.style.AppTheme_Orange_400
|
||||
-26624 -> R.style.AppTheme_Orange_500
|
||||
-291840 -> R.style.AppTheme_Orange_600
|
||||
-689152 -> R.style.AppTheme_Orange_700
|
||||
-1086464 -> R.style.AppTheme_Orange_800
|
||||
-1683200 -> R.style.AppTheme_Orange_900
|
||||
|
||||
-13124 -> R.style.AppTheme_Deep_Orange_100
|
||||
-21615 -> R.style.AppTheme_Deep_Orange_200
|
||||
-30107 -> R.style.AppTheme_Deep_Orange_300
|
||||
-36797 -> R.style.AppTheme_Deep_Orange_400
|
||||
-43230 -> R.style.AppTheme_Deep_Orange_500
|
||||
-765666 -> R.style.AppTheme_Deep_Orange_600
|
||||
-1684967 -> R.style.AppTheme_Deep_Orange_700
|
||||
-2604267 -> R.style.AppTheme_Deep_Orange_800
|
||||
-4246004 -> R.style.AppTheme_Deep_Orange_900
|
||||
|
||||
-2634552 -> R.style.AppTheme_Brown_100
|
||||
-4412764 -> R.style.AppTheme_Brown_200
|
||||
-6190977 -> R.style.AppTheme_Brown_300
|
||||
-7508381 -> R.style.AppTheme_Brown_400
|
||||
-8825528 -> R.style.AppTheme_Brown_500
|
||||
-9614271 -> R.style.AppTheme_Brown_600
|
||||
-10665929 -> R.style.AppTheme_Brown_700
|
||||
-11652050 -> R.style.AppTheme_Brown_800
|
||||
-12703965 -> R.style.AppTheme_Brown_900
|
||||
|
||||
-1 -> R.style.AppTheme_Grey_100
|
||||
-1118482 -> R.style.AppTheme_Grey_200
|
||||
-2039584 -> R.style.AppTheme_Grey_300
|
||||
-4342339 -> R.style.AppTheme_Grey_400
|
||||
-6381922 -> R.style.AppTheme_Grey_500
|
||||
-9079435 -> R.style.AppTheme_Grey_600
|
||||
-10395295 -> R.style.AppTheme_Grey_700
|
||||
-12434878 -> R.style.AppTheme_Grey_800
|
||||
-16777216 -> R.style.AppTheme_Grey_900
|
||||
|
||||
-3155748 -> R.style.AppTheme_Blue_Grey_100
|
||||
-5194811 -> R.style.AppTheme_Blue_Grey_200
|
||||
-7297874 -> R.style.AppTheme_Blue_Grey_300
|
||||
-8875876 -> R.style.AppTheme_Blue_Grey_400
|
||||
-10453621 -> R.style.AppTheme_Blue_Grey_500
|
||||
-11243910 -> R.style.AppTheme_Blue_Grey_600
|
||||
-12232092 -> R.style.AppTheme_Blue_Grey_700
|
||||
-13154481 -> R.style.AppTheme_Blue_Grey_800
|
||||
-14273992 -> R.style.AppTheme_Blue_Grey_900
|
||||
|
||||
else -> throw RuntimeException("Unknown theme id ${baseConfig.primaryColor}")
|
||||
}
|
|
@ -4,10 +4,13 @@ import android.graphics.Color
|
|||
import java.util.*
|
||||
|
||||
fun Int.getContrastColor(): Int {
|
||||
val DARK_GREY = -13421773
|
||||
val y = (299 * Color.red(this) + 587 * Color.green(this) + 114 * Color.blue(this)) / 1000
|
||||
return if (y >= 128) Color.BLACK else Color.WHITE
|
||||
return if (y >= 186) DARK_GREY else Color.WHITE
|
||||
}
|
||||
|
||||
fun Int.toHex() = String.format("#%06X", 0xFFFFFF and this)
|
||||
|
||||
fun Int.adjustAlpha(factor: Float): Int {
|
||||
val alpha = Math.round(Color.alpha(this) * factor)
|
||||
val red = Color.red(this)
|
||||
|
|
|
@ -15,7 +15,7 @@ val SD_CARD_PATH = "sd_card_path_2"
|
|||
val INTERNAL_STORAGE_PATH = "internal_storage_path"
|
||||
val TEXT_COLOR = "text_color"
|
||||
val BACKGROUND_COLOR = "background_color"
|
||||
val PRIMARY_COLOR = "primary_color"
|
||||
val PRIMARY_COLOR = "primary_color_2"
|
||||
val CUSTOM_TEXT_COLOR = "custom_text_color"
|
||||
val CUSTOM_BACKGROUND_COLOR = "custom_background_color"
|
||||
val CUSTOM_PRIMARY_COLOR = "custom_primary_color"
|
||||
|
|
|
@ -66,7 +66,7 @@ class LineColorPicker(context: Context, attrs: AttributeSet) : LinearLayout(cont
|
|||
updateItemMargin(lastColorIndex, false)
|
||||
}
|
||||
|
||||
fun selectedColor() = colors[lastColorIndex]
|
||||
fun getCurrentColor() = colors[lastColorIndex]
|
||||
|
||||
private fun initColorPicker() {
|
||||
removeAllViews()
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue