Updated on 2026-08-14
This commit is contained in:
parent
e15e633ee1
commit
5dba95e1ca
228 changed files with 338 additions and 37 deletions
|
|
@ -25,5 +25,4 @@ data class ApprovePermissionButton(
|
|||
|
||||
data class CancelPermissionButton(
|
||||
val enabled: Boolean,
|
||||
val onClick: () -> Unit,
|
||||
)
|
||||
|
|
@ -4,7 +4,6 @@ import android.os.Bundle
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.compose.animation.Crossfade
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.ComposeView
|
||||
|
|
@ -12,8 +11,8 @@ import androidx.core.view.WindowCompat
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.tangem.feature.swap.router.CustomTabsManager
|
||||
import com.tangem.feature.swap.router.SwapNavScreen
|
||||
import com.tangem.feature.swap.router.SwapRouter
|
||||
import com.tangem.feature.swap.router.SwapScreen
|
||||
import com.tangem.feature.swap.ui.SwapScreen
|
||||
import com.tangem.feature.swap.ui.SwapSelectTokenScreen
|
||||
import com.tangem.feature.swap.ui.SwapSuccessScreen
|
||||
|
|
@ -36,15 +35,6 @@ class SwapFragment : Fragment() {
|
|||
)
|
||||
viewModel.onScreenOpened()
|
||||
|
||||
activity?.onBackPressedDispatcher?.addCallback(
|
||||
viewLifecycleOwner,
|
||||
object : OnBackPressedCallback(true) {
|
||||
override fun handleOnBackPressed() {
|
||||
viewModel.uiState.onBackClicked()
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
return ComposeView(inflater.context).apply {
|
||||
setContent {
|
||||
ScreenContent(viewModel = viewModel)
|
||||
|
|
@ -57,8 +47,8 @@ class SwapFragment : Fragment() {
|
|||
private fun ScreenContent(viewModel: SwapViewModel) {
|
||||
Crossfade(targetState = viewModel.currentScreen) { screen ->
|
||||
when (screen) {
|
||||
SwapScreen.Main -> SwapScreen(stateHolder = viewModel.uiState)
|
||||
SwapScreen.Success -> {
|
||||
SwapNavScreen.Main -> SwapScreen(stateHolder = viewModel.uiState)
|
||||
SwapNavScreen.Success -> {
|
||||
val successState = viewModel.uiState.successState
|
||||
if (successState != null) {
|
||||
SwapSuccessScreen(state = successState, viewModel.uiState.onBackClicked)
|
||||
|
|
@ -66,7 +56,7 @@ class SwapFragment : Fragment() {
|
|||
SwapScreen(stateHolder = viewModel.uiState)
|
||||
}
|
||||
}
|
||||
SwapScreen.SelectToken -> {
|
||||
SwapNavScreen.SelectToken -> {
|
||||
val tokenState = viewModel.uiState.selectTokenState
|
||||
if (tokenState != null) {
|
||||
SwapSelectTokenScreen(
|
||||
|
|
|
|||
|
|
@ -11,16 +11,16 @@ internal class SwapRouter(
|
|||
private val customTabsManager: CustomTabsManager,
|
||||
) {
|
||||
|
||||
var currentScreen by mutableStateOf(SwapScreen.Main)
|
||||
var currentScreen by mutableStateOf(SwapNavScreen.Main)
|
||||
private set
|
||||
|
||||
fun openScreen(screen: SwapScreen) {
|
||||
fun openScreen(screen: SwapNavScreen) {
|
||||
currentScreen = screen
|
||||
}
|
||||
|
||||
fun back() {
|
||||
if (currentScreen == SwapScreen.SelectToken) {
|
||||
currentScreen = SwapScreen.Main
|
||||
if (currentScreen == SwapNavScreen.SelectToken) {
|
||||
currentScreen = SwapNavScreen.Main
|
||||
} else {
|
||||
fragmentManager.get()?.popBackStack()
|
||||
}
|
||||
|
|
@ -31,6 +31,6 @@ internal class SwapRouter(
|
|||
}
|
||||
}
|
||||
|
||||
enum class SwapScreen {
|
||||
enum class SwapNavScreen {
|
||||
Main, Success, SelectToken
|
||||
}
|
||||
|
|
@ -241,7 +241,6 @@ internal class StateBuilder(val actions: UiActions) {
|
|||
),
|
||||
cancelButton = CancelPermissionButton(
|
||||
enabled = true,
|
||||
onClick = {},
|
||||
),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.tangem.feature.swap.ui
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
||||
|
|
@ -32,8 +31,6 @@ import com.tangem.feature.swap.presentation.R
|
|||
|
||||
@Composable
|
||||
fun SwapPermissionBottomSheetContent(data: SwapPermissionState.ReadyForRequest, onCancel: () -> Unit) {
|
||||
BackHandler(onBack = onCancel)
|
||||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.background(color = TangemTheme.colors.background.primary)
|
||||
|
|
@ -83,7 +80,6 @@ fun SwapPermissionBottomSheetContent(data: SwapPermissionState.ReadyForRequest,
|
|||
text = stringResource(id = R.string.common_cancel),
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
onClick = {
|
||||
data.cancelButton.onClick()
|
||||
onCancel()
|
||||
},
|
||||
)
|
||||
|
|
@ -142,7 +138,7 @@ private fun InformationItem(subtitle: String, value: String) {
|
|||
text = value,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
style = TangemTheme.typography.body2,
|
||||
modifier = Modifier.padding(start = TangemTheme.dimens.spacing16)
|
||||
modifier = Modifier.padding(start = TangemTheme.dimens.spacing16),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -204,7 +200,7 @@ private val previewData = SwapPermissionState.ReadyForRequest(
|
|||
spenderAddress = "",
|
||||
fee = "2,14$",
|
||||
approveButton = ApprovePermissionButton(true) {},
|
||||
cancelButton = CancelPermissionButton(true) {},
|
||||
cancelButton = CancelPermissionButton(true),
|
||||
)
|
||||
|
||||
//endregion preview
|
||||
|
|
@ -1,10 +1,12 @@
|
|||
package com.tangem.feature.swap.ui
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxSize
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.ExperimentalMaterialApi
|
||||
import androidx.compose.material.ModalBottomSheetLayout
|
||||
import androidx.compose.material.ModalBottomSheetState
|
||||
import androidx.compose.material.ModalBottomSheetValue
|
||||
import androidx.compose.material.rememberModalBottomSheetState
|
||||
import androidx.compose.runtime.Composable
|
||||
|
|
@ -14,6 +16,7 @@ import androidx.compose.ui.Modifier
|
|||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.feature.swap.models.SwapPermissionState
|
||||
import com.tangem.feature.swap.models.SwapStateHolder
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
|
|
@ -24,6 +27,15 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) {
|
|||
initialValue = ModalBottomSheetValue.Hidden,
|
||||
skipHalfExpanded = true,
|
||||
)
|
||||
BackHandler(
|
||||
onBack = {
|
||||
if (bottomSheetState.isVisible) {
|
||||
hideBottomSheet(coroutineScope, stateHolder, bottomSheetState)
|
||||
} else {
|
||||
stateHolder.onBackClicked()
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
TangemTheme {
|
||||
ModalBottomSheetLayout(
|
||||
|
|
@ -32,10 +44,7 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) {
|
|||
SwapPermissionBottomSheetContent(
|
||||
data = stateHolder.permissionState,
|
||||
onCancel = {
|
||||
coroutineScope.launch {
|
||||
stateHolder.onCancelPermissionBottomSheet.invoke()
|
||||
bottomSheetState.hide()
|
||||
}
|
||||
hideBottomSheet(coroutineScope, stateHolder, bottomSheetState)
|
||||
},
|
||||
)
|
||||
} else {
|
||||
|
|
@ -72,4 +81,16 @@ internal fun SwapScreen(stateHolder: SwapStateHolder) {
|
|||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterialApi::class)
|
||||
private fun hideBottomSheet(
|
||||
coroutineScope: CoroutineScope,
|
||||
stateHolder: SwapStateHolder,
|
||||
bottomSheetState: ModalBottomSheetState,
|
||||
) {
|
||||
coroutineScope.launch {
|
||||
stateHolder.onCancelPermissionBottomSheet.invoke()
|
||||
bottomSheetState.hide()
|
||||
}
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@ import com.tangem.feature.swap.models.SwapStateHolder
|
|||
import com.tangem.feature.swap.models.UiActions
|
||||
import com.tangem.feature.swap.presentation.SwapFragment
|
||||
import com.tangem.feature.swap.router.SwapRouter
|
||||
import com.tangem.feature.swap.router.SwapScreen
|
||||
import com.tangem.feature.swap.router.SwapNavScreen
|
||||
import com.tangem.feature.swap.ui.StateBuilder
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
import com.tangem.utils.coroutines.Debouncer
|
||||
|
|
@ -69,7 +69,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
private var isOrderReversed = false
|
||||
private val lastAmount = mutableStateOf(INITIAL_AMOUNT)
|
||||
private var swapRouter: SwapRouter by Delegates.notNull()
|
||||
var currentScreen = SwapScreen.Main
|
||||
var currentScreen = SwapNavScreen.Main
|
||||
get() = swapRouter.currentScreen
|
||||
|
||||
init {
|
||||
|
|
@ -90,11 +90,11 @@ internal class SwapViewModel @Inject constructor(
|
|||
uiState = uiState.copy(
|
||||
onBackClicked = router::back,
|
||||
onSelectTokenClick = {
|
||||
router.openScreen(SwapScreen.SelectToken)
|
||||
router.openScreen(SwapNavScreen.SelectToken)
|
||||
analyticsEventHandler.send(SwapEvents.ChooseTokenScreenOpened)
|
||||
},
|
||||
onSuccess = {
|
||||
router.openScreen(SwapScreen.Success)
|
||||
router.openScreen(SwapNavScreen.Success)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
|
@ -235,7 +235,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
}
|
||||
}
|
||||
analyticsEventHandler.send(SwapEvents.SwapInProgressScreen)
|
||||
swapRouter.openScreen(SwapScreen.Success)
|
||||
swapRouter.openScreen(SwapNavScreen.Success)
|
||||
}
|
||||
else -> {
|
||||
uiState = stateBuilder.createSwapErrorTransaction(uiState) {
|
||||
|
|
@ -304,7 +304,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
toCurrency = toToken,
|
||||
)
|
||||
startLoadingQuotes(fromToken, toToken, lastAmount.value)
|
||||
swapRouter.openScreen(SwapScreen.Main)
|
||||
swapRouter.openScreen(SwapNavScreen.Main)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 10 KiB |
|
|
@ -0,0 +1 @@
|
|||
i/
|
||||
|
|
@ -0,0 +1 @@
|
|||
i/
|
||||
|
|
@ -0,0 +1 @@
|
|||
o/out
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.tangem.lib.auth" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="21"
|
||||
android:targetSdkVersion="33" />
|
||||
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
aarFormatVersion=1.0
|
||||
aarMetadataVersion=1.0
|
||||
minCompileSdk=1
|
||||
minAndroidGradlePluginVersion=1.0.0
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
o/classes
|
||||
Binary file not shown.
|
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* Automatically generated file. DO NOT MODIFY
|
||||
*/
|
||||
package com.tangem.lib.auth;
|
||||
|
||||
public final class BuildConfig {
|
||||
public static final boolean DEBUG = false;
|
||||
public static final String LIBRARY_PACKAGE_NAME = "com.tangem.lib.auth";
|
||||
public static final String BUILD_TYPE = "debug_beta";
|
||||
// Field from build type: debug_beta
|
||||
public static final String ENVIRONMENT = "release";
|
||||
// Field from build type: debug_beta
|
||||
public static final Boolean LOG_ENABLED = true;
|
||||
// Field from build type: debug_beta
|
||||
public static final Boolean TEST_ACTION_ENABLED = true;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.tangem.lib.auth" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="21"
|
||||
android:targetSdkVersion="33" />
|
||||
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "AAPT_FRIENDLY_MERGED_MANIFESTS",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.tangem.lib.auth",
|
||||
"variantName": "debug_beta",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"outputFile": "AndroidManifest.xml"
|
||||
}
|
||||
],
|
||||
"elementType": "File"
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1,4 @@
|
|||
aarFormatVersion=1.0
|
||||
aarMetadataVersion=1.0
|
||||
minCompileSdk=1
|
||||
minAndroidGradlePluginVersion=1.0.0
|
||||
|
|
@ -0,0 +1 @@
|
|||
{}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/jniLibs"/></dataSet><dataSet config="debug_beta" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/jniLibs"/></dataSet></merger>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#Tue Feb 07 19:38:54 MSK 2023
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/res"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/rs/debug_beta"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/resValues/debug_beta"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/res"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/rs/debug_beta"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/resValues/debug_beta"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug_beta$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug_beta" generated-set="debug_beta$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/res"/></dataSet><mergedItems/></merger>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/shaders"/></dataSet><dataSet config="debug_beta" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/shaders"/></dataSet></merger>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/assets"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/intermediates/shader_assets/debug_beta/out"/></dataSet><dataSet config="debug_beta" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/assets"/></dataSet></merger>
|
||||
|
|
@ -0,0 +1 @@
|
|||
#Tue Feb 07 19:38:52 MSK 2023
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/res"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/rs/debug_beta"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/resValues/debug_beta"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/res"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/rs/debug_beta"/><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/build/generated/res/resValues/debug_beta"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug_beta$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug_beta" generated-set="debug_beta$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/debug_beta/res"/></dataSet><mergedItems/></merger>
|
||||
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
mavenArtifactId=auth
|
||||
mavenGroupId=tangem-app-android.libs
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
R_DEF: Internal format may change without notice
|
||||
local
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
1<?xml version="1.0" encoding="utf-8"?>
|
||||
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
3 package="com.tangem.lib.auth" >
|
||||
4
|
||||
5 <uses-sdk
|
||||
6 android:minSdkVersion="21"
|
||||
6-->/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/AndroidManifest.xml
|
||||
7 android:targetSdkVersion="33" />
|
||||
7-->/Users/vladislav/Documents/projects/tangem/tangem-app-android/libs/auth/src/main/AndroidManifest.xml
|
||||
8
|
||||
9</manifest>
|
||||
Binary file not shown.
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.tangem.lib.auth" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="21"
|
||||
android:targetSdkVersion="33" />
|
||||
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "PACKAGED_MANIFESTS",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.tangem.lib.auth",
|
||||
"variantName": "debug_beta",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"outputFile": "../../merged_manifest/debug_beta/AndroidManifest.xml"
|
||||
}
|
||||
],
|
||||
"elementType": "File"
|
||||
}
|
||||
Binary file not shown.
|
|
@ -0,0 +1 @@
|
|||
com.tangem.lib.auth
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
1
|
||||
0
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue