summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortom79 <tschneider.ac@gmail.com>2020-04-16 16:01:13 +0200
committertom79 <tschneider.ac@gmail.com>2020-04-16 16:01:13 +0200
commit92cf0c6ff5087f2cb407b4e80f6e3b10b13a6f3a (patch)
tree81de1d703cb7a524c11316a968307530bb14677b
parentebc554b0f5c5d64e162f5b345257375f44af5a00 (diff)
Fix notification issue
-rw-r--r--app/src/main/java/app/fedilab/android/client/API.java38
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Account.java9
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java10
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java10
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java3
-rw-r--r--app/src/main/java/app/fedilab/android/helper/MastalabAutoCompleteTextView.java1
6 files changed, 40 insertions, 31 deletions
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 af6e8570d..9d48bac3a 100644
--- a/app/src/main/java/app/fedilab/android/client/API.java
+++ b/app/src/main/java/app/fedilab/android/client/API.java
@@ -853,7 +853,7 @@ public class API {
}
status.setApplication(application);
- status.setAccount(parseAccountResponse(context, resobj.getJSONObject("account"), true));
+ status.setAccount(parseAccountResponse(context, resobj.getJSONObject("account")));
status.setContent(context, resobj.get("content").toString());
if (!resobj.isNull("favourites_count")) {
status.setFavourites_count(resobj.getInt("favourites_count"));
@@ -1236,7 +1236,7 @@ public class API {
} else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
if (!resobj.isNull("account")) {
- Account account = parseAccountResponse(context, resobj.getJSONObject("account"), true);
+ Account account = parseAccountResponse(context, resobj.getJSONObject("account"));
AccountAdmin accountAdmin = new AccountAdmin();
accountAdmin.setId(account.getId());
accountAdmin.setUsername(account.getAcct());
@@ -1245,7 +1245,7 @@ public class API {
}
if (!resobj.isNull("actor")) {
- Account account = parseAccountResponse(context, resobj.getJSONObject("actor"), true);
+ Account account = parseAccountResponse(context, resobj.getJSONObject("actor"));
AccountAdmin accountAdmin = new AccountAdmin();
accountAdmin.setId(account.getId());
accountAdmin.setUsername(account.getAcct());
@@ -1308,7 +1308,7 @@ public class API {
}
if (!resobj.isNull("account")) {
- accountAdmin.setAccount(parseAccountResponse(context, resobj.getJSONObject("account"), true));
+ accountAdmin.setAccount(parseAccountResponse(context, resobj.getJSONObject("account")));
} else {
Account account = new Account();
account.setId(accountAdmin.getId());
@@ -1359,7 +1359,7 @@ public class API {
* @return Account
*/
@SuppressWarnings("InfiniteRecursion")
- private static Account parseAccountResponse(Context context, JSONObject resobj, boolean fetchEmoji) {
+ private static Account parseAccountResponse(Context context, JSONObject resobj) {
Account account = new Account();
try {
@@ -1399,7 +1399,7 @@ public class API {
account.setBot(false);
}
try {
- account.setMoved_to_account(parseAccountResponse(context, resobj.getJSONObject("moved"), true));
+ account.setMoved_to_account(parseAccountResponse(context, resobj.getJSONObject("moved")));
} catch (Exception ignored) {
account.setMoved_to_account(null);
}
@@ -1419,8 +1419,8 @@ public class API {
account.setAdmin(false);
}
}
- } catch (Exception ignored) {
- ignored.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
}
try {
@@ -1439,8 +1439,8 @@ public class API {
}
account.setFields(fieldsMap);
account.setFieldsVerified(fieldsMapVerified);
- } catch (Exception ignored) {
- ignored.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
}
@@ -1456,6 +1456,7 @@ public class API {
account.setEmojis(emojiList);
} catch (Exception e) {
account.setEmojis(new ArrayList<>());
+ e.printStackTrace();
}
if (resobj.has("source")) {
JSONObject source = resobj.getJSONObject("source");
@@ -1480,8 +1481,10 @@ public class API {
} catch (JSONException | ParseException e) {
e.printStackTrace();
}
- if (fetchEmoji) {
+ try {
Account.makeAccountNameEmoji(context, account);
+ } catch (Exception e) {
+ e.printStackTrace();
}
return account;
}
@@ -1610,8 +1613,7 @@ public class API {
notification.setId(resobj.get("id").toString());
notification.setType(resobj.get("type").toString());
notification.setCreated_at(Helper.mstStringToDate(resobj.get("created_at").toString()));
- notification.setAccount(parseAccountResponse(context, resobj.getJSONObject("account"), false));
-
+ notification.setAccount(parseAccountResponse(context, resobj.getJSONObject("account")));
try {
notification.setStatus(parseStatuses(context, resobj.getJSONObject("status")));
} catch (Exception ignored) {
@@ -2456,7 +2458,7 @@ public class API {
return null;
}
String response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl("/accounts/verify_credentials"), 10, null, prefKeyOauthTokenT);
- account = parseAccountResponse(context, new JSONObject(response), true);
+ account = parseAccountResponse(context, new JSONObject(response));
if (social != null) {
account.setSocial(social.toUpperCase());
}
@@ -2488,7 +2490,7 @@ public class API {
String response;
try {
response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl("/accounts/verify_credentials"), 10, null, targetedAccount.getToken());
- account = parseAccountResponse(context, new JSONObject(response), true);
+ account = parseAccountResponse(context, new JSONObject(response));
if (social != null) {
account.setSocial(social.toUpperCase());
}
@@ -2584,7 +2586,7 @@ public class API {
account = new Account();
try {
String response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl(String.format("/accounts/%s", accountId)), 10, null, prefKeyOauthTokenT);
- account = parseAccountResponse(context, new JSONObject(response), true);
+ account = parseAccountResponse(context, new JSONObject(response));
} catch (HttpsConnection.HttpsConnectionException e) {
setError(e.getStatusCode(), e);
e.printStackTrace();
@@ -5742,7 +5744,7 @@ public class API {
}
}
if (resobj.has("contact_account")) {
- instance.setContactAccount(parseAccountResponse(context, resobj.getJSONObject("contact_account"), true));
+ instance.setContactAccount(parseAccountResponse(context, resobj.getJSONObject("contact_account")));
}
} catch (JSONException e) {
e.printStackTrace();
@@ -5974,7 +5976,7 @@ public class API {
int i = 0;
while (i < jsonArray.length()) {
JSONObject resobj = jsonArray.getJSONObject(i);
- Account account = parseAccountResponse(context, resobj, true);
+ Account account = parseAccountResponse(context, resobj);
accounts.add(account);
i++;
}
diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Account.java b/app/src/main/java/app/fedilab/android/client/Entities/Account.java
index 93c3d3cf5..06b8eb6e0 100644
--- a/app/src/main/java/app/fedilab/android/client/Entities/Account.java
+++ b/app/src/main/java/app/fedilab/android/client/Entities/Account.java
@@ -200,7 +200,7 @@ public class Account implements Parcelable {
}
public static void makeAccountNameEmoji(final Context context, Account account) {
- if (((Activity) context).isFinishing() || account.getDisplay_name() == null)
+ if ((context instanceof Activity && ((Activity) context).isFinishing()) || account.getDisplay_name() == null)
return;
account.setDisplayNameSpan(new SpannableString(account.getDisplay_name()));
@@ -232,6 +232,7 @@ public class Account implements Parcelable {
displayNameSpan.setSpan(
imageSpan, startPosition,
endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+ return;
}
}
}
@@ -244,8 +245,8 @@ public class Account implements Parcelable {
});
- } catch (Exception ignored) {
- ignored.printStackTrace();
+ } catch (Exception e) {
+ e.printStackTrace();
}
}
@@ -740,7 +741,7 @@ public class Account implements Parcelable {
}
public void makeEmojisAccountProfile(final Context context, final OnRetrieveEmojiAccountInterface listener, Account account) {
- if (((Activity) context).isFinishing())
+ if (context instanceof Activity && ((Activity) context).isFinishing())
return;
if (fields == null)
fields = new LinkedHashMap<>();
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 223599eb1..cee832d47 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
@@ -807,7 +807,7 @@ public class Status implements Parcelable {
}
final int link_color = l_c;
- if (((Activity) context).isFinishing() || status == null)
+ if ((context instanceof Activity && ((Activity) context).isFinishing()) || status == null)
return;
if ((status.getReblog() != null && status.getReblog().getContent() == null) || (status.getReblog() == null && status.getContent() == null))
return;
@@ -851,7 +851,7 @@ public class Status implements Parcelable {
private static void makeEmojis(final Context context, Status status) {
- if (((Activity) context).isFinishing())
+ if (context instanceof Activity && ((Activity) context).isFinishing())
return;
if (status.getReblog() != null && status.getReblog().getEmojis() == null)
return;
@@ -929,7 +929,7 @@ public class Status implements Parcelable {
}
public static void makeEmojiPoll(final Context context, Poll poll) {
- if (((Activity) context).isFinishing() || poll == null || poll.getOptionsList() == null)
+ if ((context instanceof Activity && ((Activity) context).isFinishing()) || poll == null || poll.getOptionsList() == null)
return;
final List<Emojis> emojis = poll.getEmojis();
SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
@@ -990,7 +990,7 @@ public class Status implements Parcelable {
private static void makeImage(final Context context, Status status) {
- if (((Activity) context).isFinishing())
+ if (context instanceof Activity && ((Activity) context).isFinishing())
return;
if (status.getAccount() == null)
return;
@@ -1053,7 +1053,7 @@ public class Status implements Parcelable {
public static void makeEmojisTranslation(final Context context, final OnRetrieveEmojiInterface listener, Status status) {
- if (((Activity) context).isFinishing())
+ if (context instanceof Activity && ((Activity) context).isFinishing())
return;
SpannableString spannableStringTranslated = null;
if (status.getContentTranslated() != null) {
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 b4f253b16..bf028988e 100644
--- a/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/NotificationsListAdapter.java
@@ -1199,7 +1199,9 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
@Override
public void onRetrieveEmoji(Status status, boolean fromTranslation) {
- notifyNotificationWithActionChanged(status);
+ if (status != null) {
+ notifyNotificationWithActionChanged(status);
+ }
}
@Override
@@ -1237,8 +1239,10 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
@Override
public void onPoll(Status status, Poll poll) {
- status.setPoll(poll);
- notifyNotificationWithActionChanged(status);
+ if (status != null) {
+ status.setPoll(poll);
+ notifyNotificationWithActionChanged(status);
+ }
}
@Override
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 b7c5f7181..e27cbd5c6 100644
--- a/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/DisplayNotificationsFragment.java
@@ -160,8 +160,9 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
Bundle b = intent.getExtras();
assert b != null;
Status status = b.getParcelable("status");
- if (notificationsListAdapter != null && status != null)
+ if (notificationsListAdapter != null && status != null) {
notificationsListAdapter.notifyNotificationWithActionChanged(status);
+ }
}
};
LocalBroadcastManager.getInstance(context).registerReceiver(receive_action, new IntentFilter(Helper.RECEIVE_ACTION));
diff --git a/app/src/main/java/app/fedilab/android/helper/MastalabAutoCompleteTextView.java b/app/src/main/java/app/fedilab/android/helper/MastalabAutoCompleteTextView.java
index bae1964e5..a9b12a2f9 100644
--- a/app/src/main/java/app/fedilab/android/helper/MastalabAutoCompleteTextView.java
+++ b/app/src/main/java/app/fedilab/android/helper/MastalabAutoCompleteTextView.java
@@ -70,6 +70,7 @@ public class MastalabAutoCompleteTextView extends androidx.appcompat.widget.AppC
super(context);
initView();
}
+
public MastalabAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);