diff --git a/app/build.gradle b/app/build.gradle index 349a5f432..550019cc5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -154,6 +154,7 @@ android { buildConfigField "String", "EVENTLOG_WIKI", "\"commonswiki\"" buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.org/w/index.php?title=Main_Page&welcome=yes\"" + buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.org/wiki/Special:PasswordReset\"" dimension 'tier' } @@ -168,6 +169,7 @@ android { buildConfigField "String", "EVENTLOG_WIKI", "\"commonswiki\"" buildConfigField "String", "SIGNUP_LANDING_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Special:CreateAccount&returnto=Main+Page&returntoquery=welcome%3Dyes\"" buildConfigField "String", "SIGNUP_SUCCESS_REDIRECTION_URL", "\"https://commons.m.wikimedia.beta.wmflabs.org/w/index.php?title=Main_Page&welcome=yes\"" + buildConfigField "String", "FORGOT_PASSWORD_URL", "\"https://commons.wikimedia.beta.wmflabs.org/wiki/Special:PasswordReset\"" dimension 'tier' } } diff --git a/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java b/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java index 5be309252..80caf0010 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java +++ b/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java @@ -5,6 +5,7 @@ import android.preference.PreferenceManager; import android.support.test.espresso.Espresso; import android.support.test.espresso.action.ViewActions; import android.support.test.espresso.assertion.ViewAssertions; +import android.support.test.espresso.matcher.PreferenceMatchers; import android.support.test.espresso.matcher.ViewMatchers; import android.support.test.filters.LargeTest; import android.support.test.rule.ActivityTestRule; @@ -61,7 +62,7 @@ public class SettingsActivityTest { @Test public void oneLicenseIsChecked() { // click "License" (the first item) - Espresso.onData(Matchers.anything()) + Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) .inAdapterView(ViewMatchers.withId(android.R.id.list)) .atPosition(0) .perform(ViewActions.click()); @@ -74,7 +75,7 @@ public class SettingsActivityTest { @Test public void afterClickingCcby4ItWillStay() { // click "License" (the first item) - Espresso.onData(Matchers.anything()) + Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) .inAdapterView(ViewMatchers.withId(android.R.id.list)) .atPosition(0) .perform(ViewActions.click()); @@ -85,7 +86,7 @@ public class SettingsActivityTest { ).perform(ViewActions.click()); // click "License" (the first item) - Espresso.onData(Matchers.anything()) + Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) .inAdapterView(ViewMatchers.withId(android.R.id.list)) .atPosition(0) .perform(ViewActions.click()); @@ -96,4 +97,4 @@ public class SettingsActivityTest { ViewMatchers.withText(R.string.license_name_cc_by_four) )); } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java index bb7b1fc1e..97fe27aa4 100644 --- a/app/src/main/java/fr/free/nrw/commons/AboutActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/AboutActivity.java @@ -4,6 +4,8 @@ import android.annotation.SuppressLint; import android.content.Intent; import android.net.Uri; import android.os.Bundle; +import android.text.SpannableString; +import android.text.style.UnderlineSpan; import android.util.Log; import android.support.customtabs.CustomTabsIntent; import android.support.v4.content.ContextCompat; @@ -25,6 +27,7 @@ import static android.widget.Toast.LENGTH_SHORT; public class AboutActivity extends NavigationBaseActivity { @BindView(R.id.about_version) TextView versionText; @BindView(R.id.about_license) HtmlTextView aboutLicenseText; + @BindView(R.id.about_faq) TextView faqText; /** * This method helps in the creation About screen @@ -40,7 +43,9 @@ public class AboutActivity extends NavigationBaseActivity { ButterKnife.bind(this); String aboutText = getString(R.string.about_license); aboutLicenseText.setHtmlText(aboutText); - + SpannableString content = new SpannableString(getString(R.string.about_faq)); + content.setSpan(new UnderlineSpan(), 0, content.length(), 0); + faqText.setText(content); versionText.setText(BuildConfig.VERSION_NAME); initDrawer(); } @@ -113,4 +118,9 @@ public class AboutActivity extends NavigationBaseActivity { } } + @OnClick(R.id.about_faq) + public void launchFrequentlyAskedQuesions(View view) { + Utils.handleWebUrl(this,Uri.parse("https://github.com/commons-app/apps-android-commons/wiki/Frequently-Asked-Questions\\")); + } + } 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 a346655cf..705de23da 100644 --- a/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/WelcomePagerAdapter.java @@ -5,6 +5,7 @@ import android.support.v4.view.PagerAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.TextView; import butterknife.ButterKnife; import butterknife.OnClick; @@ -54,10 +55,18 @@ public class WelcomePagerAdapter extends PagerAdapter { public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = LayoutInflater.from(container.getContext()); ViewGroup layout = (ViewGroup) inflater.inflate(PAGE_LAYOUTS[position], container, false); - - if (position == PAGE_FINAL) { + if( BuildConfig.FLAVOR == "beta"){ + TextView textView = (TextView) layout.findViewById(R.id.welcomeYesButton); + if( textView.getVisibility() != View.VISIBLE){ + textView.setVisibility(View.VISIBLE); + } ViewHolder holder = new ViewHolder(layout); layout.setTag(holder); + } else { + if (position == PAGE_FINAL) { + ViewHolder holder = new ViewHolder(layout); + layout.setTag(holder); + } } container.addView(layout); return layout; @@ -92,5 +101,6 @@ public class WelcomePagerAdapter extends PagerAdapter { callback.onYesClicked(); } } + } } 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 cbdff2e0b..8a41664a9 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 @@ -8,6 +8,7 @@ import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; +import android.net.Uri; import android.os.Bundle; import android.support.annotation.ColorRes; import android.support.annotation.NonNull; @@ -27,6 +28,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; import java.io.IOException; @@ -44,6 +46,7 @@ import fr.free.nrw.commons.contributions.ContributionsActivity; import fr.free.nrw.commons.di.ApplicationlessInjection; import fr.free.nrw.commons.mwapi.MediaWikiApi; import fr.free.nrw.commons.theme.NavigationBaseActivity; +import fr.free.nrw.commons.ui.widget.HtmlTextView; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -73,7 +76,9 @@ public class LoginActivity extends AccountAuthenticatorActivity { @BindView(R.id.error_message_container) ViewGroup errorMessageContainer; @BindView(R.id.error_message) TextView errorMessage; @BindView(R.id.login_credentials) TextView loginCredentials; - @BindView(R.id.two_factor_container)TextInputLayout twoFactorContainer; + @BindView(R.id.two_factor_container) TextInputLayout twoFactorContainer; + @BindView(R.id.forgotPassword) HtmlTextView forgotPasswordText; + ProgressDialog progressDialog; private AppCompatDelegate delegate; private LoginTextWatcher textWatcher = new LoginTextWatcher(); @@ -114,6 +119,8 @@ public class LoginActivity extends AccountAuthenticatorActivity { loginButton.setOnClickListener(view -> performLogin()); signupButton.setOnClickListener(view -> signUp()); + forgotPasswordText.setOnClickListener(view -> forgotPassword()); + if(BuildConfig.FLAVOR == "beta"){ loginCredentials.setText(getString(R.string.login_credential)); } else { @@ -121,6 +128,10 @@ public class LoginActivity extends AccountAuthenticatorActivity { } } + private void forgotPassword() { + Utils.handleWebUrl(this, Uri.parse(BuildConfig.FORGOT_PASSWORD_URL)); + } + public void hideKeyboard(View view) { InputMethodManager inputMethodManager =(InputMethodManager)this.getSystemService(Activity.INPUT_METHOD_SERVICE); diff --git a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java index 66be88e3f..c7ee3df48 100644 --- a/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/settings/SettingsFragment.java @@ -10,7 +10,7 @@ import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; -import android.preference.CheckBoxPreference; +import android.preference.SwitchPreference; import android.preference.EditTextPreference; import android.preference.ListPreference; import android.preference.Preference; @@ -59,7 +59,7 @@ public class SettingsFragment extends PreferenceFragment { return true; }); - CheckBoxPreference themePreference = (CheckBoxPreference) findPreference("theme"); + SwitchPreference themePreference = (SwitchPreference) findPreference("theme"); themePreference.setOnPreferenceChangeListener((preference, newValue) -> { getActivity().recreate(); return true; diff --git a/app/src/main/res/layout-land/activity_login.xml b/app/src/main/res/layout-land/activity_login.xml index 2914f9530..deb295438 100644 --- a/app/src/main/res/layout-land/activity_login.xml +++ b/app/src/main/res/layout-land/activity_login.xml @@ -187,12 +187,23 @@ + + + + + + - + + android:text="@string/forgot_password" /> + - + + + + diff --git a/app/src/main/res/layout/welcome_do_upload.xml b/app/src/main/res/layout/welcome_do_upload.xml index fab6452df..bf2401913 100644 --- a/app/src/main/res/layout/welcome_do_upload.xml +++ b/app/src/main/res/layout/welcome_do_upload.xml @@ -1,5 +1,5 @@ - + + + - \ No newline at end of file + \ 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 d819bc035..3e244e1fa 100644 --- a/app/src/main/res/layout/welcome_dont_upload.xml +++ b/app/src/main/res/layout/welcome_dont_upload.xml @@ -1,11 +1,18 @@ - + + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/layout/welcome_image_details.xml b/app/src/main/res/layout/welcome_image_details.xml index e38eb5979..7202df4c0 100644 --- a/app/src/main/res/layout/welcome_image_details.xml +++ b/app/src/main/res/layout/welcome_image_details.xml @@ -1,12 +1,18 @@ - - + + - - \ No newline at end of file + + \ 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 ece52628e..0708b5ea9 100644 --- a/app/src/main/res/layout/welcome_wikipedia.xml +++ b/app/src/main/res/layout/welcome_wikipedia.xml @@ -1,11 +1,18 @@ - + - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6d6e9ebe1..8579f7645 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,12 +1,17 @@ + Appearance + General + Feedback + Location Commons Settings Username Password - Log in to your Commons Beta account + Log in to your Commons Beta account Log in + Forgot Password? Sign up Logging in Please wait… @@ -80,8 +85,8 @@ The Wikimedia Commons app is an open-source app created and maintained by grantees and volunteers of the Wikimedia community. The Wikimedia Foundation is not involved in the creation, development, or maintenance of the app. Wikimedia Commons Create a new <a href=\"https://github.com/commons-app/apps-android-commons/issues\">GitHub issue</a> for bug reports and suggestions. - Privacy policy - Credits + Privacy policy]]> + Credits]]> About Send Feedback (via Email) No email client installed @@ -93,7 +98,7 @@ This image will be licensed under %1$s By submitting this picture, I declare that this is my own work, that it does not contain copyrighted material or selfies, and otherwise adheres to <a href=\"https://commons.wikimedia.org/wiki/Commons:Policies_and_guidelines\">Wikimedia Commons policies</a>. Download - License + Default License Use previous title/description Automatically get current location Retrieve current location to offer category suggestions if image is not geotagged @@ -169,8 +174,6 @@ Become a Beta Tester Opt-in to our beta channel on Google Play and get early access to new features and bug fixes https://play.google.com/apps/testing/fr.free.nrw.commons - Use Wikidata - (Warning: disabling this may cause large mobile data consumption) mapbox://styles/mapbox/traffic-day-v2 mapbox://styles/mapbox/traffic-night-v2 pk.eyJ1IjoibWFza2FyYXZpdmVrIiwiYSI6ImNqMmxvdzFjMTAwMHYzM283ZWM3eW5tcDAifQ.ib5SZ9EVjwJe6GSKve0bcg @@ -241,4 +244,6 @@ %1$s mentioned you on %2$s. Toggle view Rate Us + Frequently Asked Questions + Skip Tutorial diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index b7b63d39c..70ab2736f 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -1,61 +1,68 @@ + xmlns:android="http://schemas.android.com/apk/res/android"> - + - + - - - + - + - + - + - + - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f16d26666..c25f3eb11 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Sat Mar 03 13:58:47 IST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip