Fix 2072: default license selector in Settings (#2084)

* SharedPreferences Dep Injection added, updateLicense() updated

method updateLicense() was previously looking to the UploadModel for the
current default license, this has now been changed so that it gets it from
a SharedPreferences object

* UploadModel.license aligned to SharedPreferences

variable UploadModel.license within the constuctor is now assigned to the string of the
"default_license" value within SharedPreferences

Admittedly this may not be completly necissary as UploadModel.license is modified via
UploadPresenter.updateLicense on creation.
This commit is contained in:
briancollins-92 2018-12-20 18:10:06 +00:00 committed by Adam Jones
parent aec377f547
commit fcd5432f74
2 changed files with 6 additions and 2 deletions

View file

@ -74,8 +74,8 @@ public class UploadModel {
FileProcessor fileProcessor) {
this.licenses = licenses;
this.prefs = prefs;
this.license = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
this.bitmapRegionDecoderWrapper = bitmapRegionDecoderWrapper;
this.license = Prefs.Licenses.CC_BY_SA_3;
this.licensesByName = licensesByName;
this.context = context;
this.mwApi = mwApi;

View file

@ -1,6 +1,7 @@
package fr.free.nrw.commons.upload;
import android.annotation.SuppressLint;
import android.content.SharedPreferences;
import android.net.Uri;
import android.util.Log;
@ -10,12 +11,14 @@ import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoriesModel;
import fr.free.nrw.commons.contributions.Contribution;
import fr.free.nrw.commons.mwapi.MediaWikiApi;
import fr.free.nrw.commons.settings.Prefs;
import fr.free.nrw.commons.utils.ImageUtils;
import io.reactivex.Completable;
import io.reactivex.Observable;
@ -50,6 +53,7 @@ public class UploadPresenter {
@UploadView.UploadPage
private int currentPage = UploadView.PLEASE_WAIT;
@Inject @Named("default_preferences")SharedPreferences prefs;
@Inject
UploadPresenter(UploadModel uploadModel,
@ -355,7 +359,7 @@ public class UploadPresenter {
* Sets the list of licences and the default license.
*/
private void updateLicenses() {
String selectedLicense = uploadModel.getSelectedLicense();
String selectedLicense = prefs.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
view.updateLicenses(uploadModel.getLicenses(), selectedLicense);
view.updateLicenseSummary(selectedLicense, uploadModel.getCount());
}