Initial commit: Pezkuwi Wallet Android

Security hardened release:
- Code obfuscation enabled (minifyEnabled=true, shrinkResources=true)
- Sensitive files excluded (google-services.json, keystores)
- Branch.io key moved to BuildConfig placeholder
- Updated dependencies: OkHttp 4.12.0, Gson 2.10.1, BouncyCastle 1.77
- Comprehensive ProGuard rules for crypto wallet
- Navigation 2.7.7, Lifecycle 2.7.0, ConstraintLayout 2.1.4
This commit is contained in:
2026-02-12 05:19:41 +03:00
commit a294aa1a6b
7687 changed files with 441811 additions and 0 deletions
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest />
@@ -0,0 +1,8 @@
package io.novafoundation.nova.feature_versions_api.di
import io.novafoundation.nova.feature_versions_api.domain.UpdateNotificationsInteractor
interface VersionsFeatureApi {
fun interactor(): UpdateNotificationsInteractor
}
@@ -0,0 +1,42 @@
package io.novafoundation.nova.feature_versions_api.domain
import java.util.Date
class UpdateNotification(
val version: Version,
val changelog: String?,
val severity: Severity,
val time: Date
)
class Version(
val major: Long,
val minor: Long,
val patch: Long
) : Comparable<Version> {
companion object {
fun getComparator(): Comparator<Version> {
return compareBy<Version> { it.major }
.thenBy { it.minor }
.thenBy { it.patch }
}
}
override operator fun compareTo(other: Version): Int {
return getComparator()
.compare(this, other)
}
override fun toString(): String {
return "$major.$minor.$patch"
}
}
enum class Severity {
NORMAL, MAJOR, CRITICAL
}
fun Version.toUnderscoreString(): String {
return "${major}_${minor}_$patch"
}
@@ -0,0 +1,16 @@
package io.novafoundation.nova.feature_versions_api.domain
interface UpdateNotificationsInteractor {
suspend fun waitPermissionToUpdate()
fun allowInAppUpdateCheck()
suspend fun hasImportantUpdates(): Boolean
suspend fun getUpdateNotifications(): List<UpdateNotification>
suspend fun skipNewUpdates()
suspend fun loadVersions()
}
@@ -0,0 +1,8 @@
package io.novafoundation.nova.feature_versions_api.presentation
interface VersionsRouter {
fun openAppUpdater()
fun closeUpdateNotifications()
}