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
+
+