Skip to content

Commit

Permalink
bug fixeds
Browse files Browse the repository at this point in the history
  • Loading branch information
polstianka committed Oct 7, 2024
1 parent 0c042be commit f50625f
Show file tree
Hide file tree
Showing 33 changed files with 255 additions and 341 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.tonapps.wallet.data.collectibles.entities

import android.net.Uri
import android.os.Parcelable
import com.tonapps.blockchain.ton.extensions.equalsAddress
import com.tonapps.blockchain.ton.extensions.toUserFriendly
import com.tonapps.wallet.api.entity.AccountEntity
import com.tonapps.wallet.data.core.Trust
Expand Down Expand Up @@ -70,6 +71,12 @@ data class NftEntity(
val suspicious: Boolean
get() = trust == Trust.none || trust == Trust.blacklist

val isTelegramUsername: Boolean
get() {
val address = collection?.address ?: return false
return address.equalsAddress("0:80d78a35f955a14b679faa887ff4cd5bfc0f43b4a4eea2a7e6927f3701b273c2")
}

private fun getImage(minSize: Int, maxSize: Int): NftPreviewEntity? {
return previews.find {
if (minSize > it.width || minSize > it.height) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ data class Theme(
val light: Boolean
) {

val isSystem: Boolean
get() = key == "system" || key == "auto" || resId == 0

companion object {

private val supportedThemes = mutableListOf<Theme>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.tonapps.wallet.data.core
import android.os.Parcel
import android.os.Parcelable


@JvmInline
value class Trust(val type: String): Parcelable {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ class App: Application(), CameraXConfig.Provider, KoinComponent {
}

super.onCreate()
Theme.add("system", 0)
Theme.add("blue", uikit.R.style.Theme_App_Blue)
Theme.add("dark", uikit.R.style.Theme_App_Dark)
Theme.add("light", uikit.R.style.Theme_App_Light, true)
Expand All @@ -78,7 +79,6 @@ class App: Application(), CameraXConfig.Provider, KoinComponent {
workManagerFactory()
}
setLocales(settingsRepository.localeList)
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
initFresco()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.content.ClipDescription
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.content.res.Configuration
import android.net.Uri
import android.os.Build
import android.os.PersistableBundle
Expand Down Expand Up @@ -34,6 +35,12 @@ import uikit.navigation.Navigation.Companion.navigation
val Context.workManager: WorkManager
get() = WorkManager.getInstance(this)

val Context.uiMode: Int
get() = resources.configuration.uiMode

val Context.isDarkMode: Boolean
get() = uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES

fun Context.safeExternalOpenUri(uri: Uri) {
if (TonConnectManager.isTonConnectDeepLink(uri)) {
return
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import com.tonapps.tonkeeper.ui.screen.main.MainViewModel
import com.tonapps.tonkeeper.ui.screen.root.RootViewModel
import com.tonapps.tonkeeper.manager.tonconnect.TonConnectManager
import com.tonapps.tonkeeper.ui.base.BaseWalletVM
import com.tonapps.tonkeeper.ui.screen.add.imprt.ImportWalletViewModel
import com.tonapps.tonkeeper.ui.screen.add.AddWalletViewModel
import com.tonapps.tonkeeper.ui.screen.battery.BatteryViewModel
import com.tonapps.tonkeeper.ui.screen.browser.main.BrowserMainViewModel
import com.tonapps.tonkeeper.ui.screen.browser.search.BrowserSearchViewModel
Expand All @@ -26,7 +26,6 @@ import com.tonapps.tonkeeper.ui.screen.wallet.picker.PickerViewModel
import com.tonapps.tonkeeper.ui.screen.settings.passcode.ChangePasscodeViewModel
import com.tonapps.tonkeeper.ui.screen.settings.security.SecurityViewModel
import com.tonapps.tonkeeper.ui.screen.settings.theme.ThemeViewModel
import com.tonapps.tonkeeper.ui.screen.staking.withdraw.StakeWithdrawViewModel
import com.tonapps.tonkeeper.ui.screen.w5.stories.W5StoriesViewModel
import com.tonapps.tonkeeper.ui.screen.tonconnect.TonConnectViewModel
import com.tonapps.tonkeeper.ui.screen.wallet.main.list.WalletAdapter
Expand All @@ -36,7 +35,6 @@ import com.tonapps.wallet.data.settings.SettingsRepository
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.SupervisorJob
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.androidx.viewmodel.dsl.viewModelOf
import org.koin.core.module.dsl.factoryOf
import org.koin.core.module.dsl.singleOf
Expand Down Expand Up @@ -83,7 +81,7 @@ val koinModel = module {

viewModelOf(::LedgerConnectionViewModel)
viewModelOf(::W5StoriesViewModel)
viewModelOf(::ImportWalletViewModel)
viewModelOf(::AddWalletViewModel)
viewModelOf(::BatteryViewModel)
viewModelOf(BaseWalletVM::EmptyViewViewModel)
}
Original file line number Diff line number Diff line change
@@ -1,32 +1,37 @@
package com.tonapps.tonkeeper.ui.screen.add.imprt
package com.tonapps.tonkeeper.ui.screen.add

import android.graphics.Rect
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import androidx.core.view.updateLayoutParams
import androidx.recyclerview.widget.RecyclerView
import com.tonapps.tonkeeper.ui.base.BaseWalletScreen
import com.tonapps.tonkeeper.ui.base.BaseListWalletScreen
import com.tonapps.tonkeeper.ui.base.ScreenContext
import com.tonapps.tonkeeper.ui.screen.add.imprt.list.Adapter
import com.tonapps.tonkeeper.ui.screen.add.imprt.list.Item
import com.tonapps.tonkeeper.ui.screen.add.list.Adapter
import com.tonapps.tonkeeper.ui.screen.add.list.Item
import com.tonapps.tonkeeper.ui.screen.external.qr.keystone.add.KeystoneAddScreen
import com.tonapps.tonkeeper.ui.screen.external.qr.signer.add.SignerAddScreen
import com.tonapps.tonkeeper.ui.screen.init.InitArgs
import com.tonapps.tonkeeper.ui.screen.init.InitScreen
import com.tonapps.tonkeeper.ui.screen.ledger.pair.PairLedgerScreen
import com.tonapps.tonkeeperx.R
import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koin.core.parameter.parametersOf
import uikit.base.BaseFragment
import uikit.extensions.applyNavBottomPadding
import uikit.extensions.collectFlow
import uikit.extensions.dp
import uikit.extensions.getDimensionPixelSize
import uikit.widget.HeaderView
import uikit.widget.SimpleRecyclerView

class ImportWalletScreen: BaseWalletScreen<ScreenContext.None>(R.layout.fragment_import_wallet, ScreenContext.None), BaseFragment.Modal {
class AddWalletScreen: BaseListWalletScreen<ScreenContext.None>(ScreenContext.None), BaseFragment.Modal {

override val viewModel: ImportWalletViewModel by viewModel()
override val viewModel: AddWalletViewModel by viewModel {
parametersOf(requireArguments().getBoolean(ARG_WITH_NEW, false))
}

private val adapter = Adapter { item ->
when(item.id) {
Item.NEW_WALLET_ID -> openScreen(InitScreen.newInstance(InitArgs.Type.New))
Item.IMPORT_WALLET_ID -> openScreen(InitScreen.newInstance(InitArgs.Type.Import))
Item.WATCH_WALLET_ID -> openScreen(InitScreen.newInstance(InitArgs.Type.Watch))
Item.TESTNET_WALLET_ID -> openScreen(InitScreen.newInstance(InitArgs.Type.Testnet))
Expand All @@ -43,10 +48,7 @@ class ImportWalletScreen: BaseWalletScreen<ScreenContext.None>(R.layout.fragment

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val header = view.findViewById<HeaderView>(R.id.header)
header.doOnActionClick = { finish() }

val listView = view.findViewById<SimpleRecyclerView>(R.id.list)
listView.maxHeight = 680.dp
listView.adapter = adapter
listView.addItemDecoration(object : RecyclerView.ItemDecoration() {

Expand All @@ -66,6 +68,13 @@ class ImportWalletScreen: BaseWalletScreen<ScreenContext.None>(R.layout.fragment
outRect.top = offset
}
})

listView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
val margin = requireContext().getDimensionPixelSize(uikit.R.dimen.offsetMedium)
marginStart = margin
marginEnd = margin
}
listView.applyNavBottomPadding(requireContext().getDimensionPixelSize(uikit.R.dimen.offsetMedium))
}

private fun openScreen(screen: BaseFragment) {
Expand All @@ -75,6 +84,12 @@ class ImportWalletScreen: BaseWalletScreen<ScreenContext.None>(R.layout.fragment

companion object {

fun newInstance() = ImportWalletScreen()
private const val ARG_WITH_NEW = "with_new"

fun newInstance(withNew: Boolean): AddWalletScreen {
val fragment = AddWalletScreen()
fragment.putBooleanArg(ARG_WITH_NEW, withNew)
return fragment
}
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
package com.tonapps.tonkeeper.ui.screen.add.imprt
package com.tonapps.tonkeeper.ui.screen.add

import android.app.Application
import com.tonapps.tonkeeper.ui.base.BaseWalletVM
import com.tonapps.tonkeeper.ui.screen.add.imprt.list.Item
import com.tonapps.tonkeeper.ui.screen.add.list.Item
import com.tonapps.wallet.api.API
import com.tonapps.wallet.localization.Localization
import kotlinx.coroutines.flow.map

class ImportWalletViewModel(
class AddWalletViewModel(
app: Application,
private val withNew: Boolean,
private val api: API,
): BaseWalletVM(app) {

val uiItems = api.configFlow.map {
val uiItems = mutableListOf<Item>()
if (withNew) {
uiItems.add(Item.header(Localization.add_wallet, Localization.add_wallet_description))
uiItems.add(Item.new)
} else {
uiItems.add(Item.header(Localization.import_wallet, Localization.import_wallet_subtitle))
}
uiItems.add(Item.import)
uiItems.add(Item.watch)
uiItems.add(Item.testnet)
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,17 +1,23 @@
package com.tonapps.tonkeeper.ui.screen.add.imprt.list
package com.tonapps.tonkeeper.ui.screen.add.list

import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.tonapps.tonkeeper.ui.screen.add.list.holder.HeaderHolder
import com.tonapps.tonkeeper.ui.screen.add.list.holder.WalletHolder
import com.tonapps.uikit.list.BaseListAdapter
import com.tonapps.uikit.list.BaseListHolder
import com.tonapps.uikit.list.BaseListItem

class Adapter(
private val onClick: (Item) -> Unit
private val onClick: (Item.Wallet) -> Unit
): BaseListAdapter() {

override fun createHolder(parent: ViewGroup, viewType: Int): BaseListHolder<out BaseListItem> {
return Holder(parent, onClick)
return when(viewType) {
Item.TYPE_HEADER -> HeaderHolder(parent)
Item.TYPE_WALLET -> WalletHolder(parent, onClick)
else -> throw IllegalArgumentException("Unknown viewType: $viewType")
}
}

override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.tonapps.tonkeeper.ui.screen.add.imprt.list
package com.tonapps.tonkeeper.ui.screen.add.list

import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
Expand All @@ -7,62 +7,84 @@ import com.tonapps.uikit.icon.UIKitIcon
import com.tonapps.uikit.list.BaseListItem
import com.tonapps.wallet.localization.Localization

data class Item(
val id: Int,
@DrawableRes val iconResId: Int,
@StringRes val titleResId: Int,
@StringRes val subtitleResId: Int
): BaseListItem() {
sealed class Item(type: Int): BaseListItem(type) {

companion object {
const val TYPE_WALLET = -10
const val TYPE_HEADER = -11

const val IMPORT_WALLET_ID = 1
const val WATCH_WALLET_ID = 2
const val TESTNET_WALLET_ID = 3
const val SIGNER_WALLET_ID = 4
const val LEDGER_WALLET_ID = 5
const val KEYSTONE_WALLET_ID = 6
const val NEW_WALLET_ID = 7

fun header(title: Int, subtitle: Int): Header {
return Header(title, subtitle)
}

val new = Wallet(
id = NEW_WALLET_ID,
iconResId = R.drawable.ic_plus_circle_28,
titleResId = Localization.new_wallet,
subtitleResId = Localization.start_create_new_wallet
)

val import = Item(
val import = Wallet(
id = IMPORT_WALLET_ID,
iconResId = UIKitIcon.ic_key_28,
titleResId = Localization.import_wallet,
subtitleResId = Localization.import_wallet_words
)

val watch = Item(
val watch = Wallet(
id = WATCH_WALLET_ID,
iconResId = R.drawable.ic_magnifying_glass_28,
titleResId = Localization.watch_wallet,
subtitleResId = Localization.watch_wallet_subtitle
)

val testnet = Item(
val testnet = Wallet(
id = TESTNET_WALLET_ID,
iconResId = R.drawable.ic_testnet_28,
titleResId = Localization.testnet_wallet,
subtitleResId = Localization.testnet_wallet_subtitle
)

val signer = Item(
val signer = Wallet(
id = SIGNER_WALLET_ID,
iconResId = UIKitIcon.ic_key_28,
titleResId = Localization.signer_wallet,
subtitleResId = Localization.signer_wallet_subtitle
)

val keystone = Item(
val keystone = Wallet(
id = KEYSTONE_WALLET_ID,
iconResId = UIKitIcon.ic_keystone_28,
titleResId = Localization.keystone_title,
subtitleResId = Localization.keystone_subtitle
)

val ledger = Item(
val ledger = Wallet(
id = LEDGER_WALLET_ID,
iconResId = R.drawable.ic_ledger_28,
titleResId = Localization.ledger_title,
subtitleResId = Localization.ledger_subtitle
)
}

data class Wallet(
val id: Int,
@DrawableRes val iconResId: Int,
@StringRes val titleResId: Int,
@StringRes val subtitleResId: Int
): Item(TYPE_WALLET)

data class Header(
@StringRes val titleResId: Int,
@StringRes val subtitleResId: Int
): Item(TYPE_HEADER)

}
Loading

0 comments on commit f50625f

Please sign in to comment.