pezkuwichain 8c4550780e fix(push): retry FCM token requests instead of failing on the first timeout
Enabling notifications started failing with

  java.util.concurrent.ExecutionException: java.io.IOException: SERVICE_NOT_AVAILABLE

SERVICE_NOT_AVAILABLE is Firebase saying its endpoint is momentarily
unreachable. It is transient, and Firebase's own guidance is to retry with
backoff. requestToken() made a single attempt with no catch, so a few seconds of
that ended the flow and put a raw stack trace in front of the user.

Nothing about the app or its Firebase project changed — the project is healthy
and the API key still authenticates. The app simply had no tolerance for a
service that is documented as intermittently unavailable, so it worked until the
first time Google was slow to answer.

Now four attempts with 1s/2s/4s backoff.

The wrapping matters: the IOException arrives inside an ExecutionException, so
catching IOException directly would never have matched and the retry would have
been dead code. The check walks the cause chain instead. Failures that are not
network-related — a wrong google-services.json, a missing Play Services install —
are rethrown on the first attempt, since retrying those only delays the same
error.
2026-07-31 20:22:17 -07:00
2026-02-12 05:19:41 +03:00
2026-02-12 05:19:41 +03:00
2026-02-12 05:19:41 +03:00

Pezkuwi Wallet Android

Next generation mobile wallet for Pezkuwichain and the Polkadot ecosystem.

About

Pezkuwi Wallet is a next-generation mobile application for the Pezkuwichain and Polkadot ecosystem. It provides a transparent, community-oriented wallet experience with convenient UX/UI, fast performance, and strong security.

Key Features:

  • Full Pezkuwichain support (HEZ & PEZ tokens)
  • Full Polkadot ecosystem compatibility
  • Staking, Governance, DeFi
  • NFT support
  • Cross-chain transfers (XCM)
  • Hardware wallet support (Ledger, Polkadot Vault)
  • WalletConnect v2
  • Push notifications

Native Tokens

Token Network Description
HEZ Relay Chain Native token for fees and staking
PEZ Asset Hub Governance token

Build Instructions

Clone Repository

git clone git@github.com:pezkuwichain/pezkuwi-wallet-android.git

Install NDK

Install NDK version 26.1.10909125 from SDK Manager: Tools -> SDK Manager -> SDK Tools -> NDK (Side by Side)

Install Rust

Install Rust by following official instructions.

Add Android build targets:

rustup target add armv7-linux-androideabi
rustup target add i686-linux-android
rustup target add x86_64-linux-android
rustup target add aarch64-linux-android

Update local.properties

Add the following lines to your local.properties:

ACALA_PROD_AUTH_TOKEN=mock
ACALA_TEST_AUTH_TOKEN=mock
CI_KEYSTORE_KEY_ALIAS=mock
CI_KEYSTORE_KEY_PASS=mock
CI_KEYSTORE_PASS=mock
DEBUG_GOOGLE_OAUTH_ID=mock
RELEASE_GOOGLE_OAUTH_ID=mock
DWELLIR_API_KEY=mock
EHTERSCAN_API_KEY_ETHEREUM=mock
EHTERSCAN_API_KEY_MOONBEAM=mock
EHTERSCAN_API_KEY_MOONRIVER=mock
INFURA_API_KEY=mock
MERCURYO_PRODUCTION_SECRET=mock
MERCURYO_TEST_SECRET=mock
MOONBEAM_PROD_AUTH_TOKEN=mock
MOONBEAM_TEST_AUTH_TOKEN=mock
MOONPAY_PRODUCTION_SECRET=mock
MOONPAY_TEST_SECRET=mock
WALLET_CONNECT_PROJECT_ID=mock

Note: Firebase and Google-related features (Notifications, Cloud Backups) require proper configuration.

Build Types

  • debug: Uses fixed keystore for Google services
  • debugLocal: Uses your local debug keystore
  • release: Production build

Supported Languages

  • English
  • Turkish (Türkçe)
  • Kurdish Kurmanji (Kurmancî)
  • Spanish (Español)
  • French (Français)
  • German (Deutsch)
  • Russian (Русский)
  • Japanese (日本語)
  • Chinese (中文)
  • Korean (한국어)
  • Portuguese (Português)
  • Vietnamese (Tiếng Việt)
  • And more...

Resources

License

Pezkuwi Wallet Android is available under the Apache 2.0 license. See the LICENSE file for more info.

Based on Nova Wallet (https://novawallet.io) - © Novasama Technologies GmbH

© Dijital Kurdistan Tech Institute 2026

S
Description
No description provided
Readme 202 MiB
Languages
Kotlin 99.6%
Rust 0.2%
Java 0.1%