@momo-kits/native-kits 0.158.1-beta.2-debug → 0.158.1-beta.3-debug

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 (26) hide show
  1. package/compose/build.gradle.kts +1 -1
  2. package/compose/src/commonMain/kotlin/vn/momo/kits/components/IconButton.kt +4 -1
  3. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/BottomSheet.kt +1 -15
  4. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/ModalScreen.kt +1 -15
  5. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigation.kt +0 -1
  6. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/NavigationContainer.kt +1 -4
  7. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/Navigator.kt +9 -11
  8. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/StackScreen.kt +1 -56
  9. package/gradle.properties +1 -1
  10. package/package.json +1 -1
  11. package/compose/src/commonMain/kotlin/vn/momo/kits/navigation/tracking/ScreenTracker.kt +0 -167
  12. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Example.xcscheme +0 -32
  13. package/example/ios/Example.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
  14. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  15. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/WorkspaceSettings.xcsettings +0 -16
  16. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +0 -6
  17. package/example/ios/Example.xcworkspace/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -5
  18. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/MoMoUIKits.xcscheme +0 -58
  19. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/Pods-Example.xcscheme +0 -58
  20. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImage.xcscheme +0 -58
  21. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SDWebImageSwiftUI.xcscheme +0 -58
  22. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/SkeletonUI.xcscheme +0 -58
  23. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios-LottiePrivacyInfo.xcscheme +0 -58
  24. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/lottie-ios.xcscheme +0 -58
  25. package/example/ios/Pods/Pods.xcodeproj/xcuserdata/sonnguyen.xcuserdatad/xcschemes/xcschememanagement.plist +0 -60
  26. package/local.properties +0 -8
@@ -40,7 +40,7 @@ kotlin {
40
40
  }
41
41
 
