├── .github └── workflows │ └── android.yml ├── .gitignore ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle.kts ├── proguard-rules.pro ├── src │ └── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ ├── monet_dark.attheme │ │ ├── monet_light.attheme │ │ ├── monet_x_dark.tgx-theme │ │ └── monet_x_light.tgx-theme │ │ ├── java │ │ └── com │ │ │ └── c3r5b8 │ │ │ └── telegram_monet │ │ │ ├── MainActivity.kt │ │ │ ├── NavigationScreen.kt │ │ │ ├── adapters │ │ │ ├── CreateTheme.kt │ │ │ ├── ListToReplaceNewTheme.kt │ │ │ ├── ShareTheme.kt │ │ │ ├── TelegramAdapter.kt │ │ │ └── TelegramXAdapter.kt │ │ │ ├── common │ │ │ └── Constants.kt │ │ │ ├── presentation │ │ │ └── main_screen │ │ │ │ ├── MainScreen.kt │ │ │ │ ├── MainScreenViewModel.kt │ │ │ │ └── components │ │ │ │ ├── AboutCard.kt │ │ │ │ ├── BasicCard.kt │ │ │ │ ├── CreateThemeCard.kt │ │ │ │ ├── SettingsCard.kt │ │ │ │ └── TopAppBar.kt │ │ │ └── ui │ │ │ └── theme │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ └── res │ │ ├── drawable │ │ ├── about_icon.xml │ │ ├── how_to_use_icon.xml │ │ ├── ic_foreground.xml │ │ ├── ic_foreground_monochrome.xml │ │ ├── ic_launcher_background.xml │ │ ├── ic_launcher_foreground.xml │ │ ├── icon_settings.xml │ │ ├── theme_icon_dark.xml │ │ └── theme_icon_light.xml │ │ ├── mipmap-anydpi │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── values-ar │ │ └── strings.xml │ │ ├── values-b+fil │ │ └── strings.xml │ │ ├── values-b+kab │ │ └── strings.xml │ │ ├── values-bn-rIN │ │ └── strings.xml │ │ ├── values-de │ │ └── strings.xml │ │ ├── values-es │ │ └── strings.xml │ │ ├── values-fa-rIR │ │ └── strings.xml │ │ ├── values-fr │ │ └── strings.xml │ │ ├── values-hi │ │ └── strings.xml │ │ ├── values-hr │ │ └── strings.xml │ │ ├── values-in │ │ └── strings.xml │ │ ├── values-it │ │ └── strings.xml │ │ ├── values-iw │ │ └── strings.xml │ │ ├── values-ja │ │ └── strings.xml │ │ ├── values-ml │ │ └── strings.xml │ │ ├── values-nl │ │ └── strings.xml │ │ ├── values-pl │ │ └── strings.xml │ │ ├── values-pt-rBR │ │ └── strings.xml │ │ ├── values-pt │ │ └── strings.xml │ │ ├── values-ro │ │ └── strings.xml │ │ ├── values-ru │ │ └── strings.xml │ │ ├── values-tl │ │ └── strings.xml │ │ ├── values-tr-rTR │ │ └── strings.xml │ │ ├── values-uk-rUA │ │ └── strings.xml │ │ ├── values-uz │ │ └── strings.xml │ │ ├── values-vi │ │ └── strings.xml │ │ ├── values-zh-rCN │ │ └── strings.xml │ │ ├── values │ │ ├── colors.xml │ │ ├── monet_colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ │ └── xml │ │ ├── backup_rules.xml │ │ ├── data_extraction_rules.xml │ │ └── provider_paths.xml └── testkey.keystore ├── build.gradle.kts ├── gradle.properties ├── gradle ├── libs.versions.toml └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── screen.gif └── settings.gradle.kts /.github/workflows/android.yml: -------------------------------------------------------------------------------- 1 | name: TGMonet Debug 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | paths: 7 | - .github/workflows/android.yml 8 | - app/** 9 | - build.gradle.kts 10 | - gradle.properties 11 | - gradlew 12 | - gradlew.bat 13 | - settings.gradle.kts 14 | pull_request: 15 | paths: 16 | - .github/workflows/android.yml 17 | - app/** 18 | - build.gradle.kts 19 | - gradle.properties 20 | - gradlew 21 | - gradlew.bat 22 | - settings.gradle.kts 23 | 24 | jobs: 25 | build_debug_apk: 26 | name: Build TGMonet Debug APK 27 | runs-on: ubuntu-latest 28 | 29 | steps: 30 | - name: Check out repository 31 | uses: actions/checkout@v4 32 | 33 | - name: Set up JDK 22 34 | uses: actions/setup-java@v4 35 | with: 36 | java-version: '22' 37 | distribution: 'oracle' 38 | cache: gradle 39 | 40 | - name: Grant execute permission for gradlew 41 | run: chmod +x gradlew 42 | 43 | - name: Validate Gradle wrapper 44 | uses: gradle/actions/wrapper-validation@v4 45 | 46 | - name: Build with Gradle 47 | id: gradle_build_debug 48 | run: ./gradlew assembleDebug 49 | 50 | - name: Upload debug apk 51 | uses: actions/upload-artifact@v4 52 | with: 53 | name: app-debug 54 | path: app/build/outputs/apk/debug 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea 3 | .gradle 4 | /local.properties 5 | /app/release 6 | /app/build 7 | .idea 8 | .DS_Store 9 | /build 10 | /captures 11 | .externalNativeBuild 12 | .cxx 13 | local.properties 14 | /.idea/ 15 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Eclipse Public License - v 2.0 2 | 3 | THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE 4 | PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION 5 | OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. 6 | 7 | 1. DEFINITIONS 8 | 9 | "Contribution" means: 10 | 11 | a) in the case of the initial Contributor, the initial content 12 | Distributed under this Agreement, and 13 | 14 | b) in the case of each subsequent Contributor: 15 | i) changes to the Program, and 16 | ii) additions to the Program; 17 | where such changes and/or additions to the Program originate from 18 | and are Distributed by that particular Contributor. A Contribution 19 | "originates" from a Contributor if it was added to the Program by 20 | such Contributor itself or anyone acting on such Contributor's behalf. 21 | Contributions do not include changes or additions to the Program that 22 | are not Modified Works. 23 | 24 | "Contributor" means any person or entity that Distributes the Program. 25 | 26 | "Licensed Patents" mean patent claims licensable by a Contributor which 27 | are necessarily infringed by the use or sale of its Contribution alone 28 | or when combined with the Program. 29 | 30 | "Program" means the Contributions Distributed in accordance with this 31 | Agreement. 32 | 33 | "Recipient" means anyone who receives the Program under this Agreement 34 | or any Secondary License (as applicable), including Contributors. 35 | 36 | "Derivative Works" shall mean any work, whether in Source Code or other 37 | form, that is based on (or derived from) the Program and for which the 38 | editorial revisions, annotations, elaborations, or other modifications 39 | represent, as a whole, an original work of authorship. 40 | 41 | "Modified Works" shall mean any work in Source Code or other form that 42 | results from an addition to, deletion from, or modification of the 43 | contents of the Program, including, for purposes of clarity any new file 44 | in Source Code form that contains any contents of the Program. Modified 45 | Works shall not include works that contain only declarations, 46 | interfaces, types, classes, structures, or files of the Program solely 47 | in each case in order to link to, bind by name, or subclass the Program 48 | or Modified Works thereof. 49 | 50 | "Distribute" means the acts of a) distributing or b) making available 51 | in any manner that enables the transfer of a copy. 52 | 53 | "Source Code" means the form of a Program preferred for making 54 | modifications, including but not limited to software source code, 55 | documentation source, and configuration files. 56 | 57 | "Secondary License" means either the GNU General Public License, 58 | Version 2.0, or any later versions of that license, including any 59 | exceptions or additional permissions as identified by the initial 60 | Contributor. 61 | 62 | 2. GRANT OF RIGHTS 63 | 64 | a) Subject to the terms of this Agreement, each Contributor hereby 65 | grants Recipient a non-exclusive, worldwide, royalty-free copyright 66 | license to reproduce, prepare Derivative Works of, publicly display, 67 | publicly perform, Distribute and sublicense the Contribution of such 68 | Contributor, if any, and such Derivative Works. 69 | 70 | b) Subject to the terms of this Agreement, each Contributor hereby 71 | grants Recipient a non-exclusive, worldwide, royalty-free patent 72 | license under Licensed Patents to make, use, sell, offer to sell, 73 | import and otherwise transfer the Contribution of such Contributor, 74 | if any, in Source Code or other form. This patent license shall 75 | apply to the combination of the Contribution and the Program if, at 76 | the time the Contribution is added by the Contributor, such addition 77 | of the Contribution causes such combination to be covered by the 78 | Licensed Patents. The patent license shall not apply to any other 79 | combinations which include the Contribution. No hardware per se is 80 | licensed hereunder. 81 | 82 | c) Recipient understands that although each Contributor grants the 83 | licenses to its Contributions set forth herein, no assurances are 84 | provided by any Contributor that the Program does not infringe the 85 | patent or other intellectual property rights of any other entity. 86 | Each Contributor disclaims any liability to Recipient for claims 87 | brought by any other entity based on infringement of intellectual 88 | property rights or otherwise. As a condition to exercising the 89 | rights and licenses granted hereunder, each Recipient hereby 90 | assumes sole responsibility to secure any other intellectual 91 | property rights needed, if any. For example, if a third party 92 | patent license is required to allow Recipient to Distribute the 93 | Program, it is Recipient's responsibility to acquire that license 94 | before distributing the Program. 95 | 96 | d) Each Contributor represents that to its knowledge it has 97 | sufficient copyright rights in its Contribution, if any, to grant 98 | the copyright license set forth in this Agreement. 99 | 100 | e) Notwithstanding the terms of any Secondary License, no 101 | Contributor makes additional grants to any Recipient (other than 102 | those set forth in this Agreement) as a result of such Recipient's 103 | receipt of the Program under the terms of a Secondary License 104 | (if permitted under the terms of Section 3). 105 | 106 | 3. REQUIREMENTS 107 | 108 | 3.1 If a Contributor Distributes the Program in any form, then: 109 | 110 | a) the Program must also be made available as Source Code, in 111 | accordance with section 3.2, and the Contributor must accompany 112 | the Program with a statement that the Source Code for the Program 113 | is available under this Agreement, and informs Recipients how to 114 | obtain it in a reasonable manner on or through a medium customarily 115 | used for software exchange; and 116 | 117 | b) the Contributor may Distribute the Program under a license 118 | different than this Agreement, provided that such license: 119 | i) effectively disclaims on behalf of all other Contributors all 120 | warranties and conditions, express and implied, including 121 | warranties or conditions of title and non-infringement, and 122 | implied warranties or conditions of merchantability and fitness 123 | for a particular purpose; 124 | 125 | ii) effectively excludes on behalf of all other Contributors all 126 | liability for damages, including direct, indirect, special, 127 | incidental and consequential damages, such as lost profits; 128 | 129 | iii) does not attempt to limit or alter the recipients' rights 130 | in the Source Code under section 3.2; and 131 | 132 | iv) requires any subsequent distribution of the Program by any 133 | party to be under a license that satisfies the requirements 134 | of this section 3. 135 | 136 | 3.2 When the Program is Distributed as Source Code: 137 | 138 | a) it must be made available under this Agreement, or if the 139 | Program (i) is combined with other material in a separate file or 140 | files made available under a Secondary License, and (ii) the initial 141 | Contributor attached to the Source Code the notice described in 142 | Exhibit A of this Agreement, then the Program may be made available 143 | under the terms of such Secondary Licenses, and 144 | 145 | b) a copy of this Agreement must be included with each copy of 146 | the Program. 147 | 148 | 3.3 Contributors may not remove or alter any copyright, patent, 149 | trademark, attribution notices, disclaimers of warranty, or limitations 150 | of liability ("notices") contained within the Program from any copy of 151 | the Program which they Distribute, provided that Contributors may add 152 | their own appropriate notices. 153 | 154 | 4. COMMERCIAL DISTRIBUTION 155 | 156 | Commercial distributors of software may accept certain responsibilities 157 | with respect to end users, business partners and the like. While this 158 | license is intended to facilitate the commercial use of the Program, 159 | the Contributor who includes the Program in a commercial product 160 | offering should do so in a manner which does not create potential 161 | liability for other Contributors. Therefore, if a Contributor includes 162 | the Program in a commercial product offering, such Contributor 163 | ("Commercial Contributor") hereby agrees to defend and indemnify every 164 | other Contributor ("Indemnified Contributor") against any losses, 165 | damages and costs (collectively "Losses") arising from claims, lawsuits 166 | and other legal actions brought by a third party against the Indemnified 167 | Contributor to the extent caused by the acts or omissions of such 168 | Commercial Contributor in connection with its distribution of the Program 169 | in a commercial product offering. The obligations in this section do not 170 | apply to any claims or Losses relating to any actual or alleged 171 | intellectual property infringement. In order to qualify, an Indemnified 172 | Contributor must: a) promptly notify the Commercial Contributor in 173 | writing of such claim, and b) allow the Commercial Contributor to control, 174 | and cooperate with the Commercial Contributor in, the defense and any 175 | related settlement negotiations. The Indemnified Contributor may 176 | participate in any such claim at its own expense. 177 | 178 | For example, a Contributor might include the Program in a commercial 179 | product offering, Product X. That Contributor is then a Commercial 180 | Contributor. If that Commercial Contributor then makes performance 181 | claims, or offers warranties related to Product X, those performance 182 | claims and warranties are such Commercial Contributor's responsibility 183 | alone. Under this section, the Commercial Contributor would have to 184 | defend claims against the other Contributors related to those performance 185 | claims and warranties, and if a court requires any other Contributor to 186 | pay any damages as a result, the Commercial Contributor must pay 187 | those damages. 188 | 189 | 5. NO WARRANTY 190 | 191 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 192 | PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" 193 | BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR 194 | IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF 195 | TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 196 | PURPOSE. Each Recipient is solely responsible for determining the 197 | appropriateness of using and distributing the Program and assumes all 198 | risks associated with its exercise of rights under this Agreement, 199 | including but not limited to the risks and costs of program errors, 200 | compliance with applicable laws, damage to or loss of data, programs 201 | or equipment, and unavailability or interruption of operations. 202 | 203 | 6. DISCLAIMER OF LIABILITY 204 | 205 | EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT 206 | PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS 207 | SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST 209 | PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 210 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 211 | ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE 212 | EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE 213 | POSSIBILITY OF SUCH DAMAGES. 214 | 215 | 7. GENERAL 216 | 217 | If any provision of this Agreement is invalid or unenforceable under 218 | applicable law, it shall not affect the validity or enforceability of 219 | the remainder of the terms of this Agreement, and without further 220 | action by the parties hereto, such provision shall be reformed to the 221 | minimum extent necessary to make such provision valid and enforceable. 222 | 223 | If Recipient institutes patent litigation against any entity 224 | (including a cross-claim or counterclaim in a lawsuit) alleging that the 225 | Program itself (excluding combinations of the Program with other software 226 | or hardware) infringes such Recipient's patent(s), then such Recipient's 227 | rights granted under Section 2(b) shall terminate as of the date such 228 | litigation is filed. 229 | 230 | All Recipient's rights under this Agreement shall terminate if it 231 | fails to comply with any of the material terms or conditions of this 232 | Agreement and does not cure such failure in a reasonable period of 233 | time after becoming aware of such noncompliance. If all Recipient's 234 | rights under this Agreement terminate, Recipient agrees to cease use 235 | and distribution of the Program as soon as reasonably practicable. 236 | However, Recipient's obligations under this Agreement and any licenses 237 | granted by Recipient relating to the Program shall continue and survive. 238 | 239 | Everyone is permitted to copy and distribute copies of this Agreement, 240 | but in order to avoid inconsistency the Agreement is copyrighted and 241 | may only be modified in the following manner. The Agreement Steward 242 | reserves the right to publish new versions (including revisions) of 243 | this Agreement from time to time. No one other than the Agreement 244 | Steward has the right to modify this Agreement. The Eclipse Foundation 245 | is the initial Agreement Steward. The Eclipse Foundation may assign the 246 | responsibility to serve as the Agreement Steward to a suitable separate 247 | entity. Each new version of the Agreement will be given a distinguishing 248 | version number. The Program (including Contributions) may always be 249 | Distributed subject to the version of the Agreement under which it was 250 | received. In addition, after a new version of the Agreement is published, 251 | Contributor may elect to Distribute the Program (including its 252 | Contributions) under the new version. 253 | 254 | Except as expressly stated in Sections 2(a) and 2(b) above, Recipient 255 | receives no rights or licenses to the intellectual property of any 256 | Contributor under this Agreement, whether expressly, by implication, 257 | estoppel or otherwise. All rights in the Program not expressly granted 258 | under this Agreement are reserved. Nothing in this Agreement is intended 259 | to be enforceable by any entity that is not a Contributor or Recipient. 260 | No third-party beneficiary rights are created under this Agreement. 261 | 262 | Exhibit A - Form of Secondary Licenses Notice 263 | 264 | "This Source Code may also be made available under the following 265 | Secondary Licenses when the conditions for such availability set forth 266 | in the Eclipse Public License, v. 2.0 are satisfied: {name license(s), 267 | version(s), and exceptions or additional permissions here}." 268 | 269 | Simply including a copy of this Agreement, including this Exhibit A 270 | is not sufficient to license the Source Code under Secondary Licenses. 271 | 272 | If it is not possible or desirable to put the notice in a particular 273 | file, then You may include the notice in a location (such as a LICENSE 274 | file in a relevant directory) where a recipient would be likely to 275 | look for such a notice. 276 | 277 | You may add additional accurate notices of copyright ownership. 278 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Telegram Monet (Android 12 or above) 2 | 3 |

4 | 5 | 6 | 7 |

8 | 9 | drawing 10 | 11 | 12 | ### Developers and testers: 13 | - [8055](https://t.me/the8055u) 14 | - [TIDI](https://t.me/TIDI286) 15 | - [R4IN80W](https://t.me/TierOhneNation) 16 | - [DPROSAN](https://t.me/dprosan) 17 | - [G_Alex](https://t.me/Mi_G_alex) 18 | 19 | 20 | [If you find bug, please create issues](https://github.com/c3r5b8/Telegram-Monet/issues/new) 21 | 22 | 23 | ### Translators 24 | - [Arabic](https://t.me/MMETMA2) 25 | - [Bengali India](https://t.me/pubglover0_01) 26 | - [German](https://t.me/lelehier) 27 | - [Spanish](https://t.me/yoshijulas) 28 | - [Persian](https://t.me/ItsEeleeya_uwu) 29 | - [Filipino](https://t.me/znarfm) 30 | - French - Pierre 31 | - [Hindi](https://t.me/ShivanshVerma) 32 | - [Croatian](https://t.me/Haxyme) 33 | - Indonesian [1](https://t.me/DarmaCahyadi) & [2](https://t.me/ravaeru) 34 | - [Italian](https://t.me/thetruejake) 35 | - [Hebrew](https://t.me/MeniViner) 36 | - [Kabyle](https://t.me/mld9401) 37 | - [Dutch](https://t.me/TheTruePrism) 38 | - [Polish](https://t.me/Lambada10) 39 | - [Europe Portuguese](https://github.com/ReduxFlakes) 40 | - [Brazilian portuguese](https://t.me/Bygrilinho) 41 | - [Romanian](https://t.me/igram96) 42 | - [Tagalog](https://t.me/quantumpi6) 43 | - [Turkish](https://t.me/Teaqaria) 44 | - [Ukrainian](https://t.me/the_dise) 45 | - [Uzbek](https://t.me/FerNikoMF) 46 | - [Vietnamese](https://t.me/masarou) 47 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /release 3 | -------------------------------------------------------------------------------- /app/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | alias(libs.plugins.android.application) 3 | alias(libs.plugins.kotlin.android) 4 | alias(libs.plugins.kotlin.compose) 5 | } 6 | 7 | android { 8 | namespace = "com.c3r5b8.telegram_monet" 9 | compileSdk = 34 10 | 11 | defaultConfig { 12 | applicationId = "com.c3r5b8.telegram_monet" 13 | minSdk = 31 14 | targetSdk = 35 15 | versionCode = 25041301 16 | versionName = "11.7.0" 17 | 18 | resourceConfigurations.addAll( 19 | arrayOf( 20 | "ar", "bn_IN", "de", "es", "fa_IR", "fil", "fr", "hi", "hr", "in", "it", "iw", 21 | "kab", "ja", "ml", "nl", "pl", "pt", "pt_BR", "ro", "ru", "tl", "tr_TR", "uk_UA", "uz", 22 | "vi", "zh_CN" 23 | ) 24 | ) 25 | 26 | testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 27 | } 28 | 29 | buildTypes { 30 | release { 31 | isMinifyEnabled = true 32 | isShrinkResources = true 33 | proguardFiles( 34 | getDefaultProguardFile("proguard-android-optimize.txt"), 35 | "proguard-rules.pro" 36 | ) 37 | } 38 | } 39 | 40 | compileOptions { 41 | sourceCompatibility = JavaVersion.VERSION_18 42 | targetCompatibility = JavaVersion.VERSION_18 43 | } 44 | 45 | kotlinOptions { 46 | jvmTarget = "18" 47 | freeCompilerArgs += arrayOf( 48 | "-opt-in=androidx.compose.material3.ExperimentalMaterial3Api" 49 | ) 50 | } 51 | 52 | buildFeatures { 53 | compose = true 54 | } 55 | 56 | packaging { 57 | resources { 58 | excludes += "**" 59 | } 60 | } 61 | 62 | dependenciesInfo.includeInApk = false 63 | dependenciesInfo.includeInBundle = false 64 | 65 | signingConfigs { 66 | getByName("debug") { 67 | storeFile = file(layout.buildDirectory.dir("../testkey.keystore")) 68 | storePassword = "testkey" 69 | keyAlias = "testkey" 70 | keyPassword = "testkey" 71 | } 72 | } 73 | 74 | } 75 | 76 | dependencies { 77 | implementation(libs.androidx.core.ktx) 78 | implementation(libs.androidx.lifecycle.runtime.ktx) 79 | implementation(libs.androidx.activity.compose) 80 | implementation(platform(libs.androidx.compose.bom)) 81 | implementation(libs.androidx.ui) 82 | implementation(libs.androidx.ui.graphics) 83 | implementation(libs.androidx.ui.tooling.preview) 84 | implementation(libs.androidx.material3) 85 | implementation(libs.androidx.navigation.runtime.ktx) 86 | implementation(libs.androidx.navigation.compose) 87 | implementation(libs.oneui6.material3.dynamic.color.compose) 88 | debugImplementation(libs.ui.tooling) 89 | } 90 | -------------------------------------------------------------------------------- /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/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 28 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/assets/monet_dark.attheme: -------------------------------------------------------------------------------- 1 | actionBarActionModeDefault=n1_900 2 | actionBarActionModeDefaultIcon=a1_100 3 | actionBarActionModeDefaultSelector=n1_50 4 | actionBarActionModeDefaultTop=a1_100 5 | actionBarActionModeReaction=a1_100 6 | actionBarActionModeReactionText=n1_900 7 | actionBarActionModeReactionDot=n1_600 8 | actionBarBrowser=n1_900 9 | actionBarDefault=n1_900 10 | actionBarDefaultArchived=n1_900 11 | actionBarDefaultArchivedIcon=a1_200 12 | actionBarDefaultArchivedSearch=a2_400 13 | actionBarDefaultArchivedSelector=n2_800 14 | actionBarDefaultArchivedTitle=a1_100 15 | actionBarDefaultIcon=a1_100 16 | actionBarDefaultSearch=n1_50 17 | actionBarDefaultSearchArchivedPlaceholder=a1_1000 18 | actionBarDefaultSearchPlaceholder=a1_100 19 | actionBarDefaultSelector=n2_800 20 | actionBarDefaultSubmenuBackground=n1_900 21 | actionBarDefaultSubmenuItem=n1_50 22 | actionBarDefaultSubmenuItemIcon=a1_100 23 | actionBarDefaultSubmenuSeparator=n1_900 24 | actionBarDefaultSubtitle=n1_50 25 | actionBarDefaultTitle=a2_0 26 | actionBarTabActiveText=a1_100 27 | actionBarTabLine=a1_100 28 | actionBarTabSelector=a1_100 29 | actionBarTabUnactiveText=n1_600 30 | actionBarWhiteSelector=n2_800 31 | avatar_actionBarIconBlue=a1_100 32 | avatar_actionBarSelectorBlue=a1_100 33 | avatar_backgroundActionBarBlue=n1_900 34 | avatar_backgroundArchived=n2_800 35 | avatar_backgroundArchivedHidden=n2_800 36 | avatar_backgroundBlue=n2_800 37 | avatar_backgroundCyan=n2_800 38 | avatar_backgroundGreen=n2_800 39 | avatar_backgroundInProfileBlue=n2_800 40 | avatar_backgroundOrange=n2_800 41 | avatar_backgroundPink=n2_800 42 | avatar_backgroundRed=n2_800 43 | avatar_backgroundSaved=n2_800 44 | avatar_backgroundViolet=n2_800 45 | avatar_background2Blue=n2_800 46 | avatar_background2Cyan=n2_800 47 | avatar_background2Green=n2_800 48 | avatar_background2Orange=n2_800 49 | avatar_background2Pink=n2_800 50 | avatar_background2Red=n2_800 51 | avatar_background2Saved=n2_800 52 | avatar_background2Violet=n2_800 53 | avatar_subtitleInProfileBlue=n1_50 54 | avatar_text=a1_100 55 | bot_loadingIcon=a1_100 56 | calls_callReceivedGreenIcon=monetGreenCall 57 | calls_callReceivedRedIcon=monetRedCall 58 | changephoneinfo_image2=a1_100 59 | chats_actionBackground=a1_400 60 | chats_actionIcon=a1_100 61 | chats_actionMessage=a1_200 62 | chats_actionPressedBackground=a2_700 63 | chats_archiveBackground=n2_800 64 | chats_archiveIcon=a3_200 65 | chats_archivePinBackground=a2_600 66 | chats_archivePullDownBackground=a2_800 67 | chats_archivePullDownBackgroundActive=n1_800 68 | chats_archiveText=a3_200 69 | chats_attachMessage=a1_100 70 | chats_date=n1_50 71 | chats_draft=a1_400 72 | chats_mentionIcon=n1_900 73 | chats_menuBackground=n1_900 74 | chats_menuItemCheck=a3_200 75 | chats_menuItemIcon=a1_100 76 | chats_menuItemText=n1_50 77 | chats_menuName=a1_100 78 | chats_menuPhone=n1_50 79 | chats_menuPhoneCats=n1_50 80 | chats_menuTopBackground=n1_900 81 | chats_menuTopBackgroundCats=n1_900 82 | chats_menuTopShadow=n1_700 83 | chats_menuTopShadowCats=n1_900 84 | chats_message=n1_300 85 | chats_messageArchived=n1_300 86 | chats_message_threeLines=n1_300 87 | chats_muteIcon=a1_100 88 | chats_name=n1_50 89 | chats_nameArchived=a2_300 90 | chats_nameMessage=a1_100 91 | chats_nameMessageArchived=a1_100 92 | chats_nameMessageArchived_threeLines=n1_200 93 | chats_nameMessage_threeLines=n1_200 94 | chats_onlineCircle=a1_200 95 | chats_pinnedIcon=a1_500 96 | chats_pinnedOverlay=n1_900 97 | chats_secretIcon=a1_100 98 | chats_secretName=a1_100 99 | chats_sentCheck=a2_100 100 | chats_sentClock=a2_100 101 | chats_sentError=n1_800 102 | chats_sentErrorIcon=monetRedDark 103 | chats_sentReadCheck=a2_100 104 | chats_tabletSelectedOverlay=268435455 105 | chats_tabUnreadActiveBackground=a1_100 106 | chats_tabUnreadUnactiveBackground=n1_600 107 | chats_unreadCounter=a1_100 108 | chats_unreadCounterMuted=a2_600 109 | chats_unreadCounterText=n1_900 110 | chats_verifiedBackground=a1_100 111 | chats_verifiedCheck=n1_900 112 | chat_addContact=a1_100 113 | chat_adminSelectedText=n1_50 114 | chat_adminText=n2_50 115 | chat_attachActiveTab=a1_100 116 | chat_attachAudioBackground=a1_500 117 | chat_attachAudioText=a1_100 118 | chat_attachCheckBoxBackground=a1_200 119 | chat_attachCheckBoxCheck=n1_900 120 | chat_attachContactBackground=a1_500 121 | chat_attachContactText=a1_100 122 | chat_attachEmptyImage=a1_100 123 | chat_attachIcon=a1_50 124 | chat_attachFileBackground=a1_500 125 | chat_attachFileText=a1_100 126 | chat_attachGalleryBackground=a1_500 127 | chat_attachGalleryText=a1_100 128 | chat_attachLocationBackground=a1_500 129 | chat_attachLocationText=a1_100 130 | chat_attachPermissionImage=a1_200 131 | chat_attachPermissionMark=monetRedDark 132 | chat_attachPermissionText=a1_200 133 | chat_attachPhotoBackground=333639417 134 | chat_attachPollBackground=a1_500 135 | chat_attachPollText=a1_100 136 | chat_attachUnactiveTab=n1_600 137 | chat_BlurAlpha=-1694498816 138 | chat_BlurAlphaSlow=-1694498816 139 | chat_botButtonText=a1_100 140 | chat_botKeyboardButtonBackground=n1_500 141 | chat_botKeyboardButtonBackgroundPressed=n1_800 142 | chat_botKeyboardButtonText=n1_50 143 | chat_botSwitchToInlineText=n1_50 144 | chat_editMediaButton=a1_100 145 | chat_emojiBottomPanelIcon=a2_400 146 | chat_emojiPanelBackground=n1_900 147 | chat_emojiPanelBackspace=a2_300 148 | chat_emojiPanelEmptyText=n1_50 149 | chat_emojiPanelIcon=a2_400 150 | chat_emojiPanelIconSelected=a1_100 151 | chat_emojiPanelNewTrending=a1_100 152 | chat_emojiPanelShadowLine=n1_900 153 | chat_emojiPanelStickerPackSelector=n2_800 154 | chat_emojiPanelStickerPackSelectorLine=a1_100 155 | chat_emojiPanelStickerSetName=a2_100 156 | chat_emojiPanelStickerSetNameHighlight=a3_200 157 | chat_emojiPanelStickerSetNameIcon=a1_100 158 | chat_emojiPanelTrendingDescription=n1_900 159 | chat_emojiPanelTrendingTitle=n1_50 160 | chat_emojiSearchBackground=n2_800 161 | chat_emojiSearchIcon=a1_200 162 | chat_fieldOverlayText=a1_100 163 | chat_gifSaveHintBackground=n2_900 164 | chat_gifSaveHintText=a1_100 165 | chat_goDownButton=n2_800 166 | chat_goDownButtonCounter=n1_50 167 | chat_goDownButtonCounterBackground=n2_800 168 | chat_goDownButtonIcon=n1_50 169 | chat_inAudioCacheSeekbar=a1_100 170 | chat_inAudioDurationSelectedText=n1_50 171 | chat_inAudioDurationText=n1_50 172 | chat_inAudioPerfomerSelectedText=n1_500 173 | chat_inAudioPerfomerText=n1_500 174 | chat_inAudioProgress=a1_100 175 | chat_inAudioSeekbar=a2_300 176 | chat_inAudioSeekbarFill=a1_300 177 | chat_inAudioSeekbarSelected=a1_100 178 | chat_inAudioSelectedProgress=a1_100 179 | chat_inAudioTitleText=n1_50 180 | chat_inBubble=n2_800 181 | chat_inBubbleSelected=n2_800 182 | chat_inBubbleShadow=a1_100 183 | chat_inContactBackground=n1_900 184 | chat_inContactIcon=a1_100 185 | chat_inContactNameText=n1_50 186 | chat_inContactPhoneSelectedText=n1_50 187 | chat_inContactPhoneText=n1_50 188 | chat_inDownCall=monetGreenCall 189 | chat_inFileBackground=n1_900 190 | chat_inFileBackgroundSelected=n1_900 191 | chat_inFileInfoSelectedText=n1_50 192 | chat_inFileInfoText=n1_50 193 | chat_inFileNameText=n1_50 194 | chat_inFileProgress=a1_100 195 | chat_inFileProgressSelected=a1_100 196 | chat_inForwardedNameText=n1_50 197 | chat_inInstant=a1_100 198 | chat_inInstantSelected=a1_100 199 | chat_inlineResultIcon=a1_100 200 | chat_inLoader=a1_100 201 | chat_inLoaderPhoto=a1_100 202 | chat_inLoaderSelected=a1_100 203 | chat_inLocationBackground=n1_900 204 | chat_inLocationIcon=a1_100 205 | chat_inMediaIcon=n1_900 206 | chat_inMediaIconSelected=n1_900 207 | chat_inMenu=a1_100 208 | chat_inMenuSelected=a1_100 209 | chat_inPollCorrectAnswer=a3_500 210 | chat_inPollWrongAnswer=a2_500 211 | chat_inPreviewInstantText=a1_100 212 | chat_inPreviewLine=n1_900 213 | chat_inPsaNameText=n1_50 214 | chat_inReactionButtonBackground=a1_300 215 | chat_inReactionButtonText=n1_50 216 | chat_inReactionButtonTextSelected=n1_900 217 | chat_inReplyLine=a1_100 218 | chat_inReplyMediaMessageSelectedText=n1_50 219 | chat_inReplyMediaMessageText=n1_50 220 | chat_inReplyMessageText=n1_50 221 | chat_inReplyNameText=n1_50 222 | chat_inSentClock=n1_50 223 | chat_inSentClockSelected=n1_50 224 | chat_inSiteNameText=n1_50 225 | chat_inTextSelectionHighlight=1237106360 226 | chat_inTimeSelectedText=n1_50 227 | chat_inTimeText=n1_50 228 | chat_inVenueInfoSelectedText=a1_100 229 | chat_inVenueInfoText=n1_50 230 | chat_inViaBotNameText=a1_100 231 | chat_inViews=n1_50 232 | chat_inViewsSelected=n1_50 233 | chat_inVoiceSeekbar=a2_200 234 | chat_inVoiceSeekbarFill=a1_100 235 | chat_inVoiceSeekbarSelected=a2_300 236 | chat_linkSelectBackground=n1_300 237 | chat_lockIcon=a1_100 238 | chat_mediaInfoText=a1_100 239 | chat_mediaLoaderPhoto=a1_700 240 | chat_mediaLoaderPhotoIcon=a1_100 241 | chat_mediaLoaderPhotoIconSelected=a1_100 242 | chat_mediaLoaderPhotoSelected=a1_700 243 | chat_mediaMenu=a1_100 244 | chat_mediaProgress=a1_100 245 | chat_mediaSentCheck=n1_50 246 | chat_mediaSentClock=n1_50 247 | chat_mediaTimeBackground=a1_600 248 | chat_mediaTimeText=n1_50 249 | chat_mediaViews=n1_50 250 | chat_messageLinkIn=a3_100 251 | chat_messageLinkOut=a3_500 252 | chat_messagePanelBackground=n1_900 253 | chat_messagePanelCancelInlineBot=a1_100 254 | chat_messagePanelCursor=a1_100 255 | chat_messagePanelHint=n1_300 256 | chat_messagePanelIcons=a2_200 257 | chat_messagePanelSend=a2_200 258 | chat_messagePanelShadow=n1_900 259 | chat_messagePanelText=n1_50 260 | chat_messagePanelVoiceBackground=a1_400 261 | chat_messagePanelVoiceDelete=a1_100 262 | chat_messagePanelVoiceDuration=a1_100 263 | chat_messagePanelVoicePressed=n1_0 264 | chat_messageTextIn=n1_50 265 | chat_messageTextOut=n1_800 266 | chat_muteIcon=a1_100 267 | chat_outAdminSelectedText=n1_500 268 | chat_outAdminText=n1_500 269 | chat_outAudioCacheSeekbar=n1_900 270 | chat_outAudioDurationSelectedText=n1_900 271 | chat_outAudioDurationText=n1_900 272 | chat_outAudioPerfomerSelectedText=n1_900 273 | chat_outAudioPerfomerText=n1_900 274 | chat_outAudioProgress=n1_900 275 | chat_outAudioSeekbar=n1_400 276 | chat_outAudioSeekbarFill=a1_600 277 | chat_outAudioSeekbarSelected=n1_900 278 | chat_outAudioSelectedProgress=n1_900 279 | chat_outAudioTitleText=n1_900 280 | chat_outBubble=a1_100 281 | noGradient=a1_100 282 | noGradient2=a1_100 283 | noGradient3=a1_200 284 | chat_outBubbleGradientAnimated=0 285 | chat_outBubbleGradientSelectedOverlay=a1_100 286 | chat_outBubbleSelected=a1_100 287 | chat_outBubbleShadow=n2_800 288 | chat_outContactBackground=n1_900 289 | chat_outContactIcon=n1_900 290 | chat_outContactNameText=n1_900 291 | chat_outContactPhoneSelectedText=n1_900 292 | chat_outContactPhoneText=n1_900 293 | chat_outFileBackground=n1_900 294 | chat_outFileBackgroundSelected=a1_100 295 | chat_outFileInfoSelectedText=n1_900 296 | chat_outFileInfoText=n1_900 297 | chat_outFileNameText=n1_900 298 | chat_outFileProgress=n1_900 299 | chat_outFileProgressSelected=n1_900 300 | chat_outForwardedNameText=n1_900 301 | chat_outInstant=n1_900 302 | chat_outInstantSelected=n1_900 303 | chat_outLinkSelectBackground=n1_400 304 | chat_outLoader=n1_900 305 | chat_outLoaderSelected=n1_900 306 | chat_outLocationIcon=n1_900 307 | chat_outMediaIcon=a1_100 308 | chat_outMediaIconSelected=a1_100 309 | chat_outMenu=n1_900 310 | chat_outMenuSelected=n1_900 311 | chat_outPollCorrectAnswer=a3_500 312 | chat_outPollWrongAnswer=a2_500 313 | chat_outPreviewInstantText=n1_900 314 | chat_outPreviewLine=n1_900 315 | chat_outPsaNameText=n1_900 316 | chat_outReactionButtonBackground=a1_500 317 | chat_outReactionButtonText=n1_1000 318 | chat_outReactionButtonTextSelected=n1_0 319 | chat_outReplyLine=n1_900 320 | chat_outReplyMediaMessageSelectedText=n1_900 321 | chat_outReplyMediaMessageText=n1_900 322 | chat_outReplyMessageText=n1_900 323 | chat_outReplyNameText=n1_900 324 | chat_outSentCheck=a1_600 325 | chat_outSentCheckRead=a1_600 326 | chat_outSentCheckReadSelected=a1_600 327 | chat_outSentCheckSelected=a1_600 328 | chat_outSentClock=a1_600 329 | chat_outSentClockSelected=a1_600 330 | chat_outSiteNameText=n1_900 331 | chat_outTextSelectionCursor=a2_500 332 | chat_outTextSelectionHighlight=n2_400 333 | chat_outTimeSelectedText=n1_900 334 | chat_outTimeText=n1_900 335 | chat_outUpCall=a1_600 336 | chat_outVenueInfoSelectedText=n1_900 337 | chat_outVenueInfoText=n1_900 338 | chat_outViaBotNameText=n1_900 339 | chat_outViews=n1_900 340 | chat_outViewsSelected=n1_900 341 | chat_outVoiceSeekbar=n2_600 342 | chat_outVoiceSeekbarFill=n1_900 343 | chat_outVoiceSeekbarSelected=n1_900 344 | chat_previewDurationText=n1_50 345 | chat_previewGameText=n1_50 346 | chat_recordedVoiceBackground=n2_800 347 | chat_recordedVoiceDot=a1_100 348 | chat_recordedVoicePlayPause=a1_100 349 | chat_recordedVoiceProgress=n2_100 350 | chat_recordedVoiceProgressInner=a1_100 351 | chat_recordTime=n1_50 352 | chat_recordVoiceCancel=a1_100 353 | chat_replyPanelClose=a1_100 354 | chat_replyPanelIcons=a1_100 355 | chat_replyPanelLine=n1_900 356 | chat_replyPanelName=a1_100 357 | chat_searchPanelIcons=a1_100 358 | chat_searchPanelText=n1_50 359 | chat_secretChatStatusText=n1_50 360 | chat_secretTimeText=a1_0 361 | chat_selectedBackground=a2_700 362 | chat_sentError=n1_800 363 | chat_sentErrorIcon=monetRedDark 364 | chat_serviceBackground=n2_800 365 | chat_serviceBackgroundSelected=n1_900 366 | chat_serviceBackgroundSelector=n1_800 367 | chat_serviceIcon=a1_100 368 | chat_serviceLink=a1_100 369 | chat_serviceText=a1_100 370 | chat_status=n1_50 371 | chat_stickerNameText=n1_50 372 | chat_stickerReplyLine=a2_200 373 | chat_stickerReplyMessageText=n1_50 374 | chat_stickerReplyNameText=a2_200 375 | chat_stickersHintPanel=n1_900 376 | chat_stickerViaBotNameText=a1_100 377 | chat_textSelectBackground=n2_200 378 | chat_TextSelectionCursor=a3_400 379 | chat_topPanelBackground=n1_900 380 | chat_topPanelClose=a1_100 381 | chat_topPanelLine=a1_100 382 | chat_topPanelMessage=a1_100 383 | chat_topPanelTitle=a2_200 384 | chat_unreadMessagesStartArrowIcon=a1_100 385 | chat_unreadMessagesStartBackground=n1_900 386 | chat_unreadMessagesStartText=a1_100 387 | chat_wallpaper=n1_900 388 | checkbox=a1_100 389 | checkboxCheck=n1_900 390 | checkboxDisabled=a2_400 391 | checkboxSquareBackground=a1_100 392 | checkboxSquareCheck=n1_900 393 | checkboxSquareDisabled=a1_100 394 | checkboxSquareUnchecked=n2_500 395 | color_blue=-11362305 396 | color_purple=-7906078 397 | color_red=-832444 398 | color_lightblue=-12814100 399 | color_lightgreen=-7352519 400 | color_yellow=-2184161 401 | color_green=-12729793 402 | color_orange=-881607 403 | contacts_inviteBackground=a1_100 404 | contacts_inviteText=a1_1000 405 | contextProgressInner1=a1_100 406 | contextProgressInner2=n1_700 407 | contextProgressInner3=n1_600 408 | contextProgressInner4=a1_100 409 | contextProgressOuter1=n1_900 410 | contextProgressOuter2=a1_200 411 | contextProgressOuter3=a1_200 412 | contextProgressOuter4=n1_900 413 | dialogBackground=n1_900 414 | dialogBackgroundGray=n1_900 415 | dialogButton=a1_100 416 | dialogButtonSelector=a1_100 417 | dialogCardShadow=n2_800 418 | dialogCameraIcon=a1_100 419 | dialogCheckboxSquareBackground=n1_900 420 | dialogCheckboxSquareCheck=n1_900 421 | dialogCheckboxSquareDisabled=a1_100 422 | dialogCheckboxSquareUnchecked=a1_100 423 | dialogEmptyImage=a1_50 424 | dialogEmptyText=a1_50 425 | dialogFloatingButton=a1_200 426 | dialogFloatingButtonPressed=a2_200 427 | dialogFloatingIcon=n1_900 428 | dialogGiftsBackground=n1_900 429 | dialogGiftsTabText=n1_0 430 | dialogGrayLine=n1_900 431 | dialogIcon=a1_100 432 | dialogInputField=n1_900 433 | dialogInputFieldActivated=a1_100 434 | dialogLineProgress=a1_100 435 | dialogLineProgressBackground=n2_800 436 | dialogLinkSelection=a1_200 437 | dialogRadioBackground=a1_300 438 | dialogRadioBackgroundChecked=a1_100 439 | dialogReactionMentionBackground=a3_300 440 | dialogRoundCheckBox=a1_200 441 | dialogRoundCheckBoxCheck=n1_900 442 | dialogScrollGlow=n1_800 443 | dialogSearchBackground=n1_900 444 | dialogSearchHint=a1_100 445 | dialogSearchIcon=a1_100 446 | dialogSearchText=n1_50 447 | dialogShadowLine=n1_900 448 | dialogSwipeRemove=a3_700 449 | dialogTextBlack=n1_50 450 | dialogTextBlue=a1_100 451 | dialogTextBlue2=n1_50 452 | dialogTextBlue4=n1_50 453 | dialogTextGray=n1_50 454 | dialogTextGray2=a1_100 455 | dialogTextGray3=a1_100 456 | dialogTextGray4=a1_100 457 | dialogTextHint=n1_300 458 | dialogTextLink=n1_50 459 | dialogTopBackground=n1_900 460 | dialog_inlineProgress=a1_100 461 | dialog_inlineProgressBackground=n1_900 462 | dialog_liveLocationProgress=a1_100 463 | divider=n1_900 464 | emptyListPlaceholder=n2_100 465 | fastScrollActive=a1_600 466 | fastScrollInactive=a1_200 467 | fastScrollText=n1_50 468 | featuredStickers_addButton=a1_100 469 | featuredStickers_addButtonPressed=a2_200 470 | featuredStickers_addedIcon=a1_100 471 | featuredStickers_buttonProgress=a1_200 472 | featuredStickers_buttonText=n1_900 473 | featuredStickers_removeButtonText=a3_500 474 | featuredStickers_unread=a1_600 475 | files_folderIcon=a1_50 476 | files_folderIconBackground=a1_500 477 | files_iconText=a1_100 478 | fill_RedNormal=monetRedCall 479 | fill_RedDark=monetRedCall 480 | gift_ribbon=a1_400 481 | gift_ribbon_soldout=a3_400 482 | graySection=n1_900 483 | groupcreate_cursor=a1_100 484 | groupcreate_hintText=n1_50 485 | groupcreate_sectionShadow=n1_0 486 | groupcreate_sectionText=n1_50 487 | groupcreate_spanBackground=a2_400 488 | groupcreate_spanDelete=n1_700 489 | groupcreate_spanText=n1_900 490 | inappPlayerBackground=n1_900 491 | inappPlayerClose=n1_50 492 | inappPlayerPerformer=n1_0 493 | inappPlayerPlayPause=a1_300 494 | inappPlayerTitle=n1_50 495 | iv_ab_progress=a1_300 496 | iv_background=n1_900 497 | iv_backgroundGray=n1_800 498 | iv_navigationBackground=n1_900 499 | key_chat_messagePanelVoiceLock=a1_100 500 | key_chat_messagePanelVoiceLockBackground=n1_800 501 | key_chat_messagePanelVoiceLockShadow=n2_900 502 | key_graySectionText=a1_200 503 | key_player_progressCachedBackground=a2_300 504 | key_sheet_other=a1_100 505 | key_sheet_scrollUp=a1_100 506 | listSelectorSDK21=350681087 507 | location_actionActiveIcon=a1_300 508 | location_actionBackground=n1_900 509 | location_actionIcon=a1_300 510 | location_actionPressedBackground=n1_900 511 | location_liveLocationProgress=a1_100 512 | location_placeLocationBackground=n1_900 513 | location_sendLiveLocationBackground=a1_300 514 | location_sendLiveLocationIcon=a1_0 515 | location_sendLiveLocationText=a2_200 516 | location_sendLocationBackground=a1_300 517 | location_sendLocationIcon=a1_0 518 | location_sendLocationText=a2_200 519 | login_progressInner=a1_700 520 | login_progressOuter=a1_300 521 | passport_authorizeBackground=n1_900 522 | passport_authorizeBackgroundSelected=n1_900 523 | passport_authorizeText=n1_50 524 | picker_badge=n1_50 525 | picker_badgeText=n1_900 526 | picker_disabledButton=a1_100 527 | picker_enabledButton=a1_100 528 | player_actionBarItems=a1_100 529 | player_actionBarSelector=n2_800 530 | player_actionBarSubtitle=n1_50 531 | player_actionBarTitle=n1_50 532 | player_background=n1_900 533 | player_button=a1_100 534 | player_buttonActive=a1_100 535 | player_progress=a1_100 536 | player_progressBackground=a2_300 537 | player_time=a1_100 538 | premiumCoinGradient1=a1_300 539 | premiumCoinGradient2=a1_300 540 | premiumGradient0=a1_300 541 | premiumGradient1=a1_300 542 | premiumGradient2=a1_300 543 | premiumGradient3=a3_300 544 | premiumGradient4=a3_300 545 | premiumGradientBackground1=a3_400 546 | premiumGradientBackground2=a1_400 547 | premiumGradientBackground3=a3_400 548 | premiumGradientBackground4=a3_400 549 | premiumGradientBackgroundOverlay=n1_0 550 | premiumGradientBottomSheet1=a3_500 551 | premiumGradientBottomSheet2=a2_500 552 | premiumGradientBottomSheet3=a1_500 553 | premiumStarGradient1=n1_0 554 | premiumStarGradient2=n1_50 555 | premiumStartSmallStarsColor=n1_0 556 | premiumStartSmallStarsColor2=n1_50 557 | profile_actionBackground=n2_800 558 | profile_actionIcon=a1_100 559 | profile_actionPressedBackground=a1_100 560 | profile_creatorIcon=a1_100 561 | profile_status=n1_50 562 | profile_tabSelectedLine=a1_200 563 | profile_tabSelectedText=a1_200 564 | profile_tabSelector=n1_900 565 | profile_tabText=n1_300 566 | profile_title=n1_50 567 | profile_verifiedBackground=n1_50 568 | profile_verifiedCheck=n1_900 569 | progressCircle=a1_100 570 | radioBackground=a1_100 571 | radioBackgroundChecked=a1_100 572 | reactionStarSelector=n1_900 573 | returnToCallBackground=n1_900 574 | returnToCallMutedBackground=n1_300 575 | returnToCallText=a1_100 576 | sessions_devicesImage=a1_600 577 | sharedMedia_linkPlaceholder=a1_100 578 | sharedMedia_linkPlaceholderText=n1_900 579 | sharedMedia_photoPlaceholder=n2_800 580 | sharedMedia_startStopLoadIcon=a1_100 581 | statisticChartActiveLine=a1_400 582 | statisticChartActivePickerChart=a1_400 583 | statisticChartBackZoomColor=a1_100 584 | statisticChartChevronColor=a1_100 585 | statisticChartHintLine=a1_100 586 | statisticChartInactivePickerChart=333639417 587 | statisticChartLineEmpty=n1_800 588 | statisticChartLine_blue=a1_400 589 | statisticChartLine_cyan=a2_600 590 | statisticChartLine_golden=a1_500 591 | statisticChartLine_green=a1_700 592 | statisticChartLine_indigo=a1_200 593 | statisticChartLine_lightblue=a3_200 594 | statisticChartLine_lightgreen=a3_700 595 | statisticChartLine_orange=a3_500 596 | statisticChartLine_purple=a2_400 597 | statisticChartLine_red=a3_300 598 | statisticChartRipple=a1_800 599 | statisticChartSignature=a1_100 600 | statisticChartSignatureAlpha=a1_100 601 | stickers_menu=a1_100 602 | stickers_menuSelector=n2_700 603 | stories_circle_closeFriends1=a3_100 604 | stories_circle_closeFriends2=a3_300 605 | stories_circle_dialog1=a1_100 606 | stories_circle_dialog2=a1_300 607 | stories_circle1=a1_100 608 | stories_circle2=a1_300 609 | switch2Track=n2_500 610 | switch2TrackChecked=a1_100 611 | switchTrack=n2_500 612 | switchTrackBlue=a1_100 613 | switchTrackBlueChecked=a1_100 614 | switchTrackBlueSelector=a1_100 615 | switchTrackBlueSelectorChecked=a1_100 616 | switchTrackBlueThumb=a1_100 617 | switchTrackBlueThumbChecked=n1_900 618 | switchTrackChecked=a1_300 619 | table_background=n1_800 620 | table_border=n1_300 621 | text_RedRegular=monetRedDark 622 | text_RedBold=monetRedDark 623 | topics_unreadCounter=a1_100 624 | topics_unreadCounterMuted=a2_600 625 | undo_background=n2_800 626 | undo_cancelColor=a1_100 627 | undo_infoColor=a1_100 628 | voipgroup_actionBar=n1_900 629 | voipgroup_actionBarItems=n1_0 630 | voipgroup_actionBarItemsSelector=n1_700 631 | voipgroup_actionBarUnscrolled=n1_900 632 | voipgroup_checkMenu=a1_200 633 | voipgroup_connectingProgress=a2_100 634 | voipgroup_dialogBackground=n1_900 635 | voipgroup_disabledButton=n2_800 636 | voipgroup_disabledButtonActive=n2_800 637 | voipgroup_disabledButtonActiveScrolled=n2_800 638 | voipgroup_inviteMembersBackground=n1_900 639 | voipgroup_lastSeenText=n1_200 640 | voipgroup_lastSeenTextUnscrolled=n1_200 641 | voipgroup_leaveButton=a3_300 642 | voipgroup_leaveButtonScrolled=a3_200 643 | voipgroup_leaveCallMenu=a1_100 644 | voipgroup_listeningText=a2_300 645 | voipgroup_listSelector=n1_700 646 | voipgroup_listViewBackground=n2_800 647 | voipgroup_listViewBackgroundUnscrolled=n2_800 648 | voipgroup_muteButton=a1_500 649 | voipgroup_muteButton2=a2_300 650 | voipgroup_muteButton3=a1_300 651 | voipgroup_mutedByAdminGradient=a3_300 652 | voipgroup_mutedByAdminGradient2=a3_200 653 | voipgroup_mutedByAdminGradient3=a3_400 654 | voipgroup_mutedByAdminIcon=a3_400 655 | voipgroup_mutedByAdminMuteButton=a3_300 656 | voipgroup_mutedByAdminMuteButtonDisabled=a3_600 657 | voipgroup_mutedIcon=a2_400 658 | voipgroup_mutedIconUnscrolled=a2_400 659 | voipgroup_nameText=n1_0 660 | voipgroup_overlayAlertGradientMuted=a2_400 661 | voipgroup_overlayAlertGradientMuted2=a2_200 662 | voipgroup_overlayAlertGradientUnmuted=a1_400 663 | voipgroup_overlayAlertGradientUnmuted2=a1_200 664 | voipgroup_overlayAlertMutedByAdmin=a3_300 665 | voipgroup_overlayAlertMutedByAdmin2=a3_100 666 | voipgroup_overlayBlue1=a2_400 667 | voipgroup_overlayBlue2=a2_200 668 | voipgroup_overlayGreen1=a1_400 669 | voipgroup_overlayGreen2=a1_200 670 | voipgroup_rtmpButton=n2_800 671 | voipgroup_scrollUp=a1_400 672 | voipgroup_searchBackground=n2_700 673 | voipgroup_searchPlaceholder=n2_200 674 | voipgroup_searchText=n1_0 675 | voipgroup_soundButton=a3_400 676 | voipgroup_soundButton2=a1_400 677 | voipgroup_soundButtonActive=a3_400 678 | voipgroup_soundButtonActive2=a1_400 679 | voipgroup_soundButtonActive2Scrolled=a1_400 680 | voipgroup_soundButtonActiveScrolled=a3_400 681 | voipgroup_speakingText=a1_100 682 | voipgroup_topPanelBlue1=n2_600 683 | voipgroup_topPanelBlue2=n2_300 684 | voipgroup_topPanelGray=n1_900 685 | voipgroup_topPanelGreen1=a1_400 686 | voipgroup_topPanelGreen2=a1_600 687 | voipgroup_unmuteButton=a2_500 688 | voipgroup_unmuteButton2=a2_600 689 | voipgroup_windowBackgroundWhiteInputField=n1_0 690 | voipgroup_windowBackgroundWhiteInputFieldActivated=n1_0 691 | windowBackgroundChecked=n1_900 692 | windowBackgroundCheckText=n1_50 693 | windowBackgroundGray=n1_900 694 | windowBackgroundGrayShadow=n1_900 695 | windowBackgroundUnchecked=n1_900 696 | windowBackgroundWhite=n1_900 697 | windowBackgroundWhiteBlackText=n1_50 698 | windowBackgroundWhiteBlueButton=a1_100 699 | windowBackgroundWhiteBlueHeader=a1_100 700 | windowBackgroundWhiteBlueIcon=a1_100 701 | windowBackgroundWhiteBlueText=n1_50 702 | windowBackgroundWhiteBlueText2=a2_200 703 | windowBackgroundWhiteBlueText3=a2_200 704 | windowBackgroundWhiteBlueText4=a2_200 705 | windowBackgroundWhiteBlueText5=a2_200 706 | windowBackgroundWhiteBlueText6=a2_200 707 | windowBackgroundWhiteBlueText7=a2_200 708 | windowBackgroundWhiteGrayIcon=a1_100 709 | windowBackgroundWhiteGrayText=n1_200 710 | windowBackgroundWhiteGrayText2=n1_200 711 | windowBackgroundWhiteGrayText3=n1_200 712 | windowBackgroundWhiteGrayText4=n1_200 713 | windowBackgroundWhiteGrayText5=n1_200 714 | windowBackgroundWhiteGrayText6=n1_200 715 | windowBackgroundWhiteGrayText7=n1_200 716 | windowBackgroundWhiteGrayText8=n1_200 717 | windowBackgroundWhiteGreenText=n1_50 718 | windowBackgroundWhiteGreenText2=n1_50 719 | windowBackgroundWhiteHintText=n1_50 720 | windowBackgroundWhiteInputField=a1_200 721 | windowBackgroundWhiteInputFieldActivated=a1_100 722 | windowBackgroundWhiteLinkSelection=n1_600 723 | windowBackgroundWhiteLinkText=a3_100 724 | windowBackgroundWhiteValueText=a1_100 725 | end -------------------------------------------------------------------------------- /app/src/main/assets/monet_light.attheme: -------------------------------------------------------------------------------- 1 | actionBarActionModeDefault=n1_50 2 | actionBarActionModeDefaultIcon=a1_600 3 | actionBarActionModeDefaultSelector=n1_50 4 | actionBarActionModeDefaultTop=a1_600 5 | actionBarActionModeReaction=a1_200 6 | actionBarActionModeReactionText=n1_900 7 | actionBarActionModeReactionDot=n1_400 8 | actionBarBrowser=n1_50 9 | actionBarDefault=n1_50 10 | actionBarDefaultArchived=n1_50 11 | actionBarDefaultArchivedIcon=a1_600 12 | actionBarDefaultArchivedSearch=a2_200 13 | actionBarDefaultArchivedSelector=n2_800 14 | actionBarDefaultArchivedTitle=a1_600 15 | actionBarDefaultIcon=a1_600 16 | actionBarDefaultSearch=a1_1000 17 | actionBarDefaultSearchArchivedPlaceholder=a1_0 18 | actionBarDefaultSearchPlaceholder=a1_600 19 | actionBarDefaultSelector=n2_800 20 | actionBarDefaultSubmenuBackground=n1_50 21 | actionBarDefaultSubmenuItem=a1_1000 22 | actionBarDefaultSubmenuItemIcon=a1_600 23 | actionBarDefaultSubmenuSeparator=n1_50 24 | actionBarDefaultSubtitle=a1_1000 25 | actionBarDefaultTitle=a1_1000 26 | actionBarTabActiveText=a1_600 27 | actionBarTabLine=a1_600 28 | actionBarTabSelector=a1_700 29 | actionBarTabUnactiveText=a2_800 30 | actionBarWhiteSelector=n2_800 31 | avatar_actionBarIconBlue=n1_1000 32 | avatar_actionBarSelectorBlue=a1_600 33 | avatar_backgroundActionBarBlue=n1_50 34 | avatar_backgroundArchived=a1_600 35 | avatar_backgroundArchivedHidden=a1_600 36 | avatar_backgroundBlue=a1_600 37 | avatar_backgroundCyan=a1_600 38 | avatar_backgroundGreen=a1_600 39 | avatar_backgroundInProfileBlue=a1_600 40 | avatar_backgroundOrange=a1_600 41 | avatar_backgroundPink=a1_600 42 | avatar_backgroundRed=a1_600 43 | avatar_backgroundSaved=a1_600 44 | avatar_backgroundViolet=a1_600 45 | avatar_background2Blue=a1_600 46 | avatar_background2Cyan=a1_600 47 | avatar_background2Green=a1_600 48 | avatar_background2Orange=a1_600 49 | avatar_background2Pink=a1_600 50 | avatar_background2Red=a1_600 51 | avatar_background2Saved=a1_600 52 | avatar_background2Violet=a1_600 53 | avatar_subtitleInProfileBlue=a1_1000 54 | avatar_text=n1_50 55 | bot_loadingIcon=a1_600 56 | calls_callReceivedGreenIcon=monetGreenCall 57 | calls_callReceivedRedIcon=monetRedCall 58 | changephoneinfo_image2=a1_600 59 | chats_actionBackground=a1_400 60 | chats_actionIcon=n1_1000 61 | chats_actionMessage=a1_800 62 | chats_actionPressedBackground=a1_200 63 | chats_archiveBackground=a1_600 64 | chats_archiveIcon=a3_200 65 | chats_archivePinBackground=a2_600 66 | chats_archivePullDownBackground=n1_400 67 | chats_archivePullDownBackgroundActive=a2_300 68 | chats_archiveText=a3_200 69 | chats_attachMessage=a1_1000 70 | chats_date=a1_600 71 | chats_draft=a1_600 72 | chats_mentionIcon=n1_50 73 | chats_menuBackground=n1_50 74 | chats_menuItemCheck=a3_200 75 | chats_menuItemIcon=a1_600 76 | chats_menuItemText=a1_1000 77 | chats_menuName=a1_600 78 | chats_menuPhone=a1_0 79 | chats_menuPhoneCats=a1_600 80 | chats_menuTopBackground=n1_50 81 | chats_menuTopBackgroundCats=n1_50 82 | chats_menuTopShadow=n1_800 83 | chats_menuTopShadowCats=n1_50 84 | chats_message=a1_1000 85 | chats_messageArchived=a1_1000 86 | chats_message_threeLines=a1_1000 87 | chats_muteIcon=a1_600 88 | chats_name=a1_600 89 | chats_nameArchived=a1_600 90 | chats_nameMessage=a1_600 91 | chats_nameMessageArchived=a1_600 92 | chats_nameMessageArchived_threeLines=a1_600 93 | chats_nameMessage_threeLines=a1_600 94 | chats_onlineCircle=a1_600 95 | chats_pinnedIcon=a1_600 96 | chats_pinnedOverlay=n1_50 97 | chats_secretIcon=a1_600 98 | chats_secretName=a1_600 99 | chats_sentCheck=a1_600 100 | chats_sentClock=a1_600 101 | chats_sentError=n1_400 102 | chats_sentErrorIcon=monetRedLight 103 | chats_sentReadCheck=a1_600 104 | chats_tabletSelectedOverlay=n1_100 105 | chats_tabUnreadActiveBackground=a1_600 106 | chats_tabUnreadUnactiveBackground=a2_800 107 | chats_unreadCounter=a1_600 108 | chats_unreadCounterMuted=n1_400 109 | chats_unreadCounterText=n1_50 110 | chats_verifiedBackground=a1_600 111 | chats_verifiedCheck=n1_50 112 | chat_addContact=a1_600 113 | chat_adminSelectedText=a1_1000 114 | chat_adminText=a1_1000 115 | chat_attachActiveTab=a1_600 116 | chat_attachAudioBackground=a1_600 117 | chat_attachAudioText=a1_1000 118 | chat_attachCheckBoxBackground=a1_600 119 | chat_attachCheckBoxCheck=n1_50 120 | chat_attachContactBackground=a1_600 121 | chat_attachContactText=a1_1000 122 | chat_attachEmptyImage=a1_600 123 | chat_attachIcon=a1_50 124 | chat_attachFileBackground=a1_600 125 | chat_attachFileText=a1_1000 126 | chat_attachGalleryBackground=a1_600 127 | chat_attachGalleryText=a1_1000 128 | chat_attachLocationBackground=a1_600 129 | chat_attachLocationText=a1_1000 130 | chat_attachPermissionImage=a1_500 131 | chat_attachPermissionMark=monetRedLight 132 | chat_attachPermissionText=a1_500 133 | chat_attachPhotoBackground=662406276 134 | chat_attachPollBackground=a1_600 135 | chat_attachPollText=a1_1000 136 | chat_attachUnactiveTab=n1_300 137 | chat_BlurAlphaSlow=1845499255 138 | chat_BlurAlpha=1845499255 139 | chat_botButtonText=n1_50 140 | chat_botKeyboardButtonBackground=a1_600 141 | chat_botKeyboardButtonBackgroundPressed=n1_50 142 | chat_botKeyboardButtonText=n1_50 143 | chat_botSwitchToInlineText=n1_50 144 | chat_editMediaButton=a1_600 145 | chat_emojiBottomPanelIcon=a2_300 146 | chat_emojiPanelBackground=n1_50 147 | chat_emojiPanelBackspace=a2_700 148 | chat_emojiPanelEmptyText=a1_600 149 | chat_emojiPanelIcon=a2_300 150 | chat_emojiPanelIconSelected=a1_600 151 | chat_emojiPanelNewTrending=a1_600 152 | chat_emojiPanelShadowLine=n1_50 153 | chat_emojiPanelStickerPackSelector=n2_800 154 | chat_emojiPanelStickerPackSelectorLine=a1_600 155 | chat_emojiPanelStickerSetName=a2_500 156 | chat_emojiPanelStickerSetNameHighlight=a3_300 157 | chat_emojiPanelStickerSetNameIcon=a1_600 158 | chat_emojiPanelTrendingDescription=a1_600 159 | chat_emojiPanelTrendingTitle=a1_600 160 | chat_emojiSearchBackground=a1_100 161 | chat_emojiSearchIcon=a1_600 162 | chat_fieldOverlayText=a1_600 163 | chat_gifSaveHintBackground=a1_500 164 | chat_gifSaveHintText=n1_50 165 | chat_goDownButton=a1_400 166 | chat_goDownButtonCounter=n1_50 167 | chat_goDownButtonCounterBackground=a1_400 168 | chat_goDownButtonIcon=n1_50 169 | chat_inAudioCacheSeekbar=a1_600 170 | chat_inAudioDurationSelectedText=a1_1000 171 | chat_inAudioDurationText=a1_600 172 | chat_inAudioPerfomerSelectedText=a1_1000 173 | chat_inAudioPerfomerText=a1_1000 174 | chat_inAudioProgress=a1_600 175 | chat_inAudioSeekbar=a2_300 176 | chat_inAudioSeekbarFill=a1_600 177 | chat_inAudioSeekbarSelected=a1_600 178 | chat_inAudioSelectedProgress=n1_300 179 | chat_inAudioTitleText=a1_1000 180 | chat_inBubble=a2_50 181 | chat_inBubbleSelected=a2_50 182 | chat_inBubbleShadow=a1_300 183 | chat_inContactBackground=a1_600 184 | chat_inContactIcon=a1_600 185 | chat_inContactNameText=a1_600 186 | chat_inContactPhoneSelectedText=n1_50 187 | chat_inContactPhoneText=a1_1000 188 | chat_inDownCall=a1_600 189 | chat_inFileBackground=a1_200 190 | chat_inFileBackgroundSelected=a1_200 191 | chat_inFileInfoSelectedText=a1_1000 192 | chat_inFileInfoText=a1_1000 193 | chat_inFileNameText=a1_600 194 | chat_inFileProgress=a1_600 195 | chat_inFileProgressSelected=a1_600 196 | chat_inForwardedNameText=a1_1000 197 | chat_inInstant=a1_600 198 | chat_inInstantSelected=a1_600 199 | chat_inlineResultIcon=a1_600 200 | chat_inLoader=a1_600 201 | chat_inLoaderPhoto=a1_600 202 | chat_inLoaderSelected=a1_600 203 | chat_inLocationBackground=n1_50 204 | chat_inLocationIcon=a1_600 205 | chat_inMediaIcon=n1_50 206 | chat_inMediaIconSelected=n1_50 207 | chat_inMenu=a1_600 208 | chat_inMenuSelected=a1_600 209 | chat_inPollCorrectAnswer=a3_600 210 | chat_inPollWrongAnswer=a2_500 211 | chat_inPreviewInstantText=n1_1000 212 | chat_inPreviewLine=a1_600 213 | chat_inPsaNameText=n1_900 214 | chat_inReactionButtonBackground=a1_600 215 | chat_inReactionButtonText=a1_1000 216 | chat_inReactionButtonTextSelected=n1_50 217 | chat_inReplyLine=a1_600 218 | chat_inReplyMediaMessageSelectedText=a1_1000 219 | chat_inReplyMediaMessageText=a1_1000 220 | chat_inReplyMessageText=a1_1000 221 | chat_inReplyNameText=a1_600 222 | chat_inSentClock=a1_1000 223 | chat_inSentClockSelected=a1_1000 224 | chat_inSiteNameText=a1_1000 225 | chat_inTextSelectionHighlight=1230789978 226 | chat_inTimeSelectedText=a1_1000 227 | chat_inTimeText=a1_1000 228 | chat_inVenueInfoSelectedText=a1_1000 229 | chat_inVenueInfoText=n1_50 230 | chat_inViaBotNameText=a1_600 231 | chat_inViews=a1_1000 232 | chat_inViewsSelected=a1_1000 233 | chat_inVoiceSeekbar=n1_300 234 | chat_inVoiceSeekbarFill=a1_600 235 | chat_inVoiceSeekbarSelected=n1_300 236 | chat_linkSelectBackground=n1_400 237 | chat_lockIcon=a1_600 238 | chat_mediaInfoText=n1_50 239 | chat_mediaLoaderPhoto=a1_600 240 | chat_mediaLoaderPhotoIcon=n1_50 241 | chat_mediaLoaderPhotoIconSelected=n1_50 242 | chat_mediaLoaderPhotoSelected=a1_600 243 | chat_mediaMenu=a1_600 244 | chat_mediaProgress=a1_600 245 | chat_mediaSentCheck=n1_50 246 | chat_mediaSentClock=n1_50 247 | chat_mediaTimeBackground=a1_600 248 | chat_mediaTimeText=n1_50 249 | chat_mediaViews=n1_50 250 | chat_messageLinkIn=a3_500 251 | chat_messageLinkOut=a3_200 252 | chat_messagePanelBackground=n1_50 253 | chat_messagePanelCancelInlineBot=a1_600 254 | chat_messagePanelCursor=a1_600 255 | chat_messagePanelHint=n1_300 256 | chat_messagePanelIcons=a1_600 257 | chat_messagePanelSend=a1_600 258 | chat_messagePanelShadow=n1_50 259 | chat_messagePanelText=a1_1000 260 | chat_messagePanelVoiceBackground=a1_600 261 | chat_messagePanelVoiceDelete=a1_600 262 | chat_messagePanelVoiceDuration=n1_50 263 | chat_messagePanelVoicePressed=n1_50 264 | chat_messageTextIn=a1_1000 265 | chat_messageTextOut=n1_0 266 | chat_muteIcon=a1_600 267 | chat_outAdminSelectedText=n1_0 268 | chat_outAdminText=n1_0 269 | chat_outAudioCacheSeekbar=n1_50 270 | chat_outAudioDurationSelectedText=n1_50 271 | chat_outAudioDurationText=n1_50 272 | chat_outAudioPerfomerSelectedText=n1_50 273 | chat_outAudioPerfomerText=n1_50 274 | chat_outAudioProgress=a1_200 275 | chat_outAudioSeekbar=n1_300 276 | chat_outAudioSeekbarFill=a1_300 277 | chat_outAudioSeekbarSelected=n1_300 278 | chat_outAudioSelectedProgress=a1_200 279 | chat_outAudioTitleText=n1_50 280 | chat_outBubble=a1_600 281 | noGradient=a1_600 282 | noGradient2=a1_600 283 | noGradient3=a1_700 284 | chat_outBubbleGradientAnimated=0 285 | chat_outBubbleGradientSelectedOverlay=a1_600 286 | chat_outBubbleSelected=a1_600 287 | chat_outBubbleShadow=n2_800 288 | chat_outContactBackground=n1_50 289 | chat_outContactIcon=n1_50 290 | chat_outContactNameText=n1_50 291 | chat_outContactPhoneSelectedText=n1_50 292 | chat_outContactPhoneText=n1_50 293 | chat_outFileBackground=n1_50 294 | chat_outFileBackgroundSelected=a1_600 295 | chat_outFileInfoSelectedText=n1_50 296 | chat_outFileInfoText=n1_50 297 | chat_outFileNameText=n1_50 298 | chat_outFileProgress=n1_50 299 | chat_outFileProgressSelected=n1_50 300 | chat_outForwardedNameText=n1_50 301 | chat_outInstant=a1_10 302 | chat_outInstantSelected=a1_10 303 | chat_outLinkSelectBackground=n1_400 304 | chat_outLoader=n1_50 305 | chat_outLoaderSelected=n1_50 306 | chat_outLocationIcon=n1_50 307 | chat_outMediaIcon=a1_600 308 | chat_outMediaIconSelected=a1_600 309 | chat_outMenu=n1_50 310 | chat_outMenuSelected=n1_50 311 | chat_outPollCorrectAnswer=a3_300 312 | chat_outPollWrongAnswer=a2_300 313 | chat_outPreviewInstantText=n1_50 314 | chat_outPreviewLine=n1_50 315 | chat_outPsaNameText=n1_50 316 | chat_outReactionButtonBackground=a1_200 317 | chat_outReactionButtonText=n1_0 318 | chat_outReactionButtonTextSelected=n1_1000 319 | chat_outReplyLine=n1_50 320 | chat_outReplyMediaMessageSelectedText=n1_50 321 | chat_outReplyMediaMessageText=n1_50 322 | chat_outReplyMessageText=n1_50 323 | chat_outReplyNameText=n1_50 324 | chat_outSentCheck=a2_200 325 | chat_outSentCheckRead=a2_200 326 | chat_outSentCheckReadSelected=a2_200 327 | chat_outSentCheckSelected=a2_200 328 | chat_outSentClock=a2_200 329 | chat_outSentClockSelected=a2_200 330 | chat_outSiteNameText=n1_50 331 | chat_outTextSelectionCursor=a2_300 332 | chat_outTextSelectionHighlight=n1_700 333 | chat_outTimeSelectedText=n1_50 334 | chat_outTimeText=n1_50 335 | chat_outUpCall=a1_300 336 | chat_outVenueInfoSelectedText=n1_50 337 | chat_outVenueInfoText=n1_50 338 | chat_outViaBotNameText=n1_50 339 | chat_outViews=n1_50 340 | chat_outViewsSelected=n1_50 341 | chat_outVoiceSeekbar=n1_300 342 | chat_outVoiceSeekbarFill=n1_50 343 | chat_outVoiceSeekbarSelected=n1_300 344 | chat_previewDurationText=n1_50 345 | chat_previewGameText=n1_50 346 | chat_recordedVoiceBackground=a1_600 347 | chat_recordedVoiceDot=a1_600 348 | chat_recordedVoicePlayPause=a1_100 349 | chat_recordedVoiceProgress=n1_300 350 | chat_recordedVoiceProgressInner=n1_50 351 | chat_recordTime=a1_600 352 | chat_recordVoiceCancel=a1_600 353 | chat_replyPanelClose=a1_600 354 | chat_replyPanelIcons=a1_600 355 | chat_replyPanelLine=n1_50 356 | chat_replyPanelName=a1_1000 357 | chat_searchPanelIcons=a1_600 358 | chat_searchPanelText=a1_1000 359 | chat_secretChatStatusText=a1_600 360 | chat_secretTimeText=a1_0 361 | chat_selectedBackground=n2_100 362 | chat_sentError=n1_400 363 | chat_sentErrorIcon=monetRedLight 364 | chat_serviceBackground=a1_600 365 | chat_serviceBackgroundSelected=a1_600 366 | chat_serviceBackgroundSelector=a1_700 367 | chat_serviceIcon=n1_50 368 | chat_serviceLink=n1_50 369 | chat_serviceText=n1_50 370 | chat_status=a1_600 371 | chat_stickerNameText=n1_50 372 | chat_stickerReplyLine=n1_50 373 | chat_stickerReplyMessageText=n1_50 374 | chat_stickerReplyNameText=n1_50 375 | chat_stickersHintPanel=n1_50 376 | chat_stickerViaBotNameText=a1_0 377 | chat_textSelectBackground=a1_200 378 | chat_TextSelectionCursor=a3_500 379 | chat_topPanelBackground=n1_50 380 | chat_topPanelClose=a1_600 381 | chat_topPanelLine=a1_600 382 | chat_topPanelMessage=a1_1000 383 | chat_topPanelTitle=a1_600 384 | chat_unreadMessagesStartArrowIcon=a1_600 385 | chat_unreadMessagesStartBackground=n1_50 386 | chat_unreadMessagesStartText=a1_1000 387 | chat_wallpaper=n1_50 388 | checkbox=a1_600 389 | checkboxCheck=a1_50 390 | checkboxDisabled=a2_200 391 | checkboxSquareBackground=a1_600 392 | checkboxSquareCheck=n1_50 393 | checkboxSquareDisabled=a1_600 394 | checkboxSquareUnchecked=n2_500 395 | color_blue=-13467675 396 | color_green=-10369198 397 | color_lightblue=-10966803 398 | color_lightgreen=-7352519 399 | color_orange=-881607 400 | color_purple=-8422925 401 | color_red=-2075818 402 | color_yellow=-1853657 403 | contacts_inviteBackground=n2_800 404 | contacts_inviteText=n1_50 405 | contextProgressInner1=a1_1000 406 | contextProgressInner2=n1_100 407 | contextProgressInner3=n1_600 408 | contextProgressInner4=a1_1000 409 | contextProgressOuter1=n1_50 410 | contextProgressOuter2=a1_400 411 | contextProgressOuter3=a1_200 412 | contextProgressOuter4=n1_50 413 | dialogBackground=n1_50 414 | dialogBackgroundGray=n1_50 415 | dialogButton=a1_600 416 | dialogButtonSelector=a1_600 417 | dialogCardShadow=n2_200 418 | dialogCameraIcon=a1_600 419 | dialogCheckboxSquareBackground=a1_600 420 | dialogCheckboxSquareCheck=n1_50 421 | dialogCheckboxSquareDisabled=a1_700 422 | dialogCheckboxSquareUnchecked=a1_600 423 | dialogEmptyImage=a1_900 424 | dialogEmptyText=a1_900 425 | dialogFloatingButton=a1_600 426 | dialogFloatingButtonPressed=a2_600 427 | dialogFloatingIcon=n1_50 428 | dialogGiftsBackground=n1_50 429 | dialogGiftsTabText=n1_1000 430 | dialogGrayLine=n1_50 431 | dialogIcon=a1_600 432 | dialogInputField=n1_50 433 | dialogInputFieldActivated=a1_600 434 | dialogLineProgress=a1_600 435 | dialogLineProgressBackground=a1_200 436 | dialogLinkSelection=a1_600 437 | dialogRadioBackground=a1_600 438 | dialogRadioBackgroundChecked=a1_600 439 | dialogReactionMentionBackground=a3_700 440 | dialogRoundCheckBox=a1_600 441 | dialogRoundCheckBoxCheck=n1_50 442 | dialogScrollGlow=n1_100 443 | dialogSearchBackground=n1_50 444 | dialogSearchHint=a1_600 445 | dialogSearchIcon=a1_600 446 | dialogSearchText=n1_900 447 | dialogShadowLine=n1_50 448 | dialogSwipeRemove=a3_700 449 | dialogTextBlack=a1_1000 450 | dialogTextBlue=a1_1000 451 | dialogTextBlue2=a1_600 452 | dialogTextBlue4=a1_600 453 | dialogTextGray=a1_600 454 | dialogTextGray2=a1_600 455 | dialogTextGray3=a1_600 456 | dialogTextGray4=a1_600 457 | dialogTextHint=n1_300 458 | dialogTextLink=a1_600 459 | dialogTopBackground=n1_500 460 | dialog_inlineProgress=a1_600 461 | dialog_inlineProgressBackground=n1_50 462 | dialog_liveLocationProgress=a1_600 463 | divider=n1_50 464 | emptyListPlaceholder=n2_800 465 | fastScrollActive=a1_200 466 | fastScrollInactive=a1_600 467 | fastScrollText=n1_800 468 | featuredStickers_addButton=a1_600 469 | featuredStickers_addButtonPressed=a1_600 470 | featuredStickers_addedIcon=a1_600 471 | featuredStickers_buttonProgress=a1_600 472 | featuredStickers_buttonText=n1_50 473 | featuredStickers_removeButtonText=a3_500 474 | featuredStickers_unread=a1_600 475 | files_folderIcon=a1_0 476 | files_folderIconBackground=a1_600 477 | files_iconText=a1_1000 478 | fill_RedNormal=monetRedCall 479 | fill_RedDark=monetRedCall 480 | gift_ribbon=a1_600 481 | gift_ribbon_soldout=a3_600 482 | graySection=n1_50 483 | groupcreate_cursor=a1_600 484 | groupcreate_hintText=a1_700 485 | groupcreate_sectionShadow=n1_0 486 | groupcreate_sectionText=n1_900 487 | groupcreate_spanBackground=a2_200 488 | groupcreate_spanDelete=a1_700 489 | groupcreate_spanText=a1_0 490 | inappPlayerBackground=n1_50 491 | inappPlayerClose=a1_1000 492 | inappPlayerPerformer=a1_600 493 | inappPlayerPlayPause=a1_600 494 | inappPlayerTitle=a1_1000 495 | iv_ab_progress=a1_700 496 | iv_background=n1_50 497 | iv_backgroundGray=n1_50 498 | iv_navigationBackground=n1_50 499 | key_chat_messagePanelVoiceLock=n1_50 500 | key_chat_messagePanelVoiceLockBackground=a1_500 501 | key_chat_messagePanelVoiceLockShadow=a2_600 502 | key_graySectionText=a1_600 503 | key_player_progressCachedBackground=a2_300 504 | key_sheet_other=a1_600 505 | key_sheet_scrollUp=a1_600 506 | listSelectorSDK21=251658240 507 | location_actionActiveIcon=a1_600 508 | location_actionBackground=n1_50 509 | location_actionIcon=a1_600 510 | location_actionPressedBackground=n1_50 511 | location_liveLocationProgress=a1_600 512 | location_placeLocationBackground=n1_50 513 | location_sendLiveLocationBackground=a1_600 514 | location_sendLiveLocationIcon=a1_0 515 | location_sendLiveLocationText=a1_600 516 | location_sendLocationBackground=a1_600 517 | location_sendLocationIcon=a1_0 518 | location_sendLocationText=a1_600 519 | login_progressInner=a1_100 520 | login_progressOuter=a1_700 521 | passport_authorizeBackground=n1_50 522 | passport_authorizeBackgroundSelected=n1_50 523 | passport_authorizeText=n1_900 524 | picker_badge=n1_50 525 | picker_badgeText=n1_900 526 | picker_disabledButton=a1_600 527 | picker_enabledButton=a1_600 528 | player_actionBarItems=a1_1000 529 | player_actionBarSelector=a1_600 530 | player_actionBarSubtitle=a1_600 531 | player_actionBarTitle=a1_1000 532 | player_background=n1_50 533 | player_button=a1_600 534 | player_buttonActive=a1_600 535 | player_progress=a1_600 536 | player_progressBackground=a2_300 537 | player_time=a1_600 538 | premiumCoinGradient1=a1_400 539 | premiumCoinGradient2=a1_400 540 | premiumGradient0=a1_400 541 | premiumGradient1=a1_400 542 | premiumGradient2=a1_400 543 | premiumGradient3=a3_400 544 | premiumGradient4=a3_400 545 | premiumGradientBackground1=a3_400 546 | premiumGradientBackground2=a1_400 547 | premiumGradientBackground3=a3_400 548 | premiumGradientBackground4=a3_400 549 | premiumGradientBackgroundOverlay=n1_0 550 | premiumGradientBottomSheet1=a3_200 551 | premiumGradientBottomSheet2=a2_200 552 | premiumGradientBottomSheet3=a1_200 553 | premiumStarGradient1=n1_0 554 | premiumStarGradient2=n1_50 555 | premiumStartSmallStarsColor=n1_0 556 | premiumStartSmallStarsColor2=n1_50 557 | profile_actionBackground=a1_600 558 | profile_actionIcon=n1_50 559 | profile_actionPressedBackground=a1_200 560 | profile_creatorIcon=a1_600 561 | profile_status=a1_1000 562 | profile_tabSelectedLine=a1_700 563 | profile_tabSelectedText=a1_700 564 | profile_tabSelector=a1_600 565 | profile_tabText=n1_500 566 | profile_title=a1_1000 567 | profile_verifiedBackground=a1_600 568 | profile_verifiedCheck=a1_0 569 | progressCircle=a1_600 570 | radioBackground=a1_600 571 | reactionStarSelector=n1_50 572 | radioBackgroundChecked=a1_600 573 | returnToCallBackground=n1_50 574 | returnToCallMutedBackground=n1_600 575 | returnToCallText=a1_1000 576 | sessions_devicesImage=a1_100 577 | sharedMedia_linkPlaceholder=a1_600 578 | sharedMedia_linkPlaceholderText=n1_50 579 | sharedMedia_photoPlaceholder=a1_600 580 | sharedMedia_startStopLoadIcon=a1_600 581 | statisticChartActiveLine=n1_50 582 | statisticChartActivePickerChart=a1_600 583 | statisticChartBackZoomColor=a1_600 584 | statisticChartChevronColor=a1_600 585 | statisticChartHintLine=a1_600 586 | statisticChartInactivePickerChart=662406276 587 | statisticChartLineEmpty=n1_50 588 | statisticChartLine_blue=a1_300 589 | statisticChartLine_cyan=a2_600 590 | statisticChartLine_golden=a1_500 591 | statisticChartLine_green=a1_700 592 | statisticChartLine_indigo=a2_300 593 | statisticChartLine_lightblue=a3_300 594 | statisticChartLine_lightgreen=a3_500 595 | statisticChartLine_orange=a3_700 596 | statisticChartLine_purple=a2_400 597 | statisticChartLine_red=a2_500 598 | statisticChartRipple=a1_300 599 | statisticChartSignature=a1_600 600 | statisticChartSignatureAlpha=a1_600 601 | stickers_menu=a1_600 602 | stickers_menuSelector=n2_200 603 | stories_circle_closeFriends1=a3_400 604 | stories_circle_closeFriends2=a3_600 605 | stories_circle_dialog1=a1_400 606 | stories_circle_dialog2=a1_600 607 | stories_circle1=a1_400 608 | stories_circle2=a1_600 609 | switch2Track=n2_500 610 | switch2TrackChecked=a1_700 611 | switchTrack=n2_500 612 | switchTrackBlue=a1_600 613 | switchTrackBlueChecked=a1_600 614 | switchTrackBlueSelector=a1_600 615 | switchTrackBlueSelectorChecked=a1_600 616 | switchTrackBlueThumb=n1_50 617 | switchTrackBlueThumbChecked=n1_50 618 | switchTrackChecked=a1_700 619 | table_background=n1_100 620 | table_border=n1_900 621 | text_RedRegular=monetRedLight 622 | text_RedBold=monetRedLight 623 | topics_unreadCounter=a1_600 624 | topics_unreadCounterMuted=n1_50 625 | undo_background=a1_600 626 | undo_cancelColor=a1_200 627 | undo_infoColor=n1_50 628 | voipgroup_actionBar=n1_900 629 | voipgroup_actionBarItems=n1_0 630 | voipgroup_actionBarItemsSelector=n1_700 631 | voipgroup_actionBarUnscrolled=n1_900 632 | voipgroup_checkMenu=a1_200 633 | voipgroup_connectingProgress=a2_100 634 | voipgroup_dialogBackground=n1_900 635 | voipgroup_disabledButton=n2_800 636 | voipgroup_disabledButtonActive=n2_800 637 | voipgroup_disabledButtonActiveScrolled=n2_800 638 | voipgroup_inviteMembersBackground=n1_900 639 | voipgroup_lastSeenText=n1_200 640 | voipgroup_lastSeenTextUnscrolled=n1_200 641 | voipgroup_leaveButton=a3_300 642 | voipgroup_leaveButtonScrolled=a3_200 643 | voipgroup_leaveCallMenu=a1_100 644 | voipgroup_listeningText=a2_300 645 | voipgroup_listSelector=n1_700 646 | voipgroup_listViewBackground=n2_800 647 | voipgroup_listViewBackgroundUnscrolled=n2_800 648 | voipgroup_muteButton=a1_500 649 | voipgroup_muteButton2=a2_300 650 | voipgroup_muteButton3=a1_300 651 | voipgroup_mutedByAdminGradient=a3_200 652 | voipgroup_mutedByAdminGradient2=a3_200 653 | voipgroup_mutedByAdminGradient3=a3_300 654 | voipgroup_mutedByAdminIcon=a3_400 655 | voipgroup_mutedByAdminMuteButton=a3_300 656 | voipgroup_mutedByAdminMuteButtonDisabled=a3_200 657 | voipgroup_mutedIcon=a2_400 658 | voipgroup_mutedIconUnscrolled=a2_400 659 | voipgroup_nameText=n1_0 660 | voipgroup_overlayAlertGradientMuted=a2_400 661 | voipgroup_overlayAlertGradientMuted2=a2_200 662 | voipgroup_overlayAlertGradientUnmuted=a1_400 663 | voipgroup_overlayAlertGradientUnmuted2=a1_200 664 | voipgroup_overlayAlertMutedByAdmin=a3_300 665 | kvoipgroup_overlayAlertMutedByAdmin2=a3_100 666 | voipgroup_overlayBlue1=a2_400 667 | voipgroup_overlayBlue2=a2_200 668 | voipgroup_overlayGreen1=a1_400 669 | voipgroup_overlayGreen2=a1_200 670 | voipgroup_rtmpButton=n2_800 671 | voipgroup_scrollUp=a1_400 672 | voipgroup_searchBackground=n2_700 673 | voipgroup_searchPlaceholder=n2_200 674 | voipgroup_searchText=n1_0 675 | voipgroup_soundButton=a3_400 676 | voipgroup_soundButton2=a1_400 677 | voipgroup_soundButtonActive=a3_400 678 | voipgroup_soundButtonActive2=a1_400 679 | voipgroup_soundButtonActive2Scrolled=a1_400 680 | voipgroup_soundButtonActiveScrolled=a3_400 681 | voipgroup_speakingText=a1_100 682 | voipgroup_topPanelBlue1=n2_50 683 | voipgroup_topPanelBlue2=n2_200 684 | voipgroup_topPanelGray=n2_50 685 | voipgroup_topPanelGreen1=a1_300 686 | voipgroup_topPanelGreen2=a1_500 687 | voipgroup_unmuteButton=a2_600 688 | voipgroup_unmuteButton2=a2_500 689 | voipgroup_windowBackgroundWhiteInputField=n1_0 690 | voipgroup_windowBackgroundWhiteInputFieldActivated=n1_0 691 | windowBackgroundChecked=n1_50 692 | windowBackgroundCheckText=a1_600 693 | windowBackgroundGray=n1_50 694 | windowBackgroundGrayShadow=n1_50 695 | windowBackgroundUnchecked=n1_50 696 | windowBackgroundWhite=n1_50 697 | windowBackgroundWhiteBlackText=a1_1000 698 | windowBackgroundWhiteBlueButton=a1_600 699 | windowBackgroundWhiteBlueHeader=a1_600 700 | windowBackgroundWhiteBlueIcon=a1_600 701 | windowBackgroundWhiteBlueText=a1_600 702 | windowBackgroundWhiteBlueText2=a1_700 703 | windowBackgroundWhiteBlueText3=a1_700 704 | windowBackgroundWhiteBlueText4=a1_700 705 | windowBackgroundWhiteBlueText5=a1_700 706 | windowBackgroundWhiteBlueText6=a1_700 707 | windowBackgroundWhiteBlueText7=a1_700 708 | windowBackgroundWhiteGrayIcon=a1_600 709 | windowBackgroundWhiteGrayText=n1_600 710 | windowBackgroundWhiteGrayText2=n1_600 711 | windowBackgroundWhiteGrayText3=n1_600 712 | windowBackgroundWhiteGrayText4=n1_600 713 | windowBackgroundWhiteGrayText5=n1_600 714 | windowBackgroundWhiteGrayText6=n1_600 715 | windowBackgroundWhiteGrayText7=n1_600 716 | windowBackgroundWhiteGrayText8=n1_600 717 | windowBackgroundWhiteGreenText=a1_1000 718 | windowBackgroundWhiteGreenText2=a1_1000 719 | windowBackgroundWhiteHintText=a1_1000 720 | windowBackgroundWhiteInputField=a1_300 721 | windowBackgroundWhiteInputFieldActivated=a1_600 722 | windowBackgroundWhiteLinkSelection=n1_200 723 | windowBackgroundWhiteLinkText=a3_500 724 | windowBackgroundWhiteValueText=a1_600 725 | end -------------------------------------------------------------------------------- /app/src/main/assets/monet_x_dark.tgx-theme: -------------------------------------------------------------------------------- 1 | ! 2 | name: "monet dark" 3 | @ 4 | bubbleOutline, replaceShadowsWithSeparators: 1 5 | bubbleOutlineSize: 0 6 | parentTheme: 2 7 | # 8 | 9 | 10 | filling: n1_900 11 | separator: #0000 12 | fillingPressed: n2_800 13 | placeholder: #FFFFFF0F 14 | previewBackground: #0009 15 | overlayFilling: n1_900 16 | fillingNegative: a3_600 17 | fillingPositive: a1_100 18 | fillingPositiveContent: n1_900 19 | 20 | 21 | bubbleIn_fillingActive: a2_700 22 | bubbleIn_fillingActiveContent: n1_50 23 | 24 | bubbleIn_fillingPositive: a1_300 25 | bubbleIn_fillingPositiveContent: n1_900 26 | 27 | bubbleIn_fillingPositive_overlay: a1_300 28 | bubbleIn_fillingPositiveContent_overlay: n1_900 29 | 30 | bubbleOut_fillingActive: a1_300 31 | bubbleOut_fillingActiveContent: n1_1000 32 | 33 | bubbleOut_fillingPositive: a1_500 34 | bubbleOut_fillingPositiveContent: n1_0 35 | 36 | bubbleOut_fillingPositive_overlay: a1_300 37 | bubbleOut_fillingPositiveContent_overlay: n1_900 38 | 39 | 40 | text: n1_50 41 | textSelectionHighlight: n1_600 42 | textLight: n1_200 43 | textSecure: a1_100 44 | textLink: a3_100 45 | textLinkPressHighlight: n1_600 46 | textNeutral: a2_200 47 | textNegative: a3_100 48 | textSearchQueryHighlight: a2_200 49 | 50 | 51 | background: n1_900 52 | background_text: n1_200 53 | background_textLight: n1_200 54 | background_icon: n1_300 55 | 56 | 57 | icon: n1_500 58 | iconLight: n1_200 59 | iconActive: a1_100 60 | iconPositive: monetGreenCall 61 | iconNegative: monetRedCall 62 | 63 | 64 | 65 | headerBackground: n1_900 66 | headerText: n1_50 67 | headerIcon: a1_100 68 | 69 | headerTabActive: a1_100 70 | headerTabActiveText: a1_100 71 | headerTabInactiveText: n1_200 72 | 73 | headerLightBackground: n1_900 74 | headerLightText: a1_100 75 | headerLightIcon: a1_100 76 | 77 | headerButton: a1_200 78 | headerButtonIcon: a1_800 79 | 80 | headerRemoveBackground: a3_600 81 | headerRemoveBackgroundHighlight: a3_600 82 | 83 | headerBarCallIncoming: a1_600 84 | headerBarCallActive: n1_600 85 | headerBarCallMuted: n2_800 86 | 87 | statusBar: #0000 88 | 89 | profileSectionActive: a1_100 90 | profileSectionActiveContent: a1_100 91 | 92 | passcode: n1_900 93 | passcodeIcon: a1_100 94 | passcodeText: n1_50 95 | 96 | notification: a1_100 97 | notificationPlayer: a1_100 98 | notificationSecure: a1_100 99 | 100 | 101 | 102 | 103 | 104 | 105 | progress: a1_100 106 | 107 | controlInactive: a1_100 108 | controlActive: a1_100 109 | controlContent: n1_900 110 | 111 | checkActive: a1_100 112 | checkContent: n1_900 113 | 114 | sliderActive: a1_100 115 | sliderInactive: a2_300 116 | 117 | togglerActive: a1_100 118 | togglerActiveBackground: a1_600 119 | 120 | togglerInactive: n1_200 121 | togglerInactiveBackground: n1_600 122 | 123 | togglerPositive: a1_100 124 | togglerPositiveBackground: a1_600 125 | togglerPositiveContent: n1_900 126 | 127 | togglerNegative: a3_100 128 | togglerNegativeBackground: a3_600 129 | togglerNegativeContent: n1_900 130 | 131 | inputInactive: a1_200 132 | inputActive: a1_100 133 | inputPositive: a1_100 134 | inputNegative: a3_100 135 | textPlaceholder: n1_300 136 | 137 | inlineOutline: a1_100 138 | inlineText: a1_100 139 | inlineIcon: a1_100 140 | inlineContentActive: n1_900 141 | 142 | circleButtonRegular: a1_400 143 | circleButtonRegularIcon: a1_10 144 | circleButtonNewChat: n2_800 145 | circleButtonNewChatIcon: a1_100 146 | circleButtonNewGroup: n2_800 147 | circleButtonNewGroupIcon: a1_100 148 | circleButtonNewChannel: n2_800 149 | circleButtonNewChannelIcon: a1_100 150 | circleButtonNewSecret: n2_800 151 | circleButtonNewSecretIcon: a1_100 152 | circleButtonPositive: a1_400 153 | circleButtonPositiveIcon: a1_10 154 | circleButtonNegative: a3_400 155 | circleButtonNegativeIcon: a3_10 156 | circleButtonOverlay: n2_800 157 | circleButtonOverlayIcon: n1_50 158 | circleButtonChat: n2_800 159 | circleButtonChatIcon: n1_50 160 | circleButtonTheme: a1_400 161 | circleButtonThemeIcon: a1_10 162 | 163 | online: a1_100 164 | promo: a1_100 165 | promoContent: n1_900 166 | 167 | introSectionActive: a1_100 168 | introSection: a2_300 169 | 170 | 171 | seekDone: a1_100 172 | seekReady: a2_300 173 | seekEmpty: n2_800 174 | playerButtonActive: a1_100 175 | playerButton: n1_200 176 | playerCoverIcon: a1_100 177 | playerCoverPlaceholder: n2_800 178 | 179 | 180 | 181 | 182 | 183 | 184 | avatar_content: a1_100 185 | avatarArchive: n2_800 186 | avatarArchivePinned: n2_800 187 | avatarSavedMessages: n2_800 188 | avatarSavedMessages_big: n2_800 189 | avatarReplies: n2_800 190 | avatarReplies_big: n2_800 191 | avatarInactive: n2_800 192 | avatarInactive_big: n2_800 193 | nameInactive: a2_400 194 | avatarRed: n2_800 195 | avatarRed_big: n2_800 196 | nameRed: a1_400 197 | avatarOrange: n2_800 198 | avatarOrange_big: n2_800 199 | nameOrange: a1_400 200 | avatarYellow: n2_800 201 | avatarYellow_big: n2_800 202 | nameYellow: a1_400 203 | avatarGreen: n2_800 204 | avatarGreen_big: n2_800 205 | nameGreen: a1_400 206 | avatarCyan: n2_800 207 | avatarCyan_big: n2_800 208 | nameCyan: a1_400 209 | avatarBlue: n2_800 210 | avatarBlue_big: n2_800 211 | nameBlue: a1_400 212 | avatarViolet: n2_800 213 | avatarViolet_big: n2_800 214 | nameViolet: a1_400 215 | avatarPink: n2_800 216 | avatarPink_big: n2_800 217 | namePink: a1_400 218 | 219 | 220 | file: a2_500 221 | fileYellow: a2_500 222 | fileGreen: a2_500 223 | fileRed: a2_500 224 | 225 | waveformActive: a1_100 226 | waveformInactive: a2_300 227 | 228 | 229 | attachPhoto: a1_500 230 | attachFile: a1_500 231 | attachLocation: a1_500 232 | attachContact: a1_500 233 | attachInlineBot: a1_500 234 | attachText: a1_10 235 | fileAttach: a1_500 236 | 237 | 238 | 239 | 240 | 241 | 242 | chatListAction: a1_100 243 | chatListMute: n1_200 244 | chatListIcon: a1_100 245 | chatListVerify: a1_100 246 | ticks: a2_100 247 | ticksRead: a2_100 248 | badge: a1_100 249 | badgeText: n1_900 250 | badgeFailed: a3_200 251 | badgeFailedText: n1_900 252 | badgeMuted: a2_600 253 | badgeMutedText: n1_900 254 | 255 | chatSendButton: a1_100 256 | chatKeyboard: n1_900 257 | chatKeyboardButton: n1_500 258 | 259 | chatBackground: n1_900 260 | chatSeparator: #0000 261 | unread: n1_900 262 | unreadText: a1_100 263 | messageVerticalLine: a1_100 264 | messageSelection: a2_700 265 | messageSwipeBackground: n2_800 266 | messageSwipeContent: a1_100 267 | messageAuthor: n1_50 268 | messageAuthorPsa: a1_100 269 | 270 | shareSeparator: #0000 271 | 272 | 273 | 274 | 275 | 276 | 277 | bubble_chatSeparator: #0000 278 | bubble_messageSelection: #0003 279 | bubble_messageSelectionNoWallpaper: a2_700 280 | bubble_messageCheckOutline: n1_50 281 | bubble_messageCheckOutlineNoWallpaper: a1_100 282 | 283 | bubbleIn_background: n2_800 284 | bubbleIn_time: n1_50 285 | bubbleIn_progress: a1_100 286 | bubbleIn_text: n1_50 287 | bubbleIn_textLink: a3_100 288 | bubbleIn_textLinkPressHighlight: n1_600 289 | bubbleIn_pressed: n2_700 290 | bubbleIn_separator: n1_600 291 | 292 | bubbleOut_background: a1_100 293 | bubbleOut_ticks: a1_600 294 | bubbleOut_ticksRead: a1_600 295 | bubbleOut_time: n1_900 296 | bubbleOut_progress: n1_900 297 | bubbleOut_text: n1_900 298 | bubbleOut_textLink: a3_500 299 | bubbleOut_textLinkPressHighlight: a2_300 300 | bubbleOut_messageAuthor: n1_900 301 | bubbleOut_messageAuthorPsa: a1_600 302 | bubbleOut_chatVerticalLine: n1_900 303 | bubbleOut_inlineOutline: n1_900 304 | bubbleOut_inlineText: n1_900 305 | bubbleOut_inlineIcon: n1_900 306 | bubbleOut_waveformActive: n1_900 307 | bubbleOut_waveformInactive: a2_500 308 | bubbleOut_file: a2_500 309 | bubbleOut_pressed: a2_200 310 | bubbleOut_separator: a2_500 311 | 312 | bubble_mediaOverlay: #0005 313 | 314 | bubble_unread_noWallpaper: n1_900 315 | bubble_unreadText_noWallpaper: a1_100 316 | bubble_date_noWallpaper: n2_800 317 | bubble_dateText_noWallpaper: a1_100 318 | bubble_button_noWallpaper: n2_800 319 | bubble_buttonRipple_noWallpaper: n1_90091 320 | bubble_buttonText_noWallpaper: a1_100 321 | bubble_mediaReply_noWallpaper: n2_800 322 | bubble_mediaReplyText_noWallpaper: a1_100 323 | bubble_mediaTime_noWallpaper: n2_800 324 | bubble_mediaTimeText_noWallpaper: a1_100 325 | bubble_overlay_noWallpaper: n2_800 326 | bubble_overlayText_noWallpaper: a1_100 327 | 328 | 329 | 330 | 331 | 332 | 333 | iv_pageTitle: n1_50 334 | iv_pageSubtitle: n1_200 335 | iv_text: n1_50 336 | iv_textLink: a3_100 337 | iv_textLinkPressHighlight: n1_600 338 | iv_textMarked: n1_50 339 | iv_textMarkedBackground: n1_600 340 | iv_textMarkedLink: a3_100 341 | iv_textMarkedLinkPressHighlight: n1_400 342 | iv_textReference: n1_50 343 | iv_textCode: n1_200 344 | iv_pageAuthor: n1_300 345 | iv_caption: n1_300 346 | iv_pageFooter: n1_300 347 | iv_header: n1_50 348 | iv_pullQuote: n1_200 349 | iv_blockQuote: n1_200 350 | iv_blockQuoteLine: n1_200 351 | iv_preBlockBackground: n2_800 352 | iv_textCodeBackground: n2_800 353 | iv_textCodeBackgroundPressed: n1_600 354 | iv_separator: n2_700 355 | ivHeaderIcon: n1_200 356 | ivHeader: n2_800 357 | 358 | 359 | 360 | 361 | 362 | 363 | sectionedScrollBar: n1_200 364 | sectionedScrollBarActive: a1_100 365 | sectionedScrollBarActiveContent: n1_900 366 | 367 | snackbarUpdate: a1_100 368 | snackbarUpdateAction: n1_900 369 | snackbarUpdateText: n1_900 370 | 371 | tooltip: n2_800 372 | tooltip_text: a1_100 373 | tooltip_textLink: a3_100 374 | tooltip_textLinkPressHighlight: n1_600 375 | tooltip_outline: #0000 376 | 377 | circleButtonActive: a1_400 378 | circleButtonActiveIcon: a1_10 379 | 380 | notificationLink: a3_100 381 | 382 | messageNeutralFillingContent: n1_900 383 | messageCorrectFilling: a1_100 384 | messageCorrectFillingContent: n1_900 385 | messageCorrectChosenFilling: a1_100 386 | messageCorrectChosenFillingContent: n1_900 387 | messageNegativeLine: a3_100 388 | messageNegativeLineContent: n1_900 389 | 390 | bubbleOut_chatNeutralFillingContent: a1_100 391 | bubbleOut_chatCorrectFilling: n1_900 392 | bubbleOut_chatCorrectFillingContent: a1_100 393 | bubbleOut_chatCorrectChosenFilling: n1_900 394 | bubbleOut_chatCorrectChosenFillingContent: a1_100 395 | bubbleOut_chatNegativeFilling: a3_700 396 | bubbleOut_chatNegativeFillingContent: a1_100 397 | 398 | iv_icon: n1_200 399 | iv_chatLinkBackground: n2_800 400 | -------------------------------------------------------------------------------- /app/src/main/assets/monet_x_light.tgx-theme: -------------------------------------------------------------------------------- 1 | ! 2 | name: "monet light" 3 | @ 4 | bubbleOutline, lightStatusBar, replaceShadowsWithSeparators: 1 5 | bubbleOutlineSize, wallpaperId: 0 6 | parentTheme: 1 7 | # 8 | 9 | 10 | filling: n1_50 11 | separator: #0000 12 | fillingPressed: a1_100 13 | placeholder: #0000000F 14 | previewBackground: #FFFC 15 | overlayFilling: n1_50 16 | fillingNegative: a3_600 17 | fillingPositive: a1_600 18 | fillingPositiveContent: n1_50 19 | 20 | 21 | bubbleIn_fillingActive: a2_200 22 | bubbleIn_fillingActiveContent: n1_1000 23 | 24 | bubbleIn_fillingPositive: a1_600 25 | bubbleIn_fillingPositiveContent: n1_50 26 | 27 | bubbleIn_fillingPositive_overlay: a1_600 28 | bubbleIn_fillingPositiveContent_overlay: n1_50 29 | 30 | bubbleOut_fillingActive: a1_500 31 | bubbleOut_fillingActiveContent: n1_0 32 | 33 | bubbleOut_fillingPositive: a1_200 34 | bubbleOut_fillingPositiveContent: n1_1000 35 | 36 | bubbleOut_fillingPositive_overlay: a1_600 37 | bubbleOut_fillingPositiveContent_overlay: n1_50 38 | 39 | 40 | text: a1_1000 41 | textSelectionHighlight: n1_400 42 | textLight: n1_600 43 | textSecure: a1_600 44 | textLink: a3_500 45 | textLinkPressHighlight: n1_200 46 | textNeutral: a1_600 47 | textNegative: a3_600 48 | textSearchQueryHighlight: a1_600 49 | 50 | 51 | background: n1_50 52 | background_text: n1_600 53 | background_textLight: n1_600 54 | background_icon: n1_500 55 | 56 | 57 | icon: n1_500 58 | iconLight: n1_600 59 | iconActive: a1_600 60 | iconPositive: monetGreenCall 61 | iconNegative: monetRedCall 62 | 63 | 64 | 65 | headerBackground: n1_50 66 | headerText: a1_1000 67 | headerIcon: a1_600 68 | 69 | headerTabActive: a1_600 70 | headerTabActiveText: a1_600 71 | headerTabInactiveText: a2_700 72 | 73 | headerLightBackground: n1_50 74 | headerLightText: a1_600 75 | headerLightIcon: a1_600 76 | 77 | headerButton: a1_600 78 | headerButtonIcon: n1_50 79 | 80 | headerRemoveBackground: a3_600 81 | headerRemoveBackgroundHighlight: a3_600 82 | 83 | headerBarCallIncoming: a1_600 84 | headerBarCallActive: a1_600 85 | headerBarCallMuted: n1_600 86 | 87 | statusBar: #0000 88 | 89 | profileSectionActive: a1_600 90 | profileSectionActiveContent: a1_600 91 | 92 | passcode: n1_50 93 | passcodeIcon: a1_600 94 | passcodeText: a1_1000 95 | 96 | notification: a1_600 97 | notificationPlayer: a1_600 98 | notificationSecure: a1_600 99 | 100 | 101 | 102 | 103 | 104 | 105 | progress: a1_600 106 | 107 | controlInactive: a1_600 108 | controlActive: a1_600 109 | controlContent: n1_50 110 | 111 | checkActive: a1_600 112 | checkContent: n1_50 113 | 114 | sliderActive: a1_600 115 | sliderInactive: n1_300 116 | 117 | togglerActive: a1_600 118 | togglerActiveBackground: a1_200 119 | 120 | togglerInactive: n1_100 121 | togglerInactiveBackground: n1_300 122 | 123 | togglerPositive: a1_600 124 | togglerPositiveBackground: a1_200 125 | togglerPositiveContent: n1_50 126 | 127 | togglerNegative: a3_600 128 | togglerNegativeBackground: a3_200 129 | togglerNegativeContent: n1_50 130 | 131 | inputInactive: n1_200 132 | inputActive: a1_600 133 | inputPositive: a1_600 134 | inputNegative: a3_600 135 | textPlaceholder: n1_400 136 | 137 | inlineOutline: a1_600 138 | inlineText: a1_600 139 | inlineIcon: a1_600 140 | inlineContentActive: n1_50 141 | 142 | circleButtonRegular: a1_600 143 | circleButtonRegularIcon: n1_50 144 | circleButtonNewChat: n1_50 145 | circleButtonNewChatIcon: a1_600 146 | circleButtonNewGroup: n1_50 147 | circleButtonNewGroupIcon: a1_600 148 | circleButtonNewChannel: n1_50 149 | circleButtonNewChannelIcon: a1_600 150 | circleButtonNewSecret: n1_50 151 | circleButtonNewSecretIcon: a1_600 152 | circleButtonPositive: a1_600 153 | circleButtonPositiveIcon: n1_50 154 | circleButtonNegative: a3_600 155 | circleButtonNegativeIcon: n1_50 156 | circleButtonOverlay: a1_400 157 | circleButtonOverlayIcon: n1_50 158 | circleButtonChat: a1_400 159 | circleButtonChatIcon: n1_50 160 | circleButtonTheme: a1_600 161 | circleButtonThemeIcon: n1_50 162 | 163 | online: a1_600 164 | promo: a1_600 165 | promoContent: n1_50 166 | 167 | introSectionActive: a1_600 168 | introSection: n1_200 169 | 170 | 171 | seekDone: a1_600 172 | seekReady: n1_300 173 | seekEmpty: n1_100 174 | playerButtonActive: a1_600 175 | playerButton: a1_1000 176 | playerCoverIcon: n1_500 177 | playerCoverPlaceholder: n1_100 178 | 179 | 180 | 181 | 182 | 183 | 184 | avatar_content: n1_50 185 | avatarArchive: a1_600 186 | avatarArchivePinned: a1_600 187 | avatarSavedMessages: a1_600 188 | avatarSavedMessages_big: a1_600 189 | avatarReplies: a1_600 190 | avatarReplies_big: a1_600 191 | avatarInactive: a1_600 192 | avatarInactive_big: a1_600 193 | nameInactive: a1_600 194 | avatarRed: a1_600 195 | avatarRed_big: a1_600 196 | nameRed: a1_400 197 | avatarOrange: a1_600 198 | avatarOrange_big: a1_600 199 | nameOrange: a1_400 200 | avatarYellow: a1_600 201 | avatarYellow_big: a1_600 202 | nameYellow: a1_400 203 | avatarGreen: a1_600 204 | avatarGreen_big: a1_600 205 | nameGreen: a1_400 206 | avatarCyan: a1_600 207 | avatarCyan_big: a1_600 208 | nameCyan: a1_400 209 | avatarBlue: a1_600 210 | avatarBlue_big: a1_600 211 | nameBlue: a1_400 212 | avatarViolet: a1_600 213 | avatarViolet_big: a1_600 214 | nameViolet: a1_400 215 | avatarPink: a1_600 216 | avatarPink_big: a1_600 217 | namePink: a1_400 218 | 219 | 220 | file: a1_600 221 | fileYellow: a1_600 222 | fileGreen: a1_600 223 | fileRed: a1_600 224 | 225 | waveformActive: a1_600 226 | waveformInactive: n1_300 227 | 228 | 229 | attachPhoto: a1_600 230 | attachFile: a1_600 231 | attachLocation: a1_600 232 | attachContact: a1_600 233 | attachInlineBot: a1_600 234 | attachText: n1_50 235 | fileAttach: a1_600 236 | 237 | 238 | 239 | 240 | 241 | 242 | chatListAction: a1_600 243 | chatListMute: n1_300 244 | chatListIcon: a1_600 245 | chatListVerify: a1_600 246 | ticks: a1_600 247 | ticksRead: a1_600 248 | badge: a1_500 249 | badgeText: n1_50 250 | badgeFailed: a3_600 251 | badgeFailedText: n1_50 252 | badgeMuted: a2_400 253 | badgeMutedText: n1_50 254 | 255 | chatSendButton: a1_600 256 | chatKeyboard: n1_50 257 | chatKeyboardButton: n1_0 258 | 259 | chatBackground: n1_50 260 | chatSeparator: #0000 261 | unread: n1_50 262 | unreadText: a1_600 263 | messageVerticalLine: a1_600 264 | messageSelection: n2_100 265 | messageSwipeBackground: n2_100 266 | messageSwipeContent: a1_600 267 | messageAuthor: a1_600 268 | messageAuthorPsa: a1_600 269 | 270 | shareSeparator: #0000 271 | 272 | 273 | 274 | 275 | 276 | 277 | bubble_chatSeparator: #0000 278 | bubble_messageSelection: #0003 279 | bubble_messageSelectionNoWallpaper: n2_100 280 | bubble_messageCheckOutline: a1_600 281 | bubble_messageCheckOutlineNoWallpaper: a1_600 282 | 283 | bubbleIn_background: n1_0 284 | bubbleIn_time: a1_1000 285 | bubbleIn_progress: a1_600 286 | bubbleIn_text: a1_1000 287 | bubbleIn_textLink: a3_500 288 | bubbleIn_textLinkPressHighlight: n1_100 289 | bubbleIn_pressed: n1_100 290 | bubbleIn_separator: n1_300 291 | 292 | bubbleOut_background: a1_600 293 | bubbleOut_ticks: a2_200 294 | bubbleOut_ticksRead: a2_200 295 | bubbleOut_time: n1_50 296 | bubbleOut_progress: n1_50 297 | bubbleOut_text: n1_50 298 | bubbleOut_textLink: a3_200 299 | bubbleOut_textLinkPressHighlight: a1_500 300 | bubbleOut_messageAuthor: n1_50 301 | bubbleOut_messageAuthorPsa: n1_50 302 | bubbleOut_chatVerticalLine: n1_50 303 | bubbleOut_inlineOutline: n1_50 304 | bubbleOut_inlineText: n1_50 305 | bubbleOut_inlineIcon: n1_50 306 | bubbleOut_waveformActive: n1_50 307 | bubbleOut_waveformInactive: a2_300 308 | bubbleOut_file: a1_600 309 | bubbleOut_pressed: a1_500 310 | bubbleOut_separator: a2_300 311 | 312 | bubble_mediaOverlay: #0005 313 | 314 | bubble_unread_noWallpaper: n1_50 315 | bubble_unreadText_noWallpaper: a1_600 316 | bubble_date_noWallpaper: n1_100 317 | bubble_dateText_noWallpaper: n1_600 318 | bubble_button_noWallpaper: n1_100 319 | bubble_buttonRipple_noWallpaper: n1_20091 320 | bubble_buttonText_noWallpaper: n1_600 321 | bubble_mediaReply_noWallpaper: n1_100 322 | bubble_mediaReplyText_noWallpaper: n1_600 323 | bubble_mediaTime_noWallpaper: n1_100 324 | bubble_mediaTimeText_noWallpaper: n1_600 325 | bubble_overlay_noWallpaper: n1_100 326 | bubble_overlayText_noWallpaper: n1_600 327 | 328 | 329 | 330 | 331 | 332 | 333 | iv_pageTitle: a1_1000 334 | iv_pageSubtitle: n1_600 335 | iv_text: a1_1000 336 | iv_textLink: a1_600 337 | iv_textLinkPressHighlight: n1_200 338 | iv_textMarked: a1_1000 339 | iv_textMarkedBackground: n1_200 340 | iv_textMarkedLink: a1_600 341 | iv_textMarkedLinkPressHighlight: n1_300 342 | iv_textReference: a1_1000 343 | iv_textCode: n1_600 344 | iv_pageAuthor: n1_500 345 | iv_caption: n1_500 346 | iv_pageFooter: n1_500 347 | iv_header: a1_1000 348 | iv_pullQuote: n1_600 349 | iv_blockQuote: n1_600 350 | iv_blockQuoteLine: n1_500 351 | iv_preBlockBackground: n1_100 352 | iv_textCodeBackground: n1_100 353 | iv_textCodeBackgroundPressed: n1_200 354 | iv_separator: n1_200 355 | ivHeaderIcon: n1_600 356 | ivHeader: n1_50 357 | 358 | 359 | 360 | 361 | 362 | 363 | sectionedScrollBar: n1_600 364 | sectionedScrollBarActive: a1_600 365 | sectionedScrollBarActiveContent: n1_50 366 | 367 | snackbarUpdate: a1_600 368 | snackbarUpdateAction: n1_50 369 | snackbarUpdateText: n1_50 370 | 371 | tooltip: a1_600 372 | tooltip_text: n1_50 373 | tooltip_textLink: a3_200 374 | tooltip_textLinkPressHighlight: a1_500 375 | tooltip_outline: #0000 376 | 377 | circleButtonActive: a1_600 378 | circleButtonActiveIcon: n1_50 379 | 380 | notificationLink: a1_600 381 | 382 | messageNeutralFillingContent: n1_50 383 | messageCorrectFilling: a1_600 384 | messageCorrectFillingContent: n1_50 385 | messageCorrectChosenFilling: a1_600 386 | messageCorrectChosenFillingContent: n1_50 387 | messageNegativeLine: a3_600 388 | messageNegativeLineContent: n1_50 389 | 390 | bubbleOut_chatNeutralFillingContent: a1_600 391 | bubbleOut_chatCorrectFilling: n1_50 392 | bubbleOut_chatCorrectFillingContent: a1_600 393 | bubbleOut_chatCorrectChosenFilling: n1_50 394 | bubbleOut_chatCorrectChosenFillingContent: a1_600 395 | bubbleOut_chatNegativeFilling: a3_200 396 | bubbleOut_chatNegativeFillingContent: a1_600 397 | 398 | iv_icon: n1_600 399 | iv_chatLinkBackground: n1_100 400 | -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet 2 | 3 | import android.os.Bundle 4 | import androidx.activity.ComponentActivity 5 | import androidx.activity.compose.setContent 6 | import androidx.activity.enableEdgeToEdge 7 | import com.c3r5b8.telegram_monet.ui.theme.TelegramMonetTheme 8 | 9 | class MainActivity : ComponentActivity() { 10 | override fun onCreate(savedInstanceState: Bundle?) { 11 | super.onCreate(savedInstanceState) 12 | enableEdgeToEdge() 13 | setContent { 14 | TelegramMonetTheme { 15 | NavigationScreen() 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/NavigationScreen.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet 2 | 3 | import androidx.compose.runtime.Composable 4 | import androidx.compose.ui.platform.LocalContext 5 | import androidx.navigation.NavHostController 6 | import androidx.navigation.compose.NavHost 7 | import androidx.navigation.compose.composable 8 | import androidx.navigation.compose.navigation 9 | import androidx.navigation.compose.rememberNavController 10 | import com.c3r5b8.telegram_monet.presentation.main_screen.MainScreen 11 | import com.c3r5b8.telegram_monet.presentation.main_screen.MainScreenViewModel 12 | 13 | 14 | private object Routes { 15 | const val MAIN_ROUTE = "MAIN_ROUTE" 16 | const val MAIN_SCREEN = "MAIN_SCREEN" 17 | } 18 | 19 | @Composable 20 | fun NavigationScreen( 21 | navController: NavHostController = rememberNavController() 22 | ) { 23 | 24 | val mainScreenViewModel = MainScreenViewModel(LocalContext.current) 25 | 26 | NavHost( 27 | navController = navController, 28 | startDestination = Routes.MAIN_ROUTE 29 | ) { 30 | 31 | navigation( 32 | route = Routes.MAIN_ROUTE, 33 | startDestination = Routes.MAIN_SCREEN 34 | ) { 35 | composable( 36 | route = Routes.MAIN_SCREEN, 37 | ) { _ -> 38 | MainScreen( 39 | viewModel = mainScreenViewModel 40 | ) 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/adapters/CreateTheme.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.adapters 2 | 3 | import android.content.Context 4 | import android.util.Log 5 | import com.c3r5b8.telegram_monet.common.Constants 6 | import java.io.BufferedReader 7 | import java.io.File 8 | import java.io.InputStreamReader 9 | 10 | fun createTheme( 11 | context: Context, 12 | isTelegram: Boolean, 13 | isAmoled: Boolean, 14 | isGradient: Boolean, 15 | isAvatarGradient: Boolean, 16 | isNicknameColorful: Boolean, 17 | isAlterOutColor: Boolean, 18 | inputFileName: String, 19 | outputFileName: String, 20 | ) { 21 | val reader = BufferedReader(InputStreamReader(context.assets.open(inputFileName))) 22 | var themeImport = "" 23 | val listMain = reader.readLines().toMutableList() 24 | reader.close() 25 | 26 | if (isGradient) 27 | listMain.forEachIndexed { index, value -> 28 | listMain[index] = value.replace("noGradient", "chat_outBubbleGradient") 29 | } 30 | 31 | if (isAlterOutColor && isTelegram) { 32 | val inputSecondFileName = 33 | if (inputFileName == Constants.INPUT_FILE_TELEGRAM_LIGHT) Constants.INPUT_FILE_TELEGRAM_DARK else Constants.INPUT_FILE_TELEGRAM_LIGHT 34 | val reader2 = BufferedReader(InputStreamReader(context.assets.open(inputSecondFileName))) 35 | val listSecond = reader2.readLines() 36 | reader.close() 37 | 38 | ListToReplaceNewThemeTelegram.forEach { value -> 39 | val index1 = listMain.indexOfFirst { it.startsWith("$value=") } 40 | val index2 = listMain.indexOfFirst { it.startsWith("$value=") } 41 | if (index1 < 0 || index2 < 0) { 42 | Log.d("New Theme", "$value: $index1 $index2") 43 | } else { 44 | listMain[index1] = listSecond[index2] 45 | } 46 | } 47 | } 48 | 49 | if (isAlterOutColor && !isTelegram) { 50 | val inputSecondFileName = 51 | if (inputFileName == Constants.INPUT_FILE_TELEGRAM_X_LIGHT) Constants.INPUT_FILE_TELEGRAM_X_DARK else Constants.INPUT_FILE_TELEGRAM_X_LIGHT 52 | val reader2 = BufferedReader(InputStreamReader(context.assets.open(inputSecondFileName))) 53 | val listSecond = reader2.readLines() 54 | reader.close() 55 | 56 | ListToReplaceNewThemeTelegramX.forEach { value -> 57 | val index1 = listMain.indexOfFirst { it.startsWith("$value:") } 58 | val index2 = listMain.indexOfFirst { it.startsWith("$value:") } 59 | if (index1 < 0 || index2 < 0) { 60 | Log.d("New Theme", "$value: $index1 $index2") 61 | } else { 62 | listMain[index1] = listSecond[index2] 63 | } 64 | } 65 | } 66 | 67 | listMain.forEach { themeImport += it + "\n" } 68 | 69 | if (isAmoled) 70 | themeImport = themeImport.replace("n1_900", "n1_1000") 71 | 72 | if (isTelegram && isNicknameColorful) 73 | themeImport = themeImport.replace( 74 | "\nend", 75 | "\navatar_nameInMessageBlue=a1_400\n" + 76 | "avatar_nameInMessageCyan=a1_400\n" + 77 | "avatar_nameInMessageGreen=a1_400\n" + 78 | "avatar_nameInMessageOrange=a1_400\n" + 79 | "avatar_nameInMessagePink=a1_400\n" + 80 | "avatar_nameInMessageRed=a1_400\n" + 81 | "avatar_nameInMessageViolet=a1_400\nend" 82 | ) 83 | if (isTelegram && isAvatarGradient) { 84 | themeImport = themeImport 85 | .replace("avatar_backgroundBlue=n2_800", "avatar_backgroundBlue=n2_700") 86 | .replace("avatar_backgroundCyan=n2_800", "avatar_backgroundCyan=n2_700") 87 | .replace("avatar_backgroundGreen=n2_800", "avatar_backgroundGreen=n2_700") 88 | .replace("avatar_backgroundOrange=n2_800", "avatar_backgroundOrange=n2_700") 89 | .replace("avatar_backgroundPink=n2_800", "avatar_backgroundPink=n2_700") 90 | .replace("avatar_backgroundRed=n2_800", "avatar_backgroundRed=n2_700") 91 | .replace("avatar_backgroundSaved=n2_800", "avatar_backgroundSaved=n2_700") 92 | .replace("avatar_backgroundViolet=n2_800", "avatar_backgroundViolet=n2_700") 93 | } 94 | 95 | val generatedTheme = 96 | if (isTelegram) 97 | changeTextTelegram(themeImport, context) 98 | else 99 | changeTextTelegramX(themeImport, context) 100 | 101 | File(context.filesDir, outputFileName).writeText(text = generatedTheme) 102 | 103 | shareTheme(context, outputFileName) 104 | 105 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/adapters/ListToReplaceNewTheme.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.adapters 2 | 3 | val ListToReplaceNewThemeTelegram = listOf( 4 | "chat_messageLinkOut", 5 | "chat_messageTextOut", 6 | "chat_outAdminSelectedText", 7 | "chat_outAdminText", 8 | "chat_outAudioCacheSeekbar", 9 | "chat_outAudioDurationSelectedText", 10 | "chat_outAudioDurationText", 11 | "chat_outAudioPerfomerSelectedText", 12 | "chat_outAudioPerfomerText", 13 | "chat_outAudioProgress", 14 | "chat_outAudioSeekbar", 15 | "chat_outAudioSeekbarFill", 16 | "chat_outAudioSeekbarSelected", 17 | "chat_outAudioSelectedProgress", 18 | "chat_outAudioTitleText", 19 | "chat_outBubble", 20 | "chat_outBubbleGradient", 21 | "chat_outBubbleGradient2", 22 | "chat_outBubbleGradient3", 23 | "chat_outBubbleGradientAnimated", 24 | "chat_outBubbleGradientSelectedOverlay", 25 | "chat_outBubbleSelected", 26 | "chat_outBubbleShadow", 27 | "chat_outContactBackground", 28 | "chat_outContactIcon", 29 | "chat_outContactNameText", 30 | "chat_outContactPhoneSelectedText", 31 | "chat_outContactPhoneText", 32 | "chat_outFileBackground", 33 | "chat_outFileBackgroundSelected", 34 | "chat_outFileInfoSelectedText", 35 | "chat_outFileInfoText", 36 | "chat_outFileNameText", 37 | "chat_outFileProgress", 38 | "chat_outFileProgressSelected", 39 | "chat_outForwardedNameText", 40 | "chat_outInstant", 41 | "chat_outInstantSelected", 42 | "chat_outLinkSelectBackground", 43 | "chat_outLoader", 44 | "chat_outLoaderSelected", 45 | "chat_outLocationIcon", 46 | "chat_outMediaIcon", 47 | "chat_outMediaIconSelected", 48 | "chat_outMenu", 49 | "chat_outMenuSelected", 50 | "chat_outPollCorrectAnswer", 51 | "chat_outPollWrongAnswer", 52 | "chat_outPreviewInstantText", 53 | "chat_outPreviewLine", 54 | "chat_outPsaNameText", 55 | "chat_outReactionButtonBackground", 56 | "chat_outReactionButtonText", 57 | "chat_outReactionButtonTextSelected", 58 | "chat_outReplyLine", 59 | "chat_outReplyMediaMessageSelectedText", 60 | "chat_outReplyMediaMessageText", 61 | "chat_outReplyMessageText", 62 | "chat_outReplyNameText", 63 | "chat_outSentCheck", 64 | "chat_outSentCheckRead", 65 | "chat_outSentCheckReadSelected", 66 | "chat_outSentCheckSelected", 67 | "chat_outSentClock", 68 | "chat_outSentClockSelected", 69 | "chat_outSiteNameText", 70 | "chat_outTextSelectionCursor", 71 | "chat_outTextSelectionHighlight", 72 | "chat_outTimeSelectedText", 73 | "chat_outTimeText", 74 | "chat_outUpCall", 75 | "chat_outVenueInfoSelectedText", 76 | "chat_outVenueInfoText", 77 | "chat_outViaBotNameText", 78 | "chat_outViews", 79 | "chat_outViewsSelected", 80 | "chat_outVoiceSeekbar", 81 | "chat_outVoiceSeekbarFill", 82 | "chat_outVoiceSeekbarSelected", 83 | ) 84 | 85 | val ListToReplaceNewThemeTelegramX = listOf( 86 | "bubbleOut_fillingActive", 87 | "bubbleOut_fillingActiveContent", 88 | "bubbleOut_fillingPositive", 89 | "bubbleOut_fillingPositiveContent", 90 | "bubbleOut_fillingPositive_overlay", 91 | "bubbleOut_fillingPositiveContent_overlay", 92 | "bubbleOut_background", 93 | "bubbleOut_ticks", 94 | "bubbleOut_ticksRead", 95 | "bubbleOut_time", 96 | "bubbleOut_progress", 97 | "bubbleOut_text", 98 | "bubbleOut_textLink", 99 | "bubbleOut_textLinkPressHighlight", 100 | "bubbleOut_messageAuthor", 101 | "bubbleOut_messageAuthorPsa", 102 | "bubbleOut_chatVerticalLine", 103 | "bubbleOut_inlineOutline", 104 | "bubbleOut_inlineText", 105 | "bubbleOut_inlineIcon", 106 | "bubbleOut_waveformActive", 107 | "bubbleOut_waveformInactive", 108 | "bubbleOut_file", 109 | "bubbleOut_pressed", 110 | "bubbleOut_separator", 111 | "bubbleOut_chatNeutralFillingContent", 112 | "bubbleOut_chatCorrectFilling", 113 | "bubbleOut_chatCorrectFillingContent", 114 | "bubbleOut_chatCorrectChosenFilling", 115 | "bubbleOut_chatCorrectChosenFillingContent", 116 | "bubbleOut_chatNegativeFilling", 117 | "bubbleOut_chatNegativeFillingContent", 118 | ) -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/adapters/ShareTheme.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.adapters 2 | 3 | import android.content.Context 4 | import android.content.Intent 5 | import androidx.core.content.FileProvider 6 | import java.io.File 7 | 8 | fun shareTheme( 9 | context: Context, 10 | fileName: String 11 | ) { 12 | val file = File(context.filesDir, fileName) 13 | 14 | val uri = FileProvider.getUriForFile( 15 | context, 16 | "com.c3r5b8.telegram_monet.provider", 17 | file 18 | ) 19 | 20 | val intent = Intent(Intent.ACTION_SEND) 21 | intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) 22 | intent.type = "document/*" 23 | intent.putExtra(Intent.EXTRA_STREAM, uri) 24 | intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK 25 | context.startActivity(Intent.createChooser(intent, fileName)) 26 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/adapters/TelegramAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.adapters 2 | 3 | import android.content.Context 4 | import androidx.core.content.ContextCompat.getColor 5 | import com.c3r5b8.telegram_monet.R 6 | 7 | fun changeTextTelegram(file: String, applicationContext : Context): String { 8 | val monetList = mapOf( 9 | "a1_0" to getColor(applicationContext, R.color.system_accent1_0), 10 | "a1_200" to getColor(applicationContext, R.color.system_accent1_200), 11 | "a1_300" to getColor(applicationContext, R.color.system_accent1_300), 12 | "a1_400" to getColor(applicationContext, R.color.system_accent1_400), 13 | "a1_500" to getColor(applicationContext, R.color.system_accent1_500), 14 | "a1_600" to getColor(applicationContext, R.color.system_accent1_600), 15 | "a1_700" to getColor(applicationContext, R.color.system_accent1_700), 16 | "a1_800" to getColor(applicationContext, R.color.system_accent1_800), 17 | "a1_900" to getColor(applicationContext, R.color.system_accent1_900), 18 | "a1_1000" to getColor(applicationContext, R.color.system_accent1_1000), 19 | "a1_100" to getColor(applicationContext, R.color.system_accent1_100), 20 | "a1_10" to getColor(applicationContext, R.color.system_accent1_10), 21 | "a1_50" to getColor(applicationContext, R.color.system_accent1_50), 22 | "a2_0" to getColor(applicationContext, R.color.system_accent2_0), 23 | "a2_200" to getColor(applicationContext, R.color.system_accent2_200), 24 | "a2_300" to getColor(applicationContext, R.color.system_accent2_300), 25 | "a2_400" to getColor(applicationContext, R.color.system_accent2_400), 26 | "a2_500" to getColor(applicationContext, R.color.system_accent2_500), 27 | "a2_600" to getColor(applicationContext, R.color.system_accent2_600), 28 | "a2_700" to getColor(applicationContext, R.color.system_accent2_700), 29 | "a2_800" to getColor(applicationContext, R.color.system_accent2_800), 30 | "a2_900" to getColor(applicationContext, R.color.system_accent2_900), 31 | "a2_1000" to getColor(applicationContext, R.color.system_accent2_1000), 32 | "a2_100" to getColor(applicationContext, R.color.system_accent2_100), 33 | "a2_10" to getColor(applicationContext, R.color.system_accent2_10), 34 | "a2_50" to getColor(applicationContext, R.color.system_accent2_50), 35 | "a3_0" to getColor(applicationContext, R.color.system_accent3_0), 36 | "a3_200" to getColor(applicationContext, R.color.system_accent3_200), 37 | "a3_300" to getColor(applicationContext, R.color.system_accent3_300), 38 | "a3_400" to getColor(applicationContext, R.color.system_accent3_400), 39 | "a3_500" to getColor(applicationContext, R.color.system_accent3_500), 40 | "a3_600" to getColor(applicationContext, R.color.system_accent3_600), 41 | "a3_700" to getColor(applicationContext, R.color.system_accent3_700), 42 | "a3_800" to getColor(applicationContext, R.color.system_accent3_800), 43 | "a3_900" to getColor(applicationContext, R.color.system_accent3_900), 44 | "a3_1000" to getColor(applicationContext, R.color.system_accent3_1000), 45 | "a3_100" to getColor(applicationContext, R.color.system_accent3_100), 46 | "a3_10" to getColor(applicationContext, R.color.system_accent3_10), 47 | "a3_50" to getColor(applicationContext, R.color.system_accent3_50), 48 | "n1_0" to getColor(applicationContext, R.color.system_neutral1_0), 49 | "n1_200" to getColor(applicationContext, R.color.system_neutral1_200), 50 | "n1_300" to getColor(applicationContext, R.color.system_neutral1_300), 51 | "n1_400" to getColor(applicationContext, R.color.system_neutral1_400), 52 | "n1_500" to getColor(applicationContext, R.color.system_neutral1_500), 53 | "n1_600" to getColor(applicationContext, R.color.system_neutral1_600), 54 | "n1_700" to getColor(applicationContext, R.color.system_neutral1_700), 55 | "n1_800" to getColor(applicationContext, R.color.system_neutral1_800), 56 | "n1_900" to getColor(applicationContext, R.color.system_neutral1_900), 57 | "n1_1000" to getColor(applicationContext, R.color.system_neutral1_1000), 58 | "n1_100" to getColor(applicationContext, R.color.system_neutral1_100), 59 | "n1_10" to getColor(applicationContext, R.color.system_neutral1_10), 60 | "n1_50" to getColor(applicationContext, R.color.system_neutral1_50), 61 | "n2_0" to getColor(applicationContext, R.color.system_neutral2_0), 62 | "n2_200" to getColor(applicationContext, R.color.system_neutral2_200), 63 | "n2_300" to getColor(applicationContext, R.color.system_neutral2_300), 64 | "n2_400" to getColor(applicationContext, R.color.system_neutral2_400), 65 | "n2_500" to getColor(applicationContext, R.color.system_neutral2_500), 66 | "n2_600" to getColor(applicationContext, R.color.system_neutral2_600), 67 | "n2_700" to getColor(applicationContext, R.color.system_neutral2_700), 68 | "n2_800" to getColor(applicationContext, R.color.system_neutral2_800), 69 | "n2_900" to getColor(applicationContext, R.color.system_neutral2_900), 70 | "n2_1000" to getColor(applicationContext, R.color.system_neutral2_1000), 71 | "n2_100" to getColor(applicationContext, R.color.system_neutral2_100), 72 | "n2_10" to getColor(applicationContext, R.color.system_neutral2_10), 73 | "n2_50" to getColor(applicationContext, R.color.system_neutral2_50), 74 | "monetRedDark" to getColor(applicationContext, R.color.monetRedDark), 75 | "monetRedLight" to getColor(applicationContext, R.color.monetRedLight), 76 | "monetRedCall" to getColor(applicationContext, R.color.colorCallRed), 77 | "monetGreenCall" to getColor(applicationContext, R.color.colorCallGreen), 78 | ) 79 | var themeText = file.replace("\$", "") 80 | monetList.forEach { 81 | themeText = themeText.replace(it.key, it.value.toString()) 82 | } 83 | return themeText 84 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/adapters/TelegramXAdapter.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.adapters 2 | 3 | import android.content.Context 4 | import androidx.core.content.ContextCompat.getColor 5 | import com.c3r5b8.telegram_monet.R 6 | 7 | fun changeTextTelegramX(file: String, applicationContext : Context): String { 8 | val monetList = mapOf( 9 | "a1_0" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_0)), 10 | "a1_200" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_200)), 11 | "a1_300" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_300)), 12 | "a1_400" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_400)), 13 | "a1_500" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_500)), 14 | "a1_600" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_600)), 15 | "a1_700" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_700)), 16 | "a1_800" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_800)), 17 | "a1_900" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_900)), 18 | "a1_1000" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_1000)), 19 | "a1_100" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_100)), 20 | "a1_10" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_10)), 21 | "a1_50" to Integer.toHexString(getColor(applicationContext, R.color.system_accent1_50)), 22 | "a2_0" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_0)), 23 | "a2_200" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_200)), 24 | "a2_300" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_300)), 25 | "a2_400" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_400)), 26 | "a2_500" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_500)), 27 | "a2_600" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_600)), 28 | "a2_700" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_700)), 29 | "a2_800" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_800)), 30 | "a2_900" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_900)), 31 | "a2_1000" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_1000)), 32 | "a2_100" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_100)), 33 | "a2_10" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_10)), 34 | "a2_50" to Integer.toHexString(getColor(applicationContext, R.color.system_accent2_50)), 35 | "a3_0" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_0)), 36 | "a3_200" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_200)), 37 | "a3_300" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_300)), 38 | "a3_400" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_400)), 39 | "a3_500" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_500)), 40 | "a3_600" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_600)), 41 | "a3_700" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_700)), 42 | "a3_800" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_800)), 43 | "a3_900" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_900)), 44 | "a3_1000" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_1000)), 45 | "a3_100" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_100)), 46 | "a3_10" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_10)), 47 | "a3_50" to Integer.toHexString(getColor(applicationContext, R.color.system_accent3_50)), 48 | "n1_0" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_0)), 49 | "n1_200" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_200)), 50 | "n1_300" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_300)), 51 | "n1_400" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_400)), 52 | "n1_500" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_500)), 53 | "n1_600" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_600)), 54 | "n1_700" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_700)), 55 | "n1_800" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_800)), 56 | "n1_900" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_900)), 57 | "n1_1000" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_1000)), 58 | "n1_100" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_100)), 59 | "n1_10" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_10)), 60 | "n1_50" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral1_50)), 61 | "n2_0" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_0)), 62 | "n2_200" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_200)), 63 | "n2_300" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_300)), 64 | "n2_400" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_400)), 65 | "n2_500" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_500)), 66 | "n2_600" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_600)), 67 | "n2_700" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_700)), 68 | "n2_800" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_800)), 69 | "n2_900" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_900)), 70 | "n2_1000" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_1000)), 71 | "n2_100" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_100)), 72 | "n2_10" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_10)), 73 | "n2_50" to Integer.toHexString(getColor(applicationContext, R.color.system_neutral2_50)), 74 | "monetRedDark" to Integer.toHexString(getColor(applicationContext, R.color.monetRedDark)), 75 | "monetRedLight" to Integer.toHexString(getColor(applicationContext, R.color.monetRedLight)), 76 | "monetRedCall" to Integer.toHexString(getColor(applicationContext, R.color.colorCallRed)), 77 | "monetGreenCall" to Integer.toHexString(getColor(applicationContext, R.color.colorCallGreen)), 78 | ) 79 | var themeText = file.replace("\$", "") 80 | monetList.forEach { 81 | themeText = themeText.replace(it.key, "#" + it.value.toString().substring(2)) 82 | } 83 | return themeText 84 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/common/Constants.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.common 2 | object Constants { 3 | 4 | const val URL_ABOUT = "https://github.com/mi-g-alex/Telegram-Monet/blob/main/README.md" 5 | const val URL_TELEGRAM = "https://t.me/tgmonet" 6 | const val URL_GITHUB = "https://github.com/mi-g-alex/Telegram-Monet" 7 | 8 | // Files Names 9 | const val INPUT_FILE_TELEGRAM_LIGHT = "monet_light.attheme" 10 | const val INPUT_FILE_TELEGRAM_DARK = "monet_dark.attheme" 11 | const val INPUT_FILE_TELEGRAM_X_LIGHT = "monet_x_light.tgx-theme" 12 | const val INPUT_FILE_TELEGRAM_X_DARK = "monet_x_dark.tgx-theme" 13 | 14 | const val OUTPUT_FILE_TELEGRAM_LIGHT = "Light Theme.attheme" 15 | const val OUTPUT_FILE_TELEGRAM_DARK = "Dark Theme.attheme" 16 | const val OUTPUT_FILE_TELEGRAM_AMOLED = "Amoled Theme.attheme" 17 | const val OUTPUT_FILE_TELEGRAM_X_LIGHT = "Light Theme.tgx-theme" 18 | const val OUTPUT_FILE_TELEGRAM_X_DARK = "Dark Theme.tgx-theme" 19 | const val OUTPUT_FILE_TELEGRAM_X_AMOLED = "Amoled Theme.tgx-theme" 20 | 21 | 22 | // SharedPrefs 23 | const val SHARED_PREF = "switchSettings" 24 | const val SHARED_IS_AMOLED = "isAmoledMode" 25 | const val SHARED_USE_GRADIENT = "useGradient" 26 | const val SHARED_USE_GRADIENT_AVATARS = "useGradientAvatars" 27 | const val SHARED_USE_COLORFUL_NICKNAME = "useColorNick" 28 | const val SHARED_USE_OLD_CHAT_STYLE = "useOldChatStyle" 29 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/MainScreen.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen 2 | 3 | import android.content.Intent 4 | import android.net.Uri 5 | import androidx.compose.foundation.layout.fillMaxSize 6 | import androidx.compose.foundation.layout.padding 7 | import androidx.compose.foundation.lazy.LazyColumn 8 | import androidx.compose.material3.Scaffold 9 | import androidx.compose.material3.TopAppBarDefaults 10 | import androidx.compose.material3.rememberTopAppBarState 11 | import androidx.compose.runtime.Composable 12 | import androidx.compose.runtime.getValue 13 | import androidx.compose.runtime.remember 14 | import androidx.compose.ui.Modifier 15 | import androidx.compose.ui.input.nestedscroll.nestedScroll 16 | import androidx.compose.ui.platform.LocalContext 17 | import androidx.compose.ui.tooling.preview.Preview 18 | import com.c3r5b8.telegram_monet.R 19 | import com.c3r5b8.telegram_monet.common.Constants 20 | import com.c3r5b8.telegram_monet.presentation.main_screen.components.AboutCard 21 | import com.c3r5b8.telegram_monet.presentation.main_screen.components.CreateThemeCard 22 | import com.c3r5b8.telegram_monet.presentation.main_screen.components.SettingsCard 23 | import com.c3r5b8.telegram_monet.presentation.main_screen.components.TopAppBar 24 | 25 | @Composable 26 | fun MainScreen( 27 | viewModel: MainScreenViewModel, 28 | ) { 29 | 30 | val isAmoled by remember { viewModel.isAmoled } 31 | val isGradient by remember { viewModel.isGradient } 32 | val isAvatarGradient by remember { viewModel.isAvatarGradient } 33 | val isNicknameColorful by remember { viewModel.isNicknameColorful } 34 | val isAlterOutColor by remember { viewModel.isAlterOutColor } 35 | val context = LocalContext.current 36 | 37 | MainScreenComponent( 38 | isAmoled = isAmoled, 39 | isGradient = isGradient, 40 | isAvatarGradient = isAvatarGradient, 41 | isNicknameColorful = isNicknameColorful, 42 | isAlterOutColor = isAlterOutColor, 43 | setAmoled = { viewModel.setSettings(Constants.SHARED_IS_AMOLED, it) }, 44 | setGradient = { viewModel.setSettings(Constants.SHARED_USE_GRADIENT, it) }, 45 | setAvatarGradient = { viewModel.setSettings(Constants.SHARED_USE_GRADIENT_AVATARS, it) }, 46 | setNicknameColorful = { viewModel.setSettings(Constants.SHARED_USE_COLORFUL_NICKNAME, it) }, 47 | setUseOldChatStyle = { viewModel.setSettings(Constants.SHARED_USE_OLD_CHAT_STYLE, it) }, 48 | onShareTheme = { isTg, isLight -> viewModel.onShareTheme(context, isTg, isLight) }, 49 | ) 50 | } 51 | 52 | @Composable 53 | private fun MainScreenComponent( 54 | isAmoled: Boolean, 55 | isGradient: Boolean, 56 | isAvatarGradient: Boolean, 57 | isNicknameColorful: Boolean, 58 | isAlterOutColor: Boolean, 59 | setAmoled: (value: Boolean) -> Unit, 60 | setGradient: (value: Boolean) -> Unit, 61 | setAvatarGradient: (value: Boolean) -> Unit, 62 | setNicknameColorful: (value: Boolean) -> Unit, 63 | setUseOldChatStyle: (value: Boolean) -> Unit, 64 | onShareTheme: (isTelegram: Boolean, isLight: Boolean) -> Unit, 65 | ) { 66 | 67 | val scrollBehavior = 68 | TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberTopAppBarState()) 69 | 70 | val localContext = LocalContext.current 71 | 72 | Scaffold( 73 | modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), 74 | topBar = { 75 | TopAppBar(scrollBehavior = scrollBehavior) { 76 | val i = Intent(Intent.ACTION_VIEW) 77 | i.data = Uri.parse(Constants.URL_ABOUT) 78 | localContext.startActivity(i) 79 | } 80 | } 81 | ) { pad -> 82 | 83 | LazyColumn( 84 | modifier = Modifier 85 | .fillMaxSize() 86 | .padding(pad) 87 | ) { 88 | 89 | item { 90 | CreateThemeCard( 91 | title = R.string.light_theme, 92 | description = R.string.light_theme_description, 93 | icon = R.drawable.theme_icon_light, 94 | onTelegramClick = { 95 | onShareTheme(true, true) 96 | }, 97 | onTelegramXClick = { 98 | onShareTheme(false, true) 99 | } 100 | ) 101 | } 102 | 103 | item { 104 | CreateThemeCard( 105 | title = R.string.dark_theme, 106 | description = R.string.dark_theme_description, 107 | icon = R.drawable.theme_icon_dark, 108 | onTelegramClick = { 109 | onShareTheme(true, false) 110 | }, 111 | onTelegramXClick = { 112 | onShareTheme(false, false) 113 | } 114 | ) 115 | } 116 | 117 | item { 118 | SettingsCard( 119 | isAmoled = isAmoled, 120 | isGradient = isGradient, 121 | isAvatarGradient = isAvatarGradient, 122 | isNicknameColorful = isNicknameColorful, 123 | isAlterOutColor = isAlterOutColor, 124 | setAmoled = setAmoled, 125 | setGradient = setGradient, 126 | setAvatarGradient = setAvatarGradient, 127 | setNicknameColorful = setNicknameColorful, 128 | setUseAlterOutColor = setUseOldChatStyle 129 | ) 130 | } 131 | 132 | item { 133 | AboutCard() 134 | } 135 | 136 | } 137 | 138 | } 139 | } 140 | 141 | @Preview 142 | @Composable 143 | private fun MainScreenPreview() { 144 | MainScreenComponent( 145 | isAmoled = true, 146 | isGradient = false, 147 | isAvatarGradient = true, 148 | isNicknameColorful = false, 149 | isAlterOutColor = true, 150 | setAmoled = { }, 151 | setGradient = { }, 152 | setAvatarGradient = { }, 153 | setNicknameColorful = { }, 154 | setUseOldChatStyle = {}, 155 | onShareTheme = { _, _ -> }, 156 | ) 157 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/MainScreenViewModel.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen 2 | 3 | import android.content.Context 4 | import android.content.SharedPreferences 5 | import androidx.compose.runtime.mutableStateOf 6 | import androidx.lifecycle.ViewModel 7 | import com.c3r5b8.telegram_monet.adapters.createTheme 8 | import com.c3r5b8.telegram_monet.common.Constants 9 | import kotlinx.coroutines.CoroutineScope 10 | import kotlinx.coroutines.Dispatchers 11 | import kotlinx.coroutines.launch 12 | 13 | class MainScreenViewModel( 14 | contextParam: Context 15 | ) : ViewModel() { 16 | 17 | var isAmoled = mutableStateOf(false) 18 | var isGradient = mutableStateOf(false) 19 | var isAvatarGradient = mutableStateOf(false) 20 | var isNicknameColorful = mutableStateOf(false) 21 | var isAlterOutColor = mutableStateOf(false) 22 | 23 | private val sharedPreferences: SharedPreferences = 24 | contextParam.getSharedPreferences(Constants.SHARED_PREF, Context.MODE_PRIVATE) 25 | 26 | fun onShareTheme(context: Context, isTelegram: Boolean, isLight: Boolean) { 27 | 28 | val inputFileName = when { 29 | isTelegram && isLight -> { 30 | Constants.INPUT_FILE_TELEGRAM_LIGHT 31 | } 32 | 33 | isTelegram -> { 34 | Constants.INPUT_FILE_TELEGRAM_DARK 35 | } 36 | 37 | !isTelegram && isLight -> { 38 | Constants.INPUT_FILE_TELEGRAM_X_LIGHT 39 | } 40 | 41 | else -> { 42 | Constants.INPUT_FILE_TELEGRAM_X_DARK 43 | } 44 | } 45 | 46 | val outputFileName = when { 47 | isTelegram && isLight -> { 48 | Constants.OUTPUT_FILE_TELEGRAM_LIGHT 49 | } 50 | 51 | isTelegram && !isAmoled.value -> { 52 | Constants.OUTPUT_FILE_TELEGRAM_DARK 53 | } 54 | 55 | isTelegram -> { 56 | Constants.OUTPUT_FILE_TELEGRAM_AMOLED 57 | } 58 | 59 | !isTelegram && isLight -> { 60 | Constants.OUTPUT_FILE_TELEGRAM_X_LIGHT 61 | } 62 | 63 | !isTelegram && !isAmoled.value -> { 64 | Constants.OUTPUT_FILE_TELEGRAM_X_DARK 65 | } 66 | 67 | else -> { 68 | Constants.OUTPUT_FILE_TELEGRAM_X_AMOLED 69 | } 70 | } 71 | 72 | CoroutineScope(Dispatchers.IO).launch { 73 | createTheme( 74 | context = context, 75 | isTelegram = isTelegram, 76 | isAmoled = isAmoled.value, 77 | isGradient = isGradient.value, 78 | isAvatarGradient = isAvatarGradient.value, 79 | isNicknameColorful = isNicknameColorful.value, 80 | isAlterOutColor = isAlterOutColor.value, 81 | inputFileName = inputFileName, 82 | outputFileName = outputFileName, 83 | ) 84 | } 85 | } 86 | 87 | init { 88 | getSettings() 89 | } 90 | 91 | fun setSettings(settings: String, value: Boolean) { 92 | when (settings) { 93 | Constants.SHARED_IS_AMOLED -> isAmoled.value = value 94 | Constants.SHARED_USE_GRADIENT -> isGradient.value = value 95 | Constants.SHARED_USE_COLORFUL_NICKNAME -> isNicknameColorful.value = value 96 | Constants.SHARED_USE_GRADIENT_AVATARS -> isAvatarGradient.value = value 97 | Constants.SHARED_USE_OLD_CHAT_STYLE -> isAlterOutColor.value = value 98 | } 99 | sharedPreferences.edit().putBoolean(settings, value).apply() 100 | } 101 | 102 | private fun getSettings() { 103 | isAmoled.value = 104 | sharedPreferences.getBoolean(Constants.SHARED_IS_AMOLED, false) 105 | isGradient.value = 106 | sharedPreferences.getBoolean(Constants.SHARED_USE_GRADIENT, false) 107 | isAvatarGradient.value = 108 | sharedPreferences.getBoolean(Constants.SHARED_USE_GRADIENT_AVATARS, false) 109 | isNicknameColorful.value = 110 | sharedPreferences.getBoolean(Constants.SHARED_USE_COLORFUL_NICKNAME, true) 111 | isAlterOutColor.value = 112 | sharedPreferences.getBoolean(Constants.SHARED_USE_OLD_CHAT_STYLE, true) 113 | } 114 | 115 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/components/AboutCard.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen.components 2 | 3 | import android.content.Intent 4 | import android.net.Uri 5 | import androidx.annotation.StringRes 6 | import androidx.compose.foundation.layout.Row 7 | import androidx.compose.foundation.layout.fillMaxWidth 8 | import androidx.compose.foundation.layout.padding 9 | import androidx.compose.material3.Button 10 | import androidx.compose.material3.Text 11 | import androidx.compose.runtime.Composable 12 | import androidx.compose.ui.Alignment 13 | import androidx.compose.ui.Modifier 14 | import androidx.compose.ui.platform.LocalContext 15 | import androidx.compose.ui.res.stringResource 16 | import androidx.compose.ui.tooling.preview.Preview 17 | import androidx.compose.ui.unit.Constraints 18 | import androidx.compose.ui.unit.dp 19 | import androidx.compose.ui.unit.sp 20 | import com.c3r5b8.telegram_monet.R 21 | import com.c3r5b8.telegram_monet.common.Constants 22 | 23 | @Composable 24 | fun AboutCard( 25 | 26 | ) { 27 | 28 | val localContext = LocalContext.current 29 | 30 | val openLink: (link: String) -> Unit = { link -> 31 | val i = Intent(Intent.ACTION_VIEW) 32 | i.data = Uri.parse(link) 33 | localContext.startActivity(i) 34 | } 35 | 36 | BasicCard( 37 | title = R.string.about_card_title, 38 | icon = R.drawable.about_icon, 39 | description = R.string.about_card_description 40 | ) { 41 | 42 | Text( 43 | modifier = Modifier 44 | .fillMaxWidth() 45 | .padding(vertical = 12.dp), 46 | text = stringResource(R.string.about_card_description), 47 | fontSize = 14.sp 48 | ) 49 | 50 | Row( 51 | modifier = Modifier.fillMaxWidth(), 52 | verticalAlignment = Alignment.CenterVertically, 53 | ) { 54 | CardButton(R.string.about_card_telegram) { 55 | openLink(Constants.URL_TELEGRAM) 56 | } 57 | CardButton(R.string.about_card_github) { 58 | openLink(Constants.URL_GITHUB) 59 | } 60 | } 61 | 62 | } 63 | } 64 | 65 | 66 | @Composable 67 | private fun CardButton( 68 | @StringRes text: Int, 69 | onClick: () -> Unit, 70 | ) { 71 | Button( 72 | modifier = Modifier.padding(end = 8.dp), 73 | onClick = { onClick() } 74 | ) { 75 | Text( 76 | stringResource(text) 77 | ) 78 | } 79 | } 80 | 81 | 82 | 83 | @Preview 84 | @Composable 85 | private fun AboutCardPreview() { 86 | AboutCard() 87 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/components/BasicCard.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen.components 2 | 3 | import androidx.annotation.DrawableRes 4 | import androidx.annotation.StringRes 5 | import androidx.compose.foundation.layout.Column 6 | import androidx.compose.foundation.layout.Row 7 | import androidx.compose.foundation.layout.fillMaxWidth 8 | import androidx.compose.foundation.layout.padding 9 | import androidx.compose.foundation.shape.RoundedCornerShape 10 | import androidx.compose.material3.Card 11 | import androidx.compose.material3.ElevatedCard 12 | import androidx.compose.material3.Icon 13 | import androidx.compose.material3.Text 14 | import androidx.compose.runtime.Composable 15 | import androidx.compose.ui.Alignment 16 | import androidx.compose.ui.Modifier 17 | import androidx.compose.ui.res.painterResource 18 | import androidx.compose.ui.res.stringResource 19 | import androidx.compose.ui.unit.dp 20 | import androidx.compose.ui.unit.sp 21 | 22 | @Composable 23 | fun BasicCard( 24 | @StringRes title: Int, 25 | @StringRes description: Int, 26 | @DrawableRes icon: Int, 27 | content: @Composable () -> Unit 28 | ) { 29 | ElevatedCard ( 30 | modifier = Modifier 31 | .fillMaxWidth() 32 | .padding(horizontal = 8.dp, vertical = 8.dp), 33 | shape = RoundedCornerShape(32.dp) 34 | ) { 35 | Column( 36 | modifier = Modifier 37 | .fillMaxWidth() 38 | .padding(16.dp) 39 | ) { 40 | Row( 41 | verticalAlignment = Alignment.CenterVertically, 42 | ) { 43 | Icon( 44 | painter = painterResource(icon), 45 | contentDescription = stringResource(description), 46 | ) 47 | Text( 48 | text = stringResource(title), 49 | modifier = Modifier.padding(start = 8.dp), 50 | fontSize = 18.sp 51 | ) 52 | } 53 | content() 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/components/CreateThemeCard.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen.components 2 | 3 | import androidx.annotation.DrawableRes 4 | import androidx.annotation.StringRes 5 | import androidx.compose.foundation.layout.Row 6 | import androidx.compose.foundation.layout.fillMaxWidth 7 | import androidx.compose.foundation.layout.padding 8 | import androidx.compose.material3.Button 9 | import androidx.compose.material3.Text 10 | import androidx.compose.runtime.Composable 11 | import androidx.compose.ui.Alignment 12 | import androidx.compose.ui.Modifier 13 | import androidx.compose.ui.res.stringResource 14 | import androidx.compose.ui.tooling.preview.Preview 15 | import androidx.compose.ui.unit.dp 16 | import androidx.compose.ui.unit.sp 17 | import com.c3r5b8.telegram_monet.R 18 | 19 | @Composable 20 | fun CreateThemeCard( 21 | @StringRes title: Int, 22 | @StringRes description: Int, 23 | @DrawableRes icon: Int, 24 | onTelegramClick: () -> Unit, 25 | onTelegramXClick: () -> Unit, 26 | ) { 27 | BasicCard( 28 | title = title, 29 | icon = icon, 30 | description = description 31 | ) { 32 | Text( 33 | modifier = Modifier 34 | .fillMaxWidth() 35 | .padding(vertical = 12.dp), 36 | text = stringResource(description), 37 | fontSize = 14.sp 38 | ) 39 | 40 | Row( 41 | modifier = Modifier.fillMaxWidth(), 42 | verticalAlignment = Alignment.CenterVertically, 43 | ) { 44 | CardButton(R.string.setup_telegram, onTelegramClick) 45 | CardButton(R.string.setup_telegram_x, onTelegramXClick) 46 | } 47 | } 48 | } 49 | 50 | @Composable 51 | private fun CardButton( 52 | @StringRes text: Int, 53 | onClick: () -> Unit, 54 | ) { 55 | Button( 56 | modifier = Modifier.padding(end = 8.dp), 57 | onClick = { onClick() } 58 | ) { 59 | Text( 60 | stringResource(text) 61 | ) 62 | } 63 | } 64 | 65 | 66 | @Preview 67 | @Composable 68 | private fun CreateCardPreview1() { 69 | CreateThemeCard( 70 | title = R.string.light_theme, 71 | description = R.string.light_theme_description, 72 | icon = R.drawable.theme_icon_light, 73 | onTelegramClick = {}, 74 | onTelegramXClick = {}, 75 | ) 76 | } 77 | 78 | @Preview 79 | @Composable 80 | private fun CreateCardPreview2() { 81 | CreateThemeCard( 82 | title = R.string.dark_theme, 83 | description = R.string.dark_theme_description, 84 | icon = R.drawable.theme_icon_dark, 85 | onTelegramClick = {}, 86 | onTelegramXClick = {}, 87 | ) 88 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/components/SettingsCard.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen.components 2 | 3 | import androidx.compose.foundation.clickable 4 | import androidx.compose.foundation.layout.Arrangement 5 | import androidx.compose.foundation.layout.Row 6 | import androidx.compose.foundation.layout.fillMaxWidth 7 | import androidx.compose.material3.Switch 8 | import androidx.compose.material3.Text 9 | import androidx.compose.runtime.Composable 10 | import androidx.compose.runtime.getValue 11 | import androidx.compose.runtime.mutableStateOf 12 | import androidx.compose.runtime.remember 13 | import androidx.compose.runtime.setValue 14 | import androidx.compose.ui.Alignment 15 | import androidx.compose.ui.Modifier 16 | import androidx.compose.ui.res.stringResource 17 | import androidx.compose.ui.tooling.preview.Preview 18 | import com.c3r5b8.telegram_monet.R 19 | 20 | @Composable 21 | fun SettingsCard( 22 | isAmoled: Boolean, 23 | isGradient: Boolean, 24 | isAvatarGradient: Boolean, 25 | isNicknameColorful: Boolean, 26 | isAlterOutColor: Boolean, 27 | setAmoled: (value: Boolean) -> Unit, 28 | setGradient: (value: Boolean) -> Unit, 29 | setAvatarGradient: (value: Boolean) -> Unit, 30 | setNicknameColorful: (value: Boolean) -> Unit, 31 | setUseAlterOutColor: (value: Boolean) -> Unit, 32 | ) { 33 | 34 | BasicCard( 35 | title = R.string.settings_card_title, 36 | icon = R.drawable.icon_settings, 37 | description = R.string.settings_card_title 38 | ) { 39 | 40 | SettingItem( 41 | stringResource(R.string.settings_card_switch_amoled), 42 | isAmoled, 43 | setAmoled 44 | ) 45 | 46 | SettingItem( 47 | stringResource(R.string.settings_card_use_gradient), 48 | isGradient, 49 | setGradient 50 | ) 51 | 52 | SettingItem( 53 | stringResource(R.string.settings_card_use_gradient_avatars), 54 | isAvatarGradient, 55 | setAvatarGradient 56 | ) 57 | 58 | SettingItem( 59 | stringResource(R.string.settings_card_monet_nick), 60 | isNicknameColorful, 61 | setNicknameColorful 62 | ) 63 | 64 | SettingItem( 65 | stringResource(R.string.settings_card_chat_old_style), 66 | isAlterOutColor, 67 | setUseAlterOutColor 68 | ) 69 | } 70 | } 71 | 72 | @Composable 73 | private fun SettingItem( 74 | text: String, 75 | isChecked: Boolean, 76 | onClick: (state: Boolean) -> Unit, 77 | ) { 78 | Row( 79 | modifier = Modifier 80 | .fillMaxWidth() 81 | .clickable { 82 | onClick(!isChecked) 83 | }, 84 | verticalAlignment = Alignment.CenterVertically, 85 | horizontalArrangement = Arrangement.SpaceEvenly 86 | ) { 87 | Text( 88 | text = text, 89 | modifier = Modifier.weight(1f) 90 | ) 91 | 92 | Switch( 93 | checked = isChecked, 94 | onCheckedChange = { state -> onClick(state) } 95 | ) 96 | } 97 | } 98 | 99 | @Preview(locale = "ru") 100 | @Composable 101 | private fun SettingsPreview() { 102 | 103 | var isAmoled by remember { mutableStateOf(false) } 104 | var isGradient by remember { mutableStateOf(true) } 105 | var isAvatarGradient by remember { mutableStateOf(false) } 106 | var isNicknameColorful by remember { mutableStateOf(true) } 107 | var isOldChatStyle by remember { mutableStateOf(true) } 108 | 109 | SettingsCard( 110 | isAmoled = isAmoled, 111 | isGradient = isGradient, 112 | isAvatarGradient = isAvatarGradient, 113 | isNicknameColorful = isNicknameColorful, 114 | isAlterOutColor = isOldChatStyle, 115 | setAmoled = { isAmoled = it }, 116 | setGradient = { isGradient = it }, 117 | setAvatarGradient = { isAvatarGradient = it }, 118 | setNicknameColorful = { isNicknameColorful = it }, 119 | setUseAlterOutColor = { isOldChatStyle = it } 120 | ) 121 | } 122 | 123 | @Preview 124 | @Composable 125 | private fun LongTextPreview() { 126 | SettingItem( 127 | "TEST VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY LONG TEXT", 128 | false, 129 | ) { } 130 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/presentation/main_screen/components/TopAppBar.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.presentation.main_screen.components 2 | 3 | import androidx.compose.material3.Icon 4 | import androidx.compose.material3.IconButton 5 | import androidx.compose.material3.LargeTopAppBar 6 | import androidx.compose.material3.Text 7 | import androidx.compose.material3.TopAppBarDefaults 8 | import androidx.compose.material3.TopAppBarScrollBehavior 9 | import androidx.compose.material3.rememberTopAppBarState 10 | import androidx.compose.runtime.Composable 11 | import androidx.compose.ui.res.painterResource 12 | import androidx.compose.ui.res.stringResource 13 | import androidx.compose.ui.text.style.TextOverflow 14 | import androidx.compose.ui.tooling.preview.Preview 15 | import com.c3r5b8.telegram_monet.R 16 | 17 | @Composable 18 | fun TopAppBar( 19 | scrollBehavior: TopAppBarScrollBehavior, 20 | goHowUse: () -> Unit 21 | ) { 22 | LargeTopAppBar( 23 | title = { 24 | Text( 25 | text = stringResource(R.string.app_name), 26 | maxLines = 1, 27 | overflow = TextOverflow.Ellipsis 28 | ) 29 | }, 30 | actions = { 31 | IconButton(onClick = { goHowUse() }) { 32 | Icon( 33 | painterResource(R.drawable.how_to_use_icon), 34 | stringResource(R.string.how_to_use) 35 | ) 36 | } 37 | }, 38 | scrollBehavior = scrollBehavior 39 | ) 40 | } 41 | 42 | @Preview 43 | @Composable 44 | private fun TopAppBarPreview() { 45 | TopAppBar( 46 | TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberTopAppBarState()) 47 | ){} 48 | } -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/ui/theme/Color.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.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) -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/ui/theme/Theme.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.ui.theme 2 | 3 | import android.os.Build 4 | import androidx.compose.foundation.isSystemInDarkTheme 5 | import androidx.compose.material3.MaterialTheme 6 | import androidx.compose.material3.darkColorScheme 7 | import androidx.compose.material3.dynamicDarkColorScheme 8 | import androidx.compose.material3.dynamicLightColorScheme 9 | import androidx.compose.material3.lightColorScheme 10 | import androidx.compose.runtime.Composable 11 | import androidx.compose.ui.platform.LocalContext 12 | import org.nguyenvanlong.oneui.composedynamiccolor.dynamicDarkColorSchemeFix 13 | import org.nguyenvanlong.oneui.composedynamiccolor.dynamicLightColorSchemeFix 14 | 15 | private val DarkColorScheme = darkColorScheme( 16 | primary = Purple80, 17 | secondary = PurpleGrey80, 18 | tertiary = Pink80 19 | ) 20 | 21 | private val LightColorScheme = lightColorScheme( 22 | primary = Purple40, 23 | secondary = PurpleGrey40, 24 | tertiary = Pink40 25 | 26 | /* Other default colors to override 27 | background = Color(0xFFFFFBFE), 28 | surface = Color(0xFFFFFBFE), 29 | onPrimary = Color.White, 30 | onSecondary = Color.White, 31 | onTertiary = Color.White, 32 | onBackground = Color(0xFF1C1B1F), 33 | onSurface = Color(0xFF1C1B1F), 34 | */ 35 | ) 36 | 37 | @Composable 38 | fun TelegramMonetTheme( 39 | darkTheme: Boolean = isSystemInDarkTheme(), 40 | // Dynamic color is available on Android 12+ 41 | dynamicColor: Boolean = true, 42 | content: @Composable () -> Unit 43 | ) { 44 | val colorScheme = when { 45 | dynamicColor -> { 46 | val context = LocalContext.current 47 | if (darkTheme) 48 | dynamicDarkColorSchemeFix(context) 49 | else 50 | dynamicLightColorSchemeFix(context) 51 | } 52 | 53 | darkTheme -> DarkColorScheme 54 | else -> LightColorScheme 55 | } 56 | 57 | MaterialTheme( 58 | colorScheme = colorScheme, 59 | typography = Typography, 60 | content = content 61 | ) 62 | } 63 | -------------------------------------------------------------------------------- /app/src/main/java/com/c3r5b8/telegram_monet/ui/theme/Type.kt: -------------------------------------------------------------------------------- 1 | package com.c3r5b8.telegram_monet.ui.theme 2 | 3 | import androidx.compose.material3.Typography 4 | import androidx.compose.ui.text.TextStyle 5 | import androidx.compose.ui.text.font.FontFamily 6 | import androidx.compose.ui.text.font.FontWeight 7 | import androidx.compose.ui.unit.sp 8 | 9 | // Set of Material typography styles to start with 10 | val Typography = Typography( 11 | bodyLarge = TextStyle( 12 | fontFamily = FontFamily.Default, 13 | fontWeight = FontWeight.Normal, 14 | fontSize = 16.sp, 15 | lineHeight = 24.sp, 16 | letterSpacing = 0.5.sp 17 | ) 18 | /* Other default text styles to override 19 | titleLarge = TextStyle( 20 | fontFamily = FontFamily.Default, 21 | fontWeight = FontWeight.Normal, 22 | fontSize = 22.sp, 23 | lineHeight = 28.sp, 24 | letterSpacing = 0.sp 25 | ), 26 | labelSmall = TextStyle( 27 | fontFamily = FontFamily.Default, 28 | fontWeight = FontWeight.Medium, 29 | fontSize = 11.sp, 30 | lineHeight = 16.sp, 31 | letterSpacing = 0.5.sp 32 | ) 33 | */ 34 | ) -------------------------------------------------------------------------------- /app/src/main/res/drawable/about_icon.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/how_to_use_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_foreground.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_foreground_monochrome.xml: -------------------------------------------------------------------------------- 1 | 6 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /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/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/icon_settings.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/theme_icon_dark.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/theme_icon_light.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values-ar/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | سمة 4 | تطبيق بسيط لإنشاء سمات تليجرام 5 | قناتنا علي تليجرام 6 | داكن 7 | انشاء سمه بألوان داكنة. جيد للاستخدام في الليل 8 | فاتح 9 | انشاء سمة تليجرام بألوان فاتحة. جيد للاستخدام اثناء اليوم 10 | ضبط 11 | الإعدادات 12 | تمكين التدرج (Telegram) 13 | تمكين التدرج للصور الرمزية 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-b+fil/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Simpleng aplikasyon para gumawa ng Monet Theme sa Telegram. 5 | Ang aming Telegram Channel 6 | Madilim 7 | Gumawa ng madilim na tema mula sa kulay ng system. Maganda para sa gabi. 8 | Maliwanag 9 | Gumawa ng maliwanag na tema mula sa kulay ng system. Maganda para sa araw o umaga. 10 | I-set up 11 | Mga setting 12 | Paganahin ang gradient (Telegram) 13 | Paganahin ang gradient para sa mga avatar 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-b+kab/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Asentel 4 | Amsnulfu afessas n usentel Telegram Monet. 5 | Abadu Nneɣ Di Telegram 6 | Aberkan 7 | Rnu isental ubriken seg iɣaniben n unagraw. Ilha i yiḍ. 8 | Aceɛlal 9 | Rnu isental iceɛlalen seg iɣaniben n unagraw. Ilha i wass. 10 | Sebded 11 | Iɣewwaṛen 12 | Rmed tafesna n yini (Telegram) 13 | Rmed tafesna i wavaṭaren 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-bn-rIN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | থিম 4 | সাধারণ টেলিগ্রাম মনেট থিম জেনারেটর 5 | আমাদের টেলিগ্রাম চ্যানেল 6 | অন্ধকার 7 | সিস্টেম শেডার দিয়ে একটি অন্ধকার থিম তৈরি করুন। রাতের জন্য দুর্দান্ত 8 | আলো 9 | সিস্টেম শেডার্স থেকে একটি হালকা থিম তৈরি করুন। দিনের জন্য মহান 10 | সেট করা 11 | সেটিংস 12 | গ্রেডিয়েন্ট সক্ষম করুন (টেলিগ্রাম) 13 | অবতারের জন্য গ্রেডিয়েন্ট সক্ষম করুন 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-de/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Thema 4 | Einfacher Telegram Monet Themengenerator. 5 | Unser Telegram-Kanal 6 | Nacht 7 | Erstellt ein dunkles Thema basierend auf Systemfarben. Perfekt für die Nacht. 8 | Tag 9 | Erstellt ein helles Thema basierend auf Systemfarben. Ideal für den Tag. 10 | Einrichten 11 | Einstellungen 12 | Farbverlauf aktivieren (Telegram) 13 | Farbverlauf für Avatare aktivieren 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-es/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Simple Generador de Temas Monet para Telegram. 5 | Nuestro canal de Telegram 6 | Oscuro 7 | Haga un tema oscuro a partir de tonos del sistema. Genial para la noche. 8 | Claro 9 | Haga un tema claro a partir de tonos del sistema. Genial para el día. 10 | Configurar 11 | Ajustes 12 | Habilitar gradiente (Telegram) 13 | Habilitar degradado para avatares 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values-fa-rIR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | مضمون 4 | سازنده مضمون سازگار با پس زمینه برای تلگرام 5 | کانال تلگرام ما 6 | تیره 7 | ساخت مضمون تیره از رنگ های تصویر پس زمینه. مناسب برای شب 8 | روشن 9 | ساخت مضمون روشن از رنگ های تصویر پس زمینه. مناسب برای روز 10 | نصب 11 | تنظیمات 12 | فعال کردن گرادینت (تلگرام) 13 | فعال کردن گرادیان برای تصاویر 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-fr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Thème 4 | Générateur de themes Monet pour Telegram. 5 | Notre canal Telegram 6 | Sombre 7 | Crée un thème sombre à partir des couleurs du système. Idéal pour la nuit. 8 | Clair 9 | Crée un thème clair à partir des couleurs du système. Idéal pour la journée. 10 | Appliquer 11 | Réglages 12 | Activer le dégradé (Telegram) 13 | Activer le dégradé pour les avatars 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-hi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | थीम 4 | सरल टेलीग्राम मोनेट थीम जनरेटर 5 | हमारा टेलीग्राम चैनल 6 | डार्क 7 | सिस्टम शेड्स से बनाएं डार्क थीम। रात के लिए बढ़िया 8 | लाइट 9 | सिस्टम शेड्स से लाइट थीम बनाएं। दिन के लिए बढ़िया 10 | सेट करें 11 | समायोजन 12 | ग्रेडिएंट सक्षम करें (टेलीग्राम) 13 | अवतारों के लिए ढाल सक्षम करें 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-hr/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Jednostavni Telegram Monet generator tema. 5 | Naš Telegram Kanal 6 | Tamna 7 | Napravi tamnu temu od sistemskih nijansi. Odlično za noć. 8 | Svijetla 9 | Napravi svijetlu temu od sistemskih nijansi. Izgleda dobro tokom dana. 10 | Postavi 11 | Postavke 12 | Omogući gradijent (Telegram) 13 | Omogući gradijent za avatare 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-in/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Generator tema Telegram Monet sederhana. 5 | Saluran Telegram kami 6 | Gelap 7 | Buat tema gelap dari nuansa sistem. Bagus untuk malam hari. 8 | Cerah 9 | Buat tema cerah dari nuansa sistem. Terlihat bagus di siang hari. 10 | Buat 11 | Pengaturan 12 | Aktifkan gradien (Telegram) 13 | Aktifkan gradien untuk avatar 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-it/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Generatore semplice di temi Monet per Telegram. 5 | Il nostro canale Telegram 6 | Scuro 7 | Crea un tema scuro usando le tonalità del sistema. Ottimo per la notte. 8 | Chiaro 9 | Crea un tema chiaro usando le tonalità del sistema. Gradevole durante il giorno. 10 | Imposta 11 | Impostazioni 12 | Abilita sfumatura (Telegram) 13 | Abilita gradiente per avatar 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values-iw/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ערכת נושא 4 | מחולל ערכת נושא פשוט של Telegram Monet. 5 | ערוץ הטלגרם שלנו 6 | כהה 7 | צור ערכת נושא מגווני המערכת. מתאים לשעות הלילה. 8 | בהיר 9 | צור ערכת נושא מגווני המערכת. מתאים לשעות היום. 10 | הגדר 11 | הגדרות 12 | אפשר מעבר צבע הדרגתי (Telegram) 13 | אפשר מעבר צבע עבור אווטארים 14 | אפשר מעברי צבע עבור שמות אנשי קשר 15 | במה להשתמש? 16 | האפליקציה זיהתה אפליקציות טלגרם התומכות בייבוא מהיר של ערכות נושא. 17 | ייבוא מהיר 18 | רגיל (שיתוף) 19 | -------------------------------------------------------------------------------- /app/src/main/res/values-ja/strings.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | TgMonet Theme 5 | TG Monet 6 | テーマ 7 | 8 | シンプルな Telegram Monet テーマジェネレーターです。 9 | Tg Monet Theme 10 | Telegram のチャンネル 11 | 12 | ダーク 13 | AMOLED モード 14 | システムシェードからダークテーマを生成します。\n夜にぴったりです。 15 | 16 | ライト 17 | システムシェードからライトテーマを生成します。\n日中におすすめです。 18 | 19 | セットアップ 20 | Telegram 21 | Telegram X 22 | GitHub 23 | 設定 24 | グラデーションを有効化 (Telegram) 25 | アバターのグラデーションを有効化 26 | ニックネームの Monet を有効化 27 | 別のメッセージ送信スタイルを使用する 28 | 使い方は? 29 | 何かが間違っています。\nインターネット接続を確認してください。 30 | 31 | 何を使いますか? 32 | 高速なテーマのインポート機能をサポートする Telegram アプリを検出しました。 33 | 高速でインポート 34 | 通常 (共有) 35 | -------------------------------------------------------------------------------- /app/src/main/res/values-ml/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | തീം 4 | ലളിതമായ ടെലിഗ്രാം മോനെറ്റ് തീം ജനറേറ്റർ. 5 | ടെലിഗ്രാം 6 | ഡാർക്ക് 7 | സിസ്റ്റം ഷേഡുകളിൽ നിന്ന് ഡാർക്ക് നിറമുള്ള തീം സൃഷ്ടിക്കുക. രാത്രി സമയത്തിന് അനുയോജ്യം. 8 | ലൈറ്റ് 9 | സിസ്റ്റം ഷേഡുകളിൽ നിന്ന് ലൈറ്റ് നിറമുള്ള തീം സൃഷ്ടിക്കുക. പകൽ സമയത്തിന് അനുയോജ്യം. 10 | സജ്ജമാക്കുക 11 | ക്രമീകരണങ്ങൾ 12 | ഗ്രേഡിയന്റ് പ്രവർത്തനക്ഷമമാക്കുക (ടെലിഗ്രാം) 13 | അവതാരങ്ങള്ക്കു് ഗ്രേഡിയന്റ് സജ്ജമാക്കുക 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values-nl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Thema 4 | Eenvoudige Telegram Monet-themagenerator. 5 | Ons Telegram Kanaal 6 | Donker 7 | Maak een donker thema van systeemtinten. Geweldig voor de nacht. 8 | Licht 9 | Maak een licht thema van systeemtinten. Ziet er overdag goed uit. 10 | Installatie 11 | Instellingen 12 | Verloop inschakelen (Telegram) 13 | Kleurverloop voor avatars inschakelen 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-pl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Motyw 4 | Prosty generator motywów Monet dla Telegrama. 5 | Nasz kanał Telegram 6 | Ciemny 7 | Stwórz ciemny motyw z kolorów systemowych. Idealne w nocy. 8 | Jasny 9 | Stwórz jasny motyw z kolorów systemowych. Wygląda dobrze za dnia. 10 | Ustaw 11 | Ustawienia 12 | Włącz gradient (Telegram) 13 | Włącz gradient dla awatarów 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-pt-rBR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Gerador simples de temas monet para o Telegram. 5 | Nosso canal do Telegram 6 | Escuro 7 | Crie um tema escuro a partir das cores do sistema. Ótimo para a noite. 8 | Claro 9 | Crie um tema claro a partir das cores do sistema. Ótimo para o dia. 10 | Configurar 11 | Configurações 12 | Ativar gradiente (Telegram) 13 | Ativar gradiente para avatares 14 | Ativar monet para apelidos 15 | Usar estilo de mensagem de saída alternativo 16 | Como usá-lo? 17 | Algo deu errado.\nVerifique a sua conexão com a internet. 18 | O que usar? 19 | O app detectou apps do Telegram que suportam a importação rápida de temas. 20 | Importação rápida 21 | Regular (Compartilhamento) 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/values-pt/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Gerador simples de temas monet para o Telegram. 5 | O nosso canal do Telegram 6 | Escuro 7 | Crie um tema escuro a partir das cores do sistema. Bom para uso de noite. 8 | Claro 9 | Crie um tema claro a partir das cores do sistema. Bom para uso de dia. 10 | Configurar 11 | Definições 12 | Ativar gradiente (Telegram) 13 | Ativar gradiente para avatares 14 | Ativar monet para apelidos 15 | Usar estilo de mensagem de saída alternativo 16 | Como utilizá-lo? 17 | Algo correu mal.\nVerifique a sua ligação à internet. 18 | O que utilizar? 19 | O app detectou apps do Telegram que suportam a importação rápida de temas. 20 | Importação rápida 21 | Regular (Partilha) 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/res/values-ro/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Temă 4 | Generator temă Telegram Monet. 5 | Canalul nostru de Telegram 6 | Întunecată 7 | Creați o temă întunecată din nuanțe de sistem. Bun pentru noapte. 8 | Luminată 9 | Creați o temă luminată din nuanțe de sistem. Bun pentru zi. 10 | Setează 11 | Setări 12 | Activați gradientul (Telegram) 13 | Activați gradientul pentru avatare 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-ru/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Тема 5 | 6 | Лёгкий генератор тем в цветах Monet Engine. 7 | Наш Telegram канал 8 | 9 | Тёмная 10 | Создай тёмную тему из системных оттенков. Отлично подходит для ночи. 11 | 12 | Светлая 13 | Создайте свелую тему из системных оттенков. Отлично подходит для светлого времени суток. 14 | 15 | Установить 16 | Настройки 17 | Включить градиент (Telegram) 18 | Включить градиент для аватарок 19 | Использовать Monet для ников 20 | Альтернативный цвет исходящих сообщений 21 | 22 | Что использовать? 23 | У Вас установлен Telegram, который поддерживает быстрый импорт тем 24 | Быстрый импорт 25 | Обычный (поделиться) 26 | Как использовать? 27 | Что-то пошло не так.\\nПроверьте интернет соединение. 28 | -------------------------------------------------------------------------------- /app/src/main/res/values-tl/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ᜆᜒᜋ 4 | ᜐᜒᜋ᜔ᜉ᜔ᜎᜒᜅ᜔ ᜉᜅ᜔ᜄᜏ ᜈᜅ᜔ ᜆᜒᜋᜅ᜔ ᜋᜓᜏ᜔ᜈᜒᜌ᜔ ᜉᜇ ᜐ ᜆᜒᜎᜅᜄ᜔ᜇᜅᜋ᜔ 5 | ᜀᜋᜒᜅ᜔ ᜆ᜔ᜐᜈᜒᜎ᜔ ᜐ ᜆᜒᜌᜒᜄ᜔ᜇᜋ᜔ 6 | ᜋᜇᜒᜎᜅᜋ᜔ 7 | ᜄᜒᜋᜏ ᜈᜅ᜔ ᜆᜒᜋᜅ᜔ ᜋᜇᜒᜎᜒᜋ᜔ ᜄᜋᜒᜆ᜔ ᜀᜅ᜔ ᜋᜅ ᜃᜒᜎᜌ᜔ ᜈᜅ᜔ ᜐᜒᜐ᜔ᜆᜒᜋ᜶ ᜋᜄᜈ᜔ᜇ ᜉᜅ᜔ᜄᜊᜒ 8 | ᜋᜎᜒᜏᜈᜄ᜔ 9 | ᜄᜒᜋᜏ ᜈᜅ᜔ ᜆᜒᜋᜅ᜔ ᜋᜎᜒᜏᜈᜄ᜔ ᜄᜋᜒᜆ᜔ ᜀᜅ᜔ ᜋᜅ ᜃᜒᜎᜌ᜔ ᜈᜅ᜔ ᜐᜒᜐ᜔ᜆᜒᜋ᜶ ᜋᜄᜈ᜔ᜇ ᜉᜅ᜔ᜀᜇᜏ᜔ 10 | ᜌᜒᜋᜓᜎᜈ᜔ 11 | Mga setting 12 | Paganahin ang gradient (Telegram) 13 | Paganahin ang gradient para sa mga avatar 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-tr-rTR/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Telegram için Basit Monet Temalar Oluştur. 5 | Telegram Kanalımız 6 | Karanlık 7 | Sistem gölgelerinden koyu tema yapın. Gece için Harika. 8 | Aydınlık 9 | Sistem gölgelerinden hafif tema yapın. Gün içinde iyi görünüyor. 10 | Kur 11 | Ayarlar 12 | Gradyanı etkinleştir (Telegram) 13 | Avatarlar için degradeyi etkinleştir 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values-uk-rUA/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Тема 4 | Простий генератор Monet тем для Telegram. 5 | Наш Telegram канал 6 | Темна тема 7 | Створити темну тему із системних відтінків. Чудово виглядає вночі. 8 | Світла тема 9 | Створити світлу тему із системних відтінків. Добре виглядає вдень. 10 | Застосувати 11 | Налаштування 12 | Увімкнути градієнт (Telegram) 13 | Включити градієнт для аватарів 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values-uz/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Tema 4 | Oddiy Telegram Monet temalar generatori. 5 | Biznig Telegram kanalimiz 6 | Qora Tema 7 | Tizim shaderlari yordamida qora team yarating. Kechki vaqt uchun juda mos kelade. 8 | Yorqin tema 9 | Tizim shaderlari yordamida yorqin team yarating. Kun davomida yaxshi ko\'rinadi. 10 | O\'rnatish 11 | Sozlamalar 12 | Gradientni yoqish (Telegram) 13 | Avatarlar uchun gradientni yoqish 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-vi/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Chủ đề 4 | Trình tạo chủ đề monet đơn giản cho Telegram. 5 | Kênh Telegram của chúng tôi 6 | Nền tối 7 | Tạo chủ đề nền tối từ màu hệ thống. 8 | Nền sáng 9 | Tạo chủ đề nền sáng từ màu hệ thống. 10 | Thiết lập 11 | Cài đặt 12 | Bật gradient (Telegram) 13 | Bật gradient cho avatar 14 | -------------------------------------------------------------------------------- /app/src/main/res/values-zh-rCN/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 主题 4 | 一个简单的 Telegram Monet 主题生成器 5 | 我们的Telegram 频道 6 | 深色 7 | 深色主题晚上观感更好 8 | 浅色 9 | 浅色主题白天看着更舒适 10 | 设置 11 | 设置 12 | 启用渐变(Telegram) 13 | 为头像启用渐变 14 | 为昵称启用 Monet 15 | 使用其他发送信息样式 16 | 纯黑模式 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_accent1_100 4 | @android:color/system_neutral2_700 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/monet_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | @android:color/system_neutral1_0 4 | @android:color/system_neutral1_10 5 | @android:color/system_neutral1_50 6 | @android:color/system_neutral1_100 7 | @android:color/system_neutral1_200 8 | @android:color/system_neutral1_300 9 | @android:color/system_neutral1_400 10 | @android:color/system_neutral1_500 11 | @android:color/system_neutral1_600 12 | @android:color/system_neutral1_700 13 | @android:color/system_neutral1_800 14 | @android:color/system_neutral1_900 15 | @android:color/system_neutral1_1000 16 | @android:color/system_neutral2_0 17 | @android:color/system_neutral2_10 18 | @android:color/system_neutral2_50 19 | @android:color/system_neutral2_100 20 | @android:color/system_neutral2_200 21 | @android:color/system_neutral2_300 22 | @android:color/system_neutral2_400 23 | @android:color/system_neutral2_500 24 | @android:color/system_neutral2_600 25 | @android:color/system_neutral2_700 26 | @android:color/system_neutral2_800 27 | @android:color/system_neutral2_900 28 | @android:color/system_neutral2_1000 29 | @android:color/system_accent1_0 30 | @android:color/system_accent1_10 31 | @android:color/system_accent1_50 32 | @android:color/system_accent1_100 33 | @android:color/system_accent1_200 34 | @android:color/system_accent1_300 35 | @android:color/system_accent1_400 36 | @android:color/system_accent1_500 37 | @android:color/system_accent1_600 38 | @android:color/system_accent1_700 39 | @android:color/system_accent1_800 40 | @android:color/system_accent1_900 41 | @android:color/system_accent1_1000 42 | @android:color/system_accent2_0 43 | @android:color/system_accent2_10 44 | @android:color/system_accent2_50 45 | @android:color/system_accent2_100 46 | @android:color/system_accent2_200 47 | @android:color/system_accent2_300 48 | @android:color/system_accent2_400 49 | @android:color/system_accent2_500 50 | @android:color/system_accent2_600 51 | @android:color/system_accent2_700 52 | @android:color/system_accent2_800 53 | @android:color/system_accent2_900 54 | @android:color/system_accent2_1000 55 | @android:color/system_accent3_0 56 | @android:color/system_accent3_10 57 | @android:color/system_accent3_50 58 | @android:color/system_accent3_100 59 | @android:color/system_accent3_200 60 | @android:color/system_accent3_300 61 | @android:color/system_accent3_400 62 | @android:color/system_accent3_500 63 | @android:color/system_accent3_600 64 | @android:color/system_accent3_700 65 | @android:color/system_accent3_800 66 | @android:color/system_accent3_900 67 | @android:color/system_accent3_1000 68 | 69 | #ffb3261e 70 | #fff2b8b5 71 | 72 | #4CAF50 73 | #EF5350 74 | 75 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | TgMonet Theme 5 | TG Monet 6 | Theme 7 | 8 | Simple Telegram Monet themes generator. 9 | Tg Monet Theme 10 | Our Telegram Channel 11 | 12 | Dark 13 | Amoled mode 14 | Make dark theme from system shades. Great for the night. 15 | 16 | Light 17 | Make light theme from system shades. Looks good during the day. 18 | 19 | Set up 20 | Telegram 21 | Telegram X 22 | GitHub 23 | Settings 24 | Enable gradient (Telegram) 25 | Enable gradient for avatars 26 | Enable monet for nicknames 27 | Use alternative outgoing message style 28 | 29 | How to use it? 30 | Something went wrong.\nCheck your internet connection. 31 | 32 | 33 | What to use? 34 | The app has detected Telegram apps that supports fast theme importing. 35 | Fast import 36 | Regular (Sharing) 37 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |