mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
"Skip Tutorial" button moved to parent view so that it does not animate by swipes. (#1945)
* Update WelcomeActivity.java Now it starts welcome screen after not finishing the pager. Moved "Skip Tutorial" button here so it does not animate by swipe. * Update activity_welcome.xml Putting "Skip Tutorial" button here so that it does not animate by swipes. * Update LoginActivity.java Removing the set of "first run " flag from here. we set it after the buttons press or on WelcomeActivity's finish() * Update welcome_do_upload.xml removing "skip tut" button from here. * Update welcome_dont_upload.xml Removing "Skip Tutorial" button from here so that it does not animate by swipes. * Update welcome_image_details.xml Removing "Skip Tutorial" button from here so that it does not animate by swipes. * Update welcome_wikipedia.xml Removing "Skip Tutorial" button from here so that it does not animate by swipes. * Update WelcomePagerAdapter.java the "welcomyesButton" is removed from the child views in pager, so it is optional now. * Add JavaDoc to WelcomeActivity.onBackPressed() * Fix #2103: Remove welcomeYesButton from landscape layout * Refactor WelcomePagerAdapter
This commit is contained in:
parent
11e5c3c01a
commit
f79456ec8e
14 changed files with 89 additions and 182 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -9,21 +9,6 @@
|
|||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginEnd="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:textColor="#fff"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<android.support.constraint.Guideline
|
||||
android:id="@+id/center_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -6,21 +6,6 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:background="#0c609c">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginEnd="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:textColor="#fff"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<android.support.constraint.Guideline
|
||||
android:id="@+id/center_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
android:layout_marginBottom="@dimen/large_gap"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/welcome_help_button_text"
|
||||
android:id="@+id/welcomeInfo"
|
||||
android:layout_gravity="end|top"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
|
|
@ -73,7 +72,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:layout_gravity="center"
|
||||
android:background="@android:color/white"
|
||||
android:textColor="#0c609c"
|
||||
|
|
|
|||
|
|
@ -8,21 +8,6 @@
|
|||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginEnd="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:textColor="#fff"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<android.support.constraint.Guideline
|
||||
android:id="@+id/center_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -7,21 +7,6 @@
|
|||
android:layout_height="match_parent"
|
||||
android:background="#0c609c">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginEnd="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:textColor="#fff"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<android.support.constraint.Guideline
|
||||
android:id="@+id/center_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,21 @@
|
|||
android:layout_height="match_parent"
|
||||
android:fadingEdge="none" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:id="@+id/finishTutorialButton"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:layout_gravity="right"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="#fff"
|
||||
android:textStyle="bold"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<com.viewpagerindicator.CirclePageIndicator
|
||||
android:id="@+id/welcomePagerIndicator"
|
||||
android:layout_height="@dimen/half_standard_height"
|
||||
|
|
|
|||
|
|
@ -164,20 +164,5 @@
|
|||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="right"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="#fff"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
@ -138,20 +138,4 @@
|
|||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="right"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="#fff"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -135,18 +135,5 @@
|
|||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="right"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="#fff"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
@ -49,18 +49,5 @@
|
|||
android:textColor="@android:color/white"
|
||||
/>
|
||||
</LinearLayout>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/overflow_button_dimen"
|
||||
android:layout_marginTop="@dimen/standard_gap"
|
||||
android:layout_marginRight="@dimen/standard_gap"
|
||||
android:text="@string/welcome_skip_button"
|
||||
android:id="@+id/welcomeYesButton"
|
||||
android:textSize="@dimen/normal_text"
|
||||
android:visibility="gone"
|
||||
android:layout_gravity="right"
|
||||
android:layout_alignParentRight="true"
|
||||
android:textColor="#fff"
|
||||
android:textStyle="bold"
|
||||
/>
|
||||
|
||||
</RelativeLayout>
|
||||
Loading…
Add table
Add a link
Reference in a new issue