@momo-kits/native-kits 0.162.1-gif.2-debug → 0.162.1-gif.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/package.json +1 -1
  2. package/build.gradle.kts +0 -11
  3. package/compose/build.gradle.kts +0 -189
  4. package/compose/build.gradle.kts.backup +0 -189
  5. package/compose/compose.podspec +0 -47
  6. package/compose/src/androidMain/kotlin/vn/momo/kits/fpsmonitor/FPSGraphView.kt +0 -250
  7. package/compose/src/androidMain/kotlin/vn/momo/kits/fpsmonitor/FPSMonitor.kt +0 -249
  8. package/compose/src/androidMain/kotlin/vn/momo/kits/fpsmonitor/FPSOverlayView.kt +0 -99
  9. package/compose/src/androidMain/kotlin/vn/momo/kits/navigation/ScrollToTop.android.kt +0 -6
  10. package/compose/src/androidMain/kotlin/vn/momo/kits/platform/Platform.android.kt +0 -123
  11. package/compose/src/commonMain/composeResources/font/momosignature.otf +0 -0
  12. package/compose/src/commonMain/composeResources/font/momotrustdisplay.otf +0 -0
  13. package/compose/src/commonMain/composeResources/font/sfprotext_black.otf +0 -0
  14. package/compose/src/commonMain/composeResources/font/sfprotext_black.ttf +0 -0
  15. package/compose/src/commonMain/composeResources/font/sfprotext_bold.ttf +0 -0
  16. package/compose/src/commonMain/composeResources/font/sfprotext_heavy.ttf +0 -0
  17. package/compose/src/commonMain/composeResources/font/sfprotext_light.ttf +0 -0
  18. package/compose/src/commonMain/composeResources/font/sfprotext_medium.ttf +0 -0
  19. package/compose/src/commonMain/composeResources/font/sfprotext_regular.ttf +0 -0
  20. package/compose/src/commonMain/composeResources/font/sfprotext_semibold.ttf +0 -0
  21. package/compose/src/commonMain/composeResources/font/sfprotext_thin.otf +0 -0
  22. package/compose/src/commonMain/composeResources/font/sfprotext_thin.ttf +0 -0
  23. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.otf +0 -0
  24. package/compose/src/commonMain/composeResources/font/sfprotext_ultralight.ttf +0 -0
  25. package/compose/src/commonMain/kotlin/vn/momo/kits/application/AnimationSearchInput.kt +0 -57
  26. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Context.kt +0 -109
  27. package/compose/src/commonMain/kotlin/vn/momo/kits/application/FloatingButton.kt +0 -201
  28. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Header.kt +0 -222
  29. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderAnimated.kt +0 -48
  30. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderBackground.kt +0 -86
  31. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderDefault.kt +0 -76
  32. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderExtended.kt +0 -76
  33. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderRight.kt +0 -305
  34. package/compose/src/commonMain/kotlin/vn/momo/kits/application/HeaderTitle.kt +0 -33
  35. package/compose/src/commonMain/kotlin/vn/momo/kits/application/LiteScreen.kt +0 -921
  36. package/compose/src/commonMain/kotlin/vn/momo/kits/application/NavigationContainer.kt +0 -121
  37. package/compose/src/commonMain/kotlin/vn/momo/kits/application/Screen.kt +0 -403
  38. package/compose/src/commonMain/kotlin/vn/momo/kits/application/useHeaderSearchAnimation.kt +0 -69
  39. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Avatar.kt +0 -157
  40. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Badge.kt +0 -85
  41. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeDot.kt +0 -32
  42. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BadgeRibbon.kt +0 -340
  43. package/compose/src/commonMain/kotlin/vn/momo/kits/components/BaselineView.kt +0 -198
  44. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Button.kt +0 -357
  45. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Carousel.kt +0 -123
  46. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CheckBox.kt +0 -94
  47. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Chip.kt +0 -136
  48. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Collapse.kt +0 -224
  49. package/compose/src/commonMain/kotlin/vn/momo/kits/components/CupertinoOverscroll.kt +0 -543
  50. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Divider.kt +0 -23
  51. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Icon.kt +0 -76
  52. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +0 -148
  53. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Image.kt +0 -244
  54. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Information.kt +0 -116
  55. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Input.kt +0 -452
  56. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputDropDown.kt +0 -172
  57. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputMoney.kt +0 -255
  58. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputOTP.kt +0 -235
  59. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputPhoneNumber.kt +0 -233
  60. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputSearch.kt +0 -259
  61. package/compose/src/commonMain/kotlin/vn/momo/kits/components/InputTextArea.kt +0 -241
  62. package/compose/src/commonMain/kotlin/vn/momo/kits/components/LazyColumnWithBouncing.kt +0 -364
  63. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Loader.kt +0 -108
  64. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationDot.kt +0 -56
  65. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationNumber.kt +0 -41
  66. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationScroll.kt +0 -92
  67. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PaginationWhiteDot.kt +0 -40
  68. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupNotify.kt +0 -352
  69. package/compose/src/commonMain/kotlin/vn/momo/kits/components/PopupPromotion.kt +0 -103
  70. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ProgressInfo.kt +0 -338
  71. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Radio.kt +0 -70
  72. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Rating.kt +0 -87
  73. package/compose/src/commonMain/kotlin/vn/momo/kits/components/ScaleSizeScope.kt +0 -17
  74. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Skeleton.kt +0 -96
  75. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Slider.kt +0 -348
  76. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Stepper.kt +0 -256
  77. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Steps.kt +0 -494
  78. package/compose/src/commonMain/kotlin/vn/momo/kits/components/SuggestAction.kt +0 -131
  79. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Swipe.kt +0 -215
  80. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Switch.kt +0 -96
  81. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TabView.kt +0 -531
  82. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tag.kt +0 -92
  83. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Text.kt +0 -135
  84. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Title.kt +0 -214
  85. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Tooltip.kt +0 -590
  86. package/compose/src/commonMain/kotlin/vn/momo/kits/components/TrustBanner.kt +0 -177
  87. package/compose/src/commonMain/kotlin/vn/momo/kits/components/Uploader.kt +0 -192
  88. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePicker.kt +0 -205
  89. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerTypes.kt +0 -29
  90. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/DateTimePickerUtils.kt +0 -239
  91. package/compose/src/commonMain/kotlin/vn/momo/kits/components/datetimepicker/WheelPicker.kt +0 -191
  92. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Colors.kt +0 -306
  93. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Radius.kt +0 -12
  94. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Spacing.kt +0 -16
  95. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Theme.kt +0 -188
  96. package/compose/src/commonMain/kotlin/vn/momo/kits/const/Typography.kt +0 -285
  97. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Card.kt +0 -2
  98. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Item.kt +0 -35
  99. package/compose/src/commonMain/kotlin/vn/momo/kits/layout/Section.kt +0 -2
  100. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/AutomationId.kt +0 -57
  101. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Clickable.kt +0 -68
  102. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Conditional.kt +0 -11
  103. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/DeprecatedModifier.kt +0 -14
  104. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Shadow.kt +0 -50
  105. package/compose/src/commonMain/kotlin/vn/momo/kits/modifier/Size.kt +0 -51
  106. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +0 -253
  107. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +0 -133
  108. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -104
  109. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +0 -145
  110. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +0 -345
  111. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ScrollToTop.kt +0 -8
  112. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +0 -556
  113. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTab.kt +0 -173
  114. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/BottomTabBar.kt +0 -243
  115. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/bottomtab/CurvedContainer.kt +0 -86
  116. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/FloatingButton.kt +0 -187
  117. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/Header.kt +0 -315
  118. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderBackground.kt +0 -80
  119. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderRight.kt +0 -306
  120. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderTitle.kt +0 -34
  121. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/HeaderUser.kt +0 -370
  122. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/component/SnackBar.kt +0 -131
  123. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -167
  124. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/ComposeLottieAnimation.kt +0 -72
  125. package/compose/src/commonMain/kotlin/vn/momo/kits/platform/Platform.kt +0 -66
  126. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Icons.kt +0 -1329
  127. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Resources.kt +0 -70
  128. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Tracking.kt +0 -15
  129. package/compose/src/commonMain/kotlin/vn/momo/kits/utils/Utils.kt +0 -105
  130. package/compose/src/iosMain/kotlin/vn/momo/kits/navigation/ScrollToTop.ios.kt +0 -33
  131. package/compose/src/iosMain/kotlin/vn/momo/kits/platform/Platform.ios.kt +0 -186
  132. package/gradle/libs.versions.toml +0 -71
  133. package/gradle/wrapper/gradle-wrapper.jar +0 -0
  134. package/gradle/wrapper/gradle-wrapper.properties +0 -8
  135. package/gradle.properties +0 -26
  136. package/gradlew +0 -252
  137. package/gradlew.bat +0 -94
  138. package/local.properties +0 -8
  139. package/settings.gradle.kts +0 -64
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/native-kits",
3
- "version": "0.162.1-gif.2-debug",
3
+ "version": "0.162.1-gif.2",
4
4
  "private": false,
