@@ -75,6 +75,8 @@ public class GDriveSyncSetupActivity extends AppCompatActivity {
7575
7676 private boolean mLoading ;
7777
78+ private boolean mSkipFirstStep = false ;
79+
7880 private final List <GDriveFile > mPath = new ArrayList <>();
7981
8082 private final List <GDriveFile > mFiles = new ArrayList <>();
@@ -91,9 +93,9 @@ public class GDriveSyncSetupActivity extends AppCompatActivity {
9193
9294 private View mSelectFolderView ;
9395
94- private TextView mStepDescription ;
96+ private TextView mStep3Description ;
9597
96- private TextView mStepFolder ;
98+ private TextView mStep3Folder ;
9799
98100 private DisposableObserver <AppAccount > mAppAccountObserver ;
99101
@@ -109,13 +111,29 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
109111 mViewPager = findViewById (R .id .drive_pager );
110112 mViewPager .setAdapter (mPagerAdapter );
111113 mViewPager .setOnTouchListener ((v , event ) -> true );
114+
115+ mLoader = findViewById (R .id .drive_loader );
116+
117+ GDriveAccount gda = GDriveShared .getCredentials (this );
118+ if (gda != null ) {
119+ // if the google account is already set, go to folder selection
120+ mSkipFirstStep = true ;
121+ mAccountId = gda .accountId ;
122+ mEmail = gda .email ;
123+ mFolderId = gda .folderId ;
124+ mToken = gda .token ;
125+
126+ mViewPager .setCurrentItem (1 , true );
127+ }
128+
112129 mViewPager .addOnPageChangeListener (new ViewPager .SimpleOnPageChangeListener () {
113130 @ Override
114131 public void onPageSelected (int position ) {
115- findViewById (R .id .drive_header_action_back ).setVisibility (position > 0 ? View .VISIBLE : View .INVISIBLE );
132+ boolean isBackVisible = position > 1 || (position == 1 && !mSkipFirstStep );
133+
134+ findViewById (R .id .drive_header_action_back ).setVisibility (isBackVisible ? View .VISIBLE : View .INVISIBLE );
116135 }
117136 });
118- mLoader = findViewById (R .id .drive_loader );
119137
120138 findViewById (R .id .auth_terms ).setOnClickListener (v -> {
121139 final Intent intent = new Intent (this , WebActivity .class );
@@ -168,6 +186,11 @@ public void onBackPressed() {
168186 return ;
169187 }
170188 if (current == 1 ) {
189+ if (mSkipFirstStep ) {
190+ finish ();
191+ return ;
192+ }
193+
171194 if (mPath .size () > 0 ) {
172195 mPath .remove (mPath .size () - 1 );
173196 loadFolder ();
@@ -300,6 +323,13 @@ private View onCreateStep2(@NonNull ViewGroup container) {
300323 mNavigationCurrentText = view .findViewById (R .id .drive_current );
301324 mSelectFolderView = view .findViewById (R .id .drive_btn_select );
302325 mSelectFolderView .setOnClickListener (v -> onFolderSelected ());
326+
327+ if (mViewPager .getCurrentItem () == 1 ) {
328+ mPath .clear ();
329+ mFiles .clear ();
330+ showLoader ();
331+ loadFolder ();
332+ }
303333 return view ;
304334 }
305335
@@ -419,17 +449,17 @@ private void onFolderSelected() {
419449
420450 private View onCreateStep3 (@ NonNull ViewGroup container ) {
421451 final View view = getLayoutInflater ().inflate (R .layout .activity_drive_setup__step_3 , container , false );
422- mStepDescription = view .findViewById (R .id .drive_description );
423- mStepFolder = view .findViewById (R .id .drive_folder );
452+ mStep3Description = view .findViewById (R .id .drive_description );
453+ mStep3Folder = view .findViewById (R .id .drive_folder );
424454 view .findViewById (R .id .drive_btn_confirm ).setOnClickListener (v -> onFolderSelectionConfirmed ());
425455 return view ;
426456 }
427457
428458 private void goToStep3 () {
429459 GDriveFile f = mPath .get (mPath .size () - 1 );
430460 mFolderId = f .id ;
431- mStepDescription .setText (getString (R .string .drive_setup_step_3_description , f .name ));
432- mStepFolder .setText (f .name );
461+ mStep3Description .setText (getString (R .string .drive_setup_step_3_description , f .name ));
462+ mStep3Folder .setText (f .name );
433463 mViewPager .setCurrentItem (2 , true );
434464 }
435465
@@ -439,8 +469,6 @@ private void onFolderSelectionConfirmed() {
439469
440470 private View onCreateStep4 (@ NonNull ViewGroup container ) {
441471 final View view = getLayoutInflater ().inflate (R .layout .activity_drive_setup__step_4 , container , false );
442- mStepDescription = view .findViewById (R .id .drive_description );
443- mStepFolder = view .findViewById (R .id .drive_folder );
444472 view .findViewById (R .id .drive_btn_sync ).setOnClickListener (v -> onCompleted ());
445473 return view ;
446474 }
0 commit comments