Skip to content

feat(wallet): add home ad banners#6466

Open
SeniorZhai wants to merge 1 commit into
masterfrom
feat/wallet-home-ad-banner
Open

feat(wallet): add home ad banners#6466
SeniorZhai wants to merge 1 commit into
masterfrom
feat/wallet-home-ad-banner

Conversation

@SeniorZhai

Copy link
Copy Markdown
Member

No description provided.

@SeniorZhai SeniorZhai force-pushed the feat/wallet-home-ad-banner branch from 38a3e40 to acf2935 Compare June 23, 2026 08:04
@SeniorZhai SeniorZhai requested a review from Copilot June 23, 2026 08:09
@SeniorZhai SeniorZhai added the testing Now testing, but you can review label Jun 23, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for dynamic “home ad banners” on the wallet home screens by fetching banner configs from the referral service, rendering them in the existing banner pager, tracking interactions, and persisting dismissals.

Changes:

  • Introduces WalletHomeBanner/WalletHomeBannerAction models plus filtering (visibleWalletHomeBanners) and stores closed banner IDs in preferences.
  • Fetches wallet home banners via ReferralService/ReferralRepository, wires them into WalletHomeState, and renders dynamic banner pages in Compose.
  • Adds/extends tests covering banner visibility, priority filtering, and referral service endpoint/query behavior.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
app/src/test/java/one/mixin/android/ui/wallet/home/WalletHomeBuilderTest.kt Adds tests ensuring banner card visibility when dynamic banners exist / are closed / are prioritized.
app/src/test/java/one/mixin/android/api/service/ReferralServiceTest.kt New reflection-based test validating referral banners endpoint and lang query usage.
app/src/main/java/one/mixin/android/util/analytics/AnalyticsTracker.kt Adds tracking helper and source constants for wallet home ad banner interactions.
app/src/main/java/one/mixin/android/ui/wallet/WalletViewModel.kt Exposes walletHomeBanners() via ReferralRepository.
app/src/main/java/one/mixin/android/ui/wallet/WalletHomePrivacyFragment.kt Fetches, filters, renders, tracks, and persists dismissal of dynamic banners.
app/src/main/java/one/mixin/android/ui/wallet/WalletHomePreferences.kt Adds preference key for closed dynamic banner IDs.
app/src/main/java/one/mixin/android/ui/wallet/WalletHomeClassicFragment.kt Mirrors privacy fragment behavior for dynamic banners in classic wallet home.
app/src/main/java/one/mixin/android/ui/wallet/WalletFragment.kt Triggers banner refresh as part of wallet update flow.
app/src/main/java/one/mixin/android/ui/wallet/home/WalletHomeState.kt Extends state/callbacks to carry dynamic banners and banner interactions.
app/src/main/java/one/mixin/android/ui/wallet/home/components/BannerCards.kt Renders dynamic banner pages (icon/title/description/actions) in the pager and supports closing them.
app/src/main/java/one/mixin/android/ui/setting/LogAndDebugFragment.kt Includes new preference key in debug/diagnostic preference list.
app/src/main/java/one/mixin/android/ui/home/web3/Web3ViewModel.kt Exposes walletHomeBanners() via ReferralRepository for classic/web3 wallet flows.
app/src/main/java/one/mixin/android/repository/ReferralRepository.kt Implements banner fetch with bot session warm-up and error handling.
app/src/main/java/one/mixin/android/Constants.kt Minor formatting change around referral constants.
app/src/main/java/one/mixin/android/api/service/ReferralService.kt Adds app-banners endpoint + lang query helper.
app/src/main/java/one/mixin/android/api/response/WalletHomeBanner.kt New banner models + filtering/sorting helper.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +154 to +159
fun trackWalletHomeAdBanner(trackingKey: String?, source: String) {
if (trackingKey.isNullOrBlank()) return
logEvent(trackingKey) {
putString("source", source)
}
}
): MixinResponse<List<WalletHomeBanner>>

companion object {
fun walletHomeBannerLang(locale: Locale = Locale.getDefault()): String = locale.language + "-" + locale.country
@SeniorZhai SeniorZhai force-pushed the feat/wallet-home-ad-banner branch 9 times, most recently from 83c94b6 to 4f91c1c Compare June 23, 2026 15:41
@SeniorZhai SeniorZhai force-pushed the feat/wallet-home-ad-banner branch from 4f91c1c to 1f0f377 Compare June 23, 2026 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testing Now testing, but you can review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants