├── .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 |
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 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/data_extraction_rules.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/provider_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/testkey.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mi-g-alex/Telegram-Monet/869f2956ad8000cf0f07d555c287acb280e8000d/app/testkey.keystore
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 | plugins {
3 | alias(libs.plugins.android.application) apply false
4 | alias(libs.plugins.kotlin.android) apply false
5 | alias(libs.plugins.kotlin.compose) apply false
6 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10 | # When configured, Gradle will run in incubating parallel mode.
11 | # This option should only be used with decoupled projects. For more details, visit
12 | # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects
13 | # org.gradle.parallel=true
14 | # AndroidX package structure to make it clearer which packages are bundled with the
15 | # Android operating system, and which are packaged with your app's APK
16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
17 | android.useAndroidX=true
18 | # Kotlin code style for this project: "official" or "obsolete":
19 | kotlin.code.style=official
20 | # Enables namespacing of each library's R class so that its R class includes only the
21 | # resources declared in the library itself and none from the library's dependencies,
22 | # thereby reducing the size of the R class for that library
23 | android.nonTransitiveRClass=true
--------------------------------------------------------------------------------
/gradle/libs.versions.toml:
--------------------------------------------------------------------------------
1 | [versions]
2 | agp = "8.7.3"
3 | coilGif = "2.7.0"
4 | kotlin = "2.0.0"
5 | coreKtx = "1.13.1"
6 | junit = "4.13.2"
7 | junitVersion = "1.2.1"
8 | espressoCore = "3.6.1"
9 | lifecycleRuntimeKtx = "2.8.3"
10 | activityCompose = "1.9.0"
11 | composeBom = "2024.04.01"
12 | uiTooling = "1.6.8"
13 | navigationRuntimeKtx = "2.7.7"
14 | navigationCompose = "2.7.7"
15 | oneui6Material3DynamicColorCompose = "0.1.1"
16 |
17 | [libraries]
18 | androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
19 | coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coilGif" }
20 | coil-gif = { module = "io.coil-kt:coil-gif", version.ref = "coilGif" }
21 | junit = { group = "junit", name = "junit", version.ref = "junit" }
22 | androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
23 | androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
24 | androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
25 | androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
26 | androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
27 | androidx-ui = { group = "androidx.compose.ui", name = "ui" }
28 | androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
29 | androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
30 | androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
31 | androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
32 | androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
33 | androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
34 | ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" }
35 | androidx-navigation-runtime-ktx = { group = "androidx.navigation", name = "navigation-runtime-ktx", version.ref = "navigationRuntimeKtx" }
36 | androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }
37 | oneui6-material3-dynamic-color-compose = { module = "com.github.long5436:oneui6-material3-dynamic-color-compose", version.ref = "oneui6Material3DynamicColorCompose" }
38 |
39 | [plugins]
40 | android-application = { id = "com.android.application", version.ref = "agp" }
41 | kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
42 | kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
43 |
44 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mi-g-alex/Telegram-Monet/869f2956ad8000cf0f07d555c287acb280e8000d/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jul 17 21:39:32 MSK 2024
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 |
3 | #
4 | # Copyright 2015 the original author or authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | ##
21 | ## Gradle start up script for UN*X
22 | ##
23 | ##############################################################################
24 |
25 | # Attempt to set APP_HOME
26 | # Resolve links: $0 may be a link
27 | PRG="$0"
28 | # Need this for relative symlinks.
29 | while [ -h "$PRG" ] ; do
30 | ls=`ls -ld "$PRG"`
31 | link=`expr "$ls" : '.*-> \(.*\)$'`
32 | if expr "$link" : '/.*' > /dev/null; then
33 | PRG="$link"
34 | else
35 | PRG=`dirname "$PRG"`"/$link"
36 | fi
37 | done
38 | SAVED="`pwd`"
39 | cd "`dirname \"$PRG\"`/" >/dev/null
40 | APP_HOME="`pwd -P`"
41 | cd "$SAVED" >/dev/null
42 |
43 | APP_NAME="Gradle"
44 | APP_BASE_NAME=`basename "$0"`
45 |
46 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48 |
49 | # Use the maximum available, or set MAX_FD != -1 to use that value.
50 | MAX_FD="maximum"
51 |
52 | warn () {
53 | echo "$*"
54 | }
55 |
56 | die () {
57 | echo
58 | echo "$*"
59 | echo
60 | exit 1
61 | }
62 |
63 | # OS specific support (must be 'true' or 'false').
64 | cygwin=false
65 | msys=false
66 | darwin=false
67 | nonstop=false
68 | case "`uname`" in
69 | CYGWIN* )
70 | cygwin=true
71 | ;;
72 | Darwin* )
73 | darwin=true
74 | ;;
75 | MINGW* )
76 | msys=true
77 | ;;
78 | NONSTOP* )
79 | nonstop=true
80 | ;;
81 | esac
82 |
83 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84 |
85 |
86 | # Determine the Java command to use to start the JVM.
87 | if [ -n "$JAVA_HOME" ] ; then
88 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89 | # IBM's JDK on AIX uses strange locations for the executables
90 | JAVACMD="$JAVA_HOME/jre/sh/java"
91 | else
92 | JAVACMD="$JAVA_HOME/bin/java"
93 | fi
94 | if [ ! -x "$JAVACMD" ] ; then
95 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96 |
97 | Please set the JAVA_HOME variable in your environment to match the
98 | location of your Java installation."
99 | fi
100 | else
101 | JAVACMD="java"
102 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103 |
104 | Please set the JAVA_HOME variable in your environment to match the
105 | location of your Java installation."
106 | fi
107 |
108 | # Increase the maximum file descriptors if we can.
109 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110 | MAX_FD_LIMIT=`ulimit -H -n`
111 | if [ $? -eq 0 ] ; then
112 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113 | MAX_FD="$MAX_FD_LIMIT"
114 | fi
115 | ulimit -n $MAX_FD
116 | if [ $? -ne 0 ] ; then
117 | warn "Could not set maximum file descriptor limit: $MAX_FD"
118 | fi
119 | else
120 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121 | fi
122 | fi
123 |
124 | # For Darwin, add options to specify how the application appears in the dock
125 | if $darwin; then
126 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127 | fi
128 |
129 | # For Cygwin or MSYS, switch paths to Windows format before running java
130 | if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133 |
134 | JAVACMD=`cygpath --unix "$JAVACMD"`
135 |
136 | # We build the pattern for arguments to be converted via cygpath
137 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138 | SEP=""
139 | for dir in $ROOTDIRSRAW ; do
140 | ROOTDIRS="$ROOTDIRS$SEP$dir"
141 | SEP="|"
142 | done
143 | OURCYGPATTERN="(^($ROOTDIRS))"
144 | # Add a user-defined pattern to the cygpath arguments
145 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147 | fi
148 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
149 | i=0
150 | for arg in "$@" ; do
151 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153 |
154 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156 | else
157 | eval `echo args$i`="\"$arg\""
158 | fi
159 | i=`expr $i + 1`
160 | done
161 | case $i in
162 | 0) set -- ;;
163 | 1) set -- "$args0" ;;
164 | 2) set -- "$args0" "$args1" ;;
165 | 3) set -- "$args0" "$args1" "$args2" ;;
166 | 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167 | 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168 | 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169 | 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170 | 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171 | 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172 | esac
173 | fi
174 |
175 | # Escape application args
176 | save () {
177 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178 | echo " "
179 | }
180 | APP_ARGS=`save "$@"`
181 |
182 | # Collect all arguments for the java command, following the shell quoting and substitution rules
183 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184 |
185 | exec "$JAVACMD" "$@"
186 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%" == "" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%" == "" set DIRNAME=.
29 | set APP_BASE_NAME=%~n0
30 | set APP_HOME=%DIRNAME%
31 |
32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34 |
35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37 |
38 | @rem Find java.exe
39 | if defined JAVA_HOME goto findJavaFromJavaHome
40 |
41 | set JAVA_EXE=java.exe
42 | %JAVA_EXE% -version >NUL 2>&1
43 | if "%ERRORLEVEL%" == "0" goto execute
44 |
45 | echo.
46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47 | echo.
48 | echo Please set the JAVA_HOME variable in your environment to match the
49 | echo location of your Java installation.
50 |
51 | goto fail
52 |
53 | :findJavaFromJavaHome
54 | set JAVA_HOME=%JAVA_HOME:"=%
55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56 |
57 | if exist "%JAVA_EXE%" goto execute
58 |
59 | echo.
60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61 | echo.
62 | echo Please set the JAVA_HOME variable in your environment to match the
63 | echo location of your Java installation.
64 |
65 | goto fail
66 |
67 | :execute
68 | @rem Setup the command line
69 |
70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71 |
72 |
73 | @rem Execute Gradle
74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75 |
76 | :end
77 | @rem End local scope for the variables with windows NT shell
78 | if "%ERRORLEVEL%"=="0" goto mainEnd
79 |
80 | :fail
81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82 | rem the _cmd.exe /c_ return code!
83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84 | exit /b 1
85 |
86 | :mainEnd
87 | if "%OS%"=="Windows_NT" endlocal
88 |
89 | :omega
90 |
--------------------------------------------------------------------------------
/screen.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mi-g-alex/Telegram-Monet/869f2956ad8000cf0f07d555c287acb280e8000d/screen.gif
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | google {
4 | content {
5 | includeGroupByRegex("com\\.android.*")
6 | includeGroupByRegex("com\\.google.*")
7 | includeGroupByRegex("androidx.*")
8 | }
9 | }
10 | mavenCentral()
11 | gradlePluginPortal()
12 | }
13 | }
14 | dependencyResolutionManagement {
15 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
16 | repositories {
17 | google()
18 | mavenCentral()
19 | maven { url = uri("https://jitpack.io") }
20 | }
21 | }
22 |
23 | rootProject.name = "Telegram Monet"
24 | include(":app")
25 |
--------------------------------------------------------------------------------