From bdfbdc75796d63a35da166e134cb8734a0fb58db Mon Sep 17 00:00:00 2001 From: addshore Date: Tue, 16 May 2017 10:39:05 +0200 Subject: [PATCH 1/4] Cleanup CommonsApplication Singelton --- .../free/nrw/commons/CommonsApplication.java | 92 ++++++++++++------- .../java/fr/free/nrw/commons/EventLog.java | 5 +- .../free/nrw/commons/MediaDataExtractor.java | 2 +- .../fr/free/nrw/commons/auth/AccountUtil.java | 2 +- .../commons/auth/AuthenticatedActivity.java | 2 +- .../free/nrw/commons/auth/LoginActivity.java | 4 +- .../fr/free/nrw/commons/auth/LoginTask.java | 6 +- .../free/nrw/commons/auth/SignupActivity.java | 5 +- .../auth/WikiAccountAuthenticator.java | 2 +- .../nrw/commons/category/MethodAUpdater.java | 2 +- .../nrw/commons/category/PrefixUpdater.java | 2 +- .../nrw/commons/category/TitleCategories.java | 2 +- .../contributions/ContributionsActivity.java | 4 +- .../ContributionsListAdapter.java | 4 +- .../ContributionsListFragment.java | 3 +- .../ContributionsSyncAdapter.java | 2 +- .../ContributionsSyncService.java | 2 +- .../commons/media/MediaDetailFragment.java | 2 +- .../media/MediaDetailPagerFragment.java | 2 +- .../ModificationsSyncAdapter.java | 2 +- .../ModificationsSyncService.java | 2 +- .../nrw/commons/nearby/NearbyActivity.java | 3 +- .../commons/settings/SettingsFragment.java | 3 +- .../nrw/commons/upload/ExistingFileAsync.java | 2 +- .../commons/upload/MultipleShareActivity.java | 10 +- .../free/nrw/commons/upload/MwVolleyApi.java | 2 +- .../nrw/commons/upload/ShareActivity.java | 16 ++-- .../nrw/commons/upload/UploadController.java | 4 +- .../nrw/commons/upload/UploadService.java | 10 +- 29 files changed, 116 insertions(+), 83 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 32d8b89f9..ef9ea90d0 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -62,7 +62,6 @@ import timber.log.Timber; ) public class CommonsApplication extends Application { - private MWApi api; private Account currentAccount = null; // Unlike a savings account... public static final String API_URL = "https://commons.wikimedia.org/w/api.php"; public static final String IMAGE_URL_BASE = "https://upload.wikimedia.org/wikipedia/commons"; @@ -81,13 +80,35 @@ public class CommonsApplication extends Application { public static final String FEEDBACK_EMAIL = "commons-app-android@googlegroups.com"; public static final String FEEDBACK_EMAIL_SUBJECT = "Commons Android App (%s) Feedback"; - public RequestQueue volleyQueue; + private static CommonsApplication instance = null; + private AbstractHttpClient httpClient = null; + private MWApi api = null; + private CacheController cacheData = null; + private RequestQueue volleyQueue = null; - public CacheController cacheData; + /** + * This should not be called by ANY application code (other than the magic Android glue) + * Use CommonsApplication.getInstance() instead to get the singleton. + */ + public CommonsApplication() { + CommonsApplication.instance = this; + } - public static CommonsApplication app; + public static CommonsApplication getInstance() { + if(instance == null) { + instance = new CommonsApplication(); + } + return instance; + } - public static AbstractHttpClient createHttpClient() { + public AbstractHttpClient getHttpClient() { + if(httpClient == null) { + httpClient = newHttpClient(); + } + return httpClient; + } + + private AbstractHttpClient newHttpClient() { BasicHttpParams params = new BasicHttpParams(); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); @@ -98,14 +119,36 @@ public class CommonsApplication extends Application { return new DefaultHttpClient(cm, params); } - public static MWApi createMWApi() { - return new MWApi(API_URL, createHttpClient()); + public MWApi getMWApi() { + if(api == null) { + api = newMWApi(); + } + return api; + } + + private MWApi newMWApi() { + return new MWApi(API_URL, getHttpClient()); + } + + public CacheController getCacheData() { + if(cacheData == null) { + cacheData = new CacheController(); + } + return cacheData; + } + + public RequestQueue getVolleyQueue() { + if(volleyQueue == null) { + DiskBasedCache cache = new DiskBasedCache(getCacheDir(), 16 * 1024 * 1024); + volleyQueue = new RequestQueue(cache, new BasicNetwork(new HurlStack())); + volleyQueue.start(); + } + return volleyQueue; } @Override public void onCreate() { super.onCreate(); - app = this; Timber.plant(new Timber.DebugTree()); @@ -116,9 +159,8 @@ public class CommonsApplication extends Application { } // Fire progress callbacks for every 3% of uploaded content System.setProperty("in.yuvi.http.fluent.PROGRESS_TRIGGER_THRESHOLD", "3.0"); - api = createMWApi(); - ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(getApplicationContext()) + ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this) .discCache(new TotalSizeLimitedDiscCache(StorageUtils.getCacheDirectory(this), 128 * 1024 * 1024)) .build(); ImageLoader.getInstance().init(imageLoaderConfiguration); @@ -147,13 +189,6 @@ public class CommonsApplication extends Application { } }; } - - //For caching area -> categories - cacheData = new CacheController(); - - DiskBasedCache cache = new DiskBasedCache(getCacheDir(), 16 * 1024 * 1024); - volleyQueue = new RequestQueue(cache, new BasicNetwork(new HurlStack())); - volleyQueue.start(); } private com.android.volley.toolbox.ImageLoader imageLoader; @@ -161,7 +196,7 @@ public class CommonsApplication extends Application { public com.android.volley.toolbox.ImageLoader getImageLoader() { if(imageLoader == null) { - imageLoader = new com.android.volley.toolbox.ImageLoader(volleyQueue, new com.android.volley.toolbox.ImageLoader.ImageCache() { + imageLoader = new com.android.volley.toolbox.ImageLoader(getVolleyQueue(), new com.android.volley.toolbox.ImageLoader.ImageCache() { @Override public Bitmap getBitmap(String key) { return imageCache.get(key); @@ -176,13 +211,9 @@ public class CommonsApplication extends Application { } return imageLoader; } - - public MWApi getApi() { - return api; - } /** - * @return Accout|null + * @return Account|null */ public Account getCurrentAccount() { if(currentAccount == null) { @@ -203,21 +234,12 @@ public class CommonsApplication extends Application { return false; // This should never happen } - accountManager.invalidateAuthToken(AccountUtil.accountType(), api.getAuthCookie()); + accountManager.invalidateAuthToken(AccountUtil.accountType(), getMWApi().getAuthCookie()); try { String authCookie = accountManager.blockingGetAuthToken(curAccount, "", false); - api.setAuthCookie(authCookie); + getMWApi().setAuthCookie(authCookie); return true; - } catch (OperationCanceledException e) { - e.printStackTrace(); - return false; - } catch (AuthenticatorException e) { - e.printStackTrace(); - return false; - } catch (IOException e) { - e.printStackTrace(); - return false; - } catch (NullPointerException e) { + } catch (OperationCanceledException | NullPointerException | IOException | AuthenticatorException e) { e.printStackTrace(); return false; } diff --git a/app/src/main/java/fr/free/nrw/commons/EventLog.java b/app/src/main/java/fr/free/nrw/commons/EventLog.java index 694c03b6b..dea4d7c23 100644 --- a/app/src/main/java/fr/free/nrw/commons/EventLog.java +++ b/app/src/main/java/fr/free/nrw/commons/EventLog.java @@ -6,6 +6,7 @@ import android.os.Build; import android.preference.PreferenceManager; import org.apache.http.HttpResponse; +import org.apache.http.impl.client.AbstractHttpClient; import org.json.JSONException; import org.json.JSONObject; @@ -30,10 +31,10 @@ public class EventLog { boolean allSuccess = true; // Not using the default URL connection, since that seems to have different behavior than the rest of the code for(LogBuilder logBuilder: logBuilders) { - HttpURLConnection conn; try { URL url = logBuilder.toUrl(); - HttpResponse response = Http.get(url.toString()).use(CommonsApplication.createHttpClient()).asResponse(); + AbstractHttpClient httpClient = CommonsApplication.getInstance().getHttpClient(); + HttpResponse response = Http.get(url.toString()).use(httpClient).asResponse(); if(response.getStatusLine().getStatusCode() != 204) { allSuccess = false; diff --git a/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java b/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java index 344546c7a..44e7b8242 100644 --- a/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java +++ b/app/src/main/java/fr/free/nrw/commons/MediaDataExtractor.java @@ -66,7 +66,7 @@ public class MediaDataExtractor { throw new IllegalStateException("Tried to call MediaDataExtractor.fetch() again."); } - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); ApiResult result = api.action("query") .param("prop", "revisions") .param("titles", filename) diff --git a/app/src/main/java/fr/free/nrw/commons/auth/AccountUtil.java b/app/src/main/java/fr/free/nrw/commons/auth/AccountUtil.java index 29f6fcf91..773eb5d63 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/AccountUtil.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/AccountUtil.java @@ -55,7 +55,7 @@ public class AccountUtil { @NonNull private static CommonsApplication app() { - return CommonsApplication.app; + return CommonsApplication.getInstance(); } } diff --git a/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java index 6a99764af..7e195ed3e 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/AuthenticatedActivity.java @@ -132,7 +132,7 @@ public abstract class AuthenticatedActivity extends NavigationBaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - app = (CommonsApplication)this.getApplicationContext(); + app = CommonsApplication.getInstance(); if(savedInstanceState != null) { authCookie = savedInstanceState.getString("authCookie"); } 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 bbadc757a..0bec4bac6 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 @@ -40,7 +40,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - app = (CommonsApplication) getApplicationContext(); + app = CommonsApplication.getInstance(); setContentView(R.layout.activity_login); final LoginActivity that = this; @@ -199,7 +199,7 @@ public class LoginActivity extends AccountAuthenticatorActivity { } private void showUserToast( int resId ) { - Toast.makeText(getApplicationContext(), resId, Toast.LENGTH_LONG).show(); + Toast.makeText(this, resId, Toast.LENGTH_LONG).show(); } public void showSuccessToastAndDismissDialog() { diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginTask.java b/app/src/main/java/fr/free/nrw/commons/auth/LoginTask.java index 8785bff71..d952e6535 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginTask.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginTask.java @@ -26,7 +26,7 @@ class LoginTask extends AsyncTask { this.username = username; this.password = password; this.twoFactorCode = twoFactorCode; - app = (CommonsApplication) loginActivity.getApplicationContext(); + app = CommonsApplication.getInstance(); } @Override @@ -44,9 +44,9 @@ class LoginTask extends AsyncTask { protected String doInBackground(String... params) { try { if (twoFactorCode.isEmpty()) { - return app.getApi().login(username, password); + return app.getMWApi().login(username, password); } else { - return app.getApi().login(username, password, twoFactorCode); + return app.getMWApi().login(username, password, twoFactorCode); } } catch (IOException e) { // Do something better! diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java index 5965c8928..530953c9f 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java @@ -7,6 +7,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.theme.BaseActivity; import timber.log.Timber; @@ -39,10 +40,10 @@ public class SignupActivity extends BaseActivity { //Signup success, so clear cookies, notify user, and load LoginActivity again Timber.d("Overriding URL %s", url); - Toast toast = Toast.makeText(getApplicationContext(), "Account created!", Toast.LENGTH_LONG); + Toast toast = Toast.makeText(CommonsApplication.getInstance(), "Account created!", Toast.LENGTH_LONG); toast.show(); - Intent intent = new Intent(getApplicationContext(), LoginActivity.class); + Intent intent = new Intent(CommonsApplication.getInstance(), LoginActivity.class); startActivity(intent); return true; } else { diff --git a/app/src/main/java/fr/free/nrw/commons/auth/WikiAccountAuthenticator.java b/app/src/main/java/fr/free/nrw/commons/auth/WikiAccountAuthenticator.java index 7233b6be8..ebbd6c285 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/WikiAccountAuthenticator.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/WikiAccountAuthenticator.java @@ -75,7 +75,7 @@ public class WikiAccountAuthenticator extends AbstractAccountAuthenticator { } private String getAuthCookie(String username, String password) throws IOException { - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); //TODO add 2fa support here String result = api.login(username, password); if(result.equals("PASS")) { diff --git a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java index 33835119e..9300f640d 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/MethodAUpdater.java @@ -79,7 +79,7 @@ public class MethodAUpdater extends AsyncTask> { protected ArrayList doInBackground(Void... voids) { //otherwise if user has typed something in that isn't in cache, search API for matching categories - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); ApiResult result; ArrayList categories = new ArrayList<>(); diff --git a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java index 350c0b21f..05770081d 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java +++ b/app/src/main/java/fr/free/nrw/commons/category/PrefixUpdater.java @@ -95,7 +95,7 @@ public class PrefixUpdater extends AsyncTask> { //otherwise if user has typed something in that isn't in cache, search API for matching categories //URL: https://commons.wikimedia.org/w/api.php?action=query&list=allcategories&acprefix=filter&aclimit=25 - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); ApiResult result; ArrayList categories = new ArrayList<>(); try { diff --git a/app/src/main/java/fr/free/nrw/commons/category/TitleCategories.java b/app/src/main/java/fr/free/nrw/commons/category/TitleCategories.java index a372b353d..6ca46be0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/TitleCategories.java +++ b/app/src/main/java/fr/free/nrw/commons/category/TitleCategories.java @@ -34,7 +34,7 @@ public class TitleCategories extends AsyncTask> { @Override protected ArrayList doInBackground(Void... voids) { - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); ApiResult result; ArrayList items = new ArrayList<>(); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index d9dd05b26..73b657329 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -109,7 +109,7 @@ public class ContributionsActivity @Override protected void onAuthCookieAcquired(String authCookie) { // Do a sync everytime we get here! - ContentResolver.requestSync(((CommonsApplication) getApplicationContext()).getCurrentAccount(), ContributionsContentProvider.AUTHORITY, new Bundle()); + ContentResolver.requestSync(CommonsApplication.getInstance().getCurrentAccount(), ContributionsContentProvider.AUTHORITY, new Bundle()); Intent uploadServiceIntent = new Intent(this, UploadService.class); uploadServiceIntent.setAction(UploadService.ACTION_START_SERVICE); startService(uploadServiceIntent); @@ -219,7 +219,7 @@ public class ContributionsActivity @Override public Loader onCreateLoader(int i, Bundle bundle) { SharedPreferences sharedPref = - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + PreferenceManager.getDefaultSharedPreferences(this); int uploads = sharedPref.getInt(Prefs.UPLOADS_SHOWING, 100); return new CursorLoader(this, ContributionsContentProvider.BASE_URI, Contribution.Table.ALL_FIELDS, CONTRIBUTION_SELECTION, null, diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java index 3a6aa72c3..182e9762a 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListAdapter.java @@ -49,7 +49,7 @@ class ContributionsListAdapter extends CursorAdapter { if(views.url == null || !views.url.equals(actualUrl)) { if(actualUrl.startsWith("http")) { MediaWikiImageView mwImageView = views.imageView; - mwImageView.setMedia(contribution, ((CommonsApplication) activity.getApplicationContext()).getImageLoader()); + mwImageView.setMedia(contribution, CommonsApplication.getInstance().getImageLoader()); // FIXME: For transparent images } else { ImageLoader.getInstance().displayImage(actualUrl, views.imageView, contributionDisplayOptions, new SimpleImageLoadingListener() { @@ -66,7 +66,7 @@ class ContributionsListAdapter extends CursorAdapter { public void onLoadingFailed(String imageUri, View view, FailReason failReason) { super.onLoadingFailed(imageUri, view, failReason); MediaWikiImageView mwImageView = views.imageView; - mwImageView.setMedia(contribution, ((CommonsApplication) activity.getApplicationContext()).getImageLoader()); + mwImageView.setMedia(contribution, CommonsApplication.getInstance().getImageLoader()); } }); } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java index 364071e22..be83b3327 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListFragment.java @@ -159,8 +159,7 @@ public class ContributionsListFragment extends Fragment { menu.clear(); // See http://stackoverflow.com/a/8495697/17865 inflater.inflate(R.menu.fragment_contributions_list, menu); - CommonsApplication app = (CommonsApplication)getActivity().getApplicationContext(); - if (!app.deviceHasCamera()) { + if (!CommonsApplication.getInstance().deviceHasCamera()) { menu.findItem(R.id.menu_from_camera).setEnabled(false); } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java index 81510e23b..52b966cfd 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncAdapter.java @@ -61,7 +61,7 @@ public class ContributionsSyncAdapter extends AbstractThreadedSyncAdapter { public void onPerformSync(Account account, Bundle bundle, String s, ContentProviderClient contentProviderClient, SyncResult syncResult) { // This code is fraught with possibilities of race conditions, but lalalalala I can't hear you! String user = account.name; - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); SharedPreferences prefs = this.getContext().getSharedPreferences("prefs", Context.MODE_PRIVATE); String lastModified = prefs.getString("lastSyncTimestamp", ""); Date curTime = new Date(); diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncService.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncService.java index 3af92935c..946da6915 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncService.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsSyncService.java @@ -15,7 +15,7 @@ public class ContributionsSyncService extends Service { super.onCreate(); synchronized (sSyncAdapterLock) { if (sSyncAdapter == null) { - sSyncAdapter = new ContributionsSyncAdapter(getApplicationContext(), true); + sSyncAdapter = new ContributionsSyncAdapter(this, true); } } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java index 6d46da801..b96845eb6 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java @@ -194,7 +194,7 @@ public class MediaDetailFragment extends Fragment { if(actualUrl.startsWith("http")) { Timber.d("Actual URL starts with http and is: %s", actualUrl); - ImageLoader loader = ((CommonsApplication)getActivity().getApplicationContext()).getImageLoader(); + ImageLoader loader = CommonsApplication.getInstance().getImageLoader(); MediaWikiImageView mwImage = (MediaWikiImageView)image; mwImage.setLoadingView(loadingProgress); //FIXME: Set this as an attribute mwImage.setMedia(media, loader); diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index 9adbdb882..c7e06cefa 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -123,7 +123,7 @@ public class MediaDetailPagerFragment extends Fragment implements ViewPager.OnPa if(savedInstanceState != null) { editable = savedInstanceState.getBoolean("editable"); } - app = (CommonsApplication)getActivity().getApplicationContext(); + app = CommonsApplication.getInstance(); setHasOptionsMenu(true); } diff --git a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncAdapter.java b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncAdapter.java index fdc9e28a5..898c41f7d 100644 --- a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncAdapter.java +++ b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncAdapter.java @@ -61,7 +61,7 @@ public class ModificationsSyncAdapter extends AbstractThreadedSyncAdapter { return; } - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); api.setAuthCookie(authCookie); String editToken; diff --git a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncService.java b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncService.java index b664aaaa4..bf6878622 100644 --- a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncService.java +++ b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsSyncService.java @@ -15,7 +15,7 @@ public class ModificationsSyncService extends Service { super.onCreate(); synchronized (sSyncAdapterLock) { if (sSyncAdapter == null) { - sSyncAdapter = new ModificationsSyncAdapter(getApplicationContext(), true); + sSyncAdapter = new ModificationsSyncAdapter(this, true); } } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 2446800d3..181643e79 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -25,6 +25,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.location.LatLng; import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.theme.NavigationBaseActivity; @@ -184,7 +185,7 @@ public class NearbyActivity extends NavigationBaseActivity { @Override protected List doInBackground(Void... params) { return NearbyController - .loadAttractionsFromLocation(curLatLang, getApplicationContext() + .loadAttractionsFromLocation(curLatLang, CommonsApplication.getInstance() ); } 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 84c5e1e13..bdac4a0f5 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 @@ -11,6 +11,7 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceManager; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.Utils; @@ -46,7 +47,7 @@ public class SettingsFragment extends PreferenceFragment { final EditTextPreference uploadLimit = (EditTextPreference) findPreference("uploads"); final SharedPreferences sharedPref = PreferenceManager - .getDefaultSharedPreferences(getActivity().getApplicationContext()); + .getDefaultSharedPreferences(CommonsApplication.getInstance()); int uploads = sharedPref.getInt(Prefs.UPLOADS_SHOWING, 100); uploadLimit.setText(uploads + ""); uploadLimit.setSummary(uploads + ""); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ExistingFileAsync.java b/app/src/main/java/fr/free/nrw/commons/upload/ExistingFileAsync.java index 14988c60c..27b9ed8d8 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ExistingFileAsync.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ExistingFileAsync.java @@ -38,7 +38,7 @@ public class ExistingFileAsync extends AsyncTask { @Override protected Boolean doInBackground(Void... voids) { - MWApi api = CommonsApplication.createMWApi(); + MWApi api = CommonsApplication.getInstance().getMWApi(); ApiResult result; // https://commons.wikimedia.org/w/api.php?action=query&list=allimages&format=xml&aisha1=801957214aba50cb63bb6eb1b0effa50188900ba diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java index 8c5e6b6d2..12b38a6ab 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MultipleShareActivity.java @@ -132,7 +132,11 @@ public class MultipleShareActivity dialog.setProgress(uploadCount); if(uploadCount == photosList.size()) { dialog.dismiss(); - Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); + Toast startingToast = Toast.makeText( + CommonsApplication.getInstance(), + R.string.uploading_started, + Toast.LENGTH_LONG + ); startingToast.show(); } } @@ -202,9 +206,9 @@ public class MultipleShareActivity uploadController = new UploadController(this); setContentView(R.layout.activity_multiple_uploads); + app = CommonsApplication.getInstance(); ButterKnife.bind(this); initDrawer(); - app = (CommonsApplication)this.getApplicationContext(); if(savedInstanceState != null) { photosList = savedInstanceState.getParcelableArrayList("uploadsList"); @@ -241,7 +245,7 @@ public class MultipleShareActivity @Override protected void onAuthCookieAcquired(String authCookie) { - app.getApi().setAuthCookie(authCookie); + app.getMWApi().setAuthCookie(authCookie); Intent intent = getIntent(); if(intent.getAction().equals(Intent.ACTION_SEND_MULTIPLE)) { diff --git a/app/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java b/app/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java index 6544b4fff..367309593 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/MwVolleyApi.java @@ -101,7 +101,7 @@ public class MwVolleyApi { private static RequestQueue getQueue(Context context) { if (REQUEST_QUEUE == null) { - REQUEST_QUEUE = Volley.newRequestQueue(context.getApplicationContext()); + REQUEST_QUEUE = Volley.newRequestQueue(context); } return REQUEST_QUEUE; } diff --git a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 08ddbe821..2353dd465 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -106,12 +106,16 @@ public class ShareActivity getFileMetadata(false); } - Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG); + Toast startingToast = Toast.makeText( + CommonsApplication.getInstance(), + R.string.uploading_started, + Toast.LENGTH_LONG + ); startingToast.show(); if (!cacheFound) { //Has to be called after apiCall.request() - app.cacheData.cacheCategory(); + app.getCacheData().cacheCategory(); Timber.d("Cache the categories found"); } @@ -189,7 +193,7 @@ public class ShareActivity @Override protected void onAuthCookieAcquired(String authCookie) { - app.getApi().setAuthCookie(authCookie); + app.getMWApi().setAuthCookie(authCookie); shareView = (SingleUploadFragment) getSupportFragmentManager().findFragmentByTag("shareView"); categorizationFragment = (CategorizationFragment) getSupportFragmentManager().findFragmentByTag("categorization"); @@ -217,7 +221,7 @@ public class ShareActivity setContentView(R.layout.activity_share); ButterKnife.bind(this); initDrawer(); - app = (CommonsApplication)this.getApplicationContext(); + app = CommonsApplication.getInstance(); backgroundImageView = (ImageView)findViewById(R.id.backgroundImage); //Receive intent from ContributionController.java when user selects picture to upload @@ -398,12 +402,12 @@ public class ShareActivity if (imageObj.imageCoordsExists) { double decLongitude = imageObj.getDecLongitude(); double decLatitude = imageObj.getDecLatitude(); - app.cacheData.setQtPoint(decLongitude, decLatitude); + app.getCacheData().setQtPoint(decLongitude, decLatitude); } MwVolleyApi apiCall = new MwVolleyApi(this); - List displayCatList = app.cacheData.findCategory(); + List displayCatList = app.getCacheData().findCategory(); boolean catListEmpty = displayCatList.isEmpty(); // If no categories found in cache, call MediaWiki API to match image coords with nearby Commons categories diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java index 2bdee55f5..4266384c1 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadController.java @@ -36,7 +36,7 @@ public class UploadController { public UploadController(Activity activity) { this.activity = activity; - app = (CommonsApplication)activity.getApplicationContext(); + app = CommonsApplication.getInstance(); } private boolean isUploadServiceConnected; @@ -55,7 +55,7 @@ public class UploadController { }; public void prepareService() { - Intent uploadServiceIntent = new Intent(activity.getApplicationContext(), UploadService.class); + Intent uploadServiceIntent = new Intent(activity, UploadService.class); uploadServiceIntent.setAction(UploadService.ACTION_START_SERVICE); activity.startService(uploadServiceIntent); activity.bindService(uploadServiceIntent, uploadServiceConnection, Context.BIND_AUTO_CREATE); diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java index 523b6a479..853952fae 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadService.java @@ -115,7 +115,7 @@ public class UploadService extends HandlerService { super.onCreate(); notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); - app = (CommonsApplication) this.getApplicationContext(); + app = CommonsApplication.getInstance(); contributionsProviderClient = this.getContentResolver().acquireContentProviderClient(ContributionsContentProvider.AUTHORITY); } @@ -176,7 +176,7 @@ public class UploadService extends HandlerService { } private void uploadContribution(Contribution contribution) { - MWApi api = app.getApi(); + MWApi api = app.getMWApi(); ApiResult result; InputStream file = null; @@ -201,7 +201,7 @@ public class UploadService extends HandlerService { .setContentText(getResources().getQuantityString(R.plurals.uploads_pending_notification_indicator, toUpload, toUpload)) .setOngoing(true) .setProgress(100, 0, true) - .setContentIntent(PendingIntent.getActivity(getApplicationContext(), 0, new Intent(this, ContributionsActivity.class), 0)) + .setContentIntent(PendingIntent.getActivity(this, 0, new Intent(this, ContributionsActivity.class), 0)) .setTicker(getString(R.string.upload_progress_notification_title_in_progress, contribution.getDisplayTitle())); this.startForeground(NOTIFICATION_UPLOAD_IN_PROGRESS, curProgressNotification.build()); @@ -282,7 +282,7 @@ public class UploadService extends HandlerService { toUpload--; if(toUpload == 0) { // Sync modifications right after all uplaods are processed - ContentResolver.requestSync(((CommonsApplication) getApplicationContext()).getCurrentAccount(), ModificationsContentProvider.AUTHORITY, new Bundle()); + ContentResolver.requestSync((CommonsApplication.getInstance()).getCurrentAccount(), ModificationsContentProvider.AUTHORITY, new Bundle()); stopForeground(true); } } @@ -304,7 +304,7 @@ public class UploadService extends HandlerService { } private String findUniqueFilename(String fileName) throws IOException { - MWApi api = app.getApi(); + MWApi api = app.getMWApi(); String sequenceFileName; for ( int sequenceNumber = 1; true; sequenceNumber++ ) { if (sequenceNumber == 1) { From c712b561d4814d984037fbde7b9ce00833e13b1d Mon Sep 17 00:00:00 2001 From: addshore Date: Tue, 16 May 2017 11:22:17 +0200 Subject: [PATCH 2/4] Get rid of other singletons --- .../fr/free/nrw/commons/CommonsApplication.java | 17 +++++++++++++++++ .../category/CategoryContentProvider.java | 3 ++- .../ContributionsContentProvider.java | 3 ++- .../fr/free/nrw/commons/data/DBOpenHelper.java | 13 ++++--------- .../ModificationsContentProvider.java | 3 ++- .../nrw/commons/nearby/NearbyController.java | 6 ++++-- .../free/nrw/commons/nearby/NearbyPlaces.java | 17 ----------------- 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index ef9ea90d0..2a4f4ac65 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -30,6 +30,7 @@ import fr.free.nrw.commons.contributions.Contribution; import fr.free.nrw.commons.data.DBOpenHelper; import fr.free.nrw.commons.modifications.ModifierSequence; import fr.free.nrw.commons.auth.AccountUtil; +import fr.free.nrw.commons.nearby.NearbyPlaces; import org.acra.ACRA; import org.acra.ReportingInteractionMode; @@ -85,6 +86,8 @@ public class CommonsApplication extends Application { private MWApi api = null; private CacheController cacheData = null; private RequestQueue volleyQueue = null; + private DBOpenHelper dbOpenHelper = null; + private NearbyPlaces nearbyPlaces = null; /** * This should not be called by ANY application code (other than the magic Android glue) @@ -146,6 +149,20 @@ public class CommonsApplication extends Application { return volleyQueue; } + public synchronized DBOpenHelper getDBOpenHelper() { + if(dbOpenHelper == null) { + dbOpenHelper = new DBOpenHelper(this); + } + return dbOpenHelper; + } + + public synchronized NearbyPlaces getNearbyPlaces() { + if (nearbyPlaces == null) { + nearbyPlaces = new NearbyPlaces(); + } + return nearbyPlaces; + } + @Override public void onCreate() { super.onCreate(); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java index 314ab33f2..de157265b 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryContentProvider.java @@ -9,6 +9,7 @@ import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.text.TextUtils; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.data.DBOpenHelper; import timber.log.Timber; @@ -36,7 +37,7 @@ public class CategoryContentProvider extends ContentProvider { private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = DBOpenHelper.getInstance(getContext()); + dbOpenHelper = CommonsApplication.getInstance().getDBOpenHelper(); return false; } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java index 37d9dae18..838b9c922 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsContentProvider.java @@ -9,6 +9,7 @@ import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.text.TextUtils; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.data.DBOpenHelper; import timber.log.Timber; @@ -35,7 +36,7 @@ public class ContributionsContentProvider extends ContentProvider{ private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = DBOpenHelper.getInstance(getContext()); + dbOpenHelper = CommonsApplication.getInstance().getDBOpenHelper(); return false; } diff --git a/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java b/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java index 58ab54a4d..22171857a 100644 --- a/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java +++ b/app/src/main/java/fr/free/nrw/commons/data/DBOpenHelper.java @@ -12,16 +12,11 @@ public class DBOpenHelper extends SQLiteOpenHelper{ private static final String DATABASE_NAME = "commons.db"; private static final int DATABASE_VERSION = 6; - private static DBOpenHelper singleton = null; - public static synchronized DBOpenHelper getInstance(Context context) { - if ( singleton == null ) { - singleton = new DBOpenHelper(context); - } - return singleton; - } - - private DBOpenHelper(Context context) { + /** + * Do not use, please call CommonsApplication.getDBOpenHelper() + */ + public DBOpenHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } diff --git a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java index baba01770..097651aaf 100644 --- a/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java +++ b/app/src/main/java/fr/free/nrw/commons/modifications/ModificationsContentProvider.java @@ -9,6 +9,7 @@ import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; import android.text.TextUtils; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.data.DBOpenHelper; import timber.log.Timber; @@ -35,7 +36,7 @@ public class ModificationsContentProvider extends ContentProvider{ private DBOpenHelper dbOpenHelper; @Override public boolean onCreate() { - dbOpenHelper = DBOpenHelper.getInstance(getContext()); + dbOpenHelper = CommonsApplication.getInstance().getDBOpenHelper(); return false; } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java index e5fc3182c..0a290784a 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyController.java @@ -15,6 +15,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import fr.free.nrw.commons.CommonsApplication; import fr.free.nrw.commons.R; import fr.free.nrw.commons.location.LatLng; import timber.log.Timber; @@ -37,13 +38,14 @@ public class NearbyController { if (curLatLng == null) { return Collections.emptyList(); } + NearbyPlaces nearbyPlaces = CommonsApplication.getInstance().getNearbyPlaces(); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); List places = prefs.getBoolean("useWikidata", true) - ? NearbyPlaces.getInstance().getFromWikidataQuery( + ? nearbyPlaces.getFromWikidataQuery( context, curLatLng, Locale.getDefault().getLanguage()) - : NearbyPlaces.getInstance().getFromWikiNeedsPictures(); + : nearbyPlaces.getFromWikiNeedsPictures(); if (curLatLng != null) { Timber.d("Sorting places by distance..."); final Map distances = new HashMap<>(); diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java index 152812fd2..3478e74e9 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyPlaces.java @@ -29,13 +29,9 @@ public class NearbyPlaces { private static final double MAX_RADIUS = 300.0; // in kilometer private static final double RADIUS_MULTIPLIER = 1.618; private static final String WIKIDATA_QUERY_URL = "https://query.wikidata.org/sparql?query=${QUERY}"; - private static NearbyPlaces singleton; private double radius = INITIAL_RADIUS; private List places; - private NearbyPlaces(){ - } - List getFromWikidataQuery(Context context, LatLng curLatLng, String lang) { @@ -199,17 +195,4 @@ public class NearbyPlaces { } return places; } - - /** - * Get the singleton instance of this class. - * The instance is created upon the first invocation of this method, and then reused. - * - * @return The singleton instance - */ - public static synchronized NearbyPlaces getInstance() { - if (singleton == null) { - singleton = new NearbyPlaces(); - } - return singleton; - } } From 1785e9b179be96702d219fb9851bc9cac1b0e868 Mon Sep 17 00:00:00 2001 From: addshore Date: Tue, 16 May 2017 11:29:33 +0200 Subject: [PATCH 3/4] Fix some codacy issues --- .../java/fr/free/nrw/commons/CommonsApplication.java | 12 ++++++------ .../fr/free/nrw/commons/auth/SignupActivity.java | 6 +++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 2a4f4ac65..91ce3c1ef 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -98,14 +98,14 @@ public class CommonsApplication extends Application { } public static CommonsApplication getInstance() { - if(instance == null) { + if (instance == null) { instance = new CommonsApplication(); } return instance; } public AbstractHttpClient getHttpClient() { - if(httpClient == null) { + if (httpClient == null) { httpClient = newHttpClient(); } return httpClient; @@ -123,7 +123,7 @@ public class CommonsApplication extends Application { } public MWApi getMWApi() { - if(api == null) { + if (api == null) { api = newMWApi(); } return api; @@ -134,14 +134,14 @@ public class CommonsApplication extends Application { } public CacheController getCacheData() { - if(cacheData == null) { + if (cacheData == null) { cacheData = new CacheController(); } return cacheData; } public RequestQueue getVolleyQueue() { - if(volleyQueue == null) { + if (volleyQueue == null) { DiskBasedCache cache = new DiskBasedCache(getCacheDir(), 16 * 1024 * 1024); volleyQueue = new RequestQueue(cache, new BasicNetwork(new HurlStack())); volleyQueue.start(); @@ -150,7 +150,7 @@ public class CommonsApplication extends Application { } public synchronized DBOpenHelper getDBOpenHelper() { - if(dbOpenHelper == null) { + if (dbOpenHelper == null) { dbOpenHelper = new DBOpenHelper(this); } return dbOpenHelper; diff --git a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java index 530953c9f..62ccb5731 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/auth/SignupActivity.java @@ -40,7 +40,11 @@ public class SignupActivity extends BaseActivity { //Signup success, so clear cookies, notify user, and load LoginActivity again Timber.d("Overriding URL %s", url); - Toast toast = Toast.makeText(CommonsApplication.getInstance(), "Account created!", Toast.LENGTH_LONG); + Toast toast = Toast.makeText( + CommonsApplication.getInstance(), + "Account created!", + Toast.LENGTH_LONG + ); toast.show(); Intent intent = new Intent(CommonsApplication.getInstance(), LoginActivity.class); From 4bda30116abb780f5cc1a1be001d27e7982fdb96 Mon Sep 17 00:00:00 2001 From: addshore Date: Tue, 16 May 2017 15:20:53 +0200 Subject: [PATCH 4/4] Update logic from PR 611 that was just merged --- app/src/main/java/fr/free/nrw/commons/CommonsApplication.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 91ce3c1ef..df783be44 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -287,7 +287,7 @@ public class CommonsApplication extends Application { } //TODO: fix preference manager - PreferenceManager.getDefaultSharedPreferences(app).edit().clear().commit(); + PreferenceManager.getDefaultSharedPreferences(getInstance()).edit().clear().commit(); SharedPreferences preferences = context .getSharedPreferences("fr.free.nrw.commons", MODE_PRIVATE); preferences.edit().clear().commit(); @@ -302,7 +302,7 @@ public class CommonsApplication extends Application { * @param context context */ public void updateAllDatabases(Context context) { - DBOpenHelper dbOpenHelper = DBOpenHelper.getInstance(context); + DBOpenHelper dbOpenHelper = CommonsApplication.getInstance().getDBOpenHelper(); dbOpenHelper.getReadableDatabase().close(); SQLiteDatabase db = dbOpenHelper.getWritableDatabase();