├── .gitignore ├── .idea ├── .gitignore ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── compiler.xml ├── gradle.xml ├── inspectionProfiles │ └── Project_Default.xml ├── jarRepositories.xml ├── misc.xml └── vcs.xml ├── app ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── dev │ │ └── sasikanth │ │ └── colorpicker │ │ └── ExampleInstrumentedTest.kt │ ├── main │ ├── AndroidManifest.xml │ ├── java │ │ └── dev │ │ │ └── sasikanth │ │ │ └── colorpicker │ │ │ ├── ColorPicker.kt │ │ │ ├── MainActivity.kt │ │ │ └── ui │ │ │ ├── Color.kt │ │ │ ├── Shape.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── mipmap-hdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-mdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── mipmap-xxxhdpi │ │ ├── ic_launcher.png │ │ └── ic_launcher_round.png │ │ ├── values-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test │ └── java │ └── dev │ └── sasikanth │ └── colorpicker │ └── ExampleUnitTest.kt ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | .cxx 15 | local.properties 16 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /.idea/codeStyles/Project.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 211 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 21 | 22 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/jarRepositories.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 10 | 14 | 15 | 19 | 20 | 24 | 25 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | id 'kotlin-android' 4 | } 5 | 6 | android { 7 | compileSdkVersion 30 8 | buildToolsVersion "30.0.0" 9 | 10 | defaultConfig { 11 | applicationId "dev.sasikanth.colorpicker" 12 | minSdkVersion 23 13 | targetSdkVersion 30 14 | versionCode 1 15 | versionName "1.0" 16 | 17 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 18 | } 19 | 20 | buildTypes { 21 | release { 22 | minifyEnabled false 23 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 24 | } 25 | } 26 | compileOptions { 27 | sourceCompatibility JavaVersion.VERSION_1_8 28 | targetCompatibility JavaVersion.VERSION_1_8 29 | } 30 | kotlinOptions { 31 | jvmTarget = '1.8' 32 | } 33 | buildFeatures { 34 | compose true 35 | } 36 | composeOptions { 37 | kotlinCompilerExtensionVersion "${compose_version}" 38 | kotlinCompilerVersion '1.3.70-dev-withExperimentalGoogleExtensions-20200424' 39 | } 40 | } 41 | 42 | dependencies { 43 | 44 | implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" 45 | implementation 'androidx.core:core-ktx:1.3.0' 46 | implementation 'androidx.appcompat:appcompat:1.1.0' 47 | implementation 'com.google.android.material:material:1.1.0' 48 | implementation "androidx.ui:ui-layout:$compose_version" 49 | implementation "androidx.ui:ui-material:$compose_version" 50 | implementation "androidx.ui:ui-tooling:$compose_version" 51 | testImplementation 'junit:junit:4.+' 52 | androidTestImplementation 'androidx.test.ext:junit:1.1.1' 53 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' 54 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/androidTest/java/dev/sasikanth/colorpicker/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("dev.sasikanth.colorpicker", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/ColorPicker.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker 2 | 3 | import androidx.compose.Composable 4 | import androidx.compose.getValue 5 | import androidx.compose.mutableStateOf 6 | import androidx.compose.setValue 7 | import androidx.compose.state 8 | import androidx.ui.core.DensityAmbient 9 | import androidx.ui.core.Modifier 10 | import androidx.ui.core.WithConstraints 11 | import androidx.ui.core.clip 12 | import androidx.ui.core.drawShadow 13 | import androidx.ui.core.gesture.tapGestureFilter 14 | import androidx.ui.foundation.Box 15 | import androidx.ui.foundation.ContentGravity 16 | import androidx.ui.foundation.drawBackground 17 | import androidx.ui.foundation.drawBorder 18 | import androidx.ui.foundation.gestures.DragDirection 19 | import androidx.ui.foundation.gestures.draggable 20 | import androidx.ui.foundation.shape.corner.RoundedCornerShape 21 | import androidx.ui.graphics.Color 22 | import androidx.ui.graphics.HorizontalGradient 23 | import androidx.ui.layout.fillMaxSize 24 | import androidx.ui.layout.height 25 | import androidx.ui.layout.offset 26 | import androidx.ui.layout.padding 27 | import androidx.ui.layout.width 28 | import androidx.ui.tooling.preview.Preview 29 | import androidx.ui.unit.Dp 30 | import androidx.ui.unit.Px 31 | import androidx.ui.unit.dp 32 | import dev.sasikanth.colorpicker.ui.ColorPickerTheme 33 | import dev.sasikanth.colorpicker.ui.colors 34 | import android.graphics.Color as AndroidColor 35 | 36 | /** 37 | * Gradient color picker 38 | * 39 | * @sample dev.sasikanth.colorpicker.ColorPickerPreview 40 | */ 41 | @Composable 42 | fun ColorPicker( 43 | pickerHeight: Dp = 24.dp, 44 | colorSelected: (Color) -> Unit 45 | ) { 46 | WithConstraints { 47 | // Since we start from hue 0 setting the default selected color 48 | // to red, but need to find a better way of getting initial color. 49 | var selectedColor by mutableStateOf(Color.Red) 50 | var position by state { 0f } 51 | 52 | val squareSizePx = with(DensityAmbient.current) { 53 | pickerHeight.toPx() 54 | } 55 | val pickerWidthPx = with(DensityAmbient.current) { 56 | maxWidth.toPx() 57 | } 58 | val pickerMaxWidth = pickerWidthPx.value - squareSizePx.value 59 | 60 | val horizontalGradient = HorizontalGradient( 61 | colors = colors(), 62 | startX = Px.Zero.value, 63 | endX = pickerWidthPx.value 64 | ) 65 | val roundedCornerShape = RoundedCornerShape(pickerHeight / 2) 66 | 67 | val drag = Modifier.draggable( 68 | dragDirection = DragDirection.Horizontal, 69 | onDragStarted = { 70 | position = it.x.value 71 | }, 72 | onDragDeltaConsumptionRequested = { delta -> 73 | val old = position 74 | // Making sure the sum of delta and position is within the 0 and 75 | // max width of picker view 76 | position = (delta + position).coerceIn(0f, pickerMaxWidth) 77 | 78 | val hsvColor = getHsvColor(position, pickerMaxWidth) 79 | selectedColor = Color(hsvColor) 80 | colorSelected(selectedColor) 81 | 82 | position - old 83 | } 84 | ) 85 | 86 | // Color Picker View 87 | Box( 88 | modifier = drag 89 | .tapGestureFilter { 90 | position = it.x.value 91 | 92 | val hsvColor = getHsvColor(position, pickerMaxWidth) 93 | selectedColor = Color(hsvColor) 94 | colorSelected(selectedColor) 95 | } 96 | .height(pickerHeight) 97 | .width(maxWidth) 98 | .clip(shape = roundedCornerShape) 99 | .drawBackground(brush = horizontalGradient, shape = roundedCornerShape) 100 | ) { 101 | 102 | val xOffset = with(DensityAmbient.current) { position.toDp() } 103 | val squareSize = with(DensityAmbient.current) { squareSizePx.toDp() } 104 | 105 | // Square box to show the preview of selected color 106 | Box( 107 | Modifier 108 | .offset(x = xOffset, y = 0.dp) 109 | .width(squareSize) 110 | .height(squareSize) 111 | .drawBorder(size = 2.dp, color = Color.White, shape = roundedCornerShape) 112 | .drawShadow(elevation = 2.dp, shape = roundedCornerShape), 113 | shape = roundedCornerShape, 114 | backgroundColor = selectedColor 115 | ) 116 | 117 | } 118 | } 119 | } 120 | 121 | private fun getHsvColor(position: Float, maxWidth: Float): Int { 122 | // dividing the position of drag by max width of the picker view 123 | // and then we multiply it by 359 which is the final HUE value 124 | val hue = (position / maxWidth) * 359f 125 | return AndroidColor.HSVToColor(floatArrayOf(hue, 1f, 1f)) 126 | } 127 | 128 | @Preview( 129 | name = "ColorPicker", 130 | widthDp = 320, 131 | heightDp = 48 132 | ) 133 | @Composable 134 | fun ColorPickerPreview() { 135 | ColorPickerTheme { 136 | Box( 137 | gravity = ContentGravity.Center, 138 | modifier = Modifier.fillMaxSize().padding(start = 16.dp, end = 16.dp) 139 | ) { 140 | ColorPicker {} 141 | } 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker 2 | 3 | import android.os.Bundle 4 | import androidx.appcompat.app.AppCompatActivity 5 | import androidx.compose.getValue 6 | import androidx.compose.mutableStateOf 7 | import androidx.compose.setValue 8 | import androidx.ui.core.Modifier 9 | import androidx.ui.core.drawShadow 10 | import androidx.ui.core.setContent 11 | import androidx.ui.core.tag 12 | import androidx.ui.foundation.Box 13 | import androidx.ui.foundation.shape.corner.RoundedCornerShape 14 | import androidx.ui.graphics.Color 15 | import androidx.ui.layout.ConstraintLayout 16 | import androidx.ui.layout.ConstraintSet 17 | import androidx.ui.layout.fillMaxHeight 18 | import androidx.ui.layout.height 19 | import androidx.ui.layout.padding 20 | import androidx.ui.layout.width 21 | import androidx.ui.unit.dp 22 | import dev.sasikanth.colorpicker.ui.ColorPickerTheme 23 | 24 | class MainActivity : AppCompatActivity() { 25 | 26 | private var selectedColor by mutableStateOf(Color.White) 27 | 28 | override fun onCreate(savedInstanceState: Bundle?) { 29 | super.onCreate(savedInstanceState) 30 | setContent { 31 | ColorPickerTheme() { 32 | val colorPicker = "ColorPicker" 33 | val card = "Card" 34 | val constraintSet = ConstraintSet { 35 | tag(card).apply { 36 | right constrainTo parent.right 37 | left constrainTo parent.left 38 | top constrainTo parent.top 39 | bottom constrainTo tag(colorPicker).top 40 | } 41 | 42 | tag(colorPicker).apply { 43 | right constrainTo parent.right 44 | left constrainTo parent.left 45 | bottom constrainTo parent.bottom 46 | } 47 | } 48 | 49 | ConstraintLayout(constraintSet = constraintSet, modifier = Modifier.fillMaxHeight()) { 50 | Box( 51 | shape = RoundedCornerShape(8.dp), 52 | backgroundColor = selectedColor, 53 | modifier = Modifier 54 | .tag(card) 55 | .drawShadow(elevation = 8.dp, shape = RoundedCornerShape(8.dp)) 56 | .width(200.dp) 57 | .height(200.dp) 58 | ) 59 | 60 | Box( 61 | modifier = Modifier 62 | .tag(colorPicker) 63 | .padding(start = 16.dp, end = 16.dp, bottom = 32.dp) 64 | ) { 65 | ColorPicker(colorSelected = { color -> 66 | selectedColor = color 67 | }) 68 | } 69 | } 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/ui/Color.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker.ui 2 | 3 | import androidx.ui.graphics.Color 4 | import android.graphics.Color as AndroidColor 5 | 6 | val purple200 = Color(0xFFBB86FC) 7 | val purple500 = Color(0xFF6200EE) 8 | val purple700 = Color(0xFF3700B3) 9 | val teal200 = Color(0xFF03DAC5) 10 | 11 | fun colors(): List { 12 | val colorRange = 0..359 13 | return colorRange.map { 14 | val hsvColor = AndroidColor.HSVToColor(floatArrayOf(it.toFloat(), 1f, 1f)) 15 | Color(hsvColor) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/ui/Shape.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker.ui 2 | 3 | import androidx.ui.foundation.shape.corner.RoundedCornerShape 4 | import androidx.ui.material.Shapes 5 | import androidx.ui.unit.dp 6 | 7 | val shapes = Shapes( 8 | small = RoundedCornerShape(4.dp), 9 | medium = RoundedCornerShape(4.dp), 10 | large = RoundedCornerShape(0.dp) 11 | ) -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/ui/Theme.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker.ui 2 | 3 | import androidx.compose.Composable 4 | import androidx.ui.material.MaterialTheme 5 | import androidx.ui.material.lightColorPalette 6 | 7 | @Composable 8 | fun ColorPickerTheme(content: @Composable() () -> Unit) { 9 | val colors = lightColorPalette( 10 | primary = purple500, 11 | primaryVariant = purple700, 12 | secondary = teal200 13 | ) 14 | 15 | MaterialTheme( 16 | colors = colors, 17 | typography = typography, 18 | shapes = shapes, 19 | content = content 20 | ) 21 | } -------------------------------------------------------------------------------- /app/src/main/java/dev/sasikanth/colorpicker/ui/Type.kt: -------------------------------------------------------------------------------- 1 | package dev.sasikanth.colorpicker.ui 2 | 3 | import androidx.ui.material.Typography 4 | import androidx.ui.text.TextStyle 5 | import androidx.ui.text.font.FontFamily 6 | import androidx.ui.text.font.FontWeight 7 | import androidx.ui.unit.sp 8 | 9 | // Set of Material typography styles to start with 10 | val typography = Typography( 11 | body1 = TextStyle( 12 | fontFamily = FontFamily.Default, 13 | fontWeight = FontWeight.Normal, 14 | fontSize = 16.sp 15 | ) 16 | /* Other default text styles to override 17 | button = TextStyle( 18 | fontFamily = FontFamily.Default, 19 | fontWeight = FontWeight.W500, 20 | fontSize = 14.sp 21 | ), 22 | caption = TextStyle( 23 | fontFamily = FontFamily.Default, 24 | fontWeight = FontWeight.Normal, 25 | fontSize = 12.sp 26 | ) 27 | */ 28 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 | 155 | 160 | 165 | 170 | 171 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msasikanth/compose_colorpicker/c3865e35912ed2d36d2cc6e24ccd59e3750955e3/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | ColorPicker 3 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 17 | 18 | 22 | 23 |