5
5
  "dependencies": {},
6
6
  "devDependencies": {},
package/build.gradle.kts DELETED
@@ -1,11 +0,0 @@
1
- plugins {
2
- // this is necessary to avoid the plugins to be loaded multiple times
3
- // in each subproject's classloader
4
- alias(libs.plugins.android.application) apply false
5
- alias(libs.plugins.android.library) apply false
6
- alias(libs.plugins.compose) apply false
7
- alias(libs.plugins.kotlin.compose.compiler) apply false
8
- alias(libs.plugins.jetbrains.kotlin.multiplatform) apply false
9
- alias(libs.plugins.jetbrains.kotlin.serialization) apply false
10
- alias(libs.plugins.vanniktech.mavenPublish) apply false
11
- }
@@ -1,189 +0,0 @@
1
- // import com.vanniktech.maven.publish.JavadocJar
2
- // import com.vanniktech.maven.publish.KotlinMultiplatform
3
- import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
-
5
- plugins {
6
- alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
- alias(libs.plugins.android.library)
8
- alias(libs.plugins.compose)
9
- alias(libs.plugins.kotlin.compose.compiler)
10
- // alias(libs.plugins.vanniktech.mavenPublish)
11
- id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
12
- kotlin("plugin.serialization")
13
- }
14
-
15
- val gitlabName: String? = findProperty("name") as String? ?: ""
16
- val gitlabRepo: String? = findProperty("repo") as String? ?: ""
17
- val gitlabUrl: String? = findProperty("url") as String? ?: ""
18
- val gitlabGroup: String? = findProperty("group") as String? ?: ""
19
- val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
20
- val gitlabVersion: String? = findProperty("version") as String? ?: ""
21
- val gitlabUser: String? = findProperty("gitlab.user") as String? ?: ""
22
- val gitlabKey: String? = findProperty("gitlab.password") as String? ?: ""
23
-
24
- kotlin {
25
- androidTarget {
26
- compilerOptions {
27
- jvmTarget.set(JvmTarget.JVM_17)
28
- }
29
- publishLibraryVariants("release")
30
- }
31
-
32
- val fwName = gitlabArtifactId
33
- val iosTargets = listOf(iosArm64(), iosSimulatorArm64())
34
- iosTargets.forEach {
35
- it.binaries.framework {
36
- baseName = fwName
37
- binaryOption("bundleId", "$gitlabGroup.$fwName")
38
- isStatic = true
39
- }
40
- }
41
-
42
- cocoapods {
43
- version = "0.162.1-gif.2-debug"
44
- summary = "IOS Shared module"
45
- homepage = "https://momo.vn"
46
- ios.deploymentTarget = "15.0"
47
-
48
- framework {
49
- baseName = fwName
50
- isStatic = true
51
- }
52
-
53
- pod("lottie-ios") {
54
- moduleName = "Lottie"
55
- version = "4.4.3"
56
- extraOpts += listOf("-compiler-option", "-fmodules")
57
- }
58
- }
59
-
60
- sourceSets {
61
- commonMain.dependencies {
62
- implementation(compose.runtime)
63
- implementation(compose.material)
64
- implementation(compose.material3)
65
- implementation(compose.components.resources)
66
- implementation(libs.compose.ui.backhandler)
67
- implementation(libs.ktor.client.core)
68
- implementation(libs.jetbrains.coroutines.core)
69
- implementation(libs.navigation.multiplatform)
70
- implementation(libs.coil.multiplatform.compose)
71
- implementation(libs.coil.multiplatform.core)
72
- implementation(libs.coil.multiplatform.network.ktor)
73
- implementation(libs.jetbrains.serialization.json)
74
- implementation(libs.kotlinx.datetime)
75
- api(libs.native.max.api)
76
- implementation(libs.compottie)
77
- implementation(libs.sketch.compose)
78
- implementation(libs.sketch.http.ktor3)
79
- implementation(libs.sketch.animated.gif)
80
- }
81
- androidMain.dependencies {
82
- implementation(libs.ktor.client.okhttp)
83
- implementation(libs.airbnb.lottie)
84
- }
85
- iosMain.dependencies {
86
- implementation(libs.ktor.client.darwin)
87
- }
88
- }
89
- }
90
-
91
- android {
92
- namespace = "vn.momo.kits.kits"
93
- compileSdk = 35
94
- compileOptions {
95
- sourceCompatibility = JavaVersion.VERSION_17
96
- targetCompatibility = JavaVersion.VERSION_17
97
- }
98
- defaultConfig {
99
- minSdk = 24
100
- }
101
- }
102
-
103
- dependencies {
104
- }
105
-
106
- repositories {
107
- google {
108
- mavenContent {
109
- includeGroupAndSubgroups("androidx")
110
- includeGroupAndSubgroups("com.android")
111
- includeGroupAndSubgroups("com.google")
112
- }
113
- }
114
- mavenCentral()
115
- maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
116
- maven {
117
- url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
118
- credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
119
- }
120
- maven {
121
- url = uri("https://artifacts.mservice.com.vn/repository/maven-momo-app/")
122
- credentials {
123
- username = "viewer"
124
- password = "viewer"
125
- }
126
- isAllowInsecureProtocol = true
127
- }
128
- }
129
-
130
- compose {
131
- resources {
132
- publicResClass = true
133
- packageOfResClass = "vn.momo.uikits.resources"
134
- generateResClass = always
135
- }
136
- }
137
-
138
- // publishing {
139
- // repositories {
140
- // maven {
141
- // name = "${gitlabRepo}Packages"
142
- // credentials {
143
- // username = gitlabUser
144
- // password = gitlabKey
145
- // }
146
- // url = uri("$gitlabUrl")
147
- // }
148
- // }
149
- // }
150
-
151
- // mavenPublishing {
152
- // configure(
153
- // KotlinMultiplatform(
154
- // javadocJar = JavadocJar.Empty(),
155
- // sourcesJar = true,
156
- // androidVariantsToPublish = listOf("release")
157
- // )
158
- // )
159
- //
160
- // repositories {
161
- // maven {
162
- // name = "${gitlabRepo}Packages"
163
- // credentials { username = gitlabUser; password = gitlabKey }
164
- // url = uri("$gitlabUrl")
165
- // }
166
- // }
167
- //
168
- // coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
169
- //
170
- // pom {
171
- // name = "$gitlabName Klib"
172
- // description = "$gitlabName"
173
- // url = "https://gitlab.mservice.com.vn"
174
- // licenses {
175
- // license {
176
- // name = "The Apache License, Version 2.0"
177
- // url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
178
- // distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
179
- // }
180
- // }
181
- // developers {
182
- // developer {
183
- // id = "kotlin-hands-on"
184
- // name = "Kotlin Developer Advocate"
185
- // url = "https://github.com/kotlin-hands-on/"
186
- // }
187
- // }
188
- // }
189
- // }
@@ -1,189 +0,0 @@
1
- import com.vanniktech.maven.publish.JavadocJar
2
- import com.vanniktech.maven.publish.KotlinMultiplatform
3
- import org.jetbrains.kotlin.gradle.dsl.JvmTarget
4
-
5
- plugins {
6
- alias(libs.plugins.jetbrains.kotlin.multiplatform)
7
- alias(libs.plugins.android.library)
8
- alias(libs.plugins.compose)
9
- alias(libs.plugins.kotlin.compose.compiler)
10
- alias(libs.plugins.vanniktech.mavenPublish)
11
- id(libs.plugins.jetbrains.kotlin.cocoapods.get().pluginId)
12
- kotlin("plugin.serialization")
13
- }
14
-
15
- val gitlabName: String? = findProperty("name") as String? ?: ""
16
- val gitlabRepo: String? = findProperty("repo") as String? ?: ""
17
- val gitlabUrl: String? = findProperty("url") as String? ?: ""
18
- val gitlabGroup: String? = findProperty("group") as String? ?: ""
19
- val gitlabArtifactId: String = findProperty("artifact.id") as String? ?: ""
20
- val gitlabVersion: String? = findProperty("version") as String? ?: ""
21
- val gitlabUser: String? = findProperty("gitlab.user") as String? ?: ""
22
- val gitlabKey: String? = findProperty("gitlab.password") as String? ?: ""
23
-
24
- kotlin {
25
- androidTarget {
26
- compilerOptions {
27
- jvmTarget.set(JvmTarget.JVM_17)
28
- }
29
- publishLibraryVariants("release")
30
- }
31
-
32
- val fwName = gitlabArtifactId
33
- val iosTargets = listOf(iosArm64(), iosSimulatorArm64())
34
- iosTargets.forEach {
35
- it.binaries.framework {
36
- baseName = fwName
37
- binaryOption("bundleId", "$gitlabGroup.$fwName")
38
- isStatic = true
39
- }
40
- }
41
-
42
- cocoapods {
43
- version = gitlabVersion
44
- summary = "IOS Shared module"
45
- homepage = "https://momo.vn"
46
- ios.deploymentTarget = "15.0"
47
-
48
- framework {
49
- baseName = fwName
50
- isStatic = true
51
- }
52
-
53
- pod("lottie-ios") {
54
- moduleName = "Lottie"
55
- version = "4.4.3"
56
- extraOpts += listOf("-compiler-option", "-fmodules")
57
- }
58
- }
59
-
60
- sourceSets {
61
- commonMain.dependencies {
62
- implementation(compose.runtime)
63
- implementation(compose.material)
64
- implementation(compose.material3)
65
- implementation(compose.components.resources)
66
- implementation(libs.compose.ui.backhandler)
67
- implementation(libs.ktor.client.core)
68
- implementation(libs.jetbrains.coroutines.core)
69
- implementation(libs.navigation.multiplatform)
70
- implementation(libs.coil.multiplatform.compose)
71
- implementation(libs.coil.multiplatform.core)
72
- implementation(libs.coil.multiplatform.network.ktor)
73
- implementation(libs.jetbrains.serialization.json)
74
- implementation(libs.kotlinx.datetime)
75
- api(libs.native.max.api)
76
- implementation(libs.compottie)
77
- implementation(libs.sketch.compose)
78
- implementation(libs.sketch.http.ktor3)
79
- implementation(libs.sketch.animated.gif)
80
- }
81
- androidMain.dependencies {
82
- implementation(libs.ktor.client.okhttp)
83
- implementation(libs.airbnb.lottie)
84
- }
85
- iosMain.dependencies {
86
- implementation(libs.ktor.client.darwin)
87
- }
88
- }
89
- }
90
-
91
- android {
92
- namespace = "$gitlabGroup.$gitlabArtifactId"
93
- compileSdk = libs.versions.android.compileSdk.get().toInt()
94
- compileOptions {
95
- sourceCompatibility = JavaVersion.VERSION_17
96
- targetCompatibility = JavaVersion.VERSION_17
97
- }
98
- defaultConfig {
99
- minSdk = libs.versions.android.minSdk.get().toInt()
100
- }
101
- }
102
-
103
- dependencies {
104
- }
105
-
106
- repositories {
107
- google {
108
- mavenContent {
109
- includeGroupAndSubgroups("androidx")
110
- includeGroupAndSubgroups("com.android")
111
- includeGroupAndSubgroups("com.google")
112
- }
113
- }
114
- mavenCentral()
115
- maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
116
- maven {
117
- url = uri("https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven")
118
- credentials {username = "download_packages"; password = "gldt-bjDqLpU_sPcHDuXau2ws" }
119
- }
120
- maven {
121
- url = uri("https://artifacts.mservice.com.vn/repository/maven-momo-app/")
122
- credentials {
123
- username = "viewer"
124
- password = "viewer"
125
- }
126
- isAllowInsecureProtocol = true
127
- }
128
- }
129
-
130
- compose {
131
- resources {
132
- publicResClass = true
133
- packageOfResClass = "vn.momo.uikits.resources"
134
- generateResClass = always
135
- }
136
- }
137
-
138
- publishing {
139
- repositories {
140
- maven {
141
- name = "${gitlabRepo}Packages"
142
- credentials {
143
- username = gitlabUser
144
- password = gitlabKey
145
- }
146
- url = uri("$gitlabUrl")
147
- }
148
- }
149
- }
150
-
151
- mavenPublishing {
152
- configure(
153
- KotlinMultiplatform(
154
- javadocJar = JavadocJar.Empty(),
155
- sourcesJar = true,
156
- androidVariantsToPublish = listOf("release")
157
- )
158
- )
159
-
160
- repositories {
161
- maven {
162
- name = "${gitlabRepo}Packages"
163
- credentials { username = gitlabUser; password = gitlabKey }
164
- url = uri("$gitlabUrl")
165
- }
166
- }
167
-
168
- coordinates(gitlabGroup.toString(), gitlabArtifactId, gitlabVersion.toString())
169
-
170
- pom {
171
- name = "$gitlabName Klib"
172
- description = "$gitlabName"
173
- url = "https://gitlab.mservice.com.vn"
174
- licenses {
175
- license {
176
- name = "The Apache License, Version 2.0"
177
- url = "https://www.apache.org/licenses/LICENSE-2.0.txt"
178
- distribution = "https://www.apache.org/licenses/LICENSE-2.0.txt"
179
- }
180
- }
181
- developers {
182
- developer {
183
- id = "kotlin-hands-on"
184
- name = "Kotlin Developer Advocate"
185
- url = "https://github.com/kotlin-hands-on/"
186
- }
187
- }
188
- }
189
- }
@@ -1,47 +0,0 @@
1
- Pod::Spec.new do |spec|
2
- spec.name = 'compose'
3
- spec.version = '0.162.1-beta.7'
4
- spec.homepage = 'https://momo.vn'
5
- spec.source = { :http=> ''}
6
- spec.authors = ''
7
- spec.license = ''
8
- spec.summary = 'IOS Shared module'
9
- spec.vendored_frameworks = 'build/cocoapods/framework/kits.framework'
10
- spec.libraries = 'c++'
11
- spec.ios.deployment_target = '15.0'
12
- spec.dependency 'lottie-ios', '4.4.3'
13
- if !Dir.exist?('build/cocoapods/framework/kits.framework') || Dir.empty?('build/cocoapods/framework/kits.framework')
14
- raise "
15
- Kotlin framework 'kits' doesn't exist yet, so a proper Xcode project can't be generated.
16
- 'pod install' should be executed after running ':generateDummyFramework' Gradle task:
17
- ./gradlew :compose:generateDummyFramework
18
- Alternatively, proper pod installation is performed during Gradle sync in the IDE (if Podfile location is set)"
19
- end
20
- spec.xcconfig = {
21
- 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO',
22
- }
23
- spec.pod_target_xcconfig = {
24
- 'KOTLIN_PROJECT_PATH' => ':compose',
25
- 'PRODUCT_MODULE_NAME' => 'kits',
26
- }
27
- spec.script_phases = [
28
- {
29
- :name => 'Build compose',
30
- :execution_position => :before_compile,
31
- :shell_path => '/bin/sh',
32
- :script => <<-SCRIPT
33
- if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
34
- echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
35
- exit 0
36
- fi
37
- set -ev
38
- REPO_ROOT="$PODS_TARGET_SRCROOT"
39
- "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
40
- -Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
41
- -Pkotlin.native.cocoapods.archs="$ARCHS" \
42
- -Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
43
- SCRIPT
44
- }
45
- ]
46
- spec.resources = ['build/compose/cocoapods/compose-resources']
47
- end
@@ -1,250 +0,0 @@
1
- package vn.momo.kits.fpsmonitor
2
-
3
- import android.content.Context
4
- import android.graphics.Canvas
5
- import android.graphics.Color
6
- import android.graphics.Paint
7
- import android.graphics.Rect
8
- import android.graphics.RectF
9
- import android.view.View
10
- import kotlin.math.max
11
- import kotlin.math.min
12
-
13
- class FPSGraphView(context: Context) : View(context) {
14
- private val fpsValues = mutableListOf<Float>()
15
- private val cpuTimeValues = mutableListOf<Float>()
16
- private val gpuTimeValues = mutableListOf<Float>()
17
- private val maxPoints = 100
18
-
19
- private var currentMetrics: FPSMetrics? = null
20
- private var collapsed = false
21
- private val density = resources.displayMetrics.density
22
- private val scaledDensity = resources.displayMetrics.density * resources.configuration.fontScale
23
-
24
- private val fpsColor = Color.rgb(0, 255, 0)
25
- private val cpuColor = Color.rgb(255, 165, 0)
26
- private val gpuColor = Color.rgb(0, 191, 255)
27
- private val memColor = Color.rgb(255, 105, 180)
28
- private val backgroundPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
29
- color = Color.argb(153, 0, 0, 0)
30
- }
31
- private val textPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
32
- color = Color.WHITE
33
- textSize = 12.sp
34
- }
35
- private val linePaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
36
- strokeWidth = 1.25f.dp
37
- style = Paint.Style.STROKE
38
- }
39
- private val gridPaint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
40
- color = Color.argb(25, 255, 255, 255)
41
- strokeWidth = 0.5f.dp
42
- style = Paint.Style.STROKE
43
- }
44
-
45
- init {
46
- setLayerType(LAYER_TYPE_SOFTWARE, null)
47
- }
48
-
49
- fun toggleCollapse() {
50
- collapsed = !collapsed
51
- requestLayout()
52
- invalidate()
53
- }
54
-
55
- fun updateMetrics(metrics: FPSMetrics) {
56
- currentMetrics = metrics
57
- append(fpsValues, metrics.fps)
58
- append(cpuTimeValues, metrics.estCPUTimePerFrameMs)
59
- append(gpuTimeValues, metrics.estGPUTimePerFrameMs)
60
- requestLayout()
61
- invalidate()
62
- }
63
-
64
- override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
65
- if (collapsed) {
66
- setMeasuredDimension(72.dp.toInt(), 44.dp.toInt())
67
- return
68
- }
69
-
70
- textPaint.textSize = 12.sp
71
- val metrics = currentMetrics
72
- val deviceInfo = metrics?.deviceInfo
73
- val lines = listOf(
74
- "${deviceInfo?.deviceName ?: "Device"} [${deviceInfo?.resolution ?: "0x0"}]",
75
- "${String.format("%.1f", deviceInfo?.density ?: 1f)}x ${deviceInfo?.refreshRate?.toInt() ?: 60}Hz",
76
- "Pre: 99.99ms [99.99 99.99]",
77
- "GPU: 99.99ms [99.99 99.99]",
78
- "Mem: 999.9MB",
79
- "FPS: 99.99 [99.99 99.99]",
80
- )
81
- val desiredWidth = max(220.dp, lines.maxOf { textPaint.measureText(it) } + 16.dp).toInt()
82
- val desiredHeight = 156.dp.toInt()
83
-
84
- setMeasuredDimension(
85
- resolveSize(desiredWidth, widthMeasureSpec),
86
- resolveSize(desiredHeight, heightMeasureSpec),
87
- )
88
- }
89
-
90
- override fun onDraw(canvas: Canvas) {
91
- super.onDraw(canvas)
92
- canvas.drawRoundRect(RectF(0f, 0f, width.toFloat(), height.toFloat()), 8.dp, 8.dp, backgroundPaint)
93
-
94
- if (collapsed) {
95
- drawCollapsed(canvas)
96
- } else {
97
- drawExpanded(canvas)
98
- }
99
- }
100
-
101
- private fun drawCollapsed(canvas: Canvas) {
102
- val fpsText = String.format("%.0f", currentMetrics?.fps ?: 0f)
103
- textPaint.color = Color.WHITE
104
- textPaint.textSize = 18.sp
105
- val bounds = Rect()
106
- textPaint.getTextBounds(fpsText, 0, fpsText.length, bounds)
107
- canvas.drawText(
108
- fpsText,
109
- (width - bounds.width()) / 2f,
110
- (height + bounds.height()) / 2f,
111
- textPaint,
112
- )
113
- }
114
-
115
- private fun drawExpanded(canvas: Canvas) {
116
- val metrics = currentMetrics
117
- val margin = 8.dp
118
- var y = margin + 12.sp
119
-
120
- textPaint.textSize = 12.sp
121
- textPaint.color = Color.WHITE
122
-
123
- val deviceInfo = metrics?.deviceInfo
124
- drawSplit(canvas, deviceInfo?.deviceName ?: "Device", "[${deviceInfo?.resolution ?: "0x0"}]", y, Color.WHITE)
125
- y += 15.sp
126
- drawSplit(
127
- canvas,
128
- "${String.format("%.1f", deviceInfo?.density ?: 1f)}x",
129
- "${deviceInfo?.refreshRate?.toInt() ?: 60}Hz",
130
- y,
131
- Color.WHITE,
132
- )
133
- y += 18.sp
134
-
135
- val cpuMinMax = minMax(cpuTimeValues, metrics?.estCPUTimePerFrameMs ?: 0f)
136
- val gpuMinMax = minMax(gpuTimeValues, metrics?.estGPUTimePerFrameMs ?: 0f)
137
- val fpsMinMax = minMax(fpsValues, metrics?.fps ?: 0f)
138
-
139
- drawSplit(
140
- canvas,
141
- "Pre: ${String.format("%.2f", metrics?.estCPUTimePerFrameMs ?: 0f)}ms",
142
- "[${String.format("%.2f", cpuMinMax.first)} ${String.format("%.2f", cpuMinMax.second)}]",
143
- y,
144
- cpuColor,
145
- )
146
- y += 15.sp
147
-
148
- drawSplit(
149
- canvas,
150
- "GPU: ${String.format("%.2f", metrics?.estGPUTimePerFrameMs ?: 0f)}ms",
151
- "[${String.format("%.2f", gpuMinMax.first)} ${String.format("%.2f", gpuMinMax.second)}]",
152
- y,
153
- gpuColor,
154
- )
155
- y += 15.sp
156
-
157
- drawText(canvas, "Mem: ${String.format("%.1f", metrics?.appMemoryMB ?: 0f)}MB", margin, y, memColor)
158
- y += 15.sp
159
-
160
- drawSplit(
161
- canvas,
162
- "FPS: ${String.format("%.2f", metrics?.fps ?: 0f)}",
163
- "[${String.format("%.2f", fpsMinMax.first)} ${String.format("%.2f", fpsMinMax.second)}]",
164
- y,
165
- fpsColor,
166
- )
167
- y += 17.sp
168
-
169
- val graphHeight = height - y - margin
170
- if (graphHeight > 24.dp) {
171
- drawGraph(canvas, margin, y, width - margin * 2, graphHeight)
172
- }
173
- }
174
-
175
- private fun drawSplit(canvas: Canvas, left: String, right: String, y: Float, color: Int) {
176
- val margin = 8.dp
177
- drawText(canvas, left, margin, y, color)
178
- textPaint.color = color
179
- canvas.drawText(right, width - margin - textPaint.measureText(right), y, textPaint)
180
- }
181
-
182
- private fun drawText(canvas: Canvas, text: String, x: Float, y: Float, color: Int) {
183
- textPaint.color = color
184
- canvas.drawText(text, x, y, textPaint)
185
- }
186
-
187
- private fun drawGraph(canvas: Canvas, x: Float, y: Float, graphWidth: Float, graphHeight: Float) {
188
- canvas.drawRect(x, y, x + graphWidth, y + graphHeight, gridPaint)
189
- for (index in 1..3) {
190
- val gridY = y + index * (graphHeight / 4f)
191
- canvas.drawLine(x + 2.dp, gridY, x + graphWidth - 2.dp, gridY, gridPaint)
192
- }
193
-
194
- var gridX = x + 16.dp
195
- while (gridX < x + graphWidth) {
196
- canvas.drawLine(gridX, y, gridX, y + graphHeight, gridPaint)
197
- gridX += 16.dp
198
- }
199
-
200
- linePaint.color = fpsColor
201
- drawDataLine(canvas, fpsValues, x, y, graphWidth, graphHeight, 60f)
202
- linePaint.color = cpuColor
203
- drawDataLine(canvas, cpuTimeValues, x, y, graphWidth, graphHeight, 50f)
204
- }
205
-
206
- private fun drawDataLine(
207
- canvas: Canvas,
208
- values: List<Float>,
209
- x: Float,
210
- y: Float,
211
- graphWidth: Float,
212
- graphHeight: Float,
213
- maxScale: Float,
214
- ) {
215
- if (values.size < 2) return
216
- val visibleValues = values.takeLast(max((graphWidth / 2.dp).toInt(), 2))
217
- val step = (graphWidth - 4.dp) / (visibleValues.size - 1).coerceAtLeast(1)
218
- var previousX = x + 2.dp
219
- var previousY = y + graphHeight * (1f - visibleValues.first().coerceIn(0f, maxScale) / maxScale)
220
-
221
- visibleValues.drop(1).forEachIndexed { index, value ->
222
- val pointX = x + 2.dp + (index + 1) * step
223
- val pointY = y + graphHeight * (1f - min(max(value / maxScale, 0f), 1f))
224
- canvas.drawLine(previousX, previousY, pointX, pointY, linePaint)
225
- previousX = pointX
226
- previousY = pointY
227
- }
228
- }
229
-
230
- private fun append(values: MutableList<Float>, value: Float) {
231
- if (values.size >= maxPoints) values.removeAt(0)
232
- values.add(value)
233
- }
234
-
235
- private fun minMax(values: List<Float>, fallback: Float): Pair<Float, Float> {
236
- return Pair(values.minOrNull() ?: fallback, values.maxOrNull() ?: fallback)
237
- }
238
-
239
- private val Int.dp: Float
240
- get() = toFloat().dp
241
-
242
- private val Float.dp: Float
243
- get() = this * density
244
-
245
- private val Int.sp: Float
246
- get() = toFloat().sp
247
-
248
- private val Float.sp: Float
249
- get() = this * scaledDensity
250
- }