Consolidate shared prefs to a single store (#2613)

* Consolidate shared prefs to a single store
* Fix achievements activity
* Fix store usage
This commit is contained in:
Vivek Maskara 2019-03-16 19:26:56 +05:30 committed by Adam Jones
parent 51f58b7118
commit 7cb87f3cab
41 changed files with 207 additions and 279 deletions

View file

@ -18,7 +18,7 @@ import javax.inject.Named;
import javax.inject.Singleton;
import fr.free.nrw.commons.caching.CacheController;
import fr.free.nrw.commons.kvstore.BasicKvStore;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.mwapi.CategoryApi;
import io.reactivex.schedulers.Schedulers;
import timber.log.Timber;
@ -37,7 +37,7 @@ public class FileProcessor implements SimilarImageDialogFragment.onResponse {
CategoryApi apiCall;
@Inject
@Named("default_preferences")
BasicKvStore defaultKvStore;
JsonKvStore defaultKvStore;
private String filePath;
private ContentResolver contentResolver;
private GPSExtractor imageObj;

View file

@ -80,7 +80,7 @@ public class UploadActivity extends BaseActivity implements UploadView, SimilarI
@Inject MediaWikiApi mwApi;
@Inject
ContributionController contributionController;
@Inject @Named("direct_nearby_upload_prefs") JsonKvStore directKvStore;
@Inject @Named("default_preferences") JsonKvStore directKvStore;
@Inject UploadPresenter presenter;
@Inject CategoriesModel categoriesModel;
@Inject SessionManager sessionManager;

View file

@ -29,7 +29,7 @@ import fr.free.nrw.commons.HandlerService;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.contributions.Contribution;
import fr.free.nrw.commons.kvstore.BasicKvStore;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.settings.Prefs;
import fr.free.nrw.commons.utils.ViewUtil;
import timber.log.Timber;
@ -39,7 +39,7 @@ public class UploadController {
private UploadService uploadService;
private SessionManager sessionManager;
private Context context;
private BasicKvStore defaultKvStore;
private JsonKvStore store;
public interface ContributionUploadProgress {
void onUploadStarted(Contribution contribution);
@ -49,10 +49,10 @@ public class UploadController {
@Inject
public UploadController(SessionManager sessionManager,
Context context,
BasicKvStore store) {
JsonKvStore store) {
this.sessionManager = sessionManager;
this.context = context;
this.defaultKvStore = store;
this.store = store;
}
private boolean isUploadServiceConnected;
@ -110,8 +110,8 @@ public class UploadController {
//Set creator, desc, and license
// If author name is enabled and set, use it
if (defaultKvStore.getBoolean("useAuthorName", false)) {
String authorName = defaultKvStore.getString("authorName", "");
if (store.getBoolean("useAuthorName", false)) {
String authorName = store.getString("authorName", "");
contribution.setCreator(authorName);
}
@ -130,7 +130,7 @@ public class UploadController {
contribution.setDescription("");
}
String license = defaultKvStore.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
String license = store.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
contribution.setLicense(license);
//FIXME: Add permission request here. Only executeAsyncTask if permission has been granted

View file

@ -4,9 +4,6 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.net.Uri;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -22,7 +19,7 @@ import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.contributions.Contribution;
import fr.free.nrw.commons.filepicker.MimeTypeMapWrapper;
import fr.free.nrw.commons.filepicker.UploadableFile;
import fr.free.nrw.commons.kvstore.BasicKvStore;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.nearby.Place;
import fr.free.nrw.commons.settings.Prefs;
import fr.free.nrw.commons.utils.ImageUtils;
@ -46,7 +43,7 @@ public class UploadModel {
null,
-1L, "") {
};
private final BasicKvStore basicKvStore;
private final JsonKvStore store;
private final List<String> licenses;
private String license;
private final Map<String, String> licensesByName;
@ -64,15 +61,15 @@ public class UploadModel {
@Inject
UploadModel(@Named("licenses") List<String> licenses,
@Named("default_preferences") BasicKvStore basicKvStore,
@Named("default_preferences") JsonKvStore store,
@Named("licenses_by_name") Map<String, String> licensesByName,
Context context,
SessionManager sessionManager,
FileProcessor fileProcessor,
ImageProcessingService imageProcessingService) {
this.licenses = licenses;
this.basicKvStore = basicKvStore;
this.license = basicKvStore.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
this.store = store;
this.license = store.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
this.licensesByName = licensesByName;
this.context = context;
this.sessionManager = sessionManager;
@ -94,7 +91,6 @@ public class UploadModel {
return imageProcessingService.validateImage(uploadItem, checkTitle);
}
@NonNull
private UploadItem getUploadItem(UploadableFile uploadableFile,
Place place,
String source,
@ -273,7 +269,7 @@ public class UploadModel {
void setSelectedLicense(String licenseName) {
this.license = licensesByName.get(licenseName);
basicKvStore.putString(Prefs.DEFAULT_LICENSE, license);
store.putString(Prefs.DEFAULT_LICENSE, license);
}
Observable<Contribution> buildContributions(List<String> categoryStringList) {
@ -348,7 +344,7 @@ public class UploadModel {
@SuppressLint("CheckResult")
UploadItem(Uri originalContentUri,
Uri mediaUri, String mimeType, String source, GPSExtractor gpsCoords,
@Nullable Place place,
Place place,
long createdTimestamp,
String createdTimestampSource) {
this.originalContentUri = originalContentUri;

View file

@ -15,7 +15,6 @@ 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.filepicker.UploadableFile;
import fr.free.nrw.commons.kvstore.BasicKvStore;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.nearby.Place;
import fr.free.nrw.commons.settings.Prefs;
@ -52,19 +51,16 @@ public class UploadPresenter {
private final UploadModel uploadModel;
private final UploadController uploadController;
private final Context context;
private final BasicKvStore defaultKvStore;
private final JsonKvStore directKvStore;
@Inject
UploadPresenter(UploadModel uploadModel,
UploadController uploadController,
Context context,
@Named("default_preferences") BasicKvStore defaultKvStore,
@Named("direct_nearby_upload_prefs") JsonKvStore directKvStore) {
@Named("default_preferences") JsonKvStore directKvStore) {
this.uploadModel = uploadModel;
this.uploadController = uploadController;
this.context = context;
this.defaultKvStore = defaultKvStore;
this.directKvStore = directKvStore;
}
@ -331,7 +327,7 @@ public class UploadPresenter {
* Sets the list of licences and the default license.
*/
private void updateLicenses() {
String selectedLicense = defaultKvStore.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
String selectedLicense = directKvStore.getString(Prefs.DEFAULT_LICENSE, Prefs.Licenses.CC_BY_SA_3);
view.updateLicenses(uploadModel.getLicenses(), selectedLicense);
view.updateLicenseSummary(selectedLicense, uploadModel.getCount());
}