Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
43beea1
release actions
polstianka Jun 17, 2025
183fa87
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Jun 24, 2025
10acf78
hide notification for non-gms (#159)
sorokin0andrey Jul 16, 2025
38e0e95
sign raw fee selector (#158)
sorokin0andrey Jul 16, 2025
34ce872
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Jul 18, 2025
1a09ef3
Openapi/generator (#160)
polstianka Jul 19, 2025
ce5906c
omniston realtime api (#150)
polstianka Jul 24, 2025
22037af
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Jul 24, 2025
37df016
Feature/renew dns (#154)
polstianka Jul 24, 2025
fb6450a
Kmp (#161)
polstianka Jul 24, 2025
31e5dae
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Jul 24, 2025
a2848b0
Uifix/light theme (#162)
polstianka Jul 30, 2025
ab7569f
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Aug 1, 2025
6426918
Bugfixeds/swapandonramp (#165)
polstianka Aug 4, 2025
8d31020
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Aug 5, 2025
01d99d0
Bugfixeds/aug4 (#166)
polstianka Aug 5, 2025
c19b625
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Aug 5, 2025
879e6b4
ethena (#164)
sorokin0andrey Aug 12, 2025
b82a1b4
ethena fixes (#170)
sorokin0andrey Aug 14, 2025
5a0aed7
Feaute/new formatting (#167)
polstianka Aug 14, 2025
e010b8f
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Aug 15, 2025
48f6e4b
ethena bug fixes (#171)
sorokin0andrey Aug 15, 2025
1cb56d5
Bugfixeds/aug5/swap (#169)
polstianka Aug 15, 2025
c8b6f47
update ethena apy text (#172)
sorokin0andrey Aug 20, 2025
bf0e072
Bugfixeds/aug5/swap (#173)
polstianka Aug 26, 2025
ae16bdd
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Aug 26, 2025
7e0f7eb
Bugfixeds/signer/aug (#175)
polstianka Sep 1, 2025
c6f50dc
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Sep 1, 2025
a419a59
fix flags (#176)
sorokin0andrey Sep 2, 2025
dbda693
tc remove legacy feature (#179)
sorokin0andrey Sep 2, 2025
0f1c971
Coil (#177)
polstianka Sep 2, 2025
9be8b11
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Sep 2, 2025
e2b90e3
Bugfixeds/sep2 (#180)
polstianka Sep 3, 2025
a7dbdf1
chore config & boot fallback (#181)
sorokin0andrey Sep 5, 2025
92bc0a7
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Sep 9, 2025
6de82a5
Bugfixeds/sep2 (#182)
polstianka Sep 10, 2025
4ce9ad2
support tron qr (#184)
sorokin0andrey Sep 12, 2025
cede817
fix swap flag & boot fallback (#185)
sorokin0andrey Sep 12, 2025
251d3cb
bug fixes (#186)
sorokin0andrey Sep 17, 2025
5c0135c
Onramp/cryptofixeds (#183)
polstianka Sep 18, 2025
4eeb9ca
support ledger flex ble (#187)
sorokin0andrey Sep 19, 2025
5dab9de
add scam address error (#188)
sorokin0andrey Sep 23, 2025
30ae0cf
UI/compose (#178)
polstianka Sep 24, 2025
d3fc624
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Sep 24, 2025
94e9727
hot fix for sign data
polstianka Sep 25, 2025
dd8b44c
Hotfix/signdata (#190)
polstianka Sep 25, 2025
707b0c3
server config fixes (#189)
sorokin0andrey Sep 25, 2025
adb66bf
Hotfix/signdata (#192)
polstianka Sep 25, 2025
ec6e041
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Sep 26, 2025
d8aa65f
Onramp/rates/sep25 (#193)
polstianka Oct 1, 2025
2b45a9e
Merge branch 'dev' of github.com:tonkeeper/android_private into dev
polstianka Oct 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 5 additions & 2 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,14 @@ jobs:
distribution: 'temurin'
java-version: 20.0.2+9

- name: Accept Android SDK licenses
run: yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --licenses

- name: Decode signing certificate into a file
env:
CERTIFICATE_BASE64: ${{ secrets.ANDROID_DIST_SIGNING_KEY }}
CERTIFICATE_BASE64: ${{ secrets.ANDROID_DIST_SIGNING_KEY }}
run: |
echo $CERTIFICATE_BASE64 | base64 --decode > google-release.keystore
echo $CERTIFICATE_BASE64 | base64 --decode > google-release.keystore

- name: Build android beta
run: bundle exec fastlane android beta
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ captures
.cxx
*.apk
.kotlin
build
/build

2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -222,4 +222,4 @@ RUBY VERSION
ruby 3.3.0p0

BUNDLED WITH
2.5.4
2.5.4
67 changes: 30 additions & 37 deletions apps/signer/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
Expand All @@ -9,10 +11,10 @@ android {

defaultConfig {
applicationId = Build.namespacePrefix("signer")
minSdk = Build.minSdkVersion
targetSdk = 34
versionCode = 22
versionName = "0.2.2"
minSdk = 26
targetSdk = Build.compileSdkVersion
versionCode = 23
versionName = "0.2.3"
}

lint {
Expand Down Expand Up @@ -43,51 +45,42 @@ android {
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = "1.8"
}

packaging {
resources.excludes.add("/META-INF/{AL2.0,LGPL2.1}")
}
}

dependencies {
implementation(Dependence.AndroidX.core)
implementation(Dependence.AndroidX.appCompat)
implementation(Dependence.AndroidX.activity)
implementation(Dependence.AndroidX.fragment)
implementation(Dependence.AndroidX.recyclerView)
implementation(Dependence.AndroidX.viewPager2)
implementation(Dependence.AndroidX.splashscreen)
implementation(libs.androidX.core)
implementation(libs.androidX.appCompat)
implementation(libs.androidX.activity)
implementation(libs.androidX.fragment)
implementation(libs.androidX.recyclerView)
implementation(libs.androidX.viewPager2)
implementation(libs.androidX.splashscreen)

implementation(Dependence.UI.material)
implementation(Dependence.UI.flexbox)
implementation(Dependence.AndroidX.Camera.base)
implementation(Dependence.AndroidX.Camera.core)
implementation(Dependence.AndroidX.Camera.lifecycle)
implementation(Dependence.AndroidX.Camera.view)
implementation(Dependence.AndroidX.security)
implementation(Dependence.AndroidX.constraintlayout)
implementation(Dependence.AndroidX.lifecycleSavedState)
implementation(project(Dependence.Lib.blockchain))
implementation(project(Dependence.Lib.extensions))
implementation(libs.material)
implementation(libs.flexbox)
implementation(libs.cameraX.base)
implementation(libs.cameraX.core)
implementation(libs.cameraX.lifecycle)
implementation(libs.cameraX.view)
implementation(libs.androidX.security)
implementation(libs.androidX.constraintlayout)
implementation(libs.androidX.lifecycleSavedState)
implementation(project(ProjectModules.Lib.blockchain))
implementation(project(ProjectModules.Lib.extensions))

implementation(Dependence.KotlinX.guava)
implementation(libs.kotlinX.coroutines.guava)

implementation(project(Dependence.UIKit.core)) {
implementation(project(ProjectModules.UIKit.core)) {
exclude("com.airbnb.android", "lottie")
exclude("com.facebook.fresco", "fresco")
}

implementation(project(Dependence.Lib.qr))
implementation(project(Dependence.Lib.security))
implementation(project(Dependence.Lib.icu))
implementation(Dependence.Koin.core)
implementation(project(ProjectModules.Lib.qr))
implementation(project(ProjectModules.Lib.security))
implementation(project(ProjectModules.Lib.icu))
implementation(libs.koin.core)
}

4 changes: 4 additions & 0 deletions apps/signer/lint-baseline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.12.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.12.2)" variant="fatal" version="8.12.2">

</issues>
6 changes: 6 additions & 0 deletions apps/signer/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@
-repackageclasses ''
-renamesourcefileattribute SourceFile
-dontskipnonpubliclibraryclasses

-dontwarn com.fasterxml.jackson.databind.ext.Java7SupportImpl
-keep class com.fasterxml.jackson.databind.ext.** { *; }
-dontwarn org.slf4j.**
-dontwarn org.w3c.dom.**
-dontwarn com.fasterxml.jackson.databind.ext.DOMSerializer
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ class CameraFragment: BaseFragment(R.layout.fragment_camera), BaseFragment.Botto
headerView.background = null
headerView.doOnCloseClick = { finish() }

view.findViewById<HeaderView>(R.id.permission_header).doOnCloseClick = { finish() }

cameraView = view.findViewById(R.id.camera)
flashView = view.findViewById(R.id.flash)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class SettingsFragment: BaseFragment(R.layout.fragment_settings), BaseFragment.S
}

private fun openSupport() {
val uri = Uri.parse("https://t.me/help_tonkeeper_bot")
val uri = Uri.parse("https://t.me/tonkeeper")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import android.os.Bundle
import android.text.SpannableString
import android.text.method.ScrollingMovementMethod
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.appcompat.widget.AppCompatTextView
import androidx.core.view.ViewCompat
import androidx.core.view.updateLayoutParams
import androidx.lifecycle.lifecycleScope
import com.tonapps.blockchain.ton.TonNetwork
import com.tonapps.security.hex
Expand Down Expand Up @@ -36,7 +39,9 @@ import org.koin.core.parameter.parametersOf
import org.ton.cell.Cell
import uikit.HapticHelper
import uikit.base.BaseFragment
import uikit.extensions.bottomBarsOffset
import uikit.extensions.collectFlow
import uikit.extensions.pinToBottomInsets
import uikit.extensions.setColor
import uikit.navigation.Navigation.Companion.navigation
import uikit.widget.LoaderView
Expand Down Expand Up @@ -129,6 +134,13 @@ class SignFragment: BaseFragment(R.layout.fragment_sign), BaseFragment.Modal {

collectFlow(signViewModel.actionsFlow, adapter::submitList)
collectFlow(signViewModel.keyEntity, ::setKeyEntity)

ViewCompat.setOnApplyWindowInsetsListener(view) { view, insets ->
actionView.updateLayoutParams<ViewGroup.MarginLayoutParams> {
bottomMargin = insets.bottomBarsOffset
}
insets
}
}

private fun showError() {
Expand All @@ -137,7 +149,11 @@ class SignFragment: BaseFragment(R.layout.fragment_sign), BaseFragment.Modal {
}

private fun copyBody() {
requireContext().copyToClipboard(args.bodyHex)
signViewModel.openEmulate().catch {
navigation?.toast(R.string.unknown_error)
}.onEach{
requireContext().copyToClipboard(it)
}.launchIn(lifecycleScope)
}

private fun reject() {
Expand Down
Loading
Loading