Skip to content

Commit a65f809

Browse files
committed
On gdrive folder change start process from step 2
1 parent 1cbff83 commit a65f809

File tree

1 file changed

+38
-10
lines changed

1 file changed

+38
-10
lines changed

OpenScienceJournal/whistlepunk_library/src/main/java/com/google/android/apps/forscience/whistlepunk/gdrivesync/GDriveSyncSetupActivity.java

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)