diff --git a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java index f4d791463..8c18df9cf 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java @@ -211,7 +211,7 @@ public abstract class BaseMainActivity extends BaseActivity userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(BaseMainActivity.this)); - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(BaseMainActivity.this, db).getUniqAccount(userId, instance); Intent intent = getIntent(); PackageManager pm = getPackageManager(); @@ -1376,7 +1376,7 @@ public abstract class BaseMainActivity extends BaseActivity DisplayStatusFragment fragment = new DisplayStatusFragment(); bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.MYVIDEOS); bundle.putString("instanceType", "PEERTUBE"); - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(BaseMainActivity.this)); @@ -1670,7 +1670,7 @@ public abstract class BaseMainActivity extends BaseActivity if (dir.isDirectory()) { Helper.deleteDir(dir); } - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new TimelineCacheDAO(contextReference.get(), db).removeAll(); } catch (Exception ignored) { } @@ -1683,7 +1683,7 @@ public abstract class BaseMainActivity extends BaseActivity if (mPageReferenceMap != null) mPageReferenceMap = null; PreferenceManager.getDefaultSharedPreferences(this).edit().putBoolean("isMainActivityRunning", false).apply(); - if( Sqlite.db != null ) { + if (Sqlite.db != null) { Sqlite.db.close(); } } @@ -1813,7 +1813,7 @@ public abstract class BaseMainActivity extends BaseActivity bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.MYVIDEOS); bundle.putString("instanceType", "PEERTUBE"); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(BaseMainActivity.this)); Account account = new AccountDAO(BaseMainActivity.this, db).getUniqAccount(userId, instance); @@ -1829,7 +1829,7 @@ public abstract class BaseMainActivity extends BaseActivity bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.PEERTUBE_HISTORY); bundle.putString("instanceType", "PEERTUBE"); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(BaseMainActivity.this)); Account account = new AccountDAO(BaseMainActivity.this, db).getUniqAccount(userId, instance); @@ -1970,7 +1970,7 @@ public abstract class BaseMainActivity extends BaseActivity startActivity(myIntent); finish(); } else { - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(BaseMainActivity.this, db).getUniqAccount(userId, instance); Helper.updateHeaderAccountInfo(activity, account, headerLayout); } @@ -2274,7 +2274,7 @@ public abstract class BaseMainActivity extends BaseActivity } public void manageTab(RetrieveFeedsAsyncTask.Type type, int value) { - SQLiteDatabase db = Sqlite.getInstance(BaseMainActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List tls = new TimelinesDAO(BaseMainActivity.this, db).getDisplayedTimelines(); for (ManageTimelines tl : tls) { if (type == ManageTimelines.transform(BaseMainActivity.this, tl.getType())) { diff --git a/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java b/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java index 356d07392..a720e1dbc 100644 --- a/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BookmarkActivity.java @@ -114,7 +114,7 @@ public class BookmarkActivity extends BaseActivity implements OnRetrieveFeedsInt setTitle(R.string.bookmarks); } - SQLiteDatabase db = Sqlite.getInstance(BookmarkActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(BookmarkActivity.this, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java index c0e4af858..c12a187a0 100644 --- a/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/CustomSharingActivity.java @@ -111,7 +111,7 @@ public class CustomSharingActivity extends BaseActivity implements OnCustomShari } else { setTitle(R.string.settings_title_custom_sharing); } - SQLiteDatabase db = Sqlite.getInstance(CustomSharingActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(CustomSharingActivity.this, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java index da1db0174..03d28c15b 100644 --- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java @@ -138,7 +138,7 @@ public class EditProfileActivity extends BaseActivity implements OnRetrieveAccou } else { setTitle(R.string.settings_title_profile); } - SQLiteDatabase db = Sqlite.getInstance(EditProfileActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(EditProfileActivity.this, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java index 0ede02e06..07101a079 100644 --- a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java @@ -171,7 +171,7 @@ public class HashTagActivity extends BaseActivity implements OnRetrieveFeedsInte public boolean onCreateOptionsMenu(@NotNull Menu menu) { getMenuInflater().inflate(R.menu.tag_pin, menu); - SQLiteDatabase db = Sqlite.getInstance(HashTagActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List searchInDb = new SearchDAO(HashTagActivity.this, db).getSearchByKeyword(tag.trim()); if (searchInDb != null && searchInDb.size() > 0) { menu.findItem(R.id.action_pin).setVisible(false); @@ -186,7 +186,7 @@ public class HashTagActivity extends BaseActivity implements OnRetrieveFeedsInte finish(); return true; case R.id.action_pin: - SQLiteDatabase db = Sqlite.getInstance(HashTagActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new SearchDAO(HashTagActivity.this, db).insertSearch(tag); Intent intent = new Intent(HashTagActivity.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/app/src/main/java/app/fedilab/android/activities/LiveNotificationSettingsAccountsActivity.java b/app/src/main/java/app/fedilab/android/activities/LiveNotificationSettingsAccountsActivity.java index dc87cf107..6d3f6ae01 100644 --- a/app/src/main/java/app/fedilab/android/activities/LiveNotificationSettingsAccountsActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/LiveNotificationSettingsAccountsActivity.java @@ -61,7 +61,7 @@ public class LiveNotificationSettingsAccountsActivity extends BaseActivity { RecyclerView list_of_accounts = findViewById(R.id.list_of_accounts); ArrayList accounts = new ArrayList<>(); - SQLiteDatabase db = Sqlite.getInstance(LiveNotificationSettingsAccountsActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountStreams = new AccountDAO(LiveNotificationSettingsAccountsActivity.this, db).getAllAccountCrossAction(); if (accountStreams == null || accountStreams.size() == 0) { finish(); diff --git a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java index 9986ca88e..79c2178e4 100644 --- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java @@ -608,7 +608,7 @@ public class LoginActivity extends BaseActivity { editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, basicAuth); account.setInstance(instance); - SQLiteDatabase db = Sqlite.getInstance(LoginActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); boolean userExists = new AccountDAO(LoginActivity.this, db).userExist(account); editor.putString(Helper.PREF_KEY_ID, account.getId()); editor.putBoolean(Helper.PREF_IS_MODERATOR, account.isModerator()); diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java index 5877e5053..20438acef 100644 --- a/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/OwnerChartsActivity.java @@ -144,7 +144,7 @@ public class OwnerChartsActivity extends BaseActivity implements OnRetrieveChart TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title); - SQLiteDatabase db = Sqlite.getInstance(OwnerChartsActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(OwnerChartsActivity.this, db).getUniqAccount(userId, instance); @@ -169,7 +169,7 @@ public class OwnerChartsActivity extends BaseActivity implements OnRetrieveChart loader = findViewById(R.id.loader); validate = findViewById(R.id.validate); - SQLiteDatabase db = Sqlite.getInstance(OwnerChartsActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); dateIni = new StatusCacheDAO(OwnerChartsActivity.this, db).getSmallerDate(StatusCacheDAO.ARCHIVE_CACHE); dateEnd = new StatusCacheDAO(OwnerChartsActivity.this, db).getGreaterDate(StatusCacheDAO.ARCHIVE_CACHE); diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java index c34bdd8a8..e594f9c8e 100644 --- a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationActivity.java @@ -209,7 +209,7 @@ public class OwnerNotificationActivity extends BaseActivity implements OnRetriev style = R.style.Dialog; } - SQLiteDatabase db = Sqlite.getInstance(OwnerNotificationActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(OwnerNotificationActivity.this, db).getUniqAccount(userId, instance); Helper.loadGiF(OwnerNotificationActivity.this, account, pp_actionBar); @@ -310,7 +310,7 @@ public class OwnerNotificationActivity extends BaseActivity implements OnRetriev dialogBuilder.setView(dialogView); - SQLiteDatabase db = Sqlite.getInstance(OwnerNotificationActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (dateIni == null) dateIni = new NotificationCacheDAO(OwnerNotificationActivity.this, db).getSmallerDate(); if (dateEnd == null) diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java index 42a671c9a..a63462210 100644 --- a/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/OwnerNotificationChartsActivity.java @@ -151,7 +151,7 @@ public class OwnerNotificationChartsActivity extends BaseActivity implements OnR TextView toolbar_title = actionBar.getCustomView().findViewById(R.id.toolbar_title); - SQLiteDatabase db = Sqlite.getInstance(OwnerNotificationChartsActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(OwnerNotificationChartsActivity.this, db).getUniqAccount(userId, instance); @@ -176,7 +176,7 @@ public class OwnerNotificationChartsActivity extends BaseActivity implements OnR loader = findViewById(R.id.loader); validate = findViewById(R.id.validate); LinearLayout date_container = findViewById(R.id.date_container); - SQLiteDatabase db = Sqlite.getInstance(OwnerNotificationChartsActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (status_id == null) { dateIni = new NotificationCacheDAO(OwnerNotificationChartsActivity.this, db).getSmallerDate(); dateEnd = new NotificationCacheDAO(OwnerNotificationChartsActivity.this, db).getGreaterDate(); diff --git a/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java b/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java index 2be0df81a..4d738d412 100644 --- a/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/OwnerStatusActivity.java @@ -218,7 +218,7 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds style = R.style.Dialog; } - SQLiteDatabase db = Sqlite.getInstance(OwnerStatusActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(OwnerStatusActivity.this, db).getUniqAccount(userId, instance); Helper.loadGiF(OwnerStatusActivity.this, account, pp_actionBar); @@ -319,7 +319,7 @@ public class OwnerStatusActivity extends BaseActivity implements OnRetrieveFeeds dialogBuilder.setView(dialogView); - SQLiteDatabase db = Sqlite.getInstance(OwnerStatusActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (dateIni == null) dateIni = new StatusCacheDAO(OwnerStatusActivity.this, db).getSmallerDate(StatusCacheDAO.ARCHIVE_CACHE); if (dateEnd == null) diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java index 07658a0de..ade75a356 100644 --- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java @@ -220,7 +220,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube } }); - SQLiteDatabase db = Sqlite.getInstance(PeertubeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(PeertubeActivity.this)); Account account = new AccountDAO(PeertubeActivity.this, db).getUniqAccount(userId, instance); @@ -609,7 +609,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube Helper.manageDownloads(PeertubeActivity.this, peertube.getFileDownloadUrl(null, peertube.isStreamService())); } }); - SQLiteDatabase db = Sqlite.getInstance(PeertubeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List peertubes = new PeertubeFavoritesDAO(PeertubeActivity.this, db).getSinglePeertube(peertube); Drawable img; diff --git a/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java b/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java index dfe61a632..597d9bfd3 100644 --- a/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/PixelfedComposeActivity.java @@ -668,7 +668,7 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu } Bundle b = getIntent().getExtras(); ArrayList sharedUri = new ArrayList<>(); - SQLiteDatabase db = Sqlite.getInstance(PixelfedComposeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); restored = -1; if (b != null) { scheduledstatus = b.getParcelable("storedStatus"); @@ -1452,10 +1452,10 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu if (apiResponse.getError() == null || apiResponse.getError().getStatusCode() != -33) { if (restored != -1) { - SQLiteDatabase db = Sqlite.getInstance(PixelfedComposeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusStoredDAO(PixelfedComposeActivity.this, db).remove(restored); } else if (currentToId != -1) { - SQLiteDatabase db = Sqlite.getInstance(PixelfedComposeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusStoredDAO(PixelfedComposeActivity.this, db).remove(currentToId); } } @@ -1673,7 +1673,7 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu } private void restoreToot(long id) { - SQLiteDatabase db = Sqlite.getInstance(PixelfedComposeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); StoredStatus draft = new StatusStoredDAO(PixelfedComposeActivity.this, db).getStatus(id); if (draft == null) return; @@ -1886,7 +1886,7 @@ public class PixelfedComposeActivity extends BaseActivity implements UploadStatu toot.setContent(PixelfedComposeActivity.this, currentContent); - SQLiteDatabase db = Sqlite.getInstance(PixelfedComposeActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); try { if (currentToId == -1) { currentToId = new StatusStoredDAO(PixelfedComposeActivity.this, db).insertStatus(toot, null); diff --git a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java index 28e5e8324..685fc70c4 100644 --- a/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ReorderTimelinesActivity.java @@ -171,7 +171,7 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra dialogBuilder.setPositiveButton(R.string.validate, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { - SQLiteDatabase db = Sqlite.getInstance(ReorderTimelinesActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instanceName = instance_list.getText().toString().trim().replace("@", ""); new Thread(new Runnable() { @Override @@ -353,7 +353,7 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra updated = false; RecyclerView lv_reorder_tabs = findViewById(R.id.lv_reorder_tabs); - SQLiteDatabase db = Sqlite.getInstance(ReorderTimelinesActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); timelines = new TimelinesDAO(ReorderTimelinesActivity.this, db).getAllTimelines(); adapter = new ReorderTabAdapter(timelines, ReorderTimelinesActivity.this, ReorderTimelinesActivity.this); @@ -394,7 +394,7 @@ public class ReorderTimelinesActivity extends BaseActivity implements OnStartDra @Override public void run() { undo_container.setVisibility(View.GONE); - SQLiteDatabase db = Sqlite.getInstance(ReorderTimelinesActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); switch (manageTimelines.getType()) { case TAG: new SearchDAO(ReorderTimelinesActivity.this, db).remove(manageTimelines.getTagTimeline().getName()); diff --git a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java index f3734a780..bb39b6732 100644 --- a/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ShowAccountActivity.java @@ -378,7 +378,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt //Timed muted account String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - final SQLiteDatabase db = Sqlite.getInstance(ShowAccountActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final Account authenticatedAccount = new AccountDAO(ShowAccountActivity.this, db).getUniqAccount(userId, instance); boolean isTimedMute = new TempMuteDAO(ShowAccountActivity.this, db).isTempMuted(authenticatedAccount, accountId); if (isTimedMute) { @@ -1110,7 +1110,7 @@ public class ShowAccountActivity extends BaseActivity implements OnPostActionInt } else { style = R.style.Dialog; } - final SQLiteDatabase db = Sqlite.getInstance(ShowAccountActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); switch (item.getItemId()) { case R.id.action_follow_instance: String finalInstanceName = splitAcct[1]; diff --git a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java index 9f605cfe0..fab8f13c5 100644 --- a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java @@ -110,7 +110,7 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve detailsStatus.setFocused(true); //Some spannable Status.fillSpan(ShowConversationActivity.this, detailsStatus); - if( detailsStatus.getPoll() != null ) { + if (detailsStatus.getPoll() != null) { Status.makeEmojiPoll(ShowConversationActivity.this, detailsStatus.getPoll()); } Account.makeAccountNameEmoji(ShowConversationActivity.this, detailsStatus.getAccount()); @@ -199,7 +199,7 @@ public class ShowConversationActivity extends BaseActivity implements OnRetrieve }); - SQLiteDatabase db = Sqlite.getInstance(ShowConversationActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(ShowConversationActivity.this, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/activities/TagCacheActivity.java b/app/src/main/java/app/fedilab/android/activities/TagCacheActivity.java index 0d7f5f8a6..185e097d6 100644 --- a/app/src/main/java/app/fedilab/android/activities/TagCacheActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TagCacheActivity.java @@ -66,7 +66,7 @@ public class TagCacheActivity extends BaseActivity { setContentView(R.layout.activity_tag_cache); tag_list = findViewById(R.id.tag_list); - SQLiteDatabase db = Sqlite.getInstance(TagCacheActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); EditText tag_add = findViewById(R.id.tag_add); ImageButton save_tag = findViewById(R.id.save_tag); diff --git a/app/src/main/java/app/fedilab/android/activities/TootActivity.java b/app/src/main/java/app/fedilab/android/activities/TootActivity.java index 6bc81d741..711a90095 100644 --- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java @@ -942,7 +942,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, Bundle b = getIntent().getExtras(); ArrayList sharedUri = new ArrayList<>(); - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); restored = -1; if (b != null) { tootReply = b.getParcelable("tootReply"); @@ -1643,7 +1643,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, @SuppressLint("ClickableViewAccessibility") @Override public boolean onOptionsItemSelected(@NotNull MenuItem item) { - final SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); int style; SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK); @@ -2250,7 +2250,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, } SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); MenuItem itemEmoji = menu.findItem(R.id.action_emoji); - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final List emojis = new CustomEmojiDAO(TootActivity.this, db).getAllEmojis(); //Displays button only if custom emojis if (emojis != null && emojis.size() > 0) { @@ -2538,10 +2538,10 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, } if (apiResponse.getError() == null || apiResponse.getError().getStatusCode() != -33) { if (restored != -1) { - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusStoredDAO(TootActivity.this, db).remove(restored); } else if (currentToId != -1) { - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusStoredDAO(TootActivity.this, db).remove(currentToId); } } @@ -2954,7 +2954,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, } private void restoreToot(long id) { - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); StoredStatus draft = new StatusStoredDAO(TootActivity.this, db).getStatus(id); if (draft == null) return; @@ -3616,7 +3616,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate, toot.setPoll(poll); if (tootReply != null) toot.setIn_reply_to_id(tootReply.getId()); - SQLiteDatabase db = Sqlite.getInstance(TootActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); try { if (currentToId == -1) { currentToId = new StatusStoredDAO(TootActivity.this, db).insertStatus(toot, tootReply); diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java index 28c92637a..3cceba0e2 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java @@ -151,7 +151,7 @@ public class WebviewActivity extends BaseActivity { url = "http://" + url; if (trackingDomains == null) { AsyncTask.execute(() -> { - SQLiteDatabase db = Sqlite.getInstance(WebviewActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); trackingDomains = new DomainBlockDAO(WebviewActivity.this, db).getAll(); if (trackingDomains == null) trackingDomains = new ArrayList<>(); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java index 654f1cf4a..9403f0a96 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/DownloadTrackingDomainsAsyncTask.java @@ -71,7 +71,7 @@ public class DownloadTrackingDomainsAsyncTask extends AsyncTask { SharedPreferences sharedpreferences = contextReference.get().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(contextReference.get())); - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(contextReference.get(), db).getUniqAccount(userId, instance); if (apiAction == action.GET_PLAYLIST) { apiResponse = new PeertubeAPI(contextReference.get()).getPlayists(account.getUsername()); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/PostActionAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/PostActionAsyncTask.java index a7af7da01..3e2575a2b 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/PostActionAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/PostActionAsyncTask.java @@ -190,7 +190,7 @@ public class PostActionAsyncTask extends AsyncTask { } else if (apiAction == API.StatusAction.MUTE_NOTIFICATIONS) { statusCode = api.muteNotifications(targetedId, muteNotifications); } else if (apiAction == API.StatusAction.UNBOOKMARK && targetedId == null) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List bookmarks = new StatusCacheDAO(contextReference.get(), db).getAllStatus(StatusCacheDAO.BOOKMARK_CACHE); for (app.fedilab.android.client.Entities.Status status : bookmarks) { statusCode = api.postAction(apiAction, status.getId()); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/PostStatusAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/PostStatusAsyncTask.java index b1291a760..546fc8bc4 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/PostStatusAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/PostStatusAsyncTask.java @@ -104,7 +104,7 @@ public class PostStatusAsyncTask extends AsyncTask { public void run() { String content = status.getContent(); if (content != null && content.length() > 0) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Matcher matcher = Helper.hashtagPattern.matcher(content); while (matcher.find()) { int matchStart = matcher.start(1); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RemoveAccountAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RemoveAccountAsyncTask.java index cb6fc7bb4..ae4a250a0 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RemoveAccountAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RemoveAccountAsyncTask.java @@ -41,7 +41,7 @@ public class RemoveAccountAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(activityReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activityReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new AccountDAO(activityReference.get(), db).removeUser(account); return null; } diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveAccountsForReplyAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveAccountsForReplyAsyncTask.java index 513c4ca13..11b511585 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveAccountsForReplyAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveAccountsForReplyAsyncTask.java @@ -83,7 +83,7 @@ public class RetrieveAccountsForReplyAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); charts = new StatusCacheDAO(contextReference.get(), db).getCharts(dateIni, dateEnd); return null; diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveEmojiAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveEmojiAsyncTask.java index c78316938..7d27d9076 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveEmojiAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveEmojiAsyncTask.java @@ -48,7 +48,7 @@ public class RetrieveEmojiAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); emojis = new CustomEmojiDAO(contextReference.get(), db).getEmojiStartingBy(shortcode); return null; } diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveFeedsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveFeedsAsyncTask.java index 64fa61656..c23a035f1 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveFeedsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveFeedsAsyncTask.java @@ -177,7 +177,7 @@ public class RetrieveFeedsAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { API api = new API(this.contextReference.get()); - SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (action == null) return null; switch (action) { @@ -365,24 +365,24 @@ public class RetrieveFeedsAsyncTask extends AsyncTask { break; case CACHE_BOOKMARKS: apiResponse = new APIResponse(); - db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List statuses = new StatusCacheDAO(contextReference.get(), db).getAllStatus(StatusCacheDAO.BOOKMARK_CACHE); - for(app.fedilab.android.client.Entities.Status status: statuses){ + for (app.fedilab.android.client.Entities.Status status : statuses) { app.fedilab.android.client.Entities.Status.fillSpan(contextReference.get(), status); - app.fedilab.android.client.Entities.Status.makeEmojiPoll(contextReference.get(), status.getReblog()!= null?status.getReblog().getPoll():status.getPoll()); - Account.makeAccountNameEmoji(contextReference.get(), status.getReblog()!= null?status.getReblog().getAccount():status.getAccount()); + app.fedilab.android.client.Entities.Status.makeEmojiPoll(contextReference.get(), status.getReblog() != null ? status.getReblog().getPoll() : status.getPoll()); + Account.makeAccountNameEmoji(contextReference.get(), status.getReblog() != null ? status.getReblog().getAccount() : status.getAccount()); } apiResponse.setStatuses(statuses); break; case CACHE_BOOKMARKS_PEERTUBE: apiResponse = new APIResponse(); - db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List peertubes = new PeertubeFavoritesDAO(contextReference.get(), db).getAllPeertube(); apiResponse.setPeertubes(peertubes); break; case CACHE_STATUS: apiResponse = new APIResponse(); - db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); statuses = new StatusCacheDAO(contextReference.get(), db).getStatusFromID(StatusCacheDAO.ARCHIVE_CACHE, filterToots, max_id); if (statuses != null && statuses.size() > 0) { apiResponse.setStatuses(statuses); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveMissingFeedsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveMissingFeedsAsyncTask.java index 6d73dada2..7ae21dc50 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveMissingFeedsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveMissingFeedsAsyncTask.java @@ -96,7 +96,7 @@ public class RetrieveMissingFeedsAsyncTask extends AsyncTask { else if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) apiResponse = api.getInstanceTimelineSinceId(remoteInstance, since_id); else if (type == RetrieveFeedsAsyncTask.Type.TAG) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); ManageTimelines manageTimelines = new TimelinesDAO(contextReference.get(), db).getById(timelineId); if (manageTimelines != null && manageTimelines.getTagTimeline() != null) { TagTimeline tagTimeline = manageTimelines.getTagTimeline(); @@ -146,7 +146,7 @@ public class RetrieveMissingFeedsAsyncTask extends AsyncTask { else if (type == RetrieveFeedsAsyncTask.Type.GNU_WHOLE) apiResponse = gnuapi.getPublicTimelineSinceId(false, since_id); else if (type == RetrieveFeedsAsyncTask.Type.GNU_TAG) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List tagTimelines = new SearchDAO(contextReference.get(), db).getTimelineInfo(remoteInstance); if (tagTimelines != null && tagTimelines.size() > 0) { TagTimeline tagTimeline = tagTimelines.get(0); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveNotificationChartsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveNotificationChartsAsyncTask.java index 29a0c8ac2..ec291cf22 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveNotificationChartsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveNotificationChartsAsyncTask.java @@ -54,7 +54,7 @@ public class RetrieveNotificationChartsAsyncTask extends AsyncTask notifications = new NotificationCacheDAO(contextReference.get(), db).getNotificationsFromID(filterNotifications, max_id); apiResponse = new APIResponse(); apiResponse.setNotifications(notifications); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrievePeertubeChannelsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrievePeertubeChannelsAsyncTask.java index 28cbd9643..03d0b17ef 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrievePeertubeChannelsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrievePeertubeChannelsAsyncTask.java @@ -51,7 +51,7 @@ public class RetrievePeertubeChannelsAsyncTask extends AsyncTask @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Retrieves job asked by the user if (type == DisplayScheduledTootsFragment.typeOfSchedule.TOOT) storedStatuses = new StatusStoredDAO(this.contextReference.get(), db).getAllScheduled(); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveSearchAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveSearchAsyncTask.java index c64699b64..12dbd7403 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveSearchAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveSearchAsyncTask.java @@ -121,7 +121,7 @@ public class RetrieveSearchAsyncTask extends AsyncTask { else { //search tags only apiResponse = api.search(query); - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List cachedTags = new TagsCacheDAO(contextReference.get(), db).getBy(query); if (apiResponse != null && apiResponse.getResults() != null && apiResponse.getResults().getHashtags() != null) { //If cache contains matching tags diff --git a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveStatsAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveStatsAsyncTask.java index 89e41b74b..1c845fc33 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/RetrieveStatsAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/RetrieveStatsAsyncTask.java @@ -47,7 +47,7 @@ public class RetrieveStatsAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); statistics = new StatusCacheDAO(contextReference.get(), db).getStat(); return null; diff --git a/app/src/main/java/app/fedilab/android/asynctasks/SyncBookmarksAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/SyncBookmarksAsyncTask.java index ce237e0f3..07f82ca94 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/SyncBookmarksAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/SyncBookmarksAsyncTask.java @@ -49,7 +49,7 @@ public class SyncBookmarksAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (type == sync.IMPORT) { String max_id = null; do { diff --git a/app/src/main/java/app/fedilab/android/asynctasks/SyncTimelinesAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/SyncTimelinesAsyncTask.java index 787079946..842ebaf0c 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/SyncTimelinesAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/SyncTimelinesAsyncTask.java @@ -66,7 +66,7 @@ public class SyncTimelinesAsyncTask extends AsyncTask { @Override protected Void doInBackground(Void... params) { - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); manageTimelines = new TimelinesDAO(contextReference.get(), db).getAllTimelines(); //First time that the timeline is created int i = 0; diff --git a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java index 8c6cf36e7..3113aab11 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoAsyncTask.java @@ -89,7 +89,7 @@ public class UpdateAccountInfoAsyncTask extends AsyncTask { account.setClient_secret(client_secret); account.setRefresh_token(refresh_token); account.setInstance(instance); - SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); boolean userExists = new AccountDAO(this.contextReference.get(), db).userExist(account); SharedPreferences.Editor editor = sharedpreferences.edit(); editor.putString(Helper.PREF_KEY_ID, account.getId()); diff --git a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoByIDAsyncTask.java b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoByIDAsyncTask.java index 7c3a74618..c2bcc67aa 100644 --- a/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoByIDAsyncTask.java +++ b/app/src/main/java/app/fedilab/android/asynctasks/UpdateAccountInfoByIDAsyncTask.java @@ -69,7 +69,7 @@ public class UpdateAccountInfoByIDAsyncTask extends AsyncTask if (account == null) return null; account.setInstance(Helper.getLiveInstance(contextReference.get())); - SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(this.contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); boolean userExists = new AccountDAO(this.contextReference.get(), db).userExist(account); if (userExists) { Account accountDb = new AccountDAO(this.contextReference.get(), db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index f2c726a57..a8db9f2d5 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -139,7 +139,7 @@ public class API { if (Helper.getLiveInstance(context) != null) this.instance = Helper.getLiveInstance(context); else { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -1360,7 +1360,7 @@ public class API { account.setUsername(resobj.get("username").toString()); account.setAcct(resobj.get("acct").toString()); account.setDisplay_name(resobj.get("display_name").toString()); - if( account.getDisplay_name() == null || account.getDisplay_name().compareTo("") == 0){ + if (account.getDisplay_name() == null || account.getDisplay_name().compareTo("") == 0) { account.setDisplay_name(resobj.get("username").toString()); } account.setLocked(Boolean.parseBoolean(resobj.get("locked").toString())); @@ -2452,7 +2452,7 @@ public class API { } catch (HttpsConnection.HttpsConnectionException e) { e.printStackTrace(); if (e.getStatusCode() == 401 || e.getStatusCode() == 403) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account targetedAccount = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); if (targetedAccount == null) return null; @@ -2843,7 +2843,7 @@ public class API { HttpsConnection httpsConnection = new HttpsConnection(context, this.instance); String response = httpsConnection.get(getAbsoluteUrl(String.format("/statuses/%s", statusId)), 10, null, prefKeyOauthTokenT); Status status = parseStatuses(context, new JSONObject(response)); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); new TimelineCacheDAO(context, db).update(status.getId(), response, account.getId(), account.getInstance()); statuses.add(status); @@ -3030,7 +3030,7 @@ public class API { */ public APIResponse getHomeTimelineCache(String max_id) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); statuses = new TimelineCacheDAO(context, db).get(max_id); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); @@ -4341,7 +4341,7 @@ public class API { Intent intentBC = new Intent(Helper.RECEIVE_ACTION); intentBC.putExtras(b); LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); Status indb = new TimelineCacheDAO(context, db).getSingle(targetedId); if (indb != null) { @@ -4371,7 +4371,7 @@ public class API { httpsConnection.delete(getAbsoluteUrl(action), 10, null, prefKeyOauthTokenT); actionCode = httpsConnection.getActionCode(); if (statusAction != StatusAction.REMOVE_REACTION && statusAction != StatusAction.REMOVE_PLEROMA_REACTION) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new TimelineCacheDAO(context, db).remove(targetedId); } } catch (HttpsConnection.HttpsConnectionException e) { @@ -4533,7 +4533,7 @@ public class API { b.putParcelable("status", status); Intent intentBC = new Intent(Helper.RECEIVE_ACTION); intentBC.putExtras(b); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Status alreadyCached = new TimelineCacheDAO(context, db).getSingle(status.getId()); Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); if (alreadyCached != null) { @@ -5655,7 +5655,7 @@ public class API { * @return List */ private List parseStatusesForCache(Context context, JSONArray jsonArray) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); List statuses = new ArrayList<>(); try { diff --git a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java index e066f75c8..663c11c08 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java @@ -678,7 +678,7 @@ public class ManageTimelines { PopupMenu popup = new PopupMenu(context, tabStrip.getChildAt(position)); TabLayout tabLayout = ((MainActivity) context).findViewById(R.id.tabLayout); tabLayout.setBackgroundColor(ContextCompat.getColor(Objects.requireNonNull(context), R.color.cyanea_primary)); - SQLiteDatabase db = Sqlite.getInstance(context, DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), DB_NAME, null, Sqlite.DB_VERSION).open(); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK); int style; @@ -879,7 +879,7 @@ public class ManageTimelines { PopupMenu popup = new PopupMenu(context, tabStrip.getChildAt(position)); - SQLiteDatabase db = Sqlite.getInstance(context, DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), DB_NAME, null, Sqlite.DB_VERSION).open(); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK); int style; diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java index 965f01e86..ee2ddd279 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Notification.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Notification.java @@ -17,6 +17,7 @@ package app.fedilab.android.client.Entities; import android.os.Parcel; import android.os.Parcelable; + import java.util.Date; diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Poll.java b/app/src/main/java/app/fedilab/android/client/Entities/Poll.java index 38e711369..2efadbf6e 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Poll.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Poll.java @@ -24,6 +24,17 @@ import java.util.List; public class Poll implements Parcelable { + public static final Creator CREATOR = new Creator() { + @Override + public Poll createFromParcel(Parcel source) { + return new Poll(source); + } + + @Override + public Poll[] newArray(int size) { + return new Poll[size]; + } + }; private String id; private Date expires_at; private int expires_in; @@ -39,6 +50,22 @@ public class Poll implements Parcelable { public Poll() { } + protected Poll(Parcel in) { + this.id = in.readString(); + long tmpExpires_at = in.readLong(); + this.expires_at = tmpExpires_at == -1 ? null : new Date(tmpExpires_at); + this.expires_in = in.readInt(); + this.expired = in.readByte() != 0; + this.multiple = in.readByte() != 0; + this.votes_count = in.readInt(); + this.voters_count = in.readInt(); + this.voted = in.readByte() != 0; + this.optionsList = in.createTypedArrayList(PollOptions.CREATOR); + this.emojis = in.createTypedArrayList(Emojis.CREATOR); + this.own_votes = new ArrayList<>(); + in.readList(this.own_votes, Integer.class.getClassLoader()); + } + public String getId() { return id; } @@ -146,32 +173,4 @@ public class Poll implements Parcelable { dest.writeTypedList(this.emojis); dest.writeList(this.own_votes); } - - protected Poll(Parcel in) { - this.id = in.readString(); - long tmpExpires_at = in.readLong(); - this.expires_at = tmpExpires_at == -1 ? null : new Date(tmpExpires_at); - this.expires_in = in.readInt(); - this.expired = in.readByte() != 0; - this.multiple = in.readByte() != 0; - this.votes_count = in.readInt(); - this.voters_count = in.readInt(); - this.voted = in.readByte() != 0; - this.optionsList = in.createTypedArrayList(PollOptions.CREATOR); - this.emojis = in.createTypedArrayList(Emojis.CREATOR); - this.own_votes = new ArrayList<>(); - in.readList(this.own_votes, Integer.class.getClassLoader()); - } - - public static final Creator CREATOR = new Creator() { - @Override - public Poll createFromParcel(Parcel source) { - return new Poll(source); - } - - @Override - public Poll[] newArray(int size) { - return new Poll[size]; - } - }; } diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java index fe2f4abc3..d698508d0 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java @@ -263,7 +263,7 @@ public class Status implements Parcelable { } - public static void fillSpan(Context context, Status status){ + public static void fillSpan(Context context, Status status) { Status.transform(context, status); Status.makeEmojis(context, status); Status.makeImage(context, status); diff --git a/app/src/main/java/app/fedilab/android/client/GNUAPI.java b/app/src/main/java/app/fedilab/android/client/GNUAPI.java index 855454e06..ac54a88e5 100644 --- a/app/src/main/java/app/fedilab/android/client/GNUAPI.java +++ b/app/src/main/java/app/fedilab/android/client/GNUAPI.java @@ -89,7 +89,7 @@ public class GNUAPI { if (Helper.getLiveInstance(context) != null) this.instance = Helper.getLiveInstance(context); else { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); if (account == null) { @@ -1598,11 +1598,11 @@ public class GNUAPI { Intent intentBC = new Intent(Helper.RECEIVE_ACTION); intentBC.putExtras(b); LocalBroadcastManager.getInstance(context).sendBroadcast(intentBC); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); new TimelineCacheDAO(context, db).update(targetedId, resp, account.getId(), account.getToken()); } else if (statusAction == API.StatusAction.UNSTATUS) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new TimelineCacheDAO(context, db).remove(targetedId); } } catch (HttpsConnection.HttpsConnectionException e) { @@ -1640,7 +1640,7 @@ public class GNUAPI { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); //Current user String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account currentAccount = new AccountDAO(context, db).getUniqAccount(userId, Helper.getLiveInstance(context)); params.put("user_id", currentAccount.getId()); params.put("screen_name", currentAccount.getAcct()); @@ -1727,7 +1727,7 @@ public class GNUAPI { String url = null; SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); //Current user - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java index ea5e5cf84..20c667497 100644 --- a/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java +++ b/app/src/main/java/app/fedilab/android/client/PeertubeAPI.java @@ -81,7 +81,7 @@ public class PeertubeAPI { if (Helper.getLiveInstance(context) != null) this.instance = Helper.getLiveInstance(context); else { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -662,7 +662,7 @@ public class PeertubeAPI { e.printStackTrace(); } catch (HttpsConnection.HttpsConnectionException e) { if (e.getStatusCode() == 401 || e.getStatusCode() == 403) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account targetedAccount = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); if (targetedAccount != null) { HashMap values = refreshToken(targetedAccount.getClient_id(), targetedAccount.getClient_secret(), targetedAccount.getRefresh_token()); @@ -1057,7 +1057,7 @@ public class PeertubeAPI { return getTL("/users/me/subscriptions/videos", "-publishedAt", null, max_id, null, null); } catch (HttpsConnection.HttpsConnectionException e) { if (e.getStatusCode() == 401 || e.getStatusCode() == 403) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account targetedAccount = new AccountDAO(context, db).getAccountByToken(prefKeyOauthTokenT); HashMap values = refreshToken(targetedAccount.getClient_id(), targetedAccount.getClient_secret(), targetedAccount.getRefresh_token()); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); diff --git a/app/src/main/java/app/fedilab/android/client/PixelfedAPI.java b/app/src/main/java/app/fedilab/android/client/PixelfedAPI.java index f0099bbc8..a736aa3b2 100644 --- a/app/src/main/java/app/fedilab/android/client/PixelfedAPI.java +++ b/app/src/main/java/app/fedilab/android/client/PixelfedAPI.java @@ -54,7 +54,7 @@ public class PixelfedAPI { if (Helper.getLiveInstance(context) != null) this.instance = Helper.getLiveInstance(context); else { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java index c7de43f9f..3cac8a987 100644 --- a/app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/AccountsListAdapter.java @@ -305,7 +305,7 @@ public class AccountsListAdapter extends RecyclerView.Adapter implements OnPostA } if (statusAction == API.StatusAction.FOLLOW) { if (action == RetrieveAccountsAsyncTask.Type.CHANNELS) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new InstancesDAO(context, db).insertInstance(accounts.get(0).getAcct().split("@")[1], accounts.get(0).getAcct().split("@")[0], "PEERTUBE_CHANNEL"); } else { for (Account account : accounts) { diff --git a/app/src/main/java/app/fedilab/android/drawers/AccountsSearchAdapter.java b/app/src/main/java/app/fedilab/android/drawers/AccountsSearchAdapter.java index b91d68d11..2167f8cb7 100644 --- a/app/src/main/java/app/fedilab/android/drawers/AccountsSearchAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/AccountsSearchAdapter.java @@ -144,7 +144,7 @@ public class AccountsSearchAdapter extends ArrayAdapter implements Filt if (owner) { final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account currentAccount = new AccountDAO(context, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java index 213fcf3e5..0fce270be 100644 --- a/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/ArtListAdapter.java @@ -218,7 +218,7 @@ public class ArtListAdapter extends RecyclerView.Adapter implements OnPostAction if (status.getId().equals(targetedId)) { statuses.remove(status); statusListAdapter.notifyItemRemoved(position); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Remove the status from cache also try { new StatusCacheDAO(context, db).remove(StatusCacheDAO.ARCHIVE_CACHE, status); diff --git a/app/src/main/java/app/fedilab/android/drawers/DraftsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/DraftsListAdapter.java index 4b3cd4099..d997f0344 100644 --- a/app/src/main/java/app/fedilab/android/drawers/DraftsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/DraftsListAdapter.java @@ -105,7 +105,7 @@ public class DraftsListAdapter extends BaseAdapter { } - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (this.clickable) { if (draft.getStatus().getContent().length() > 300) diff --git a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java index dbe688fb4..bf2d4ff67 100644 --- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java @@ -14,6 +14,7 @@ package app.fedilab.android.drawers; * You should have received a copy of the GNU General Public License along with Fedilab; if not, * see . */ +import android.annotation.SuppressLint; import android.app.Activity; import android.content.ClipData; import android.content.ClipboardManager; @@ -128,7 +129,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On private NotificationsListAdapter.ViewHolder holder; private int style; private RecyclerView mRecyclerView; - private List lstHolders; + private Runnable updateAnimatedEmoji = new Runnable() { @Override public void run() { @@ -136,17 +137,11 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On if (mRecyclerView != null && (mRecyclerView.getLayoutManager()) != null) { int firstPosition = ((LinearLayoutManager) mRecyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition(); int lastPosition = ((LinearLayoutManager) mRecyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition(); - - for (NotificationsListAdapter.ViewHolder holder : lstHolders) { - - if (holder.getLayoutPosition() >= firstPosition && holder.getLayoutPosition() <= lastPosition) { - holder.updateAnimatedEmoji(); + for (int i = firstPosition; i <= lastPosition; i++) { + if (mRecyclerView.findViewHolderForAdapterPosition(i) != null) { + ((ViewHolder) Objects.requireNonNull(mRecyclerView.findViewHolderForAdapterPosition(i))).updateAnimatedEmoji(); } } - } else { - for (NotificationsListAdapter.ViewHolder holder : lstHolders) { - holder.updateAnimatedEmoji(); - } } } } @@ -159,8 +154,6 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On notificationsListAdapter = this; this.isOnWifi = isOnWifi; this.behaviorWithAttachments = behaviorWithAttachments; - lstHolders = new ArrayList<>(); - } @@ -184,6 +177,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On return new ViewHolder(layoutInflater.inflate(R.layout.drawer_notification, parent, false)); } + @SuppressLint("ClickableViewAccessibility") @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) { @@ -191,9 +185,6 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On context = holder.status_document_container.getContext(); - synchronized (lock) { - lstHolders.add(holder); - } holder.startUpdateTimer(); final Notification notification = notifications.get(position); final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); @@ -537,7 +528,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On if (pollOption.getVotes_count() > greaterValue) greaterValue = pollOption.getVotes_count(); } - LayoutInflater inflater = ((Activity)context).getLayoutInflater(); + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); holder.rated.removeAllViews(); List ownvotes = poll.getOwn_votes(); int j = 0; @@ -547,11 +538,11 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On TextView poll_item_percent = item.findViewById(R.id.poll_item_percent); TextView poll_item_text = item.findViewById(R.id.poll_item_text); ProgressBar poll_item_value = item.findViewById(R.id.poll_item_value); - poll_item_percent.setText(String.format("%s %%", String.valueOf((int)value))); + poll_item_percent.setText(String.format("%s %%", String.valueOf((int) value))); poll_item_text.setText(pollOption.getTitle(), TextView.BufferType.SPANNABLE); - poll_item_value.setProgress((int)value); + poll_item_value.setProgress((int) value); holder.rated.addView(item); - if( pollOption.getVotes_count() == greaterValue ){ + if (pollOption.getVotes_count() == greaterValue) { poll_item_percent.setTypeface(null, Typeface.BOLD); poll_item_text.setTypeface(null, Typeface.BOLD); } @@ -687,9 +678,6 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On holder.status_reblog_count.setVisibility(View.VISIBLE); holder.spark_button_reblog.setVisibility(View.VISIBLE); break; - default: - holder.status_reblog_count.setVisibility(View.VISIBLE); - holder.spark_button_reblog.setVisibility(View.VISIBLE); } diff --git a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java index d74e45898..6f4a95873 100644 --- a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java @@ -330,7 +330,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA public void onRetrieveFeeds(APIResponse apiResponse) { if (apiResponse.getStatuses() != null && apiResponse.getStatuses().size() > 0) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); long id = new StatusStoredDAO(context, db).insertStatus(toot, apiResponse.getStatuses().get(0)); Intent intentToot = new Intent(context, PixelfedComposeActivity.class); Bundle b = new Bundle(); @@ -470,7 +470,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA comment_content.setInputType(newInputType); in_reply_to_status = status.getReblog() != null ? status.getReblog().getId() : status.getId(); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -750,7 +750,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA case R.id.action_bookmark: if (type != RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS) { status.setBookmarked(!status.isBookmarked()); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); try { if (status.isBookmarked()) { new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status); @@ -770,7 +770,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA if (statustmp.getId().equals(status.getId())) { statuses.remove(status); pixelfedListAdapter.notifyItemRemoved(position); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, statustmp); Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show(); break; @@ -899,7 +899,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA } else if (status.getReblog() != null && status.getReblog().getPoll() != null) { toot.setPoll(status.getPoll()); } - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); long id = new StatusStoredDAO(context, db).insertStatus(toot, null); Intent intentToot = new Intent(context, PixelfedComposeActivity.class); Bundle b = new Bundle(); @@ -1114,7 +1114,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA tootContent = comment_content.getText().toString().trim(); Status toot = new Status(); toot.setSensitive(false); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); toot.setVisibility(visibility); toot.setIn_reply_to_id(in_reply_to_status); @@ -1148,7 +1148,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA if (status.getId().equals(targetedId)) { statuses.remove(status); pixelfedListAdapter.notifyItemRemoved(position); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Remove the status from cache also try { new StatusCacheDAO(context, db).remove(StatusCacheDAO.ARCHIVE_CACHE, status); @@ -1235,7 +1235,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA //Store the toot as draft first String targeted_id = status.getAccount().getId(); Date date_mute = new Date(time); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); diff --git a/app/src/main/java/app/fedilab/android/drawers/ReorderTabAdapter.java b/app/src/main/java/app/fedilab/android/drawers/ReorderTabAdapter.java index 5cfe86b58..e1c8fe0c4 100644 --- a/app/src/main/java/app/fedilab/android/drawers/ReorderTabAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/ReorderTabAdapter.java @@ -172,7 +172,7 @@ public class ReorderTabAdapter extends RecyclerView.Adapter { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); int count = new TimelinesDAO(context, db).countVisibleTimelines(); if (count > 2 || !tl.isDisplayed()) { tl.setDisplayed(!tl.isDisplayed()); @@ -216,7 +216,7 @@ public class ReorderTabAdapter extends RecyclerView.Adapter lstHolders; private List emojisPicker; private Status statusForQuickReply; private String instanceType; + private Runnable updateAnimatedEmoji = new Runnable() { @Override public void run() { @@ -234,15 +235,11 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (mRecyclerView != null && (mRecyclerView.getLayoutManager()) != null) { int firstPosition = ((LinearLayoutManager) mRecyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition(); int lastPosition = ((LinearLayoutManager) mRecyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition(); - for (ViewHolder holder : lstHolders) { - if (holder.getLayoutPosition() >= firstPosition && holder.getLayoutPosition() <= lastPosition) { - holder.updateAnimatedEmoji(); + for (int i = firstPosition; i <= lastPosition; i++) { + if (mRecyclerView.findViewHolderForAdapterPosition(i) != null) { + ((ViewHolder) Objects.requireNonNull(mRecyclerView.findViewHolderForAdapterPosition(i))).updateAnimatedEmoji(); } } - } else { - for (ViewHolder holder : lstHolders) { - holder.updateAnimatedEmoji(); - } } } } @@ -259,7 +256,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct tagTimeline = statusDrawerParams.getTagTimeline(); conversationPosition = statusDrawerParams.getPosition(); redraft = false; - lstHolders = new ArrayList<>(); toot_content = null; toot_cw_content = null; tootReply = null; @@ -318,7 +314,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct @Override public void onRefresh(Status refreshedStatus) { if (refreshedStatus.getCreated_at() == null) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new TimelineCacheDAO(context, db).remove(refreshedStatus.getId()); new PostActionAsyncTask(context, API.StatusAction.UNSTATUS, refreshedStatus.getId(), StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } @@ -500,7 +496,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (apiResponse.getStatuses() != null && apiResponse.getStatuses().size() > 0) toot.setIn_reply_to_id(apiResponse.getStatuses().get(0).getId()); toot.setContent(context, tootContent); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); new PostStatusAsyncTask(context, social, account, toot, StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); return; @@ -579,9 +575,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (social == UpdateAccountInfoAsyncTask.SOCIAL.PIXELFED && type == RetrieveFeedsAsyncTask.Type.CONTEXT) { return COMPACT_STATUS; } else { - if( instanceType == null || instanceType.compareTo("NITTER") != 0 ) { + if (instanceType == null || instanceType.compareTo("NITTER") != 0) { return statuses.get(position).getViewType(); - }else{ + } else { return COMPACT_STATUS; } } @@ -606,7 +602,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct return new ViewHolderEmpty(layoutInflater.inflate(R.layout.drawer_empty, parent, false)); } - @SuppressLint("SetJavaScriptEnabled") + @SuppressLint({"SetJavaScriptEnabled", "ClickableViewAccessibility"}) @Override public void onBindViewHolder(@NonNull final RecyclerView.ViewHolder viewHolder, int i) { final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); @@ -614,10 +610,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct context = viewHolder.itemView.getContext(); if (viewHolder.getItemViewType() != HIDDEN_STATUS) { final ViewHolder holder = (ViewHolder) viewHolder; - synchronized (lock) { - lstHolders.add(holder); - } - holder.startUpdateTimer(); final Status status = statuses.get(i); @@ -748,7 +740,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (pollOption.getVotes_count() > greaterValue) greaterValue = pollOption.getVotes_count(); } - LayoutInflater inflater = ((Activity)context).getLayoutInflater(); + LayoutInflater inflater = ((Activity) context).getLayoutInflater(); holder.rated.removeAllViews(); List ownvotes = poll.getOwn_votes(); int j = 0; @@ -758,11 +750,11 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct TextView poll_item_percent = item.findViewById(R.id.poll_item_percent); TextView poll_item_text = item.findViewById(R.id.poll_item_text); ProgressBar poll_item_value = item.findViewById(R.id.poll_item_value); - poll_item_percent.setText(String.format("%s %%", String.valueOf((int)value))); + poll_item_percent.setText(String.format("%s %%", String.valueOf((int) value))); poll_item_text.setText(pollOption.getTitle(), TextView.BufferType.SPANNABLE); - poll_item_value.setProgress((int)value); + poll_item_value.setProgress((int) value); holder.rated.addView(item); - if( pollOption.getVotes_count() == greaterValue ){ + if (pollOption.getVotes_count() == greaterValue) { poll_item_percent.setTypeface(null, Typeface.BOLD); poll_item_text.setTypeface(null, Typeface.BOLD); } @@ -927,7 +919,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct style = R.style.Dialog; } - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); emojisPicker = new CustomEmojiDAO(context, db).getAllEmojis(Helper.getLiveInstance(context)); final AlertDialog.Builder builder = new AlertDialog.Builder(context, style); int paddingPixel = 15; @@ -1012,8 +1004,8 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct iconColor = ThemeHelper.getAttColor(context, R.attr.iconColor); } - if( type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA ){ - if( type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS ) { + if (type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS || social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) { + if (type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS) { holder.status_account_profile.setVisibility(View.GONE); holder.status_account_displayname_owner.setVisibility(View.GONE); holder.status_account_username.setVisibility(View.GONE); @@ -1036,18 +1028,18 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct }).setOnEmojiClickListener((emoji, imageView) -> { String emojiStr = imageView.getUnicode(); boolean alreadyAdded = false; - for(Reaction reaction: status.getReactions()){ - if( reaction.getName().compareTo(emojiStr) == 0){ + for (Reaction reaction : status.getReactions()) { + if (reaction.getName().compareTo(emojiStr) == 0) { alreadyAdded = true; - reaction.setCount(reaction.getCount()-1); - if( reaction.getCount() == 0) { + reaction.setCount(reaction.getCount() - 1); + if (reaction.getCount() == 0) { status.getReactions().remove(reaction); } notifyStatusChanged(status); break; } } - if( !alreadyAdded){ + if (!alreadyAdded) { Reaction reaction = new Reaction(); reaction.setMe(true); reaction.setCount(1); @@ -1056,21 +1048,21 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct notifyStatusChanged(status); } API.StatusAction statusAction; - if( type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS ) { + if (type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS) { statusAction = alreadyAdded ? API.StatusAction.REMOVE_REACTION : API.StatusAction.ADD_REACTION; - }else{ + } else { statusAction = alreadyAdded ? API.StatusAction.REMOVE_PLEROMA_REACTION : API.StatusAction.ADD_PLEROMA_REACTION; } - new PostActionAsyncTask(context, statusAction, status.getId(), null,emojiStr, StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new PostActionAsyncTask(context, statusAction, status.getId(), null, emojiStr, StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); }) .build(holder.fake_edittext); emojiPopup.toggle(); }); - if( social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) { + if (social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) { holder.status_add_custom_emoji.setVisibility(View.GONE); } holder.status_add_custom_emoji.setOnClickListener(v -> { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); List emojis = new CustomEmojiDAO(context, db).getAllEmojis(account.getInstance()); @@ -1093,18 +1085,18 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct gridView.setNumColumns(5); gridView.setOnItemClickListener((parent, view, position, id) -> { boolean alreadyAdded = false; - for(Reaction reaction: status.getReactions()){ - if( reaction.getName().compareTo(emojis.get(position).getShortcode()) == 0){ + for (Reaction reaction : status.getReactions()) { + if (reaction.getName().compareTo(emojis.get(position).getShortcode()) == 0) { alreadyAdded = true; - reaction.setCount(reaction.getCount()-1); - if( reaction.getCount() == 0) { + reaction.setCount(reaction.getCount() - 1); + if (reaction.getCount() == 0) { status.getReactions().remove(reaction); } notifyStatusChanged(status); break; } } - if( !alreadyAdded){ + if (!alreadyAdded) { Reaction reaction = new Reaction(); reaction.setMe(true); reaction.setCount(1); @@ -1114,12 +1106,12 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct notifyStatusChanged(status); } API.StatusAction statusAction; - if( type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS ) { + if (type == RetrieveFeedsAsyncTask.Type.ANNOUNCEMENTS) { statusAction = alreadyAdded ? API.StatusAction.REMOVE_REACTION : API.StatusAction.ADD_REACTION; - }else{ + } else { statusAction = alreadyAdded ? API.StatusAction.REMOVE_PLEROMA_REACTION : API.StatusAction.ADD_PLEROMA_REACTION; } - new PostActionAsyncTask(context, statusAction, status.getId(), null, emojis.get(position).getShortcode(), StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new PostActionAsyncTask(context, statusAction, status.getId(), null, emojis.get(position).getShortcode(), StatusListAdapter.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); alertDialogEmoji.dismiss(); }); gridView.setPadding(paddingDp, paddingDp, paddingDp, paddingDp); @@ -1349,7 +1341,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct extra_text = "@" + extra_text + "@" + Helper.getLiveInstance(context); else extra_text = "@" + extra_text; - extra_text += " \uD83D\uDD17 " + url + "\r\n-\n"; + extra_text += " \uD83D\uDD17 " + url + "\r\n-\n"; final String contentToot; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) contentToot = Html.fromHtml((status.getReblog() != null) ? status.getReblog().getContent() : status.getContent(), Html.FROM_HTML_MODE_LEGACY).toString(); @@ -1597,7 +1589,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct //Displays name & emoji in toot header final Account accountForUrl; - SpannableString displayNameSpan = status.getReblog() != null ? status.getReblog().getAccount().getDisplayNameSpan():status.getAccount().getDisplayNameSpan(); + SpannableString displayNameSpan = status.getReblog() != null ? status.getReblog().getAccount().getDisplayNameSpan() : status.getAccount().getDisplayNameSpan(); if (status.getReblog() != null) { accountForUrl = status.getReblog().getAccount(); holder.status_account_displayname.setVisibility(View.VISIBLE); @@ -1661,7 +1653,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.fetch_more.setEnabled(false); holder.fetch_more.setVisibility(View.GONE); if (context instanceof BaseMainActivity) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); for (ManageTimelines tl : timelines) { if (tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap != null) { @@ -1680,7 +1672,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.fetch_more.setEnabled(false); holder.fetch_more.setVisibility(View.GONE); if (context instanceof BaseMainActivity) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); for (ManageTimelines tl : timelines) { if (tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap != null) { @@ -2409,7 +2401,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct in_reply_to_status = status.getReblog() != null ? status.getReblog().getId() : status.getId(); tootReply = status; - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -2626,7 +2618,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct toot.setSpoiler_text(status.getSpoiler_text().trim()); toot.setVisibility(status.getVisibility()); toot.setContent(context, status.getContent()); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); long id = new StatusStoredDAO(context, db).insertStatus(toot, null); Intent intentToot = new Intent(context, TootActivity.class); Bundle b = new Bundle(); @@ -2820,7 +2812,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct case R.id.action_bookmark: if (type != RetrieveFeedsAsyncTask.Type.CACHE_BOOKMARKS) { status.setBookmarked(!status.isBookmarked()); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); try { if (status.isBookmarked()) { new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status); @@ -2840,7 +2832,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (statustmp.getId().equals(status.getId())) { statuses.remove(status); statusListAdapter.notifyItemRemoved(position); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusCacheDAO(context, db).remove(StatusCacheDAO.BOOKMARK_CACHE, statustmp); Toasty.success(context, context.getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show(); break; @@ -3002,7 +2994,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } else if (status.getReblog() != null && status.getReblog().getPoll() != null) { toot.setPoll(status.getPoll()); } - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); long id = new StatusStoredDAO(context, db).insertStatus(toot, null); Intent intentToot = new Intent(context, TootActivity.class); Bundle b = new Bundle(); @@ -3346,6 +3338,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct DrawableTransitionOptions.withCrossFade(); imageView.setImageBitmap(resource); } + @Override public void onLoadCleared(@Nullable Drawable placeholder) { @@ -3359,17 +3352,17 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct Glide.with(imageView.getContext()) .load(!attachment.getType().toLowerCase().equals("audio") ? url : R.drawable.ic_audio_wave) .thumbnail(0.1f) - // .override(640, 480) + // .override(640, 480) .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(10))) - .transition(DrawableTransitionOptions.withCrossFade()) + // .transition(DrawableTransitionOptions.withCrossFade()) .into(imageView); } else { Glide.with(imageView.getContext()) .load(!attachment.getType().toLowerCase().equals("audio") ? url : R.drawable.ic_audio_wave) .thumbnail(0.1f) - // .override(640, 480) + // .override(640, 480) .apply(new RequestOptions().transform(new BlurTransformation(50, 3), new RoundedCorners(10))) - .transition(DrawableTransitionOptions.withCrossFade()) + // .transition(DrawableTransitionOptions.withCrossFade()) .into(imageView); } } @@ -3415,9 +3408,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct boolean long_press_media = sharedpreferences.getBoolean(Helper.SET_LONG_PRESS_MEDIA, true); if (long_press_media) { String finalUrl; - if( attachment.getUrl() == null ){ + if (attachment.getUrl() == null) { finalUrl = attachment.getRemote_url(); - }else{ + } else { finalUrl = attachment.getUrl(); } imageView.setOnLongClickListener(v -> { @@ -3511,7 +3504,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct //Store the toot as draft first String targeted_id = status.getAccount().getId(); Date date_mute = new Date(time); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -3728,7 +3721,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (content_type != null) toot.setContentType(content_type); toot.setSensitive(false); - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); if (toot_cw_content.getText().toString().trim().length() > 0) toot.setSpoiler_text(toot_cw_content.getText().toString().trim()); @@ -3748,7 +3741,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (apiResponse.getStatuses() != null && apiResponse.getStatuses().size() > 0) { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); long id = new StatusStoredDAO(context, db).insertStatus(toot, apiResponse.getStatuses().get(0)); Intent intentToot = new Intent(context, TootActivity.class); Bundle b = new Bundle(); @@ -3807,7 +3800,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct if (status.getId().equals(targetedId)) { statuses.remove(status); statusListAdapter.notifyItemRemoved(position); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Remove the status from cache also try { new StatusCacheDAO(context, db).remove(StatusCacheDAO.ARCHIVE_CACHE, status); @@ -3972,7 +3965,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } toot.setIn_reply_to_id(tootReply.getId()); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); try { if (currentToId == -1) { currentToId = new StatusStoredDAO(context, db).insertStatus(toot, tootReply); @@ -4241,9 +4234,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } void updateAnimatedEmoji() { - if (type != RetrieveFeedsAsyncTask.Type.CONVERSATION) { - status_account_displayname.invalidate(); - } + status_account_displayname.invalidate(); status_content.invalidate(); } diff --git a/app/src/main/java/app/fedilab/android/drawers/TagsEditAdapter.java b/app/src/main/java/app/fedilab/android/drawers/TagsEditAdapter.java index ee8d6e7c1..2f6c8a554 100644 --- a/app/src/main/java/app/fedilab/android/drawers/TagsEditAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/TagsEditAdapter.java @@ -65,7 +65,7 @@ public class TagsEditAdapter extends RecyclerView.Adapter { final String[] tag = {tags.get(viewHolder.getAdapterPosition())}; ViewHolder holder = (ViewHolder) viewHolder; holder.tag_name.setText(String.format("#%s", tag[0])); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); holder.save_tag.setOnClickListener(v -> { if (holder.tag_name.getText() != null && holder.tag_name.getText().toString().trim().replaceAll("#", "").length() > 0) { String tagToInsert = holder.tag_name.getText().toString().trim().replaceAll("#", ""); diff --git a/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java b/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java index 653c0515d..3307f6c98 100644 --- a/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java @@ -442,7 +442,7 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements S String title = getString(R.string.data_export_theme); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(getActivity())); - SQLiteDatabase db = Sqlite.getInstance(getActivity(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getActivity().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(getActivity(), db).getUniqAccount(userId, instance); Helper.notify_user(getActivity(), account, intentOpen, BitmapFactory.decodeResource(getResources(), Helper.getMainLogo(getActivity())), Helper.NotifType.BACKUP, title, message); diff --git a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java index 0fb115572..c37852449 100644 --- a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java @@ -1521,7 +1521,7 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot LinearLayout toot_visibility_container = rootView.findViewById(R.id.toot_visibility_container); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); final ImageView set_toot_visibility = rootView.findViewById(R.id.set_toot_visibility); diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayBookmarksPixelfedFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayBookmarksPixelfedFragment.java index fb82e6f58..32de76b0b 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayBookmarksPixelfedFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayBookmarksPixelfedFragment.java @@ -97,7 +97,7 @@ public class DisplayBookmarksPixelfedFragment extends Fragment implements OnRetr @Override public void onRetrieveFeeds(APIResponse apiResponse) { - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); mainLoader.setVisibility(View.GONE); FloatingActionButton delete_all = null; try { diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayDraftsFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayDraftsFragment.java index 0101cdf0f..405b29d27 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayDraftsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayDraftsFragment.java @@ -73,7 +73,7 @@ public class DisplayDraftsFragment extends Fragment { } else { Helper.changeDrawableColor(context, R.drawable.ic_cancel, R.color.black); } - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Removes all scheduled toots that have sent new StatusStoredDAO(context, db).removeAllSent(); drafts = new StatusStoredDAO(context, db).getAllDrafts(); diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayFavoritesPeertubeFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayFavoritesPeertubeFragment.java index ced513056..62cef014d 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayFavoritesPeertubeFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayFavoritesPeertubeFragment.java @@ -98,7 +98,7 @@ public class DisplayFavoritesPeertubeFragment extends Fragment implements OnRetr @Override public void onRetrieveFeeds(APIResponse apiResponse) { - final SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + final SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); mainLoader.setVisibility(View.GONE); FloatingActionButton delete_all = null; try { diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java index 921528b2d..d67bc6b7a 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java @@ -266,7 +266,7 @@ public class DisplayFiltersFragment extends Fragment implements OnFilterActionIn } } MainActivity.filters = apiResponse.getFilters(); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); if (mPageReferenceMap == null) { return; diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java index 829cd33b5..b7c5f7181 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java @@ -251,7 +251,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve swipeRefreshLayout.setEnabled(true); if (context == null) return; - if( getUserVisibleHint()){ + if (getUserVisibleHint()) { NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); assert mNotificationManager != null; mNotificationManager.cancelAll(); @@ -312,7 +312,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account accountdb = new AccountDAO(context, db).getUniqAccount(userId, instance); LiveNotificationDelayedService.since_ids.put(accountdb.getAcct() + "@" + accountdb.getInstance(), notifications.get(0).getId()); } @@ -440,7 +440,7 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); if (MainActivity.lastNotificationId != null && notifications.get(0).getId().compareTo(MainActivity.lastNotificationId) > 0) { LiveNotificationDelayedService.since_ids.put(account.getAcct() + "@" + account.getInstance(), notifications.get(0).getId()); diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayScheduledTootsFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayScheduledTootsFragment.java index f068ca213..17f8fc8c5 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayScheduledTootsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayScheduledTootsFragment.java @@ -93,7 +93,7 @@ public class DisplayScheduledTootsFragment extends Fragment implements OnRetriev mainLoader.setVisibility(View.VISIBLE); storedStatuses = new ArrayList<>(); //Removes all scheduled toots that have sent - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (type == typeOfSchedule.TOOT) new StatusStoredDAO(context, db).removeAllSent(); else if (type == typeOfSchedule.BOOST) diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java index 42c319ac5..b7ef6c417 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java @@ -183,7 +183,7 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter type = RetrieveFeedsAsyncTask.Type.CHANNEL; - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //instanceType should not be null only for Peertube accounts if (remoteInstance != null && !remoteInstance.equals("") && instanceType == null) { @@ -750,7 +750,8 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter if (lv_status != null) { try { lv_status.setAdapter(null); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } super.onDestroyView(); rootView = null; diff --git a/app/src/main/java/app/fedilab/android/helper/CrossActions.java b/app/src/main/java/app/fedilab/android/helper/CrossActions.java index 4d624df02..c75a9d160 100644 --- a/app/src/main/java/app/fedilab/android/helper/CrossActions.java +++ b/app/src/main/java/app/fedilab/android/helper/CrossActions.java @@ -16,7 +16,6 @@ package app.fedilab.android.helper; * see . */ import android.content.Context; -import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.database.sqlite.SQLiteDatabase; @@ -76,7 +75,7 @@ public class CrossActions { */ private static List connectedAccounts(Context context, Status status, boolean limitedToOwner) { final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountstmp = new AccountDAO(context, db).getAllAccountCrossAction(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); @@ -148,7 +147,7 @@ public class CrossActions { if ((type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) && limitedToOwner) { String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account currentAccount = new AccountDAO(context, db).getUniqAccount(userId, instance); if (confirmation && status.getContent() != null) displayConfirmationDialogCrossAction(context, currentAccount, doAction, status, onPostActionInterface, baseAdapter); @@ -228,53 +227,45 @@ public class CrossActions { accountArray[i] = account; i++; } - builderSingle.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - builderSingle.setAdapter(accountsSearchAdapter, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - Account selectedAccount = accountArray[which]; - String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); - String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); - Account loggedAccount = new AccountDAO(context, db).getUniqAccount(userId, instance); - if (targetedAccount == null) { - if (loggedAccount.getInstance().equals(selectedAccount.getInstance())) { - new PostActionAsyncTask(context, selectedAccount, doAction, status.getId(), onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else { //Account is from another instance - new PostActionAsyncTask(context, selectedAccount, status, doAction, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - if (selectedAccount.getInstance().equals(loggedAccount.getInstance()) && selectedAccount.getId().equals(loggedAccount.getId())) { - if (doAction == API.StatusAction.REBLOG) { - status.setReblogged(true); - if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) - status.setBoostAnimated(true); - } else if (doAction == API.StatusAction.FAVOURITE) { - status.setFavourited(true); - if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) - status.setFavAnimated(true); - } else if (doAction == API.StatusAction.PIN) { - status.setPinned(true); - } - if (baseAdapter != null) - baseAdapter.notifyDataSetChanged(); - } - } else { - new PostActionAsyncTask(context, selectedAccount, targetedAccount, doAction, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - if (selectedAccount.getInstance().equals(loggedAccount.getInstance()) && selectedAccount.getId().equals(loggedAccount.getId())) { - if (doAction == API.StatusAction.FOLLOW) { - targetedAccount.setFollowing(true); - } - if (baseAdapter != null) - baseAdapter.notifyDataSetChanged(); - } + builderSingle.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); + builderSingle.setAdapter(accountsSearchAdapter, (dialog, which) -> { + Account selectedAccount = accountArray[which]; + String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); + String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + Account loggedAccount = new AccountDAO(context, db).getUniqAccount(userId, instance); + if (targetedAccount == null) { + if (loggedAccount.getInstance().equals(selectedAccount.getInstance())) { + new PostActionAsyncTask(context, selectedAccount, doAction, status.getId(), onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } else { //Account is from another instance + new PostActionAsyncTask(context, selectedAccount, status, doAction, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + if (selectedAccount.getInstance().equals(loggedAccount.getInstance()) && selectedAccount.getId().equals(loggedAccount.getId())) { + if (doAction == API.StatusAction.REBLOG) { + status.setReblogged(true); + if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) + status.setBoostAnimated(true); + } else if (doAction == API.StatusAction.FAVOURITE) { + status.setFavourited(true); + if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) + status.setFavAnimated(true); + } else if (doAction == API.StatusAction.PIN) { + status.setPinned(true); + } + if (baseAdapter != null) + baseAdapter.notifyDataSetChanged(); + } + } else { + new PostActionAsyncTask(context, selectedAccount, targetedAccount, doAction, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + if (selectedAccount.getInstance().equals(loggedAccount.getInstance()) && selectedAccount.getId().equals(loggedAccount.getId())) { + if (doAction == API.StatusAction.FOLLOW) { + targetedAccount.setFollowing(true); + } + if (baseAdapter != null) + baseAdapter.notifyDataSetChanged(); } - dialog.dismiss(); } + dialog.dismiss(); }); builderSingle.show(); } @@ -318,7 +309,7 @@ public class CrossActions { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); new AsyncTask() { @@ -410,7 +401,7 @@ public class CrossActions { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); new AsyncTask() { @@ -459,7 +450,7 @@ public class CrossActions { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); new AsyncTask() { @@ -506,7 +497,7 @@ public class CrossActions { if (accounts.size() == 1 || limitedToOwner) { status.setBookmarked(!status.isBookmarked()); try { - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (status.isBookmarked()) { doAction = API.StatusAction.BOOKMARK; new StatusCacheDAO(context, db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, status); @@ -532,61 +523,53 @@ public class CrossActions { accountArray[i] = account; i++; } - builderSingle.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); + builderSingle.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); Status finalStatus = status; - builderSingle.setAdapter(accountsSearchAdapter, new DialogInterface.OnClickListener() { - @Override - public void onClick(final DialogInterface dialog, int which) { - final Account account = accountArray[which]; - new AsyncTask() { - Results response; - private WeakReference contextReference = new WeakReference<>(context); + builderSingle.setAdapter(accountsSearchAdapter, (dialog, which) -> { + final Account account = accountArray[which]; + new AsyncTask() { + Results response; + private WeakReference contextReference = new WeakReference<>(context); - @Override - protected void onPreExecute() { - Toasty.info(contextReference.get(), contextReference.get().getString(R.string.retrieve_remote_status), Toast.LENGTH_SHORT).show(); + @Override + protected void onPreExecute() { + Toasty.info(contextReference.get(), contextReference.get().getString(R.string.retrieve_remote_status), Toast.LENGTH_SHORT).show(); + } + + @Override + protected Void doInBackground(Void... voids) { + API api = new API(contextReference.get(), account.getInstance(), account.getToken()); + APIResponse apiResponse = api.search(finalStatus.getUrl()); + response = apiResponse.getResults(); + return null; + } + + @Override + protected void onPostExecute(Void result) { + if (response == null) { + Toasty.error(contextReference.get(), context.getString(R.string.toast_error), Toast.LENGTH_LONG).show(); + return; } - - @Override - protected Void doInBackground(Void... voids) { - API api = new API(contextReference.get(), account.getInstance(), account.getToken()); - APIResponse apiResponse = api.search(finalStatus.getUrl()); - response = apiResponse.getResults(); - return null; - } - - @Override - protected void onPostExecute(Void result) { - if (response == null) { - Toasty.error(contextReference.get(), context.getString(R.string.toast_error), Toast.LENGTH_LONG).show(); - return; - } - List statuses = response.getStatuses(); - if (statuses != null && statuses.size() > 0) { - final SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); - app.fedilab.android.client.Entities.Status statusBookmarked = new StatusCacheDAO(contextReference.get(), db).getStatus(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0).getId(), account.getId(), account.getInstance()); - API.StatusAction doAction; - if (statusBookmarked == null) { - doAction = API.StatusAction.BOOKMARK; - new StatusCacheDAO(contextReference.get(), db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0), account.getId(), account.getInstance()); - Toasty.success(contextReference.get(), contextReference.get().getString(R.string.status_bookmarked), Toast.LENGTH_LONG).show(); - } else { - doAction = API.StatusAction.UNBOOKMARK; - new StatusCacheDAO(contextReference.get(), db).remove(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0), account.getId(), account.getInstance()); - Toasty.success(contextReference.get(), contextReference.get().getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show(); - } - new PostActionAsyncTask(context, account, finalStatus, doAction, null).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - statusListAdapter.notifyStatusChanged(statuses.get(0)); + List statuses = response.getStatuses(); + if (statuses != null && statuses.size() > 0) { + final SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + app.fedilab.android.client.Entities.Status statusBookmarked = new StatusCacheDAO(contextReference.get(), db).getStatus(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0).getId(), account.getId(), account.getInstance()); + API.StatusAction doAction1; + if (statusBookmarked == null) { + doAction1 = API.StatusAction.BOOKMARK; + new StatusCacheDAO(contextReference.get(), db).insertStatus(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0), account.getId(), account.getInstance()); + Toasty.success(contextReference.get(), contextReference.get().getString(R.string.status_bookmarked), Toast.LENGTH_LONG).show(); + } else { + doAction1 = API.StatusAction.UNBOOKMARK; + new StatusCacheDAO(contextReference.get(), db).remove(StatusCacheDAO.BOOKMARK_CACHE, statuses.get(0), account.getId(), account.getInstance()); + Toasty.success(contextReference.get(), contextReference.get().getString(R.string.status_unbookmarked), Toast.LENGTH_LONG).show(); } + new PostActionAsyncTask(context, account, finalStatus, doAction1, null).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + statusListAdapter.notifyStatusChanged(statuses.get(0)); } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } }); builderSingle.show(); } @@ -624,100 +607,92 @@ public class CrossActions { accountArray[i] = account; i++; } - builderSingle.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - builderSingle.setAdapter(accountsSearchAdapter, new DialogInterface.OnClickListener() { - @Override - public void onClick(final DialogInterface dialog, int which) { - final Account account = accountArray[which]; - if (status != null) { - new AsyncTask() { - private List remoteStatuses; - private WeakReference contextReference = new WeakReference<>(context); + builderSingle.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); + builderSingle.setAdapter(accountsSearchAdapter, (dialog, which) -> { + final Account account = accountArray[which]; + if (status != null) { + new AsyncTask() { + private List remoteStatuses; + private WeakReference contextReference = new WeakReference<>(context); - @Override - protected Void doInBackground(Void... voids) { + @Override + protected Void doInBackground(Void... voids) { - String uri; - if (status.getReblog() != null) { - if (status.getReblog().getUri().startsWith("http")) - uri = status.getReblog().getUri(); - else - uri = status.getReblog().getUrl(); - } else { - if (status.getUri().startsWith("http")) - uri = status.getUri(); - else - uri = status.getUrl(); - } - if (account.getSocial().compareTo("FRIENDICA") != 0) { - API api = new API(contextReference.get(), account.getInstance(), account.getToken()); - APIResponse search = api.search(uri); - if (search != null && search.getResults() != null) { - remoteStatuses = search.getResults().getStatuses(); - } - } else { - GNUAPI api = new GNUAPI(contextReference.get(), account.getInstance(), account.getToken()); - APIResponse search = api.search2(uri); - if (search != null && search.getResults() != null) { - remoteStatuses = search.getResults().getStatuses(); - } - } - return null; + String uri; + if (status.getReblog() != null) { + if (status.getReblog().getUri().startsWith("http")) + uri = status.getReblog().getUri(); + else + uri = status.getReblog().getUrl(); + } else { + if (status.getUri().startsWith("http")) + uri = status.getUri(); + else + uri = status.getUrl(); } + if (account.getSocial().compareTo("FRIENDICA") != 0) { + API api = new API(contextReference.get(), account.getInstance(), account.getToken()); + APIResponse search = api.search(uri); + if (search != null && search.getResults() != null) { + remoteStatuses = search.getResults().getStatuses(); + } + } else { + GNUAPI api = new GNUAPI(contextReference.get(), account.getInstance(), account.getToken()); + APIResponse search = api.search2(uri); + if (search != null && search.getResults() != null) { + remoteStatuses = search.getResults().getStatuses(); + } + } + return null; + } - @Override - protected void onPostExecute(Void result) { - Intent intent = new Intent(contextReference.get(), TootActivity.class); - Bundle b = new Bundle(); - if (remoteStatuses == null || remoteStatuses.size() == 0) { - dialog.dismiss(); - intent.putExtras(b); //Put your id to your next Intent - contextReference.get().startActivity(intent); - return; - } - if (remoteStatuses.get(0).getReblog() != null) { - b.putParcelable("tootReply", remoteStatuses.get(0).getReblog()); - b.putParcelable("idRedirect", status.getReblog()); - } else { - b.putParcelable("tootReply", remoteStatuses.get(0)); - b.putParcelable("idRedirect", status); - } - b.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); + @Override + protected void onPostExecute(Void result) { + Intent intent = new Intent(contextReference.get(), TootActivity.class); + Bundle b = new Bundle(); + if (remoteStatuses == null || remoteStatuses.size() == 0) { + dialog.dismiss(); intent.putExtras(b); //Put your id to your next Intent contextReference.get().startActivity(intent); - if (type == RetrieveFeedsAsyncTask.Type.CONTEXT) { - try { - //Avoid to open multi activities when replying in a conversation - ((ShowConversationActivity) contextReference.get()).finish(); - } catch (Exception ignored) { - } - - } - dialog.dismiss(); + return; } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else { - Intent intent = new Intent(context, TootActivity.class); - Bundle b = new Bundle(); - b.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); - intent.putExtras(b); //Put your id to your next Intent - context.startActivity(intent); - } + if (remoteStatuses.get(0).getReblog() != null) { + b.putParcelable("tootReply", remoteStatuses.get(0).getReblog()); + b.putParcelable("idRedirect", status.getReblog()); + } else { + b.putParcelable("tootReply", remoteStatuses.get(0)); + b.putParcelable("idRedirect", status); + } + b.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); + intent.putExtras(b); //Put your id to your next Intent + contextReference.get().startActivity(intent); + if (type == RetrieveFeedsAsyncTask.Type.CONTEXT) { + try { + //Avoid to open multi activities when replying in a conversation + ((ShowConversationActivity) contextReference.get()).finish(); + } catch (Exception ignored) { + } + } + dialog.dismiss(); + } + }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } else { + Intent intent = new Intent(context, TootActivity.class); + Bundle b = new Bundle(); + b.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); + intent.putExtras(b); //Put your id to your next Intent + context.startActivity(intent); } + }); builderSingle.show(); } else { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); new AsyncTask() { @@ -789,23 +764,15 @@ public class CrossActions { accountArray[i] = account; i++; } - builderSingle.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - builderSingle.setAdapter(accountsSearchAdapter, new DialogInterface.OnClickListener() { - @Override - public void onClick(final DialogInterface dialog, int which) { - final Account account = accountArray[which]; - Intent intentToot = new Intent(context, TootActivity.class); - bundle.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); - intentToot.putExtras(bundle); - context.startActivity(intentToot); - ((BaseActivity) context).finish(); - dialog.dismiss(); - } + builderSingle.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()); + builderSingle.setAdapter(accountsSearchAdapter, (dialog, which) -> { + final Account account = accountArray[which]; + Intent intentToot = new Intent(context, TootActivity.class); + bundle.putString("accountReplyToken", account.getId() + "|" + account.getInstance()); + intentToot.putExtras(bundle); + context.startActivity(intentToot); + ((BaseActivity) context).finish(); + dialog.dismiss(); }); builderSingle.show(); } @@ -839,55 +806,45 @@ public class CrossActions { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) builder.setMessage(Html.fromHtml(status.getContent(), Html.FROM_HTML_MODE_LEGACY)); else - //noinspection deprecation builder.setMessage(Html.fromHtml(status.getContent())); builder.setIcon(android.R.drawable.ic_dialog_alert) .setTitle(title) - .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) - reblogAction(context, status, onPostActionInterface); - else if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) - favouriteAction(context, status, onPostActionInterface); - else if (action == API.StatusAction.PIN || action == API.StatusAction.UNPIN) - pinAction(context, status, baseAdapter, onPostActionInterface); + .setPositiveButton(R.string.yes, (dialog, which) -> { + if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) + reblogAction(context, status, onPostActionInterface); + else if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) + favouriteAction(context, status, onPostActionInterface); + else if (action == API.StatusAction.PIN || action == API.StatusAction.UNPIN) + pinAction(context, status, baseAdapter, onPostActionInterface); - if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) { - if (action == API.StatusAction.FAVOURITE) { - status.setFavourited(true); - status.setFavAnimated(true); - } else { - status.setFavourited(false); - status.setFavAnimated(false); - } - if (baseAdapter instanceof PixelfedListAdapter) - ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); - else if (baseAdapter instanceof StatusListAdapter) - ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); - } else if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) { - if (action == API.StatusAction.REBLOG) { - status.setReblogged(true); - status.setBoostAnimated(true); - } else { - status.setReblogged(false); - status.setBoostAnimated(false); - } - if (baseAdapter instanceof PixelfedListAdapter) - ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); - else if (baseAdapter instanceof StatusListAdapter) - ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); + if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) { + if (action == API.StatusAction.FAVOURITE) { + status.setFavourited(true); + status.setFavAnimated(true); + } else { + status.setFavourited(false); + status.setFavAnimated(false); } - dialog.dismiss(); + if (baseAdapter instanceof PixelfedListAdapter) + ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); + else if (baseAdapter instanceof StatusListAdapter) + ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); + } else if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) { + if (action == API.StatusAction.REBLOG) { + status.setReblogged(true); + status.setBoostAnimated(true); + } else { + status.setReblogged(false); + status.setBoostAnimated(false); + } + if (baseAdapter instanceof PixelfedListAdapter) + ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); + else if (baseAdapter instanceof StatusListAdapter) + ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); } + dialog.dismiss(); }) - .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - - }) + .setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss()) .show(); } @@ -920,68 +877,42 @@ public class CrossActions { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) builder.setMessage(Html.fromHtml(status.getContent(), Html.FROM_HTML_MODE_LEGACY)); else - //noinspection deprecation builder.setMessage(Html.fromHtml(status.getContent())); builder.setIcon(android.R.drawable.ic_dialog_alert) .setTitle(title) - .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) { - if (action == API.StatusAction.FAVOURITE) { - status.setFavourited(true); - status.setFavAnimated(true); - } else { - status.setFavourited(false); - status.setFavAnimated(false); - } - if (baseAdapter instanceof PixelfedListAdapter) - ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); - else if (baseAdapter instanceof StatusListAdapter) - ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); - } else if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) { - if (action == API.StatusAction.REBLOG) { - status.setReblogged(true); - status.setBoostAnimated(true); - } else { - status.setReblogged(false); - status.setBoostAnimated(false); - } - if (baseAdapter instanceof PixelfedListAdapter) - ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); - else if (baseAdapter instanceof StatusListAdapter) - ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); + .setPositiveButton(R.string.yes, (dialog, which) -> { + if (action == API.StatusAction.FAVOURITE || action == API.StatusAction.UNFAVOURITE) { + if (action == API.StatusAction.FAVOURITE) { + status.setFavourited(true); + status.setFavAnimated(true); + } else { + status.setFavourited(false); + status.setFavAnimated(false); } - new PostActionAsyncTask(context, currentAccount, status, action, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - dialog.dismiss(); + if (baseAdapter instanceof PixelfedListAdapter) + ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); + else if (baseAdapter instanceof StatusListAdapter) + ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); + } else if (action == API.StatusAction.REBLOG || action == API.StatusAction.UNREBLOG) { + if (action == API.StatusAction.REBLOG) { + status.setReblogged(true); + status.setBoostAnimated(true); + } else { + status.setReblogged(false); + status.setBoostAnimated(false); + } + if (baseAdapter instanceof PixelfedListAdapter) + ((PixelfedListAdapter) baseAdapter).notifyStatusChanged(status); + else if (baseAdapter instanceof StatusListAdapter) + ((StatusListAdapter) baseAdapter).notifyStatusChanged(status); } + new PostActionAsyncTask(context, currentAccount, status, action, onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + dialog.dismiss(); }) - .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - - }) + .setNegativeButton(R.string.no, (dialog, which) -> dialog.dismiss()) .show(); } - /** - * Follow/Unfollow an account - * - * @param account Account - */ - private static void followAction(Context context, Account account, RecyclerView.Adapter baseAdapter, OnPostActionInterface onPostActionInterface) { - if (account.isFollowing()) { - new PostActionAsyncTask(context, API.StatusAction.UNFOLLOW, account.getId(), onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - account.setFollowing(false); - } else { - new PostActionAsyncTask(context, API.StatusAction.FOLLOW, account.getId(), onPostActionInterface).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - account.setFollowing(true); - } - baseAdapter.notifyDataSetChanged(); - } - /** * Favourites/Unfavourites a status * diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index f64e912f0..9c47242c7 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -137,7 +137,6 @@ import net.gotev.uploadservice.okhttp.OkHttpStack; import org.conscrypt.Conscrypt; import org.jetbrains.annotations.NotNull; -import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -147,7 +146,6 @@ import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; -import java.io.InputStreamReader; import java.io.OutputStream; import java.lang.ref.WeakReference; import java.lang.reflect.Type; @@ -580,7 +578,6 @@ public class Helper { } - /*** * Check if the user is connected to Internet * @return boolean @@ -627,7 +624,7 @@ public class Helper { public static void logoutCurrentUser(Activity activity) { SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); //Current user - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(activity)); Account account = new AccountDAO(activity, db).getUniqAccount(userId, instance); @@ -666,7 +663,7 @@ public class Helper { /** * Convert String date from Mastodon * - * @param date String + * @param date String * @return Date */ public static Date mstStringToDate(String date) throws ParseException { @@ -1302,7 +1299,7 @@ public class Helper { final SharedPreferences sharedpreferences = activity.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); if (!menuAccountsOpened) { arrow.setImageResource(R.drawable.ic_arrow_drop_up); - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final List accounts = new AccountDAO(activity, db).getAllAccount(); String lastInstance = ""; navigationView.getMenu().clear(); @@ -1462,7 +1459,7 @@ public class Helper { } } else { - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); MainMenuItem mainMenuItem = new MainMenuDAO(activity, db).getMainMenu(); if (mainMenuItem == null) { mainMenuItem = new MainMenuItem(); @@ -1546,7 +1543,7 @@ public class Helper { navigationView.inflateMenu(R.menu.activity_main_drawer); hideMenuItem(activity, navigationView.getMenu()); - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(activity, db).getUniqAccount(userID, instance); //Can happen when an account has been deleted and there is a click on an old notification if (account == null) @@ -1653,22 +1650,22 @@ public class Helper { for (int startPosition = -1; (startPosition = spannableString.toString().indexOf(targetedAccount, startPosition + 1)) != -1; startPosition++) { int endPosition = startPosition + targetedAccount.length(); spannableString.setSpan(new ClickableSpan() { - @Override - public void onClick(@NotNull View textView) { - Intent intent = new Intent(context, ShowAccountActivity.class); - Bundle b = new Bundle(); - b.putString("accountId", mention.getId()); - intent.putExtras(b); - context.startActivity(intent); - } + @Override + public void onClick(@NotNull View textView) { + Intent intent = new Intent(context, ShowAccountActivity.class); + Bundle b = new Bundle(); + b.putString("accountId", mention.getId()); + intent.putExtras(b); + context.startActivity(intent); + } - @Override - public void updateDrawState(@NotNull TextPaint ds) { - super.updateDrawState(ds); - ds.setUnderlineText(false); - ds.setColor(link_color); - } - }, + @Override + public void updateDrawState(@NotNull TextPaint ds) { + super.updateDrawState(ds); + ds.setUnderlineText(false); + ds.setColor(link_color); + } + }, startPosition, endPosition, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } @@ -1698,7 +1695,7 @@ public class Helper { ImageView icon; - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final List accounts = new AccountDAO(activity, db).getAllAccount(); if (activity.isFinishing()) return; @@ -2870,7 +2867,7 @@ public class Helper { TabLayout tableLayout = activity.findViewById(R.id.tabLayout); String userID = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(activity, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(activity.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(activity, db).getUniqAccount(userID, instance); if (account != null) { if (social != UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA && social != UpdateAccountInfoAsyncTask.SOCIAL.GNU) { @@ -3698,6 +3695,7 @@ public class Helper { private static void removeOnGlobalLayoutListener(View v, ViewTreeObserver.OnGlobalLayoutListener listener) { v.getViewTreeObserver().removeOnGlobalLayoutListener(listener); } + public static int languageSpinnerPosition(Context context) { SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); String defaultLocaleString = sharedpreferences.getString(Helper.SET_DEFAULT_LOCALE_NEW, "NOT_DEFINED"); @@ -3902,7 +3900,7 @@ public class Helper { intent.setAction(android.content.Intent.ACTION_VIEW); Uri uri = Uri.parse("file://" + file.getAbsolutePath()); intent.setDataAndType(uri, mime); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -3935,7 +3933,7 @@ public class Helper { * Download from Glid cache * * @param context Context - * @param url String + * @param url String */ public static void manageMove(Context context, String url, boolean share) { Glide.with(context) @@ -3957,10 +3955,10 @@ public class Helper { /** * Notify after moving a file from Glide cache * - * @param context Context - * @param url String + * @param context Context + * @param url String * @param sourceFile File - * @param share boolean + * @param share boolean */ private static void notifyDownload(Context context, String url, File sourceFile, boolean share) { @@ -3986,7 +3984,7 @@ public class Helper { intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(backupFile); intent.setDataAndType(uri, mime); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -4000,7 +3998,8 @@ public class Helper { shareIntent.setType(mime); try { context.startActivity(shareIntent); - } catch (Exception ignored) {} + } catch (Exception ignored) { + } } } catch (Throwable e) { e.printStackTrace(); @@ -4229,7 +4228,7 @@ public class Helper { intent.setAction(Intent.ACTION_VIEW); Uri uri = Uri.fromFile(new File(filename)); intent.setDataAndType(uri, "text/csv"); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); Account account = new AccountDAO(context, db).getUniqAccount(userId, instance); @@ -4506,7 +4505,7 @@ public class Helper { if (dir.isDirectory()) { Helper.deleteDir(dir); } - SQLiteDatabase db = Sqlite.getInstance(contextReference.get(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(contextReference.get().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new StatusCacheDAO(contextReference.get(), db).removeDuplicate(); if (clean_all.isChecked()) { if (cache_timeline.isChecked()) { diff --git a/app/src/main/java/app/fedilab/android/jobs/BackupNotificationsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/BackupNotificationsSyncJob.java index b57b85d95..b6daa197d 100644 --- a/app/src/main/java/app/fedilab/android/jobs/BackupNotificationsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/BackupNotificationsSyncJob.java @@ -84,7 +84,7 @@ public class BackupNotificationsSyncJob extends Job { * Task in background starts here. */ private void backupService() { - SQLiteDatabase db = Sqlite.getInstance(getContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getContext().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final List accounts = new AccountDAO(getContext(), db).getAllAccount(); SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); for (Account account : accounts) { diff --git a/app/src/main/java/app/fedilab/android/jobs/BackupStatusesSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/BackupStatusesSyncJob.java index 46832f23d..806ee7cbc 100644 --- a/app/src/main/java/app/fedilab/android/jobs/BackupStatusesSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/BackupStatusesSyncJob.java @@ -83,7 +83,7 @@ public class BackupStatusesSyncJob extends Job { * Task in background starts here. */ private void backupService() { - SQLiteDatabase db = Sqlite.getInstance(getContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getContext().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); final List accounts = new AccountDAO(getContext(), db).getAllAccount(); SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); for (Account account : accounts) { diff --git a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java index 91d02e183..94be63c68 100644 --- a/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/NotificationsSyncJob.java @@ -118,7 +118,7 @@ public class NotificationsSyncJob extends Job { if (liveNotifications != Helper.NOTIF_NONE) { return; } - SQLiteDatabase db = Sqlite.getInstance(getContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getContext().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //If an Internet connection and user agrees with notification refresh final SharedPreferences sharedpreferences = getContext().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); //Check which notifications the user wants to see diff --git a/app/src/main/java/app/fedilab/android/jobs/ScheduledBoostsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/ScheduledBoostsSyncJob.java index 42e3f8dae..a6ac9856a 100644 --- a/app/src/main/java/app/fedilab/android/jobs/ScheduledBoostsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/ScheduledBoostsSyncJob.java @@ -52,7 +52,7 @@ public class ScheduledBoostsSyncJob extends Job { long startMs = (timestampScheduling - new Date().getTime()); long endMs = startMs + TimeUnit.MINUTES.toMillis(5); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); int jobId = new JobRequest.Builder(ScheduledBoostsSyncJob.SCHEDULED_BOOST) .setExecutionWindow(startMs, endMs) @@ -69,7 +69,7 @@ public class ScheduledBoostsSyncJob extends Job { long startMs = (timestampScheduling - new Date().getTime()); long endMs = startMs + TimeUnit.MINUTES.toMillis(5); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); int jobId = new JobRequest.Builder(ScheduledTootsSyncJob.SCHEDULED_TOOT) .setExecutionWindow(startMs, endMs) @@ -87,7 +87,7 @@ public class ScheduledBoostsSyncJob extends Job { protected Result onRunJob(@NonNull Params params) { //Code refresh here int jobId = params.getId(); - SQLiteDatabase db = Sqlite.getInstance(getContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getContext().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Retrieves the stored status StoredStatus storedStatus = new BoostScheduleDAO(getContext(), db).getStatusScheduled(jobId); if (storedStatus != null) { diff --git a/app/src/main/java/app/fedilab/android/jobs/ScheduledTootsSyncJob.java b/app/src/main/java/app/fedilab/android/jobs/ScheduledTootsSyncJob.java index 216bbcd08..d0c7bfb49 100644 --- a/app/src/main/java/app/fedilab/android/jobs/ScheduledTootsSyncJob.java +++ b/app/src/main/java/app/fedilab/android/jobs/ScheduledTootsSyncJob.java @@ -52,7 +52,7 @@ public class ScheduledTootsSyncJob extends Job { long startMs = (timestampScheduling - new Date().getTime()); long endMs = startMs + TimeUnit.MINUTES.toMillis(5); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); int jobId = new JobRequest.Builder(ScheduledTootsSyncJob.SCHEDULED_TOOT) .setExecutionWindow(startMs, endMs) @@ -70,7 +70,7 @@ public class ScheduledTootsSyncJob extends Job { protected Result onRunJob(@NonNull Params params) { //Code refresh here int jobId = params.getId(); - SQLiteDatabase db = Sqlite.getInstance(getContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getContext().getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); //Retrieves the stored status StoredStatus storedStatus = new StatusStoredDAO(getContext(), db).getStatusScheduled(jobId); if (storedStatus != null) { diff --git a/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java b/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java index e8adc0623..60da93afc 100644 --- a/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java +++ b/app/src/main/java/app/fedilab/android/services/BackupNotificationInDataBaseService.java @@ -114,7 +114,7 @@ public class BackupNotificationInDataBaseService extends IntentService { } instanceRunning++; String message; - SQLiteDatabase db = Sqlite.getInstance(BackupNotificationInDataBaseService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(BackupNotificationInDataBaseService.this, db).getUniqAccount(userId, instance); API api = new API(BackupNotificationInDataBaseService.this, account.getInstance(), account.getToken()); try { diff --git a/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java b/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java index 5ef8d2640..33d57bfc7 100644 --- a/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java +++ b/app/src/main/java/app/fedilab/android/services/BackupStatusInDataBaseService.java @@ -115,7 +115,7 @@ public class BackupStatusInDataBaseService extends IntentService { } instanceRunning++; String message; - SQLiteDatabase db = Sqlite.getInstance(BackupStatusInDataBaseService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(BackupStatusInDataBaseService.this, db).getUniqAccount(userId, instance); API api = new API(BackupStatusInDataBaseService.this, account.getInstance(), account.getToken()); try { diff --git a/app/src/main/java/app/fedilab/android/services/BackupStatusService.java b/app/src/main/java/app/fedilab/android/services/BackupStatusService.java index b5b06e57a..271bdf276 100644 --- a/app/src/main/java/app/fedilab/android/services/BackupStatusService.java +++ b/app/src/main/java/app/fedilab/android/services/BackupStatusService.java @@ -106,7 +106,7 @@ public class BackupStatusService extends IntentService { SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); - SQLiteDatabase db = Sqlite.getInstance(BackupStatusService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); Account account = new AccountDAO(BackupStatusService.this, db).getUniqAccount(userId, instance); API api = new API(BackupStatusService.this, account.getInstance(), account.getToken()); try { diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java index 88e7c451f..0dbdf4c72 100644 --- a/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java +++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java @@ -100,7 +100,7 @@ public class LiveNotificationDelayedService extends Service { ((NotificationManager) Objects.requireNonNull(getSystemService(Context.NOTIFICATION_SERVICE))).createNotificationChannel(channel); } - SQLiteDatabase db = Sqlite.getInstance(LiveNotificationDelayedService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountStreams = new AccountDAO(LiveNotificationDelayedService.this, db).getAllAccountCrossAction(); totalAccount = 0; if (accountStreams != null) { @@ -181,7 +181,7 @@ public class LiveNotificationDelayedService extends Service { private void startStream() { - SQLiteDatabase db = Sqlite.getInstance(LiveNotificationDelayedService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (Helper.liveNotifType(LiveNotificationDelayedService.this) == Helper.NOTIF_DELAYED) { List accountStreams = new AccountDAO(LiveNotificationDelayedService.this, db).getAllAccountCrossAction(); final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); diff --git a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java index 987a1449c..f849cd6af 100644 --- a/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java +++ b/app/src/main/java/app/fedilab/android/services/LiveNotificationService.java @@ -114,7 +114,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece ((NotificationManager) Objects.requireNonNull(getSystemService(Context.NOTIFICATION_SERVICE))).createNotificationChannel(channel); } - SQLiteDatabase db = Sqlite.getInstance(LiveNotificationService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List accountStreams = new AccountDAO(LiveNotificationService.this, db).getAllAccountCrossAction(); totalAccount = 0; if (accountStreams != null) { @@ -155,7 +155,7 @@ public class LiveNotificationService extends Service implements NetworkStateRece SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); boolean liveNotifications = sharedpreferences.getBoolean(Helper.SET_LIVE_NOTIFICATIONS, true); - SQLiteDatabase db = Sqlite.getInstance(LiveNotificationService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); if (liveNotifications) { List accountStreams = new AccountDAO(LiveNotificationService.this, db).getAllAccountCrossAction(); if (accountStreams != null) { diff --git a/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java index b666905e9..03b2aef6a 100644 --- a/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java +++ b/app/src/main/java/app/fedilab/android/services/StreamingFederatedTimelineService.java @@ -100,7 +100,7 @@ public class StreamingFederatedTimelineService extends IntentService { String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account accountStream = null; if (userId != null) { - SQLiteDatabase db = Sqlite.getInstance(StreamingFederatedTimelineService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); accountStream = new AccountDAO(StreamingFederatedTimelineService.this, db).getUniqAccount(userId, instance); } if (accountStream != null) { diff --git a/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java index 40fd47e92..a263b904a 100644 --- a/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java +++ b/app/src/main/java/app/fedilab/android/services/StreamingHomeTimelineService.java @@ -100,7 +100,7 @@ public class StreamingHomeTimelineService extends IntentService { String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account accountStream = null; if (userId != null) { - SQLiteDatabase db = Sqlite.getInstance(StreamingHomeTimelineService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); accountStream = new AccountDAO(StreamingHomeTimelineService.this, db).getUniqAccount(userId, instance); } if (accountStream != null) { diff --git a/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java b/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java index ed4414dec..4cd1be065 100644 --- a/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java +++ b/app/src/main/java/app/fedilab/android/services/StreamingLocalTimelineService.java @@ -100,7 +100,7 @@ public class StreamingLocalTimelineService extends IntentService { String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, null); Account accountStream = null; if (userId != null) { - SQLiteDatabase db = Sqlite.getInstance(StreamingLocalTimelineService.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); accountStream = new AccountDAO(StreamingLocalTimelineService.this, db).getUniqAccount(userId, instance); } diff --git a/app/src/main/java/app/fedilab/android/sqlite/Sqlite.java b/app/src/main/java/app/fedilab/android/sqlite/Sqlite.java index d75e4fdc9..5bd8e879b 100644 --- a/app/src/main/java/app/fedilab/android/sqlite/Sqlite.java +++ b/app/src/main/java/app/fedilab/android/sqlite/Sqlite.java @@ -360,7 +360,7 @@ public class Sqlite extends SQLiteOpenHelper { intent.setAction(android.content.Intent.ACTION_VIEW); Uri uri = Uri.fromFile(dbDest); intent.setDataAndType(uri, "*/*"); - SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); + SQLiteDatabase db = Sqlite.getInstance(context.getApplicationContext(), Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE); String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); String instance = sharedpreferences.getString(Helper.PREF_INSTANCE, Helper.getLiveInstance(context)); @@ -555,8 +555,6 @@ public class Sqlite extends SQLiteOpenHelper { if (db != null && db.isOpen()) { db.close(); } - sInstance = null; - db = null; }