mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-28 21:33:53 +01:00
Use wrapper for interacting with shared preferences (#2288)
* Use wrapper for accessing shared preferences across the app * Use Json kv store for storing place object * Fix tests * Fix test failure * Fix UI tests
This commit is contained in:
parent
1b7b909107
commit
d4fa9cfa45
61 changed files with 908 additions and 585 deletions
|
|
@ -3,8 +3,6 @@ package fr.free.nrw.commons.di;
|
|||
import android.app.Activity;
|
||||
import android.content.ContentProviderClient;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.support.v4.util.LruCache;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
|
|
@ -23,6 +21,8 @@ import fr.free.nrw.commons.R;
|
|||
import fr.free.nrw.commons.auth.AccountUtil;
|
||||
import fr.free.nrw.commons.auth.SessionManager;
|
||||
import fr.free.nrw.commons.data.DBOpenHelper;
|
||||
import fr.free.nrw.commons.kvstore.BasicKvStore;
|
||||
import fr.free.nrw.commons.kvstore.JsonKvStore;
|
||||
import fr.free.nrw.commons.location.LocationServiceManager;
|
||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||
import fr.free.nrw.commons.nearby.NearbyPlaces;
|
||||
|
|
@ -32,8 +32,6 @@ import fr.free.nrw.commons.utils.ConfigUtils;
|
|||
import fr.free.nrw.commons.wikidata.WikidataEditListener;
|
||||
import fr.free.nrw.commons.wikidata.WikidataEditListenerImpl;
|
||||
|
||||
import static android.content.Context.MODE_PRIVATE;
|
||||
|
||||
@Module
|
||||
@SuppressWarnings({"WeakerAccess", "unused"})
|
||||
public class CommonsApplicationModule {
|
||||
|
|
@ -126,20 +124,21 @@ public class CommonsApplicationModule {
|
|||
|
||||
@Provides
|
||||
@Named("application_preferences")
|
||||
public SharedPreferences providesApplicationSharedPreferences(Context context) {
|
||||
return context.getSharedPreferences("fr.free.nrw.commons", MODE_PRIVATE);
|
||||
public BasicKvStore providesApplicationKvStore(Context context) {
|
||||
return new BasicKvStore(context, "fr.free.nrw.commons");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Named("default_preferences")
|
||||
public SharedPreferences providesDefaultSharedPreferences(Context context) {
|
||||
return PreferenceManager.getDefaultSharedPreferences(context);
|
||||
public BasicKvStore providesDefaultKvStore(Context context) {
|
||||
String storeName = context.getPackageName() + "_preferences";
|
||||
return new BasicKvStore(context, storeName);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Named("prefs")
|
||||
public SharedPreferences providesOtherSharedPreferences(Context context) {
|
||||
return context.getSharedPreferences("prefs", MODE_PRIVATE);
|
||||
@Named("defaultKvStore")
|
||||
public BasicKvStore providesOtherKvStore(Context context) {
|
||||
return new BasicKvStore(context, "defaultKvStore");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -149,14 +148,14 @@ public class CommonsApplicationModule {
|
|||
*/
|
||||
@Provides
|
||||
@Named("category_prefs")
|
||||
public SharedPreferences providesCategorySharedPreferences(Context context) {
|
||||
return context.getSharedPreferences("categoryPrefs", MODE_PRIVATE);
|
||||
public BasicKvStore providesCategoryKvStore(Context context) {
|
||||
return new BasicKvStore(context, "categoryPrefs");
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Named("direct_nearby_upload_prefs")
|
||||
public SharedPreferences providesDirectNearbyUploadPreferences(Context context) {
|
||||
return context.getSharedPreferences("direct_nearby_upload_prefs", MODE_PRIVATE);
|
||||
public JsonKvStore providesDirectNearbyUploadKvStore(Context context) {
|
||||
return new JsonKvStore(context, "direct_nearby_upload_prefs");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -166,21 +165,23 @@ public class CommonsApplicationModule {
|
|||
*/
|
||||
@Provides
|
||||
@Named("last_read_notification_date")
|
||||
public SharedPreferences providesLastReadNotificationDatePreferences(Context context) {
|
||||
return context.getSharedPreferences("last_read_notification_date", MODE_PRIVATE);
|
||||
public BasicKvStore providesLastReadNotificationDateKvStore(Context context) {
|
||||
return new BasicKvStore(context, "last_read_notification_date");
|
||||
}
|
||||
|
||||
@Provides
|
||||
public UploadController providesUploadController(SessionManager sessionManager, @Named("default_preferences") SharedPreferences sharedPreferences, Context context) {
|
||||
return new UploadController(sessionManager, context, sharedPreferences);
|
||||
public UploadController providesUploadController(SessionManager sessionManager,
|
||||
@Named("default_preferences") BasicKvStore kvStore,
|
||||
Context context) {
|
||||
return new UploadController(sessionManager, context, kvStore);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
public SessionManager providesSessionManager(Context context,
|
||||
MediaWikiApi mediaWikiApi,
|
||||
@Named("default_preferences") SharedPreferences sharedPreferences) {
|
||||
return new SessionManager(context, mediaWikiApi, sharedPreferences);
|
||||
@Named("default_preferences") BasicKvStore defaultKvStore) {
|
||||
return new SessionManager(context, mediaWikiApi, defaultKvStore);
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
package fr.free.nrw.commons.di;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.support.annotation.NonNull;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import fr.free.nrw.commons.BuildConfig;
|
||||
import fr.free.nrw.commons.kvstore.BasicKvStore;
|
||||
import fr.free.nrw.commons.mwapi.ApacheHttpClientMediaWikiApi;
|
||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||
import okhttp3.Cache;
|
||||
|
|
@ -41,11 +41,11 @@ public class NetworkingModule {
|
|||
@Provides
|
||||
@Singleton
|
||||
public MediaWikiApi provideMediaWikiApi(Context context,
|
||||
@Named("default_preferences") SharedPreferences defaultPreferences,
|
||||
@Named("category_prefs") SharedPreferences categoryPrefs,
|
||||
@Named("default_preferences") BasicKvStore defaultKvStore,
|
||||
@Named("category_prefs") BasicKvStore categoryKvStore,
|
||||
Gson gson,
|
||||
OkHttpClient okHttpClient) {
|
||||
return new ApacheHttpClientMediaWikiApi(context, BuildConfig.WIKIMEDIA_API_HOST, BuildConfig.WIKIDATA_API_HOST, defaultPreferences, categoryPrefs, gson, okHttpClient);
|
||||
return new ApacheHttpClientMediaWikiApi(context, BuildConfig.WIKIMEDIA_API_HOST, BuildConfig.WIKIDATA_API_HOST, defaultKvStore, categoryKvStore, gson, okHttpClient);
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue