├── app ├── .gitignore ├── src │ ├── main │ │ ├── assets │ │ │ ├── instructions_magisk.md │ │ │ ├── instructions_generic.md │ │ │ ├── instructions_debug.md │ │ │ └── instructions_replace.md │ │ ├── res │ │ │ ├── values │ │ │ │ ├── themes.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── strings.xml │ │ │ ├── mipmap-anydpi │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── drawable │ │ │ │ ├── ic_notifications_black_24dp.xml │ │ │ │ ├── ic_home_black_24dp.xml │ │ │ │ ├── ic_dashboard_black_24dp.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ └── data_extraction_rules.xml │ │ │ └── menu │ │ │ │ └── bottom_nav_menu.xml │ │ ├── graphql │ │ │ └── GetReleases.graphql │ │ ├── java │ │ │ └── io │ │ │ │ └── mkg20001 │ │ │ │ └── nixosimage │ │ │ │ ├── ui │ │ │ │ ├── theme │ │ │ │ │ ├── Theme.kt │ │ │ │ │ ├── Type.kt │ │ │ │ │ └── Color.kt │ │ │ │ ├── install │ │ │ │ │ ├── Install.kt │ │ │ │ │ ├── InstallComposable.kt │ │ │ │ │ └── InstallMagic.kt │ │ │ │ ├── DropdownItem.kt │ │ │ │ └── home │ │ │ │ │ └── HomeComposable.kt │ │ │ │ ├── install │ │ │ │ ├── ImageInstallMethod.kt │ │ │ │ ├── DebugInstallMethod.kt │ │ │ │ ├── MagiskInstallMethod.kt │ │ │ │ └── ReplaceInstallMethod.kt │ │ │ │ ├── extra │ │ │ │ └── ExtraImageUtils.kt │ │ │ │ ├── data │ │ │ │ ├── Utils.kt │ │ │ │ ├── GithHubRelease.kt │ │ │ │ └── ImageDownloader.kt │ │ │ │ └── MainActivity.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── io │ │ │ └── mkg20001 │ │ │ └── nixosimage │ │ │ └── ExampleUnitTest.kt │ ├── debug │ │ └── AndroidManifest.xml │ └── androidTest │ │ └── java │ │ └── io │ │ └── mkg20001 │ │ └── nixosimage │ │ ├── ExampleInstrumentedTest.kt │ │ └── FastlaneScreenshot.kt ├── proguard-rules.pro └── build.gradle.kts ├── fastlane ├── metadata │ └── android │ │ ├── en-US │ │ ├── video.txt │ │ ├── title.txt │ │ ├── short_description.txt │ │ ├── full_description.txt │ │ └── images │ │ │ ├── phoneScreenshots │ │ │ ├── loaded_1745001334513.png │ │ │ └── installing_1745001337235.png │ │ │ ├── tenInchScreenshots │ │ │ ├── loaded_1745001172244.png │ │ │ └── installing_1745001174589.png │ │ │ └── sevenInchScreenshots │ │ │ ├── loaded_1745000981524.png │ │ │ └── installing_1745000983710.png │ │ └── screenshots.html ├── Appfile ├── README.md └── Fastfile ├── .idea ├── .name ├── .gitignore ├── compiler.xml ├── kotlinc.xml ├── graphql-settings.xml ├── AndroidProjectSystem.xml ├── migrations.xml ├── vcs.xml ├── markdown.xml ├── misc.xml ├── gradle.xml ├── runConfigurations.xml ├── runConfigurations │ ├── Run.xml │ └── app.xml ├── deploymentTargetSelector.xml ├── appInsightsSettings.xml ├── androidTestResultsUserPreferences.xml └── inspectionProfiles │ └── Project_Default.xml ├── Gemfile ├── gradle ├── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties └── libs.versions.toml ├── package.nix ├── DPA.md ├── assets ├── terminal-svgrepo-com.svg ├── convert_material_colors.js ├── gradient.svg ├── nix-snowflake-white.svg └── merged-logo.svg ├── Cargo.toml ├── old ├── dashboard │ ├── DashboardViewModel.kt │ └── DashboardFragment.kt ├── notifications │ ├── NotificationsViewModel.kt │ └── NotificationsFragment.kt ├── activity_install.xml ├── layout │ ├── fragment_dashboard.xml │ └── fragment_notifications.xml ├── mobile_navigation.xml ├── MainActivity.kt ├── activity_main.xml ├── HomeViewModel.kt ├── fragment_home.xml └── HomeFragment.kt ├── flake.lock ├── .gitignore ├── flake.nix ├── settings.gradle.kts ├── README.md ├── ui-draft.txt ├── gradle.properties ├── module.nix ├── gradlew.bat ├── src └── main.rs └── gradlew /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/video.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | NixOS Image Installer for Android Terminal -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | NixOS Image for Terminal -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Install NixOS on the Android Terminal -------------------------------------------------------------------------------- /app/src/main/assets/instructions_magisk.md: -------------------------------------------------------------------------------- 1 | - This installation method is untested and may not work -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nix-community/nixos-avf-image-app/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/assets/instructions_generic.md: -------------------------------------------------------------------------------- 1 | - If there are any Terminal startup errors, please try closing and opening Terminal again before resetting, as this often resolves the error. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | This app downloads and installs the NixOS AVF Image for the Android Terminal App 2 | 3 | This allows you to use NixOS in Android Terminal -------------------------------------------------------------------------------- /.idea/compiler.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/kotlinc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 66 | 67 | 68 |

