Fix crashes
This commit is contained in:
parent
d80193545d
commit
4dcb2cc3d9
|
@ -19,6 +19,7 @@ import android.content.Intent;
|
|||
import android.content.SharedPreferences;
|
||||
import android.database.sqlite.SQLiteDatabase;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
|
||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
||||
|
@ -4776,6 +4777,7 @@ public class API {
|
|||
public static Status parseNotes(Context context, String instance, JSONObject resobj){
|
||||
Status status = new Status();
|
||||
try {
|
||||
|
||||
status.setId(resobj.get("id").toString());
|
||||
status.setUri("https://" + instance + "/notes/" + resobj.get("id").toString());
|
||||
status.setCreated_at(Helper.mstStringToDate(context, resobj.get("createdAt").toString()));
|
||||
|
@ -4787,7 +4789,9 @@ public class API {
|
|||
status.setVisibility(resobj.get("visibility").toString());
|
||||
}catch (Exception e){status.setVisibility("public"); e.printStackTrace();}
|
||||
status.setUrl("https://" + instance + "/notes/" + resobj.get("id").toString());
|
||||
Log.v(Helper.TAG,"ici: " + resobj);
|
||||
//Retrieves attachments
|
||||
if( resobj.has("media")) {
|
||||
JSONArray arrayAttachement = resobj.getJSONArray("media");
|
||||
ArrayList<Attachment> attachments = new ArrayList<>();
|
||||
if (arrayAttachement != null) {
|
||||
|
@ -4808,19 +4812,26 @@ public class API {
|
|||
}
|
||||
try {
|
||||
attachment.setDescription(attObj.get("comment").toString());
|
||||
}catch (JSONException ignore){ignore.printStackTrace();}
|
||||
} catch (JSONException ignore) {
|
||||
ignore.printStackTrace();
|
||||
}
|
||||
attachments.add(attachment);
|
||||
}
|
||||
}
|
||||
status.setMedia_attachments(attachments);
|
||||
}else{
|
||||
status.setMedia_attachments(new ArrayList<>());
|
||||
}
|
||||
try {
|
||||
status.setCard(parseCardResponse(resobj.getJSONObject("card")));
|
||||
}catch (Exception e){status.setCard(null);}
|
||||
|
||||
status.setMedia_attachments(attachments);
|
||||
|
||||
//Retrieves mentions
|
||||
List<Mention> mentions = new ArrayList<>();
|
||||
|
||||
status.setAccount(parseMisskeyAccountResponse(context, instance, resobj.getJSONObject("user")));
|
||||
|
||||
status.setContent(resobj.get("text").toString());
|
||||
try{
|
||||
status.setReplies_count(Integer.valueOf(resobj.get("repliesCount").toString()));
|
||||
|
@ -4840,6 +4851,7 @@ public class API {
|
|||
status.setMentions(mentions);
|
||||
//Retrieves tags
|
||||
List<Tag> tags = new ArrayList<>();
|
||||
if( resobj.has("tags")) {
|
||||
JSONArray arrayTag = resobj.getJSONArray("tags");
|
||||
if (arrayTag != null) {
|
||||
for (int j = 0; j < arrayTag.length(); j++) {
|
||||
|
@ -4850,11 +4862,12 @@ public class API {
|
|||
tags.add(tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
status.setTags(tags);
|
||||
|
||||
//Retrieves emjis
|
||||
List<Emojis> emojiList = new ArrayList<>();
|
||||
try {
|
||||
if( resobj.has("emojis")) {
|
||||
JSONArray emojisTag = resobj.getJSONArray("emojis");
|
||||
if (emojisTag != null) {
|
||||
for (int j = 0; j < emojisTag.length(); j++) {
|
||||
|
@ -4864,10 +4877,8 @@ public class API {
|
|||
}
|
||||
}
|
||||
status.setEmojis(emojiList);
|
||||
}catch (Exception e){
|
||||
status.setEmojis(new ArrayList<>());
|
||||
}
|
||||
|
||||
status.setEmojis(emojiList);
|
||||
//Retrieve Application
|
||||
Application application = new Application();
|
||||
try {
|
||||
|
@ -5631,15 +5642,18 @@ public class API {
|
|||
private static Account parseMisskeyAccountResponse(Context context, String instance, JSONObject resobj){
|
||||
|
||||
Account account = new Account();
|
||||
Log.v(Helper.TAG,"account: " + resobj);
|
||||
try {
|
||||
account.setId(resobj.get("id").toString());
|
||||
account.setUsername(resobj.get("username").toString());
|
||||
String host = resobj.get("host").toString();
|
||||
String host = null;
|
||||
String acct;
|
||||
if( host == null || host.equals("null"))
|
||||
if( resobj.isNull("host")) {
|
||||
acct = resobj.get("username").toString();
|
||||
else
|
||||
}else{
|
||||
host = resobj.get("host").toString();
|
||||
acct = resobj.get("username").toString() + "@" + host;
|
||||
}
|
||||
account.setAcct(acct);
|
||||
account.setDisplay_name(resobj.get("name").toString());
|
||||
account.setCreated_at(new Date());
|
||||
|
@ -5654,7 +5668,7 @@ public class API {
|
|||
}
|
||||
//Retrieves emjis
|
||||
List<Emojis> emojiList = new ArrayList<>();
|
||||
try {
|
||||
if( resobj.has("emojis")){
|
||||
JSONArray emojisTag = resobj.getJSONArray("emojis");
|
||||
if( emojisTag != null){
|
||||
for(int j = 0 ; j < emojisTag.length() ; j++){
|
||||
|
@ -5663,11 +5677,10 @@ public class API {
|
|||
emojiList.add(emojis);
|
||||
}
|
||||
}
|
||||
account.setEmojis(emojiList);
|
||||
}catch (Exception e){
|
||||
account.setEmojis(new ArrayList<>());
|
||||
}
|
||||
} catch (JSONException ignored) {}
|
||||
account.setEmojis(emojiList);
|
||||
Log.v(Helper.TAG,"accountxx: " + account);
|
||||
} catch (JSONException ignored) {ignored.printStackTrace();}
|
||||
return account;
|
||||
}
|
||||
|
||||
|
|
|
@ -123,6 +123,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
|
|||
private boolean isOnWifi;
|
||||
private NotificationsListAdapter.ViewHolder holder;
|
||||
private int style;
|
||||
private Timer timer;
|
||||
|
||||
public NotificationsListAdapter(Context context, boolean isOnWifi, int behaviorWithAttachments, List<Notification> notifications){
|
||||
this.context = context;
|
||||
|
@ -387,7 +388,9 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
|
|||
}
|
||||
}, 0, 130, TimeUnit.MILLISECONDS);
|
||||
}catch (Exception ignored){}*/
|
||||
new Timer().scheduleAtFixedRate(new TimerTask() {
|
||||
if( timer == null) {
|
||||
timer = new Timer();
|
||||
timer.scheduleAtFixedRate(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
((Activity) context).runOnUiThread(new Runnable() {
|
||||
|
@ -401,6 +404,7 @@ public class NotificationsListAdapter extends RecyclerView.Adapter implements On
|
|||
}
|
||||
}, 0, 130);
|
||||
}
|
||||
}
|
||||
if( !status.isClickable())
|
||||
Status.transform(context, status);
|
||||
if( !status.isEmojiFound())
|
||||
|
|
|
@ -52,6 +52,7 @@ import android.text.method.LinkMovementMethod;
|
|||
import android.text.style.ClickableSpan;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.URLSpan;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuItem;
|
||||
|
@ -215,7 +216,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
private TextView warning_message;
|
||||
private Status tootReply;
|
||||
private long currentToId = -1;
|
||||
|
||||
private Timer timer;
|
||||
public StatusListAdapter(Context context, RetrieveFeedsAsyncTask.Type type, String targetedId, boolean isOnWifi, List<Status> statuses){
|
||||
super();
|
||||
this.context = context;
|
||||
|
@ -1182,8 +1183,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
}
|
||||
}, 0, 130, TimeUnit.MILLISECONDS);
|
||||
}catch (Exception ignored){}*/
|
||||
|
||||
new Timer().scheduleAtFixedRate(new TimerTask() {
|
||||
if( timer == null) {
|
||||
timer = new Timer();
|
||||
timer.scheduleAtFixedRate(new TimerTask() {
|
||||
@Override
|
||||
public void run() {
|
||||
((Activity) context).runOnUiThread(new Runnable() {
|
||||
|
@ -1191,10 +1193,12 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
|
|||
public void run() {
|
||||
holder.status_account_displayname.invalidate();
|
||||
holder.status_content.invalidate();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}, 0, 130);
|
||||
}
|
||||
|
||||
}
|
||||
holder.status_spoiler.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14 * textSizePercent / 100);
|
||||
|
|
Loading…
Reference in New Issue