From dabcd43a5b2492b9e5494da49c028ec233b5a480 Mon Sep 17 00:00:00 2001 From: sp2710 <39745544+sp2710@users.noreply.github.com> Date: Fri, 4 Jan 2019 20:56:39 +0530 Subject: [PATCH] Removed default license settings, and implemented selecting last selected license as default licence(#2170) (#2218) * Removed default license settings, and implemented selecting last selected license as default licence(#2170) * Replace settings license tests with recent upload limit test --- .../nrw/commons/SettingsActivityTest.java | 67 +++++++++---------- .../commons/settings/SettingsFragment.java | 10 --- .../free/nrw/commons/upload/UploadModel.java | 1 + app/src/main/res/xml/preferences.xml | 7 -- 4 files changed, 32 insertions(+), 53 deletions(-) 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 4057cca42..4efdc2953 100644 --- a/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java +++ b/app/src/androidTest/java/fr/free/nrw/commons/SettingsActivityTest.java @@ -3,10 +3,7 @@ package fr.free.nrw.commons; import android.content.SharedPreferences; 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; import android.support.test.runner.AndroidJUnit4; @@ -17,8 +14,17 @@ import org.junit.runner.RunWith; import java.util.Map; +import fr.free.nrw.commons.settings.Prefs; import fr.free.nrw.commons.settings.SettingsActivity; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.action.ViewActions.replaceText; +import static android.support.test.espresso.assertion.ViewAssertions.matches; +import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withText; +import static org.hamcrest.Matchers.allOf; +import static org.junit.Assert.assertEquals; + @LargeTest @RunWith(AndroidJUnit4.class) public class SettingsActivityTest { @@ -27,8 +33,7 @@ public class SettingsActivityTest { @Rule public ActivityTestRule activityRule = - new ActivityTestRule(SettingsActivity.class, - false /* Initial touch mode */, true /* launch activity */) { + new ActivityTestRule(SettingsActivity.class, false, true) { @Override protected void afterActivityLaunched() { @@ -59,41 +64,31 @@ public class SettingsActivityTest { }; @Test - public void oneLicenseIsChecked() { - // click "License" (the first item) - Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) - .inAdapterView(ViewMatchers.withId(android.R.id.list)) - .atPosition(0) - .perform(ViewActions.click()); + public void setRecentUploadLimitTo100() { + // Open "Use external storage" preference + Espresso.onData(PreferenceMatchers.withKey("uploads")) + .inAdapterView(withId(android.R.id.list)) + .perform(click()); - // test the selected item - Espresso.onView(ViewMatchers.isChecked()) - .check(ViewAssertions.matches(ViewMatchers.isDisplayed())); - } + // Try setting it to 100 + Espresso.onView(withId(android.R.id.edit)) - @Test - public void afterClickingCcby4ItWillStay() { - // click "License" (the first item) - Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) - .inAdapterView(ViewMatchers.withId(android.R.id.list)) - .atPosition(0) - .perform(ViewActions.click()); + .perform(replaceText("100")); - // click "Attribution 4.0" - Espresso.onView( - ViewMatchers.withText(R.string.license_name_cc_by_four) - ).perform(ViewActions.click()); + // Click "OK" + Espresso.onView(allOf(withId(android.R.id.button1), withText("OK"))) + .perform(click()); - // click "License" (the first item) - Espresso.onData(PreferenceMatchers.withKey("defaultLicense")) - .inAdapterView(ViewMatchers.withId(android.R.id.list)) - .atPosition(0) - .perform(ViewActions.click()); + // Check setting set to 100 in SharedPreferences + assertEquals( + 100, + prefs.getInt(Prefs.UPLOADS_SHOWING, 0) + ); - // test the value remains "Attribution 4.0" - Espresso.onView(ViewMatchers.isChecked()) - .check(ViewAssertions.matches( - ViewMatchers.withText(R.string.license_name_cc_by_four) - )); + // Check displaying 100 in summary text + Espresso.onData(PreferenceMatchers.withKey("uploads")) + .inAdapterView(withId(android.R.id.list)) + .onChildView(withId(android.R.id.summary)) + .check(matches(withText("100"))); } } 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 79fde71e4..7b020d63e 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 @@ -47,16 +47,6 @@ public class SettingsFragment extends PreferenceFragment { // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); - // Update spinner to show selected value as summary - ListPreference licensePreference = (ListPreference) findPreference(Prefs.DEFAULT_LICENSE); - licensePreference.setSummary(getString(Utils.licenseNameFor(licensePreference.getValue()))); - - // Keep summary updated when changing value - licensePreference.setOnPreferenceChangeListener((preference, newValue) -> { - preference.setSummary(getString(Utils.licenseNameFor((String) newValue))); - return true; - }); - SwitchPreference themePreference = (SwitchPreference) findPreference("theme"); themePreference.setOnPreferenceChangeListener((preference, newValue) -> { getActivity().recreate(); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java index a3eabede0..95666f39a 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadModel.java @@ -332,6 +332,7 @@ public class UploadModel { void setSelectedLicense(String licenseName) { this.license = licensesByName.get(licenseName); + prefs.edit().putString(Prefs.DEFAULT_LICENSE, license).commit(); } Observable buildContributions(List categoryStringList) { diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index cde68728a..69ee772e1 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -16,13 +16,6 @@ - -