en-US

69 |
70 | 71 | 72 | 75 | 76 | 77 | 82 | 87 | 88 | 89 | 92 | 93 | 94 | 99 | 104 | 105 | 106 | 109 | 110 | 111 | 116 | 121 | 122 |
73 | phoneScreenshots 74 |
78 | 79 | en-US phoneScreenshots 80 | 81 | 83 | 84 | en-US phoneScreenshots 85 | 86 |
90 | sevenInchScreenshots 91 |
95 | 96 | en-US sevenInchScreenshots 97 | 98 | 100 | 101 | en-US sevenInchScreenshots 102 | 103 |
107 | tenInchScreenshots 108 |
112 | 113 | en-US tenInchScreenshots 114 | 115 | 117 | 118 | en-US tenInchScreenshots 119 | 120 |
123 |
124 | 125 |
126 |
127 | 228 | 229 | 230 | -------------------------------------------------------------------------------- /assets/merged-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | image/svg+xml 199 | -------------------------------------------------------------------------------- /app/src/main/java/io/mkg20001/nixosimage/ui/home/HomeComposable.kt: -------------------------------------------------------------------------------- 1 | package io.mkg20001.nixosimage.ui.home 2 | 3 | import android.content.Intent 4 | import android.net.Uri 5 | import android.os.Bundle 6 | import android.os.Environment 7 | import android.provider.Settings 8 | import android.widget.Toast 9 | import androidx.compose.foundation.background 10 | import androidx.compose.foundation.layout.Arrangement 11 | import androidx.compose.foundation.layout.Column 12 | import androidx.compose.foundation.layout.Row 13 | import androidx.compose.foundation.layout.fillMaxWidth 14 | import androidx.compose.foundation.layout.padding 15 | import androidx.compose.material3.Button 16 | import androidx.compose.material3.CircularProgressIndicator 17 | import androidx.compose.material3.MaterialTheme 18 | import androidx.compose.material3.Text 19 | import androidx.compose.runtime.Composable 20 | import androidx.compose.runtime.MutableState 21 | import androidx.compose.runtime.getValue 22 | import androidx.compose.runtime.mutableStateOf 23 | import androidx.compose.runtime.produceState 24 | import androidx.compose.runtime.remember 25 | import androidx.compose.runtime.setValue 26 | import androidx.compose.ui.Alignment 27 | import androidx.compose.ui.Modifier 28 | import androidx.compose.ui.platform.LocalContext 29 | import androidx.compose.ui.platform.testTag 30 | import androidx.compose.ui.res.stringResource 31 | import androidx.compose.ui.text.TextStyle 32 | import androidx.compose.ui.unit.dp 33 | import androidx.compose.ui.unit.em 34 | import androidx.core.content.ContextCompat.startActivity 35 | import io.mkg20001.nixosimage.BuildConfig 36 | import io.mkg20001.nixosimage.R 37 | import io.mkg20001.nixosimage.data.GitHubReleaseAsset 38 | import io.mkg20001.nixosimage.data.GitHubReleaseClient 39 | import io.mkg20001.nixosimage.install.ImageInstallMethod 40 | import io.mkg20001.nixosimage.install.InstallMethods 41 | import io.mkg20001.nixosimage.ui.ExtItem 42 | import io.mkg20001.nixosimage.ui.MyDropdown 43 | import io.mkg20001.nixosimage.ui.install.Install 44 | import io.sentry.Sentry 45 | import java.time.LocalDateTime 46 | import java.time.format.DateTimeFormatter 47 | import java.time.format.FormatStyle 48 | import java.util.Locale 49 | 50 | sealed class HomeUiValues { 51 | object Loading : HomeUiValues() 52 | object Error : HomeUiValues() 53 | class Success(val methods: List, val versions: List) : HomeUiValues() 54 | } 55 | 56 | @Composable 57 | fun HomeComposable() { 58 | // Can't be bothered to make this a view model so this hack must do 59 | var trigger by remember { mutableStateOf(0) } 60 | 61 | val stateMethod: MutableState = remember { mutableStateOf(null) } 62 | val stateVersion: MutableState = remember { mutableStateOf(null) } 63 | 64 | val v by produceState(initialValue = HomeUiValues.Loading, key1 = trigger) { 65 | value = HomeUiValues.Loading 66 | 67 | try { 68 | // Reset selection 69 | stateMethod.value = null 70 | stateVersion.value = null 71 | 72 | val methods = 73 | if (BuildConfig.ALLOW_ANY_METHOD) InstallMethods.methods 74 | else InstallMethods.availableMethods() 75 | 76 | val rel = GitHubReleaseClient.getReleases() 77 | if (rel == null) { 78 | value = HomeUiValues.Error 79 | } else { 80 | val releases = rel.map { it.getSupported() }.flatten() 81 | 82 | value = HomeUiValues.Success(methods, releases) 83 | } 84 | } catch(e: Exception) { 85 | e.printStackTrace() 86 | Sentry.captureException(e) 87 | value = HomeUiValues.Error 88 | } 89 | } 90 | 91 | val baseModifier = Modifier.fillMaxWidth() 92 | 93 | val headingModifer = Modifier.padding(0.dp, 10.dp) 94 | val headingStyle = TextStyle(color = MaterialTheme.colorScheme.primary, fontSize = 4.em) 95 | 96 | val listModifier = baseModifier.background(MaterialTheme.colorScheme.primaryContainer) 97 | val listStyle = TextStyle(color = MaterialTheme.colorScheme.onPrimaryContainer) 98 | 99 | val refresh = @Composable { 100 | Button( 101 | onClick = { 102 | trigger++ 103 | }, 104 | modifier = Modifier.padding(6.dp).testTag("refresh") 105 | ) { 106 | Text(stringResource(R.string.refresh)) 107 | } 108 | } 109 | 110 | 111 | val context = LocalContext.current 112 | 113 | fun doInstall(r: GitHubReleaseAsset, m: ImageInstallMethod) { 114 | if (m.needsExternalStorage) { 115 | if (!Environment.isExternalStorageManager()) { 116 | val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION) 117 | intent.data = Uri.parse("package:" + context.packageName) 118 | context.startActivity(intent) 119 | Toast.makeText(context, context.getString(R.string.toast_external_storage), Toast.LENGTH_LONG).show() 120 | return 121 | } 122 | } 123 | 124 | val intent = Intent( 125 | context, 126 | Install::class.java 127 | ) 128 | val b = Bundle() 129 | b.putSerializable("image", r) 130 | b.putString("method", m.id) 131 | intent.putExtras(b) 132 | startActivity(context, intent, null) 133 | } 134 | 135 | Column(modifier = Modifier.padding(24.dp), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally) { 136 | when (val s = v) { 137 | is HomeUiValues.Loading -> 138 | @Composable { 139 | Text(stringResource(R.string.introduction_loading), modifier = baseModifier) 140 | CircularProgressIndicator(modifier = Modifier.padding(12.dp).testTag("loading_ui")) 141 | } 142 | is HomeUiValues.Error -> 143 | @Composable { 144 | Text(stringResource(R.string.introduction_error), modifier = baseModifier) 145 | refresh() 146 | } 147 | is HomeUiValues.Success -> { 148 | Text(stringResource(R.string.introduction), modifier = baseModifier.padding(0.dp, 10.dp).testTag("loaded_ui")) 149 | Text(stringResource(R.string.menu_method), modifier = headingModifer, style = headingStyle) 150 | MenuInstallMethods(modifier = listModifier, style = listStyle, selectedItem = stateMethod.value, methods = s.methods) { 151 | stateMethod.value = it 152 | } 153 | Text(stringResource(R.string.menu_version), modifier = headingModifer, style = headingStyle) 154 | MenuReleaseAsssets(modifier = listModifier, style = listStyle, selectedItem = stateVersion.value, assets = s.versions) { 155 | stateVersion.value = it 156 | } 157 | Row(horizontalArrangement = Arrangement.SpaceEvenly, modifier = Modifier.padding(6.dp)) { 158 | Button( 159 | onClick = { 160 | doInstall( 161 | s.versions.filter { it.id == stateVersion.value!!.id }.getOrNull(0)!!, 162 | InstallMethods.getMethod(stateMethod.value!!.id)!! 163 | ) 164 | }, 165 | enabled = stateMethod.value?.real == true && stateVersion.value?.real == true, 166 | modifier = Modifier.padding(6.dp).testTag("install") 167 | ) { 168 | Text(stringResource(R.string.install)) 169 | } 170 | 171 | refresh() 172 | } 173 | } 174 | } 175 | } 176 | } 177 | 178 | @Composable 179 | fun MenuInstallMethods(methods: List, modifier: Modifier, style: TextStyle, selectedItem: ExtItem?, onValueChange: (ExtItem) -> Unit) { 180 | val items = if (methods.isEmpty()) listOf(ExtItem(stringResource(R.string.no_method))) 181 | else methods.map { 182 | if (!it.isAvailable()) { 183 | ExtItem(it.id, "#DEBUG# " + stringResource(it.display)) 184 | } else { 185 | ExtItem(it.id, stringResource(it.display)) 186 | } 187 | } 188 | 189 | MyDropdown(modifier = modifier, items = items, style = style, selectedItem = selectedItem) { onValueChange(it) } 190 | } 191 | 192 | fun formatDateTimeLocaleAware(dateTime: LocalDateTime): String { 193 | val currentLocale = Locale.getDefault() 194 | val formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) 195 | .withLocale(currentLocale) 196 | return dateTime.format(formatter) 197 | } 198 | 199 | @Composable 200 | fun MenuReleaseAsssets(assets: List, modifier: Modifier, style: TextStyle, selectedItem: ExtItem?, onValueChange: (ExtItem) -> Unit) { 201 | val items = if (assets.isEmpty()) listOf(ExtItem(stringResource(R.string.no_compat))) 202 | else assets.map { 203 | val date = LocalDateTime.parse(it.updatedAt as String, DateTimeFormatter.ISO_OFFSET_DATE_TIME) 204 | ExtItem(it.id, stringResource(R.string.format_version_info, it.version, formatDateTimeLocaleAware(date), it.arch)) 205 | } 206 | 207 | MyDropdown(modifier = modifier, items = items, style = style, selectedItem = selectedItem) { onValueChange(it) } 208 | } 209 | -------------------------------------------------------------------------------- /app/src/main/java/io/mkg20001/nixosimage/ui/theme/Color.kt: -------------------------------------------------------------------------------- 1 | package io.mkg20001.nixosimage.ui.theme 2 | 3 | import androidx.compose.ui.graphics.Color 4 | 5 | val Purple80 = Color(0xFFD0BCFF) 6 | val PurpleGrey80 = Color(0xFFCCC2DC) 7 | val Pink80 = Color(0xFFEFB8C8) 8 | 9 | val Purple40 = Color(0xFF6650a4) 10 | val PurpleGrey40 = Color(0xFF625b71) 11 | val Pink40 = Color(0xFF7D5260) 12 | 13 | 14 | val Red500 = Color(0xF44336FF) 15 | val Red50 = Color(0xFFEBEEFF) 16 | val Red100 = Color(0xFFCDD2FF) 17 | val Red200 = Color(0xEF9A9AFF) 18 | val Red300 = Color(0xE57373FF) 19 | val Red400 = Color(0xEF5350FF) 20 | val Red600 = Color(0xE53935FF) 21 | val Red700 = Color(0xD32F2FFF) 22 | val Red800 = Color(0xC62828FF) 23 | val Red900 = Color(0xB71C1CFF) 24 | val RedA100 = Color(0xFF8A80FF) 25 | val RedA200 = Color(0xFF5252FF) 26 | val RedA400 = Color(0xFF1744FF) 27 | val RedA700 = Color(0xD50000FF) 28 | val Red50010percent = Color(0x1AF44336FF) 29 | val Red50020percent = Color(0x33F44336FF) 30 | val Red50050percent = Color(0x80F44336FF) 31 | val Pink500 = Color(0xE91E63FF) 32 | val Pink50 = Color(0xFCE4ECFF) 33 | val Pink100 = Color(0xF8BBD0FF) 34 | val Pink200 = Color(0xF48FB1FF) 35 | val Pink300 = Color(0xF06292FF) 36 | val Pink400 = Color(0xEC407AFF) 37 | val Pink600 = Color(0xD81B60FF) 38 | val Pink700 = Color(0xC2185BFF) 39 | val Pink800 = Color(0xAD1457FF) 40 | val Pink900 = Color(0x880E4FFF) 41 | val PinkA100 = Color(0xFF80ABFF) 42 | val PinkA200 = Color(0xFF4081FF) 43 | val PinkA400 = Color(0xF50057FF) 44 | val PinkA700 = Color(0xC51162FF) 45 | val Pink50010percent = Color(0x1AE91E63FF) 46 | val Pink50020percent = Color(0x33E91E63FF) 47 | val Pink50050percent = Color(0x80E91E63FF) 48 | val Purple500 = Color(0x9C27B0FF) 49 | val Purple50 = Color(0xF3E5F5FF) 50 | val Purple100 = Color(0xE1BEE7FF) 51 | val Purple200 = Color(0xCE93D8FF) 52 | val Purple300 = Color(0xBA68C8FF) 53 | val Purple400 = Color(0xAB47BCFF) 54 | val Purple600 = Color(0x8E24AAFF) 55 | val Purple700 = Color(0x7B1FA2FF) 56 | val Purple800 = Color(0x6A1B9AFF) 57 | val Purple900 = Color(0x4A148CFF) 58 | val PurpleA100 = Color(0xEA80FCFF) 59 | val PurpleA200 = Color(0xE040FBFF) 60 | val PurpleA400 = Color(0xD500F9FF) 61 | val PurpleA700 = Color(0xAA00FFFF) 62 | val Purple50010percent = Color(0x1A9C27B0FF) 63 | val Purple50020percent = Color(0x339C27B0FF) 64 | val Purple50050percent = Color(0x809C27B0FF) 65 | val DeepPurple500 = Color(0x673AB7FF) 66 | val DeepPurple50 = Color(0xEDE7F6FF) 67 | val DeepPurple100 = Color(0xD1C4E9FF) 68 | val DeepPurple200 = Color(0xB39DDBFF) 69 | val DeepPurple300 = Color(0x9575CDFF) 70 | val DeepPurple400 = Color(0x7E57C2FF) 71 | val DeepPurple600 = Color(0x5E35B1FF) 72 | val DeepPurple700 = Color(0x512DA8FF) 73 | val DeepPurple800 = Color(0x4527A0FF) 74 | val DeepPurple900 = Color(0x311B92FF) 75 | val DeepPurpleA100 = Color(0xB388FFFF) 76 | val DeepPurpleA200 = Color(0x7C4DFFFF) 77 | val DeepPurpleA400 = Color(0x651FFFFF) 78 | val DeepPurpleA700 = Color(0x6200EAFF) 79 | val DeepPurple50010percent = Color(0x1A673AB7FF) 80 | val DeepPurple50020percent = Color(0x33673AB7FF) 81 | val DeepPurple50050percent = Color(0x80673AB7FF) 82 | val Indigo500 = Color(0x3F51B5FF) 83 | val Indigo50 = Color(0xE8EAF6FF) 84 | val Indigo100 = Color(0xC5CAE9FF) 85 | val Indigo200 = Color(0x9FA8DAFF) 86 | val Indigo300 = Color(0x7986CBFF) 87 | val Indigo400 = Color(0x5C6BC0FF) 88 | val Indigo600 = Color(0x3949ABFF) 89 | val Indigo700 = Color(0x303F9FFF) 90 | val Indigo800 = Color(0x283593FF) 91 | val Indigo900 = Color(0x1A237EFF) 92 | val IndigoA100 = Color(0x8C9EFFFF) 93 | val IndigoA200 = Color(0x536DFEFF) 94 | val IndigoA400 = Color(0x3D5AFEFF) 95 | val IndigoA700 = Color(0x304FFEFF) 96 | val Indigo50010percent = Color(0x1A3F51B5FF) 97 | val Indigo50020percent = Color(0x333F51B5FF) 98 | val Indigo50050percent = Color(0x803F51B5FF) 99 | val Blue500 = Color(0x2196F3FF) 100 | val Blue50 = Color(0xE3F2FDFF) 101 | val Blue100 = Color(0xBBDEFBFF) 102 | val Blue200 = Color(0x90CAF9FF) 103 | val Blue300 = Color(0x64B5F6FF) 104 | val Blue400 = Color(0x42A5F5FF) 105 | val Blue600 = Color(0x1E88E5FF) 106 | val Blue700 = Color(0x1976D2FF) 107 | val Blue800 = Color(0x1565C0FF) 108 | val Blue900 = Color(0x0D47A1FF) 109 | val BlueA100 = Color(0x82B1FFFF) 110 | val BlueA200 = Color(0x448AFFFF) 111 | val BlueA400 = Color(0x2979FFFF) 112 | val BlueA700 = Color(0x2962FFFF) 113 | val Blue50010percent = Color(0x1A2196F3FF) 114 | val Blue50020percent = Color(0x332196F3FF) 115 | val Blue50050percent = Color(0x802196F3FF) 116 | val Blue60065Percent = Color(0xA51E88E5FF) 117 | val ModifiedBlue500 = Color(0x478FCCFF) 118 | val ModifiedBlue50 = Color(0xE4F1FBFF) 119 | val ModifiedBlue100 = Color(0xBDDDF4FF) 120 | val ModifiedBlue200 = Color(0x95C7ECFF) 121 | val ModifiedBlue300 = Color(0x70B2E1FF) 122 | val ModifiedBlue400 = Color(0x569FD7FF) 123 | val ModifiedBlue600 = Color(0x3D82C4FF) 124 | val ModifiedBlue700 = Color(0x3374BAFF) 125 | val ModifiedBlue800 = Color(0x2A65B0FF) 126 | val ModifiedBlue900 = Color(0x14499EFF) 127 | val ModifiedBlueA100 = Color(0x8CAEDBFF) 128 | val ModifiedBlueA200 = Color(0x5880C1FF) 129 | val ModifiedBlueA400 = Color(0x4972B8FF) 130 | val ModifiedBlueA700 = Color(0x4666AFFF) 131 | val ModifiedBlue50010percent = Color(0x1A478FCCFF) 132 | val ModifiedBlue50020percent = Color(0x33478FCCFF) 133 | val ModifiedBlue50050percent = Color(0x80478FCCFF) 134 | val LightBlue500 = Color(0x03A9F4FF) 135 | val LightBlue50 = Color(0xE1F5FEFF) 136 | val LightBlue100 = Color(0xB3E5FCFF) 137 | val LightBlue200 = Color(0x81D4FAFF) 138 | val LightBlue300 = Color(0x4FC3F7FF) 139 | val LightBlue400 = Color(0x29B6F6FF) 140 | val LightBlue600 = Color(0x039BE5FF) 141 | val LightBlue700 = Color(0x0288D1FF) 142 | val LightBlue800 = Color(0x0277BDFF) 143 | val LightBlue900 = Color(0x01579BFF) 144 | val LightBlueA100 = Color(0x80D8FFFF) 145 | val LightBlueA200 = Color(0x40C4FFFF) 146 | val LightBlueA400 = Color(0x00B0FFFF) 147 | val LightBlueA700 = Color(0x0091EAFF) 148 | val LightBlue50010percent = Color(0x1A03A9F4FF) 149 | val LightBlue50020percent = Color(0x3303A9F4FF) 150 | val LightBlue50050percent = Color(0x8003A9F4FF) 151 | val LightBlue700100percent = Color(0xFF0288D1FF) 152 | val Cyan500 = Color(0x00BCD4FF) 153 | val Cyan50 = Color(0xE0F7FAFF) 154 | val Cyan100 = Color(0xB2EBF2FF) 155 | val Cyan200 = Color(0x80DEEAFF) 156 | val Cyan300 = Color(0x4DD0E1FF) 157 | val Cyan400 = Color(0x26C6DAFF) 158 | val Cyan600 = Color(0x00ACC1FF) 159 | val Cyan700 = Color(0x0097A7FF) 160 | val Cyan800 = Color(0x00838FFF) 161 | val Cyan900 = Color(0x006064FF) 162 | val CyanA100 = Color(0x84FFFFFF) 163 | val CyanA200 = Color(0x18FFFFFF) 164 | val CyanA400 = Color(0x00E5FFFF) 165 | val CyanA700 = Color(0x00B8D4FF) 166 | val Cyan50010percent = Color(0x1A00BCD4FF) 167 | val Cyan50020percent = Color(0x3300BCD4FF) 168 | val Cyan50050percent = Color(0x8000BCD4FF) 169 | val Teal500 = Color(0x009688FF) 170 | val Teal50 = Color(0xE0F2F1FF) 171 | val Teal100 = Color(0xB2DFDBFF) 172 | val Teal200 = Color(0x80CBC4FF) 173 | val Teal300 = Color(0x4DB6ACFF) 174 | val Teal400 = Color(0x26A69AFF) 175 | val Teal600 = Color(0x00897BFF) 176 | val Teal700 = Color(0x00796BFF) 177 | val Teal800 = Color(0x00695CFF) 178 | val Teal900 = Color(0x004D40FF) 179 | val TealA100 = Color(0xA7FFEBFF) 180 | val TealA200 = Color(0x64FFDAFF) 181 | val TealA400 = Color(0x1DE9B6FF) 182 | val TealA700 = Color(0x00BFA5FF) 183 | val Teal50010percent = Color(0x1A009688FF) 184 | val Teal50020percent = Color(0x33009688FF) 185 | val Teal50050percent = Color(0x80009688FF) 186 | val Green500 = Color(0x4CAF50FF) 187 | val Green50 = Color(0xE8F5E9FF) 188 | val Green100 = Color(0xC8E6C9FF) 189 | val Green200 = Color(0xA5D6A7FF) 190 | val Green300 = Color(0x81C784FF) 191 | val Green400 = Color(0x66BB6AFF) 192 | val Green600 = Color(0x43A047FF) 193 | val Green700 = Color(0x388E3CFF) 194 | val Green800 = Color(0x2E7D32FF) 195 | val Green900 = Color(0x1B5E20FF) 196 | val GreenA100 = Color(0xB9F6CAFF) 197 | val GreenA200 = Color(0x69F0AEFF) 198 | val GreenA400 = Color(0x00E676FF) 199 | val GreenA700 = Color(0x00C853FF) 200 | val Green50010percent = Color(0x1A4CAF50FF) 201 | val Green50020percent = Color(0x334CAF50FF) 202 | val Green50050percent = Color(0x804CAF50FF) 203 | val LightGreen500 = Color(0x8BC34AFF) 204 | val LightGreen50 = Color(0xF1F8E9FF) 205 | val LightGreen100 = Color(0xDCEDC8FF) 206 | val LightGreen200 = Color(0xC5E1A5FF) 207 | val LightGreen300 = Color(0xAED581FF) 208 | val LightGreen400 = Color(0xAED581FF) 209 | val LightGreen600 = Color(0x7CB342FF) 210 | val LightGreen700 = Color(0x689F38FF) 211 | val LightGreen800 = Color(0x558B2FFF) 212 | val LightGreen900 = Color(0x33691EFF) 213 | val LightGreenA100 = Color(0xB2FF59FF) 214 | val LightGreenA200 = Color(0xB2FF59FF) 215 | val LightGreenA400 = Color(0xB2FF59FF) 216 | val LightGreenA700 = Color(0xB2FF59FF) 217 | val LightGreen50010percent = Color(0x1A8BC34AFF) 218 | val LightGreen50020percent = Color(0x338BC34AFF) 219 | val LightGreen50050percent = Color(0x808BC34AFF) 220 | val Lime500 = Color(0xCDDC39FF) 221 | val Lime50 = Color(0xF9FBE7FF) 222 | val Lime100 = Color(0xF0F4C3FF) 223 | val Lime200 = Color(0xE6EE9CFF) 224 | val Lime300 = Color(0xDCE775FF) 225 | val Lime400 = Color(0xD4E157FF) 226 | val Lime600 = Color(0xC0CA33FF) 227 | val Lime700 = Color(0xAFB42BFF) 228 | val Lime800 = Color(0x9E9D24FF) 229 | val Lime900 = Color(0x827717FF) 230 | val LimeA100 = Color(0xF4FF81FF) 231 | val LimeA200 = Color(0xEEFF41FF) 232 | val LimeA400 = Color(0xC6FF00FF) 233 | val LimeA700 = Color(0xAEEA00FF) 234 | val Lime50010percent = Color(0x1ACDDC39FF) 235 | val Lime50020percent = Color(0x33CDDC39FF) 236 | val Lime50050percent = Color(0x80CDDC39FF) 237 | val Yellow500 = Color(0xFFEB3BFF) 238 | val Yellow50 = Color(0xFFFDE7FF) 239 | val Yellow100 = Color(0xFFF9C4FF) 240 | val Yellow200 = Color(0xFFF59DFF) 241 | val Yellow300 = Color(0xFFF176FF) 242 | val Yellow400 = Color(0xFFEE58FF) 243 | val Yellow600 = Color(0xFDD835FF) 244 | val Yellow700 = Color(0xFBC02DFF) 245 | val Yellow800 = Color(0xF9A825FF) 246 | val Yellow900 = Color(0xF57F17FF) 247 | val YellowA100 = Color(0xFFFF8DFF) 248 | val YellowA200 = Color(0xFFFF00FF) 249 | val YellowA400 = Color(0xFFEA00FF) 250 | val YellowA700 = Color(0xFFD600FF) 251 | val Yellow50010percent = Color(0x1AFFEB3BFF) 252 | val Yellow50020percent = Color(0x33FFEB3BFF) 253 | val Yellow50050percent = Color(0x80FFEB3BFF) 254 | val Amber500 = Color(0xFFC107FF) 255 | val Amber50 = Color(0xFFF8E1FF) 256 | val Amber100 = Color(0xFFECB3FF) 257 | val Amber200 = Color(0xFFE082FF) 258 | val Amber300 = Color(0xFFD54FFF) 259 | val Amber400 = Color(0xFFCA28FF) 260 | val Amber600 = Color(0xFFB300FF) 261 | val Amber700 = Color(0xFFA000FF) 262 | val Amber800 = Color(0xFF8F00FF) 263 | val Amber900 = Color(0xFF6F00FF) 264 | val AmberA100 = Color(0xFFE57FFF) 265 | val AmberA200 = Color(0xFFD740FF) 266 | val AmberA400 = Color(0xFFC400FF) 267 | val AmberA700 = Color(0xFFAB00FF) 268 | val Amber50010percent = Color(0x1AFFC107FF) 269 | val Amber50020percent = Color(0x33FFC107FF) 270 | val Amber50050percent = Color(0x80FFC107FF) 271 | val Orange500 = Color(0xFF9800FF) 272 | val Orange50 = Color(0xFFF3E0FF) 273 | val Orange100 = Color(0xFFE0B2FF) 274 | val Orange200 = Color(0xFFCC80FF) 275 | val Orange300 = Color(0xFFB74DFF) 276 | val Orange400 = Color(0xFFA726FF) 277 | val Orange600 = Color(0xFB8C00FF) 278 | val Orange700 = Color(0xF57C00FF) 279 | val Orange800 = Color(0xEF6C00FF) 280 | val Orange900 = Color(0xE65100FF) 281 | val OrangeA100 = Color(0xFFD180FF) 282 | val OrangeA200 = Color(0xFFAB40FF) 283 | val OrangeA400 = Color(0xFF9100FF) 284 | val OrangeA700 = Color(0xFF6D00FF) 285 | val Orange50010percent = Color(0x1AFF9800FF) 286 | val Orange50020percent = Color(0x33FF9800FF) 287 | val Orange50050percent = Color(0x80FF9800FF) 288 | val DeepOrange500 = Color(0xFF5722FF) 289 | val DeepOrange50 = Color(0xFBE9E7FF) 290 | val DeepOrange100 = Color(0xFFCCBCFF) 291 | val DeepOrange200 = Color(0xFFAB91FF) 292 | val DeepOrange300 = Color(0xFF8A65FF) 293 | val DeepOrange400 = Color(0xFF7043FF) 294 | val DeepOrange600 = Color(0xF4511EFF) 295 | val DeepOrange700 = Color(0xE64A19FF) 296 | val DeepOrange800 = Color(0xD84315FF) 297 | val DeepOrange900 = Color(0xBF360CFF) 298 | val DeepOrangeA100 = Color(0xFF9E80FF) 299 | val DeepOrangeA200 = Color(0xFF6E40FF) 300 | val DeepOrangeA400 = Color(0xFF3D00FF) 301 | val DeepOrangeA700 = Color(0xDD2C00FF) 302 | val DeepOrange50010percent = Color(0x1AFF5722FF) 303 | val DeepOrange50020percent = Color(0x33FF5722FF) 304 | val DeepOrange50050percent = Color(0x80FF5722FF) 305 | val Brown500 = Color(0x795548FF) 306 | val Brown50 = Color(0xEFEBE9FF) 307 | val Brown100 = Color(0xD7CCC8FF) 308 | val Brown200 = Color(0xBCAAA4FF) 309 | val Brown300 = Color(0xA1887FFF) 310 | val Brown400 = Color(0x8D6E63FF) 311 | val Brown600 = Color(0x6D4C41FF) 312 | val Brown700 = Color(0x5D4037FF) 313 | val Brown800 = Color(0x4E342EFF) 314 | val Brown900 = Color(0x3E2723FF) 315 | val Brown50010percent = Color(0x1A795548FF) 316 | val Brown50020percent = Color(0x33795548FF) 317 | val Brown50050percent = Color(0x80795548FF) 318 | val Grey500 = Color(0x9E9E9EFF) 319 | val Grey50 = Color(0xFAFAFAFF) 320 | val Grey100 = Color(0xF5F5F5FF) 321 | val Grey200 = Color(0xEEEEEEFF) 322 | val Grey300 = Color(0xE0E0E0FF) 323 | val Grey400 = Color(0xBDBDBDFF) 324 | val Grey600 = Color(0x757575FF) 325 | val Grey700 = Color(0x616161FF) 326 | val Grey800 = Color(0x424242FF) 327 | val Grey900 = Color(0x212121FF) 328 | val Grey50010percent = Color(0x1A9E9E9EFF) 329 | val Grey50020percent = Color(0x339E9E9EFF) 330 | val Grey50050percent = Color(0x809E9E9EFF) 331 | val Grey300100percent = Color(0xFFE0E0E0FF) 332 | val BlueGrey500 = Color(0x607D8BFF) 333 | val BlueGrey50 = Color(0xECEFF1FF) 334 | val BlueGrey100 = Color(0xCFD8DCFF) 335 | val BlueGrey200 = Color(0xB0BEC5FF) 336 | val BlueGrey300 = Color(0x90A4AEFF) 337 | val BlueGrey400 = Color(0x78909CFF) 338 | val BlueGrey600 = Color(0x546E7AFF) 339 | val BlueGrey700 = Color(0x455A64FF) 340 | val BlueGrey800 = Color(0x37474FFF) 341 | val BlueGrey900 = Color(0x263238FF) 342 | val BlueGrey50010percent = Color(0x1A607D8BFF) 343 | val BlueGrey50020percent = Color(0x33607D8BFF) 344 | val BlueGrey50050percent = Color(0x80607D8BFF) 345 | val BlueGrey600100percent = Color(0x546E7AFF) 346 | val black = Color(0x000000FF) 347 | val Black10percent = Color(0x19000000FF) 348 | val Black12percent = Color(0x1E000000FF) 349 | val Black15percent = Color(0x26000000FF) 350 | val Black20percent = Color(0x33000000FF) 351 | val Black26percent = Color(0x42000000FF) 352 | val Black30percent = Color(0x4D000000FF) 353 | val Black50percent = Color(0x80000000FF) 354 | val Black54percent = Color(0x89000000FF) 355 | val Black65percent = Color(0xA5000000FF) 356 | val Black87percent = Color(0xDD000000FF) 357 | val white = Color(0xFFFFFFFF) 358 | val White10percent = Color(0x19FFFFFFFF) 359 | val White11percent = Color(0x1AFFFFFFFF) 360 | val White12percent = Color(0x1EFFFFFFFF) 361 | val White15percent = Color(0x26FFFFFFFF) 362 | val White20percent = Color(0x33FFFFFFFF) 363 | val White26percent = Color(0x42FFFFFFFF) 364 | val White30percent = Color(0x4DFFFFFFFF) 365 | val White50percent = Color(0x80FFFFFFFF) 366 | val White54percent = Color(0x89FFFFFFFF) 367 | val White87percent = Color(0xDDFFFFFFFF) --------------------------------------------------------------------------------