diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java index 109d115d4..21bc8af20 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomeActivity.java @@ -2,20 +2,33 @@ package fr.free.nrw.commons; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.view.ViewPager; +import android.view.View; import com.viewpagerindicator.CirclePageIndicator; +import javax.inject.Inject; +import javax.inject.Named; + import butterknife.BindView; import butterknife.ButterKnife; +import butterknife.OnClick; +import butterknife.Optional; import fr.free.nrw.commons.quiz.QuizActivity; import fr.free.nrw.commons.theme.BaseActivity; public class WelcomeActivity extends BaseActivity { - @BindView(R.id.welcomePager) ViewPager pager; - @BindView(R.id.welcomePagerIndicator) CirclePageIndicator indicator; + @Inject + @Named("application_preferences") + SharedPreferences prefs; + + @BindView(R.id.welcomePager) + ViewPager pager; + @BindView(R.id.welcomePagerIndicator) + CirclePageIndicator indicator; private WelcomePagerAdapter adapter = new WelcomePagerAdapter(); private boolean isQuiz; @@ -38,15 +51,20 @@ public class WelcomeActivity extends BaseActivity { if (bundle != null) { isQuiz = bundle.getBoolean("isQuiz"); } - } else{ + } else { isQuiz = false; } + // Enable skip button if beta flavor + if (BuildConfig.FLAVOR == "beta") { + findViewById(R.id.finishTutorialButton).setVisibility(View.VISIBLE); + } + ButterKnife.bind(this); pager.setAdapter(adapter); indicator.setViewPager(pager); - adapter.setCallback(this::finish); + adapter.setCallback(this::finishTutorial); } /** @@ -54,7 +72,7 @@ public class WelcomeActivity extends BaseActivity { */ @Override public void onDestroy() { - if (isQuiz){ + if (isQuiz) { Intent i = new Intent(WelcomeActivity.this, QuizActivity.class); startActivity(i); } @@ -71,4 +89,22 @@ public class WelcomeActivity extends BaseActivity { Intent welcomeIntent = new Intent(context, WelcomeActivity.class); context.startActivity(welcomeIntent); } + + /** + * Override onBackPressed() to go to previous tutorial 'pages' if not on first page + */ + @Override + public void onBackPressed() { + if (pager.getCurrentItem() != 0) { + pager.setCurrentItem(pager.getCurrentItem() - 1, true); + } else { + finish(); + } + } + + @OnClick(R.id.finishTutorialButton) + public void finishTutorial() { + prefs.edit().putBoolean("firstrun", false).apply(); + finish(); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java index f2c6d1054..4776abfe4 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -14,7 +14,7 @@ import butterknife.OnClick; import butterknife.Optional; public class WelcomePagerAdapter extends PagerAdapter { - static final int[] PAGE_LAYOUTS = new int[]{ + private static final int[] PAGE_LAYOUTS = new int[]{ R.layout.welcome_wikipedia, R.layout.welcome_do_upload, R.layout.welcome_dont_upload, @@ -57,29 +57,31 @@ public class WelcomePagerAdapter extends PagerAdapter { @Override public Object instantiateItem(ViewGroup container, int position) { - this.container=container; + this.container = container; LayoutInflater inflater = LayoutInflater.from(container.getContext()); ViewGroup layout = (ViewGroup) inflater.inflate(PAGE_LAYOUTS[position], container, false); - if (BuildConfig.FLAVOR == "beta") { - TextView textView = layout.findViewById(R.id.welcomeYesButton); - if (textView.getVisibility() != View.VISIBLE) { - textView.setVisibility(View.VISIBLE); - } - ViewHolder holder = new ViewHolder(layout); - layout.setTag(holder); - if (position == PAGE_FINAL){ - TextView moreInfo = layout.findViewById(R.id.welcomeInfo); - moreInfo.setText(Html.fromHtml(WelcomeActivity.moreInformation)); - ViewHolder holder1 = new ViewHolder(layout); - layout.setTag(holder1); - } - } else { - if (position == PAGE_FINAL) { - ViewHolder holder = new ViewHolder(layout); - layout.setTag(holder); - } + // If final page + if (position == PAGE_FINAL) { + // Add link to more information + TextView moreInfo = layout.findViewById(R.id.welcomeInfo); + moreInfo.setText(Html.fromHtml(WelcomeActivity.moreInformation)); + moreInfo.setOnClickListener(view -> { + try { + Utils.handleWebUrl( + container.getContext(), + Uri.parse("https://commons.wikimedia.org/wiki/Help:Contents") + ); + } catch (Exception e) { + e.printStackTrace(); + } + }); + + // Handle click of finishTutorialButton ("YES!" button) inside layout + layout.findViewById(R.id.finishTutorialButton) + .setOnClickListener(view -> callback.finishTutorial()); } + container.addView(layout); return layout; } @@ -96,33 +98,6 @@ public class WelcomePagerAdapter extends PagerAdapter { } public interface Callback { - void onYesClicked(); - } - - class ViewHolder { - ViewHolder(View view) { - ButterKnife.bind(this, view); - } - - /** - * Triggers on click callback on button click - */ - @OnClick(R.id.welcomeYesButton) - void onClicked() { - if (callback != null) { - callback.onYesClicked(); - } - } - - @Optional - @OnClick(R.id.welcomeInfo) - void onHelpClicked () { - try { - Utils.handleWebUrl(container.getContext(),Uri.parse("https://commons.wikimedia.org/wiki/Help:Contents" )); - } catch (Exception e) { - e.printStackTrace(); - } - } - + void finishTutorial(); } } diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java index efa0165a9..320a896eb 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.java @@ -177,7 +177,6 @@ public class LoginActivity extends AccountAuthenticatorActivity { super.onResume(); if (prefs.getBoolean("firstrun", true)) { WelcomeActivity.startYourself(this); - prefs.edit().putBoolean("firstrun", false).apply(); } if (sessionManager.getCurrentAccount() != null diff --git a/app/src/main/res/layout-land/welcome_do_upload.xml b/app/src/main/res/layout-land/welcome_do_upload.xml index 01e5c2af3..5baceecec 100644 --- a/app/src/main/res/layout-land/welcome_do_upload.xml +++ b/app/src/main/res/layout-land/welcome_do_upload.xml @@ -9,21 +9,6 @@ android:gravity="center" android:orientation="horizontal"> - - - - - - - - + + - \ No newline at end of file + diff --git a/app/src/main/res/layout/welcome_do_upload.xml b/app/src/main/res/layout/welcome_do_upload.xml index bf2401913..c24ade705 100644 --- a/app/src/main/res/layout/welcome_do_upload.xml +++ b/app/src/main/res/layout/welcome_do_upload.xml @@ -164,20 +164,5 @@ - - - - \ No newline at end of file + + diff --git a/app/src/main/res/layout/welcome_dont_upload.xml b/app/src/main/res/layout/welcome_dont_upload.xml index 3e244e1fa..4efed7d5a 100644 --- a/app/src/main/res/layout/welcome_dont_upload.xml +++ b/app/src/main/res/layout/welcome_dont_upload.xml @@ -138,20 +138,4 @@ - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/welcome_final.xml b/app/src/main/res/layout/welcome_final.xml index 6a1d36c2a..786c48195 100644 --- a/app/src/main/res/layout/welcome_final.xml +++ b/app/src/main/res/layout/welcome_final.xml @@ -56,7 +56,7 @@ android:layout_height="@dimen/overflow_button_dimen" android:layout_marginTop="@dimen/standard_gap" android:text="@string/welcome_final_button_text" - android:id="@+id/welcomeYesButton" + android:id="@+id/finishTutorialButton" android:textSize="@dimen/normal_text" android:layout_gravity="center" android:background="@android:color/white" diff --git a/app/src/main/res/layout/welcome_image_details.xml b/app/src/main/res/layout/welcome_image_details.xml index 7202df4c0..6bea1044f 100644 --- a/app/src/main/res/layout/welcome_image_details.xml +++ b/app/src/main/res/layout/welcome_image_details.xml @@ -135,18 +135,5 @@ - - \ No newline at end of file + + diff --git a/app/src/main/res/layout/welcome_wikipedia.xml b/app/src/main/res/layout/welcome_wikipedia.xml index 0708b5ea9..9bc083d87 100644 --- a/app/src/main/res/layout/welcome_wikipedia.xml +++ b/app/src/main/res/layout/welcome_wikipedia.xml @@ -49,18 +49,5 @@ android:textColor="@android:color/white" /> - - \ No newline at end of file + +