13
13
import android .widget .ImageView ;
14
14
15
15
import androidx .annotation .NonNull ;
16
+ import androidx .annotation .StringRes ;
16
17
import androidx .appcompat .view .menu .MenuBuilder ;
17
18
import androidx .core .content .ContextCompat ;
18
19
import androidx .viewpager .widget .ViewPager ;
42
43
import org .chromium .chrome .browser .crypto_wallet .fragments .onboarding .OnboardingRecoveryPhraseFragment ;
43
44
import org .chromium .chrome .browser .crypto_wallet .fragments .onboarding .OnboardingRestoreWalletFragment ;
44
45
import org .chromium .chrome .browser .crypto_wallet .fragments .onboarding .OnboardingSecurePasswordFragment ;
46
+ import org .chromium .chrome .browser .crypto_wallet .fragments .onboarding .OnboardingTermsOfUseFragment ;
45
47
import org .chromium .chrome .browser .crypto_wallet .fragments .onboarding .OnboardingVerifyRecoveryPhraseFragment ;
46
48
import org .chromium .chrome .browser .crypto_wallet .listeners .OnNextPage ;
47
49
import org .chromium .chrome .browser .crypto_wallet .util .NavigationItem ;
@@ -76,6 +78,8 @@ public enum WalletAction {
76
78
// Unlock action type triggered when accessing the locked Wallet.
77
79
UNLOCK ,
78
80
// Restore action part of the onboarding flow, triggered when restoring a Wallet.
81
+ ONBOARDING_RESTORE ,
82
+ // Restore action triggered outside onboarding flow on a pre-existing wallet.
79
83
RESTORE
80
84
}
81
85
@@ -265,7 +269,7 @@ private void setNavigationFragments(@NonNull final WalletAction walletAction) {
265
269
UnlockWalletFragment unlockWalletFragment = new UnlockWalletFragment ();
266
270
navigationItems .add (new NavigationItem (
267
271
getResources ().getString (R .string .unlock_wallet_title ), unlockWalletFragment ));
268
- } else if (walletAction == WalletAction .RESTORE ) {
272
+ } else if (walletAction == WalletAction .ONBOARDING_RESTORE ) {
269
273
mShowBiometricPrompt = false ;
270
274
OnboardingRestoreWalletFragment onboardingRestoreWalletFragment =
271
275
OnboardingRestoreWalletFragment .newInstance ();
@@ -285,38 +289,44 @@ private void setNavigationFragments(@NonNull final WalletAction walletAction) {
285
289
private void replaceNavigationFragments (@ NonNull final WalletAction walletAction ) {
286
290
if (mCryptoWalletOnboardingViewPager == null ) return ;
287
291
if (mCryptoWalletOnboardingPagerAdapter == null ) return ;
288
- if (walletAction == WalletAction .RESTORE ) {
292
+
293
+ final List <NavigationItem > navigationItems = new ArrayList <>();
294
+ // Terms of use screen is shown only during onboarding actions.
295
+ if (walletAction != WalletAction .RESTORE ) {
296
+ final OnboardingTermsOfUseFragment onboardingTermsOfUseFragment =
297
+ OnboardingTermsOfUseFragment .newInstance ();
298
+ navigationItems .add (
299
+ new NavigationItem (
300
+ getResources ().getString (R .string .before_we_begin ),
301
+ onboardingTermsOfUseFragment ));
302
+ }
303
+
304
+ if (walletAction == WalletAction .ONBOARDING_RESTORE
305
+ || walletAction == WalletAction .RESTORE ) {
289
306
mShowBiometricPrompt = false ;
290
- OnboardingRestoreWalletFragment onboardingRestoreWalletFragment =
307
+
308
+ final OnboardingRestoreWalletFragment onboardingRestoreWalletFragment =
291
309
OnboardingRestoreWalletFragment .newInstance ();
292
- mCryptoWalletOnboardingPagerAdapter . replaceWithNavigationItem (
310
+ navigationItems . add (
293
311
new NavigationItem (
294
312
getResources ().getString (R .string .restore_crypto_account ),
295
- onboardingRestoreWalletFragment ),
296
- mCryptoWalletOnboardingViewPager . getCurrentItem () + 1 );
313
+ onboardingRestoreWalletFragment ));
314
+ addWalletCreationPage ( navigationItems , R . string . your_wallet_is_restoring_page_title );
297
315
298
- OnboardingCreatingWalletFragment onboardingCreatingWalletFragment =
299
- new OnboardingCreatingWalletFragment ();
300
- mCryptoWalletOnboardingPagerAdapter .replaceWithNavigationItem (
301
- new NavigationItem (
302
- getResources ().getString (R .string .your_wallet_is_restoring_page_title ),
303
- onboardingCreatingWalletFragment ),
304
- mCryptoWalletOnboardingPagerAdapter .getCount ());
305
316
} else if (walletAction == WalletAction .PASSWORD_CREATION ) {
306
317
mShowBiometricPrompt = true ;
307
- List < NavigationItem > navigationItems = new ArrayList <>();
308
- OnboardingSecurePasswordFragment onboardingSecurePasswordFragment =
318
+
319
+ final OnboardingSecurePasswordFragment onboardingSecurePasswordFragment =
309
320
new OnboardingSecurePasswordFragment ();
310
321
navigationItems .add (
311
322
new NavigationItem (
312
323
getResources ().getString (R .string .secure_your_crypto ),
313
324
onboardingSecurePasswordFragment ));
314
- addWalletCreatingPage (navigationItems );
325
+ addWalletCreationPage (navigationItems , R . string . your_wallet_is_creating_page_title );
315
326
addBackupWalletSequence (navigationItems , true );
316
- mCryptoWalletOnboardingPagerAdapter .replaceWithNavigationItems (
317
- navigationItems , mCryptoWalletOnboardingViewPager .getCurrentItem () + 1 );
318
327
}
319
-
328
+ mCryptoWalletOnboardingPagerAdapter .replaceWithNavigationItems (
329
+ navigationItems , mCryptoWalletOnboardingViewPager .getCurrentItem () + 1 );
320
330
mCryptoWalletOnboardingPagerAdapter .notifyDataSetChanged ();
321
331
322
332
mCryptoWalletOnboardingViewPager .setCurrentItem (
@@ -346,7 +356,7 @@ private void addRemoveSecureFlag(final boolean add) {
346
356
}
347
357
348
358
private void addBackupWalletSequence (
349
- List <NavigationItem > navigationItems , boolean isOnboarding ) {
359
+ @ NonNull final List <NavigationItem > navigationItems , final boolean isOnboarding ) {
350
360
OnboardingBackupWalletFragment onboardingBackupWalletFragment =
351
361
OnboardingBackupWalletFragment .newInstance (isOnboarding );
352
362
navigationItems .add (
@@ -367,13 +377,13 @@ private void addBackupWalletSequence(
367
377
onboardingVerifyRecoveryPhraseFragment ));
368
378
}
369
379
370
- private void addWalletCreatingPage (List <NavigationItem > navigationItems ) {
380
+ private void addWalletCreationPage (
381
+ @ NonNull final List <NavigationItem > navigationItems , @ StringRes int stringId ) {
371
382
OnboardingCreatingWalletFragment onboardingCreatingWalletFragment =
372
383
new OnboardingCreatingWalletFragment ();
373
384
navigationItems .add (
374
385
new NavigationItem (
375
- getResources ().getString (R .string .your_wallet_is_creating_page_title ),
376
- onboardingCreatingWalletFragment ));
386
+ getResources ().getString (stringId ), onboardingCreatingWalletFragment ));
377
387
}
378
388
379
389
public void showOnboardingLayout () {
@@ -455,7 +465,8 @@ public void gotoCreationPage() {
455
465
456
466
@ Override
457
467
public void gotoRestorePage (boolean isOnboarding ) {
458
- replaceNavigationFragments (WalletAction .RESTORE );
468
+ replaceNavigationFragments (
469
+ isOnboarding ? WalletAction .ONBOARDING_RESTORE : WalletAction .RESTORE );
459
470
if (isOnboarding ) {
460
471
mBraveWalletP3A .reportOnboardingAction (OnboardingAction .START_RESTORE );
461
472
}
0 commit comments