summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2023-01-27 10:33:41 +0100
committerThomas <tschneider.ac@gmail.com>2023-01-27 10:33:41 +0100
commit8103bf4a16aa64025baacefc3a1b6e19ad744219 (patch)
tree613337c1aff1ed615921825f7a8a98efe30d2d5a
parente4affdc9d776415d0763c90af160cfca6ef11b01 (diff)
Fix cross actions
-rw-r--r--app/src/main/java/app/fedilab/android/BaseMainActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/client/entities/app/Account.java40
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java2
3 files changed, 41 insertions, 3 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
index 19bdccfcc..be0682bb2 100644
--- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java
@@ -426,7 +426,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
headerMainBinding.ownerAccounts.setImageResource(R.drawable.ic_baseline_arrow_drop_up_24);
new Thread(() -> {
try {
- List<BaseAccount> accounts = new Account(activity).getCrossAccounts();
+ List<BaseAccount> accounts = new Account(activity).getOtherAccounts();
Handler mainHandler = new Handler(Looper.getMainLooper());
Runnable myRunnable = () -> {
navigationView.getMenu().clear();
diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/app/Account.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/app/Account.java
index 7b310b4d3..376756bf7 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/app/Account.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/app/Account.java
@@ -358,7 +358,7 @@ public class Account extends BaseAccount implements Serializable {
*
* @return BaseAccount List<{@link BaseAccount}>
*/
- public List<BaseAccount> getCrossAccounts() throws DBException {
+ public List<BaseAccount> getOtherAccounts() throws DBException {
if (db == null) {
throw new DBException("db is null. Wrong initialization.");
}
@@ -371,6 +371,23 @@ public class Account extends BaseAccount implements Serializable {
}
/**
+ * Returns all accounts that allows cross-account actions
+ *
+ * @return BaseAccount List<{@link BaseAccount}>
+ */
+ public List<BaseAccount> getCrossAccounts() throws DBException {
+ if (db == null) {
+ throw new DBException("db is null. Wrong initialization.");
+ }
+ try {
+ Cursor c = db.query(Sqlite.TABLE_USER_ACCOUNT, null, null, null, null, null, null, null);
+ return cursorToListMastodonUser(c);
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ /**
* Returns all accounts
*
* @return BaseAccount List<{@link BaseAccount}>
@@ -455,6 +472,27 @@ public class Account extends BaseAccount implements Serializable {
return accountList;
}
+
+ private List<BaseAccount> cursorToListMastodonUser(Cursor c) {
+ //No element found
+ if (c.getCount() == 0) {
+ c.close();
+ return null;
+ }
+ List<BaseAccount> accountList = new ArrayList<>();
+ while (c.moveToNext()) {
+ BaseAccount account = convertCursorToAccount(c);
+ //We don't add in the list the current connected account
+ if (account.mastodon_account != null) {
+ accountList.add(account);
+ }
+ }
+ //Close the cursor
+ c.close();
+ return accountList;
+ }
+
+
private List<BaseAccount> cursorToListUserWithOwner(Cursor c) {
//No element found
if (c.getCount() == 0) {
diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java
index 688ccdf37..cd6e94219 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java
@@ -401,7 +401,7 @@ public class CrossActionHelper {
public static void doCrossShare(final Context context, final Bundle bundle) {
List<BaseAccount> accounts;
try {
- accounts = new Account(context).getAll();
+ accounts = new Account(context).getCrossAccounts();
List<app.fedilab.android.mastodon.client.entities.api.Account> accountList = new ArrayList<>();
for (BaseAccount account : accounts) {
account.mastodon_account.acct += "@" + account.instance;