42
42
  cocoapods {
43
- version = "0.158.1-beta.2-debug"
43
+ version = "0.158.1-beta.3-debug"
44
44
  summary = "IOS Shared module"
45
45
  homepage = "https://momo.vn"
46
46
  ios.deploymentTarget = "15.0"
@@ -19,6 +19,7 @@ import vn.momo.kits.const.AppTheme
19
19
  import vn.momo.kits.const.Colors
20
20
  import vn.momo.kits.const.Radius
21
21
  import vn.momo.kits.modifier.conditional
22
+ import vn.momo.kits.modifier.setAutomationId
22
23
 
23
24
  data class IconSpecs(
24
25
  val width: Dp,
@@ -112,6 +113,7 @@ fun IconButton(
112
113
  type: ButtonType = ButtonType.PRIMARY,
113
114
  size: IconSize = IconSize.SMALL,
114
115
  icon: String = "",
116
+ accessibilityId: String? = null
115
117
  ) {
116
118
  // Memoize icon size calculation
117
119
  val iconSize = remember(size) {
@@ -136,7 +138,8 @@ fun IconButton(
136
138
  border(1.dp, Colors.blue_03)
137
139
  }
138
140
  .clip(RoundedCornerShape(radius))
139
- .clickable(enabled = isEnabled, onClick = onClick),
141
+ .clickable(enabled = isEnabled, onClick = onClick)
142
+ .setAutomationId(accessibilityId ?: "icon_button"),
140
143
  contentAlignment = Alignment.Center
141
144
  ) {
142
145
  Icon(
@@ -41,10 +41,8 @@ import vn.momo.kits.const.AppTheme
41
41
  import vn.momo.kits.const.Colors
42
42
  import vn.momo.kits.const.Radius
43
43
  import vn.momo.kits.const.Spacing
44
- import vn.momo.kits.application.ApplicationContext
45
44
  import vn.momo.kits.application.IsShowBaseLineDebug
46
45
  import vn.momo.kits.const.Typography
47
- import vn.momo.kits.navigation.tracking.ScreenTracker
48
46
  import vn.momo.kits.modifier.conditional
49
47
  import vn.momo.kits.modifier.noFeedbackClickable
50
48
  import vn.momo.kits.platform.BackHandler
@@ -72,18 +70,6 @@ internal fun BottomSheet(
72
70
 
73
71
  val coroutineScope = rememberCoroutineScope()
74
72
 
75
- val maxApi = LocalMaxApi.current
76
- val context = ApplicationContext.current
77
-
78
- DisposableEffect(Unit) {
79
- ScreenTracker.trackPopupDisplayed(
80
- maxApi = maxApi,
81
- context = context,
82
- parentScreenName = ScreenTracker.getLastScreenName()
83
- )
84
- onDispose { }
85
- }
86
-
87
73
  suspend fun openEvent(){
88
74
  backgroundAlpha.animateTo(
89
75
  targetValue = 0.3f,
@@ -250,4 +236,4 @@ sealed class BottomHeader {
250
236
  data class Custom(
251
237
  val content: @Composable () -> Unit
252
238
  ) : BottomHeader()
253
- }
239
+ }
@@ -22,12 +22,10 @@ import androidx.compose.ui.draw.scale
22
22
  import androidx.compose.ui.graphics.Color
23
23
  import androidx.compose.ui.unit.dp
24
24
  import kotlinx.coroutines.launch
25
- import vn.momo.kits.application.ApplicationContext
26
25
  import vn.momo.kits.application.IsShowBaseLineDebug
27
26
  import vn.momo.kits.const.Colors
28
27
  import vn.momo.kits.modifier.conditional
29
28
  import vn.momo.kits.modifier.noFeedbackClickable
30
- import vn.momo.kits.navigation.tracking.ScreenTracker
31
29
  import vn.momo.kits.platform.BackHandler
32
30
 
33
31
  @Composable
@@ -43,18 +41,6 @@ internal fun ModalScreen(
43
41
 
44
42
  val coroutineScope = rememberCoroutineScope()
45
43
 
46
- val maxApi = LocalMaxApi.current
47
- val context = ApplicationContext.current
48
-
49
- DisposableEffect(Unit) {
50
- ScreenTracker.trackPopupDisplayed(
51
- maxApi = maxApi,
52
- context = context,
53
- parentScreenName = ScreenTracker.getLastScreenName()
54
- )
55
- onDispose { }
56
- }
57
-
58
44
  fun openEvent() {
59
45
  coroutineScope.launch {
60
46
  launch {
@@ -130,4 +116,4 @@ internal fun ModalScreen(
130
116
  content()
131
117
  }
132
118
  }
133
- }
119
+ }
@@ -72,7 +72,6 @@ val LocalNavigation = staticCompositionLocalOf<Navigation> {
72
72
 
73
73
  @Stable
74
74
  data class NavigationOptions(
75
- val screenName: String? = null,
76
75
  val onBackHandler: (() -> Unit)? = null,
77
76
  val hiddenBack: Boolean = false,
78
77
  val headerBackProps: HeaderBackProps = HeaderBackProps(),
@@ -38,7 +38,6 @@ import vn.momo.maxapi.IMaxApi
38
38
 
39
39
  @Composable
40
40
  fun NavigationContainer(
41
- initialScreenName: String,
42
41
  initialScreen: @Composable () -> Unit,
43
42
  options: NavigationOptions? = null,
44
43
  initialTheme: Theme = defaultTheme,
@@ -74,7 +73,7 @@ fun NavigationContainer(
74
73
  }
75
74
  }
76
75
 
77
- val startDestination = DynamicScreenRegistry.register(initialScreenName, initialScreen, options)
76
+ val startDestination = DynamicScreenRegistry.register(initialScreen, options)
78
77
 
79
78
  CompositionLocalProvider(
80
79
  LocalNavigator provides navigator,
@@ -113,7 +112,6 @@ fun NavigationContainer(
113
112
  if (screen != null){
114
113
  StackScreen(
115
114
  id = route.id,
116
- name = screen.name,
117
115
  content = screen.content,
118
116
  navigationOptions = screen.options
119
117
  )
@@ -142,7 +140,6 @@ fun NavigationContainer(
142
140
  if (screen != null){
143
141
  StackScreen(
144
142
  id = route.id,
145
- name = screen.name,
146
143
  content = screen.content,
147
144
  navigationOptions = screen.options
148
145
  )
@@ -28,17 +28,17 @@ class Navigator(
28
28
  ) {
29
29
  private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Main)
30
30
 
31
- fun push(screenName: String, content: @Composable () -> Unit, options: NavigationOptions? = null) {
32
- val route = DynamicScreenRegistry.register(screenName, content, options)
31
+ fun push(content: @Composable () -> Unit, options: NavigationOptions? = null) {
32
+ val route = DynamicScreenRegistry.register(content, options)
33
33
  navController.navigate(DynamicScreenRoute(route.id))
34
34
  }
35
35
 
36
- fun replace(screenName: String, content: @Composable () -> Unit, options: NavigationOptions? = null) {
36
+ fun replace(content: @Composable () -> Unit, options: NavigationOptions? = null) {
37
37
  if (navController.previousBackStackEntry != null){
38
38
  val latestScreen = DynamicScreenRegistry.getLatestScreen()
39
39
  latestScreen?.let { DynamicScreenRegistry.unregisterScreen(it.id) }
40
40
  navController.popBackStack()
41
- push(screenName, content, options)
41
+ push(content, options)
42
42
  }
43
43
  }
44
44
 
@@ -103,15 +103,15 @@ class Navigator(
103
103
  }
104
104
  }
105
105
 
106
- fun present(screenName: String, content: @Composable () -> Unit, options: NavigationOptions? = null) {
107
- val route = DynamicScreenRegistry.register(screenName, content, options)
106
+ fun present(content: @Composable () -> Unit, options: NavigationOptions? = null) {
107
+ val route = DynamicScreenRegistry.register(content, options)
108
108
  navController.navigate(DynamicDialogRoute(route.id))
109
109
  }
110
110
 
111
- fun reset(screenName: String, content: @Composable () -> Unit, options: NavigationOptions? = null) {
111
+ fun reset(content: @Composable () -> Unit, options: NavigationOptions? = null) {
112
112
  DynamicScreenRegistry.unregisterAll()
113
113
 
114
- val route = DynamicScreenRegistry.register(screenName, content, options)
114
+ val route = DynamicScreenRegistry.register(content, options)
115
115
  navController.navigate(DynamicScreenRoute(route.id)) {
116
116
  popUpTo(0) { inclusive = true }
117
117
  }
@@ -176,7 +176,6 @@ data class DynamicDialogRoute(val id: Int)
176
176
 
177
177
  data class DynamicScreen(
178
178
  val id: Int,
179
- val name: String,
180
179
  val content: @Composable () -> Unit,
181
180
  var options: NavigationOptions? = null
182
181
  )
@@ -185,11 +184,10 @@ object DynamicScreenRegistry {
185
184
  private val screens = mutableMapOf<Int, DynamicScreen>()
186
185
  private var idCounter = 1
187
186
 
188
- fun register(screenName: String, content: @Composable () -> Unit, options: NavigationOptions?): DynamicScreenRoute {
187
+ fun register(content: @Composable () -> Unit, options: NavigationOptions?): DynamicScreenRoute {
189
188
  val id = idCounter++
190
189
  screens[id] = DynamicScreen(
191
190
  id = id,
192
- name = screenName,
193
191
  content = content,
194
192
  options = options
195
193
  )
@@ -63,81 +63,26 @@ import vn.momo.kits.navigation.component.HeaderType
63
63
  import vn.momo.kits.navigation.component.InputSearchType
64
64
  import vn.momo.kits.platform.BackHandler
65
65
  import vn.momo.kits.platform.getAndroidBuildVersion
66
- import vn.momo.kits.navigation.tracking.ScreenTracker
67
- import vn.momo.kits.navigation.tracking.ScreenTrackingState
68
- import kotlinx.coroutines.delay
69
- import vn.momo.kits.application.ApplicationContext
70
- import kotlin.time.Clock
71
- import kotlin.time.ExperimentalTime
72
66
 
73
67
  internal val LocalFooterHeightPx = staticCompositionLocalOf { mutableIntStateOf(0) }
74
68
  internal val LocalHeaderRightWidthPx = staticCompositionLocalOf { mutableIntStateOf(0) }
75
69
 
76
- @OptIn(ExperimentalMaterialApi::class, ExperimentalTime::class)
70
+ @OptIn(ExperimentalMaterialApi::class)
77
71
  @Composable
78
72
  internal fun StackScreen(
79
73
  content: @Composable () -> Unit,
80
74
  navigationOptions: NavigationOptions? = null,
81
75
  id: Int = -1,
82
- name: String = "",
83
76
  bottomTabIndex: Int = -1,
84
77
  onBackHandler: (() -> Unit)? = null,
85
78
  ) {
86
79
  val navigator = LocalNavigator.current
87
- val maxApi = LocalMaxApi.current
88
- val context = ApplicationContext.current
89
80
  val statusBar = AppStatusBar.current
90
81
  val density = LocalDensity.current
91
82
  val navigation = remember { Navigation(id = id, bottomTabIndex = bottomTabIndex, initOptions = navigationOptions) }
92
83
 
93
84
  val options by navigation.currentOptions
94
85
 
95
- // Auto tracking state
96
- val trackingState = remember {
97
- ScreenTrackingState().apply {
98
- startTime = Clock.System.now().toEpochMilliseconds()
99
- }
100
- }
101
-
102
- // Determine action: push or back
103
- val action = remember {
104
- if (ScreenTracker.getLastScreenName() != null) "push" else "back"
105
- }
106
-
107
- // Auto tracking effects
108
- LaunchedEffect(name) {
109
- // Track screen navigated immediately
110
- ScreenTracker.trackScreenNavigated(
111
- maxApi = maxApi,
112
- context = context,
113
- screenName = name,
114
- action = action,
115
- state = trackingState
116
- )
117
-
118
- // Track screen displayed after 2 seconds (debounce)
119
- delay(2000)
120
- val loadTime = Clock.System.now().toEpochMilliseconds() - trackingState.startTime
121
- ScreenTracker.trackScreenDisplayed(
122
- maxApi = maxApi,
123
- context = context,
124
- screenName = name,
125
- duration = loadTime,
126
- state = trackingState
127
- )
128
-
129
- // Track screen interacted after displayed
130
- val interactionTime = Clock.System.now().toEpochMilliseconds() - trackingState.startTime
131
- ScreenTracker.trackScreenInteracted(
132
- maxApi = maxApi,
133
- context = context,
134
- screenName = name,
135
- duration = interactionTime - loadTime,
136
- totalDuration = interactionTime,
137
- state = trackingState
138
- )
139
- }
140
-
141
86
  val limit = with(density) {
142
87
  (statusBar).toPx() + HEADER_HEIGHT
143
88
  }.toInt()
package/gradle.properties CHANGED
@@ -18,7 +18,7 @@ kotlin.apple.xcodeCompatibility.nowarn=true
18
18
  name="ComposeKits"
19
19
  group=vn.momo.kits
20
20
  artifact.id=kits
21
- version=0.158.1-beta.2
21
+ version=0.157.1-beta.3
22
22
 
23
23
  repo=GitLab
24
24
  url=https://gitlab.mservice.com.vn/api/v4/projects/5400/packages/maven
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@momo-kits/native-kits",
3
- "version": "0.158.1-beta.2-debug",
3
+ "version": "0.158.1-beta.3-debug",
4
4
  "private": false,
5
5
  "dependencies": {},
6
6
  "devDependencies": {},
@@ -1,167 +0,0 @@
1
- package vn.momo.kits.navigation.tracking
2
-
3
- import vn.momo.kits.application.MiniAppContext
4
- import vn.momo.maxapi.IMaxApi
5
- import kotlin.time.Clock
6
- import kotlin.time.ExperimentalTime
7
-
8
- /**
9
- * Screen tracking state holder
10
- */
11
- class ScreenTrackingState {
12
- @OptIn(ExperimentalTime::class)
13
- var startTime: Long = Clock.System.now().toEpochMilliseconds()
14
- var endTime: Long = startTime
15
- var releaseNavigated: Boolean = false
16
- var releaseLoad: Boolean = false
17
- var releaseInteraction: Boolean = false
18
- var previousScreenName: String? = null
19
- var action: String = "push"
20
- }
21
-
22
- /**
23
- * Screen tracker for auto tracking events
24
- *
25
- * Tracks 3 main events:
26
- * - auto_screen_navigated: When screen is focused
27
- * - auto_screen_displayed: When screen finished loading
28
- * - auto_screen_interacted: When screen is ready for interaction
29
- */
30
- object ScreenTracker {
31
-
32
- private var lastScreenName: String? = null
33
-
34
- /**
35
- * Track screen navigation event
36
- * Called when screen is focused
37
- */
38
- fun trackScreenNavigated(
39
- maxApi: IMaxApi?,
40
- context: MiniAppContext?,
41
- screenName: String,
42
- action: String,
43
- state: ScreenTrackingState
44
- ) {
45
- if (state.releaseNavigated) return
46
-
47
- val previousScreen = lastScreenName
48
- lastScreenName = screenName
49
-
50
- println("Tracking screen navigated native kit: $screenName")
51
- maxApi?.track(
52
- eventName = "auto_screen_navigated",
53
- params = buildBaseParams(context, screenName).apply {
54
- put("pre_screen_name", previousScreen)
55
- put("state", "navigated")
56
- put("action", action)
57
- }
58
- )
59
-
60
- state.releaseNavigated = true
61
- state.previousScreenName = previousScreen
62
- }
63
-
64
- /**
65
- * Track screen displayed event
66
- * Called when screen finished loading all elements
67
- */
68
- fun trackScreenDisplayed(
69
- maxApi: IMaxApi?,
70
- context: MiniAppContext?,
71
- screenName: String,
72
- duration: Long,
73
- state: ScreenTrackingState
74
- ) {
75
- if (state.releaseLoad) return
76
-
77
- maxApi?.track(
78
- eventName = "auto_screen_displayed",
79
- params = buildBaseParams(context, screenName).apply {
80
- put("state", "load")
81
- put("duration", duration)
82
- }
83
- )
84
-
85
- state.releaseLoad = true
86
- }
87
-
88
- /**
89
- * Track screen interacted event
90
- * Called when screen is ready for user interaction
91
- */
92
- fun trackScreenInteracted(
93
- maxApi: IMaxApi?,
94
- context: MiniAppContext?,
95
- screenName: String,
96
- duration: Long,
97
- totalDuration: Long,
98
- state: ScreenTrackingState
99
- ) {
100
- if (state.releaseInteraction) return
101
-
102
- maxApi?.track(
103
- eventName = "auto_screen_interacted",
104
- params = buildBaseParams(context, screenName).apply {
105
- put("state", "interaction")
106
- put("duration", duration)
107
- put("total_duration", totalDuration)
108
- }
109
- )
110
-
111
- state.releaseInteraction = true
112
- }
113
-
114
- /**
115
- * Build base tracking params from MiniAppContext
116
- */
117
- private fun buildBaseParams(
118
- context: MiniAppContext?,
119
- screenName: String,
120
- componentName: String = "Screen"
121
- ): MutableMap<String, Any?> {
122
- return mutableMapOf(
123
- "app_id" to context?.appId,
124
- "feature_code" to context?.appCode,
125
- "screen_name" to screenName,
126
- "component_name" to componentName,
127
- "tracking_source" to 1
128
- )
129
- }
130
-
131
- /**
132
- * Track popup/modal displayed event
133
- *
134
- * @param popupName name of the popup/modal
135
- * @param parentScreenName the screen that shows the popup
136
- */
137
- fun trackPopupDisplayed(
138
- maxApi: IMaxApi?,
139
- context: MiniAppContext?,
140
- parentScreenName: String?
141
- ) {
142
- maxApi?.track(
143
- eventName = "auto_popup_displayed",
144
- params = mutableMapOf<String, Any?>(
145
- "screen_name" to parentScreenName,
146
- "tracking_source" to 1,
147
- "app_id" to context?.appId,
148
- "feature_code" to context?.appCode,
149
- "kits_version" to null,
150
- "component_name" to "Modal"
151
- )
152
- )
153
- }
154
-
155
- /**
156
- * Get previous screen name for back navigation detection
157
- */
158
- fun getLastScreenName(): String? = lastScreenName
159
-
160
- /**
161
- * Reset tracker (for testing or cleanup)
162
- */
163
- @Suppress("UNUSED")
164
- fun reset() {
165
- lastScreenName = null
166
- }
167
- }
@@ -1,32 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- version = "1.3">
4
- <BuildAction>
5
- <BuildActionEntries>
6
- <BuildActionEntry
7
- buildForRunning = "YES">
8
- <BuildableReference
9
- BuildableIdentifier = "primary"
10
- BlueprintIdentifier = "A6A920D22B2ADD1E00C1A11F"
11
- BuildableName = "Example"
12
- BlueprintName = "Example"
13
- ReferencedContainer = "container:Example.xcodeproj">
14
- </BuildableReference>
15
- </BuildActionEntry>
16
- </BuildActionEntries>
17
- </BuildAction>
18
- <LaunchAction
19
- useCustomWorkingDirectory = "NO"
20
- buildConfiguration = "Debug"
21
- allowLocationSimulation = "YES">
22
- <BuildableProductRunnable>
23
- <BuildableReference
24
- BuildableIdentifier = "primary"
25
- BlueprintIdentifier = "A6A920D22B2ADD1E00C1A11F"
26
- BuildableName = "Example"
27
- BlueprintName = "Example"
28
- ReferencedContainer = "container:Example.xcodeproj">
29
- </BuildableReference>
30
- </BuildableProductRunnable>
31
- </LaunchAction>
32
- </Scheme>
@@ -1,14 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>Example.xcscheme</key>
8
- <dict>
9
- <key>orderHint</key>
10
- <integer>7</integer>
11
- </dict>
12
- </dict>
13
- </dict>
14
- </plist>
@@ -1,16 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>BuildLocationStyle</key>
6
- <string>UseAppPreferences</string>
7
- <key>CustomBuildLocationType</key>
8
- <string>RelativeToDerivedData</string>
9
- <key>DerivedDataCustomLocation</key>
10
- <string>DerivedData</string>
11
- <key>DerivedDataLocationStyle</key>
12
- <string>WorkspaceRelativePath</string>
13
- <key>ShowSharedSchemesAutomaticallyEnabled</key>
14
- <true/>
15
- </dict>
16
- </plist>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Bucket
3
- uuid = "6B3C387A-E951-41D1-A42C-FB6E447A46BA"
4
- type = "0"
5
- version = "2.0">
6
- </Bucket>
@@ -1,5 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict />
5
- </plist>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "3B6FB503A75BF5BC1FA6F30BC06B9D28"
18
- BuildableName = "MoMoUIKits.framework"
19
- BlueprintName = "MoMoUIKits"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "0AEE99A309977BD12A049FF48AF9BA4B"
18
- BuildableName = "Pods_Example.framework"
19
- BlueprintName = "Pods-Example"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "3847153A6E5EEFB86565BA840768F429"
18
- BuildableName = "SDWebImage.framework"
19
- BlueprintName = "SDWebImage"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "92EBFA3E7005B4C18A9C0B44324EB80F"
18
- BuildableName = "SDWebImageSwiftUI.framework"
19
- BlueprintName = "SDWebImageSwiftUI"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "6510766A9670BFA3B251E2A62446FC5D"
18
- BuildableName = "SkeletonUI.framework"
19
- BlueprintName = "SkeletonUI"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "BF2A15FEC3F3424BBC4B9AD5F86F2D54"
18
- BuildableName = "LottiePrivacyInfo.bundle"
19
- BlueprintName = "lottie-ios-LottiePrivacyInfo"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,58 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <Scheme
3
- LastUpgradeVersion = "1600"
4
- version = "1.3">
5
- <BuildAction
6
- parallelizeBuildables = "YES"
7
- buildImplicitDependencies = "YES">
8
- <BuildActionEntries>
9
- <BuildActionEntry
10
- buildForTesting = "YES"
11
- buildForRunning = "YES"
12
- buildForProfiling = "YES"
13
- buildForArchiving = "YES"
14
- buildForAnalyzing = "YES">
15
- <BuildableReference
16
- BuildableIdentifier = "primary"
17
- BlueprintIdentifier = "0B967D7F8561D42493EE289EC8D450D1"
18
- BuildableName = "Lottie.framework"
19
- BlueprintName = "lottie-ios"
20
- ReferencedContainer = "container:Pods.xcodeproj">
21
- </BuildableReference>
22
- </BuildActionEntry>
23
- </BuildActionEntries>
24
- </BuildAction>
25
- <TestAction
26
- buildConfiguration = "Debug"
27
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
- shouldUseLaunchSchemeArgsEnv = "YES">
30
- <Testables>
31
- </Testables>
32
- </TestAction>
33
- <LaunchAction
34
- buildConfiguration = "Debug"
35
- selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
36
- selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
37
- launchStyle = "0"
38
- useCustomWorkingDirectory = "NO"
39
- ignoresPersistentStateOnLaunch = "NO"
40
- debugDocumentVersioning = "YES"
41
- debugServiceExtension = "internal"
42
- allowLocationSimulation = "YES">
43
- </LaunchAction>
44
- <ProfileAction
45
- buildConfiguration = "Release"
46
- shouldUseLaunchSchemeArgsEnv = "YES"
47
- savedToolIdentifier = ""
48
- useCustomWorkingDirectory = "NO"
49
- debugDocumentVersioning = "YES">
50
- </ProfileAction>
51
- <AnalyzeAction
52
- buildConfiguration = "Debug">
53
- </AnalyzeAction>
54
- <ArchiveAction
55
- buildConfiguration = "Release"
56
- revealArchiveInOrganizer = "YES">
57
- </ArchiveAction>
58
- </Scheme>
@@ -1,60 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>SchemeUserState</key>
6
- <dict>
7
- <key>MoMoUIKits.xcscheme</key>
8
- <dict>
9
- <key>isShown</key>
10
- <false />
11
- <key>orderHint</key>
12
- <integer>0</integer>
13
- </dict>
14
- <key>Pods-Example.xcscheme</key>
15
- <dict>
16
- <key>isShown</key>
17
- <false />
18
- <key>orderHint</key>
19
- <integer>1</integer>
20
- </dict>
21
- <key>SDWebImage.xcscheme</key>
22
- <dict>
23
- <key>isShown</key>
24
- <false />
25
- <key>orderHint</key>
26
- <integer>2</integer>
27
- </dict>
28
- <key>SDWebImageSwiftUI.xcscheme</key>
29
- <dict>
30
- <key>isShown</key>
31
- <false />
32
- <key>orderHint</key>
33
- <integer>3</integer>
34
- </dict>
35
- <key>SkeletonUI.xcscheme</key>
36
- <dict>
37
- <key>isShown</key>
38
- <false />
39
- <key>orderHint</key>
40
- <integer>4</integer>
41
- </dict>
42
- <key>lottie-ios-LottiePrivacyInfo.xcscheme</key>
43
- <dict>
44
- <key>isShown</key>
45
- <false />
46
- <key>orderHint</key>
47
- <integer>5</integer>
48
- </dict>
49
- <key>lottie-ios.xcscheme</key>
50
- <dict>
51
- <key>isShown</key>
52
- <false />
53
- <key>orderHint</key>
54
- <integer>6</integer>
55
- </dict>
56
- </dict>
57
- <key>SuppressBuildableAutocreation</key>
58
- <dict />
59
- </dict>
60
- </plist>
package/local.properties DELETED
@@ -1,8 +0,0 @@
1
- ## This file must *NOT* be checked into Version Control Systems,
2
- # as it contains information specific to your local configuration.
3
- #
4
- # Location of the SDK. This is only used by Gradle.
5
- # For customization when using a Version Control System, please read the
6
- # header note.
7
- #Tue Apr 08 11:13:31 ICT 2025
8
- sdk.dir=/Users/sonnguyen/Library/Android/sdk