summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/BaseActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/LoginActivity.java7
-rw-r--r--app/src/main/java/app/fedilab/android/activities/TootActivity.java93
-rw-r--r--app/src/main/java/app/fedilab/android/activities/WebviewActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java5
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Account.java14
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java45
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java2
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java4
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java41
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java7
-rw-r--r--app/src/main/java/app/fedilab/android/services/LiveNotificationDelayedService.java8
-rw-r--r--app/src/main/java/app/fedilab/android/services/LiveNotificationService.java8
-rw-r--r--app/src/main/java/app/fedilab/android/sqlite/StatusCacheDAO.java5
15 files changed, 138 insertions, 107 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java
index 6ecb3e377..96f7a25d9 100644
--- a/app/src/main/java/app/fedilab/android/activities/BaseActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/BaseActivity.java
@@ -6,7 +6,6 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.os.Bundle;
-import android.os.StrictMode;
import android.view.ActionMode;
import android.view.View;
import android.widget.Toast;
@@ -25,7 +24,6 @@ import org.jetbrains.annotations.NotNull;
import java.util.Timer;
-import app.fedilab.android.BuildConfig;
import app.fedilab.android.helper.Helper;
import es.dmoral.toasty.Toasty;
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 692f0c430..5207547ff 100644
--- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java
@@ -593,7 +593,12 @@ public class LoginActivity extends BaseActivity {
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token);
editor.apply();
//Update the account with the token;
- new UpdateAccountInfoAsyncTask(LoginActivity.this, token, client_id, client_secret, refresh_token, instance, socialNetwork).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ if (instance != null) {
+ new UpdateAccountInfoAsyncTask(LoginActivity.this, token, client_id, client_secret, refresh_token, instance, socialNetwork).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ } else {
+ connectionButton.setEnabled(true);
+ Toasty.error(LoginActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show();
+ }
} catch (JSONException e) {
e.printStackTrace();
}
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 569ea9867..b57b77ae5 100644
--- a/app/src/main/java/app/fedilab/android/activities/TootActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/TootActivity.java
@@ -207,6 +207,7 @@ import static app.fedilab.android.helper.Helper.THEME_BLACK;
import static app.fedilab.android.helper.Helper.THEME_DARK;
import static app.fedilab.android.helper.Helper.THEME_LIGHT;
import static app.fedilab.android.helper.Helper.countWithEmoji;
+import static app.fedilab.android.helper.Helper.isValidContextForGlide;
/**
@@ -646,7 +647,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
}
}
- public static String manageMentions(Context context, String userIdReply, Status tootReply) {
+ public static String manageMentions(String userIdReply, Status tootReply) {
String contentView = "";
//Retrieves mentioned accounts + OP and adds them at the beginin of the toot
ArrayList<String> mentionedAccountsAdded = new ArrayList<>();
@@ -1340,53 +1341,57 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
it.remove();
}
if (fileName != null) {
- Glide.with(imageView.getContext())
- .asBitmap()
- .load(fileName)
- .into(new CustomTarget<Bitmap>() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
- imageView.setImageBitmap(resource);
- }
+ if (isValidContextForGlide(imageView.getContext())) {
+ Glide.with(imageView.getContext())
+ .asBitmap()
+ .load(fileName)
+ .into(new CustomTarget<Bitmap>() {
+ @Override
+ public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
+ imageView.setImageBitmap(resource);
+ }
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
- }
- });
+ }
+ });
+ }
}
}
} else {
- String finalUrl = url;
- Glide.with(imageView.getContext())
- .asBitmap()
- .load(url)
- .error(Glide.with(imageView).asBitmap().load(R.drawable.ic_audio_wave))
- .into(new CustomTarget<Bitmap>() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
- imageView.setImageBitmap(resource);
- if (displayWYSIWYG()) {
- url_for_media = finalUrl;
- Iterator it = filesMap.entrySet().iterator();
- String fileName = null;
- while (it.hasNext()) {
- Map.Entry pair = (Map.Entry) it.next();
- fileName = (String) pair.getKey();
- it.remove();
- }
- if (fileName != null && fileName.contains("fedilabins_")) {
- wysiwyg.insertImage(resource);
+ if (isValidContextForGlide(imageView.getContext())) {
+ String finalUrl = url;
+ Glide.with(imageView.getContext())
+ .asBitmap()
+ .load(url)
+ .error(Glide.with(imageView).asBitmap().load(R.drawable.ic_audio_wave))
+ .into(new CustomTarget<Bitmap>() {
+ @Override
+ public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {
+ imageView.setImageBitmap(resource);
+ if (displayWYSIWYG()) {
+ url_for_media = finalUrl;
+ Iterator it = filesMap.entrySet().iterator();
+ String fileName = null;
+ while (it.hasNext()) {
+ Map.Entry pair = (Map.Entry) it.next();
+ fileName = (String) pair.getKey();
+ it.remove();
+ }
+ if (fileName != null && fileName.contains("fedilabins_")) {
+ wysiwyg.insertImage(resource);
+ }
}
}
- }
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
- }
- });
+ }
+ });
+ }
}
@@ -2246,8 +2251,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
if (namebar != null && namebar.getParent() != null)
((ViewGroup) namebar.getParent()).removeView(namebar);
}
- List<Attachment> tmp_attachment = new ArrayList<>();
- tmp_attachment.addAll(attachments);
+ List<Attachment> tmp_attachment = new ArrayList<>(attachments);
attachments.removeAll(tmp_attachment);
tmp_attachment.clear();
}
@@ -2585,8 +2589,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
if (namebar != null && namebar.getParent() != null)
((ViewGroup) namebar.getParent()).removeView(namebar);
}
- List<Attachment> tmp_attachment = new ArrayList<>();
- tmp_attachment.addAll(attachments);
+ List<Attachment> tmp_attachment = new ArrayList<>(attachments);
attachments.removeAll(tmp_attachment);
tmp_attachment.clear();
}
@@ -3069,9 +3072,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
}
});
imageView.setTag(attachment.getId());
- imageView.setOnClickListener(view -> {
- imageView.setOnClickListener(view1 -> showAddDescription(attachment));
- });
+ imageView.setOnClickListener(view -> imageView.setOnClickListener(view1 -> showAddDescription(attachment)));
imageView.setOnLongClickListener(view -> {
showRemove(imageView.getId());
return false;
@@ -3396,7 +3397,7 @@ public class TootActivity extends BaseActivity implements UploadStatusDelegate,
private void displayPollPopup() {
AlertDialog.Builder alertPoll = new AlertDialog.Builder(TootActivity.this, style);
alertPoll.setTitle(R.string.create_poll);
- View view = getLayoutInflater().inflate(R.layout.popup_poll, null);
+ View view = getLayoutInflater().inflate(R.layout.popup_poll, new LinearLayout(TootActivity.this), false);
alertPoll.setView(view);
Spinner poll_choice = view.findViewById(R.id.poll_choice);
Spinner poll_duration = view.findViewById(R.id.poll_duration);
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 181b39523..a0eda86da 100644
--- a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java
@@ -190,7 +190,7 @@ public class WebviewActivity extends BaseActivity {
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (!peertubeLink)
- setCount(this, "0");
+ setCount(WebviewActivity.this, "0");
defaultMenu = menu;
return super.onPrepareOptionsMenu(menu);
}
diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
index f360dcc3c..ffddd14ff 100644
--- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
@@ -150,7 +150,9 @@ public class WebviewConnectActivity extends BaseActivity {
}
});
-
+ if (instance == null) {
+ finish();
+ }
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
@@ -200,6 +202,7 @@ public class WebviewConnectActivity extends BaseActivity {
});
webView.loadUrl(LoginActivity.redirectUserToAuthorizeAndLogin(WebviewConnectActivity.this, clientId, instance));
+
}
@Override
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 0a6f3e98e..65e9ad7f5 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
@@ -139,7 +139,7 @@ public class Account implements Parcelable {
private String invite_request;
private String created_by_application_id;
private String invited_by_account_id;
- private boolean emojiFound = false;
+ private transient boolean emojiFound = false;
public Account() {
}
@@ -202,7 +202,7 @@ public class Account implements Parcelable {
public static void makeAccountNameEmoji(final WeakReference<Context> contextWeakReference, Account account) {
Context context = contextWeakReference.get();
- if ((context instanceof Activity && ((Activity) context).isFinishing()) || account.getDisplay_name() == null)
+ if ((context instanceof Activity && ((Activity) context).isFinishing()) || account == null || account.getDisplay_name() == null)
return;
account.setDisplayNameSpan(new SpannableString(account.getDisplay_name()));
@@ -723,7 +723,7 @@ public class Account implements Parcelable {
int startPositionTar = spannableString.toString().indexOf("@" + this.getMoved_to_account().getAcct());
int endPositionTar = startPositionTar + ("@" + this.getMoved_to_account().getAcct()).length();
final Account idTar = this.getMoved_to_account();
- if (endPositionTar <= spannableString.toString().length() && endPositionTar >= startPositionTar)
+ if (startPositionTar >= 0 && endPositionTar <= spannableString.toString().length() && endPositionTar >= startPositionTar)
spannableString.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -801,7 +801,7 @@ public class Account implements Parcelable {
int matchStart = matcher.start(0);
int matchEnd = matcher.end();
final String url = fieldSpan.toString().substring(matchStart, matchEnd);
- if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
+ if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
fieldSpan.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -832,7 +832,7 @@ public class Account implements Parcelable {
int matchStart = matcher.start(0);
int matchEnd = matcher.end();
final String email = fieldSpan.toString().substring(matchStart, matchEnd);
- if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
+ if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
fieldSpan.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -865,7 +865,7 @@ public class Account implements Parcelable {
int matchStart = matcher.start(1);
int matchEnd = matcher.end();
final String tag = fieldSpan.toString().substring(matchStart, matchEnd);
- if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart)
+ if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart)
fieldSpan.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -935,7 +935,7 @@ public class Account implements Parcelable {
int matchStart = matcher.start(0);
int matchEnd = matcher.end();
final String url = fieldSpan.toString().substring(matchStart, matchEnd);
- if (matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
+ if (matchStart >= 0 && matchEnd <= fieldSpan.toString().length() && matchEnd >= matchStart) {
fieldSpan.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
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 edd0862c5..b9cd3f100 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
@@ -145,17 +145,17 @@ public class Status implements Parcelable {
private Card card;
private String language;
private boolean isTranslated = false;
- private boolean isEmojiFound = false;
- private boolean isPollEmojiFound = false;
- private boolean isImageFound = false;
- private boolean isEmojiTranslateFound = false;
+ private transient boolean isEmojiFound = false;
+ private transient boolean isPollEmojiFound = false;
+ private transient boolean isImageFound = false;
+ private transient boolean isEmojiTranslateFound = false;
private boolean isTranslationShown = false;
private boolean isNew = false;
private boolean isVisible = true;
private boolean fetchMore = false;
private String content, contentCW, contentTranslated;
private SpannableString contentSpan, contentSpanCW, contentSpanTranslated;
- private RetrieveFeedsAsyncTask.Type type;
+ private transient RetrieveFeedsAsyncTask.Type type;
private int itemViewType;
private String conversationId;
private boolean isExpanded = false;
@@ -184,9 +184,9 @@ public class Status implements Parcelable {
private List<String> imageURL;
private int viewType;
private boolean isFocused = false;
- private long db_id;
- private boolean commentsFetched = false;
- private List<Status> comments = new ArrayList<>();
+ private transient long db_id;
+ private transient boolean commentsFetched = false;
+ private transient List<Status> comments = new ArrayList<>();
public Status() {
}
@@ -423,6 +423,7 @@ public class Status implements Parcelable {
HashMap<String, String> targetedURL = new HashMap<>();
HashMap<String, Account> accountsMentionUnknown = new HashMap<>();
String liveInstance = Helper.getLiveInstance(context);
+ int i = 1;
while (matcher.find()) {
String key;
@@ -433,14 +434,14 @@ public class Status implements Parcelable {
key = key.substring(1);
if (!key.startsWith("#") && !key.startsWith("@") && !key.trim().equals("") && !Objects.requireNonNull(matcher.group(2)).contains("search?tag=") && !Objects.requireNonNull(matcher.group(2)).contains(liveInstance + "/users/")) {
-
String url;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
url = Html.fromHtml(matcher.group(2), Html.FROM_HTML_MODE_LEGACY).toString();
} else {
url = Html.fromHtml(matcher.group(2)).toString();
}
- targetedURL.put(key, url);
+ targetedURL.put(key + "|" + i, url);
+ i++;
} else if (key.startsWith("@") || Objects.requireNonNull(matcher.group(2)).contains(liveInstance + "/users/")) {
String acct;
String url;
@@ -524,7 +525,7 @@ public class Status implements Parcelable {
int matchStart = matcher.start(2);
int matchEnd = matcher.end();
final String twittername = matcher.group(2);
- if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
+ if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
spannableStringT.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -573,7 +574,7 @@ public class Status implements Parcelable {
endPosition = startPosition + key.length();
}
//Accounts can be mentioned several times so we have to loop
- if (endPosition <= spannableStringT.toString().length() && endPosition >= startPosition)
+ if (startPosition >= 0 && endPosition <= spannableStringT.toString().length() && endPosition >= startPosition)
spannableStringT.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -603,14 +604,19 @@ public class Status implements Parcelable {
}
if (targetedURL.size() > 0) {
Iterator it = targetedURL.entrySet().iterator();
+ int endPosition = 0;
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
- String key = (String) pair.getKey();
+ String key = ((String) pair.getKey()).split("\\|")[0];
+
String url = (String) pair.getValue();
if (spannableStringT.toString().toLowerCase().contains(key.toLowerCase())) {
//Accounts can be mentioned several times so we have to loop
- int startPosition = spannableStringT.toString().toLowerCase().indexOf(key.toLowerCase());
- int endPosition = startPosition + key.length();
+ int startPosition = spannableStringT.toString().toLowerCase().indexOf(key.toLowerCase(), endPosition);
+ if (startPosition < 0) {
+ startPosition = 0;
+ }
+ endPosition = startPosition + key.length();
if (key.contains("…") && !key.endsWith("…")) {
key = key.split("…")[0] + "…";
SpannableStringBuilder ssb = new SpannableStringBuilder();
@@ -782,7 +788,7 @@ public class Status implements Parcelable {
int matchStart = matcher.start(1);
int matchEnd = matcher.end();
final String tag = spannableStringT.toString().substring(matchStart, matchEnd);
- if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
+ if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
spannableStringT.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -791,6 +797,7 @@ public class Status implements Parcelable {
Bundle b = new Bundle();
b.putString("tag", tag.substring(1));
intent.putExtras(b);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
@@ -811,7 +818,7 @@ public class Status implements Parcelable {
int matchStart = matcher.start(1);
int matchEnd = matcher.end();
final String groupname = spannableStringT.toString().substring(matchStart, matchEnd);
- if (matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
+ if (matchStart >= 0 && matchEnd <= spannableStringT.toString().length() && matchEnd >= matchStart)
spannableStringT.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -864,7 +871,7 @@ public class Status implements Parcelable {
int matchStart = matcherALink.start();
int matchEnd = matcherALink.end();
final String url = contentSpanTranslated.toString().substring(matcherALink.start(1), matcherALink.end(1));
- if (matchEnd <= contentSpanTranslated.toString().length() && matchEnd >= matchStart)
+ if (matchStart >= 0 && matchEnd <= contentSpanTranslated.toString().length() && matchEnd >= matchStart)
contentSpanTranslated.setSpan(new ClickableSpan() {
@Override
public void onClick(@NonNull View textView) {
@@ -1307,7 +1314,7 @@ public class Status implements Parcelable {
}
public String getContent() {
- return content;
+ return content.replaceAll("\\p{C}", "?");
}
public void setContent(Context context, String content) {
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 de0124764..b9fe42e2e 100644
--- a/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/PixelfedListAdapter.java
@@ -459,7 +459,7 @@ public class PixelfedListAdapter extends RecyclerView.Adapter implements OnPostA
InputMethodManager.SHOW_FORCED, 0);
EditText content_cw = new EditText(context);
content_cw.setText(status.getReblog() != null ? status.getReblog().getSpoiler_text() : status.getSpoiler_text());
- String content = TootActivity.manageMentions(context, userId, status.getReblog() != null ? status.getReblog() : status);
+ String content = TootActivity.manageMentions(userId, status.getReblog() != null ? status.getReblog() : status);
TextWatcher textWatcher = PixelfedComposeActivity.initializeTextWatcher(context, social, holder.quick_reply_text, holder.toot_space_left, null, null, PixelfedListAdapter.this, PixelfedListAdapter.this, PixelfedListAdapter.this);
holder.quick_reply_text.addTextChangedListener(textWatcher);
holder.quick_reply_text.setText(content);
diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
index b06d2aa75..4c7da76a2 100644
--- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
@@ -480,6 +480,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
public void onPostStatusAction(APIResponse apiResponse) {
if (apiResponse.getError() != null) {
Toasty.error(context, apiResponse.getError().getError(), Toast.LENGTH_SHORT).show();
+ storeToot();
return;
}
final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, MODE_PRIVATE);
@@ -487,7 +488,6 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
String instance = Helper.getLiveInstance(context);
boolean split_toot = sharedpreferences.getBoolean(Helper.SET_AUTOMATICALLY_SPLIT_TOOTS + userId + instance, false);
-
if (split_toot && splitToot != null && stepSpliToot < splitToot.size()) {
String tootContent = splitToot.get(stepSpliToot);
stepSpliToot += 1;
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 283b59c04..9bb0f09e9 100644
--- a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java
@@ -2406,6 +2406,10 @@ public class ContentSettingsFragment extends Fragment implements OnRetrieveRemot
editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "ca");
editor.commit();
break;
+ case 22:
+ editor.putString(Helper.SET_DEFAULT_LOCALE_NEW, "szl");
+ editor.commit();
+ break;
}
PackageManager packageManager = context.getPackageManager();
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 5c8859b55..1aa301fe5 100644
--- a/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/DisplayStatusFragment.java
@@ -1062,7 +1062,6 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter
@Override
public void onRetrieveFeedsAfterBookmark(APIResponse apiResponse) {
-
if (statusListAdapter == null && pixelfedListAdapter == null)
return;
if (apiResponse == null || (apiResponse.getError() != null && apiResponse.getError().getStatusCode() != 404 && apiResponse.getError().getStatusCode() != 501)) {
@@ -1078,36 +1077,42 @@ public class DisplayStatusFragment extends Fragment implements OnPostActionInter
return;
}
List<Status> statuses = apiResponse.getStatuses();
-
if (statuses == null || statuses.size() == 0 || this.statuses == null)
return;
//Find the position of toots between those already present
int position = 0;
-
if (position < this.statuses.size() && statuses.get(0).getCreated_at() != null && this.statuses.get(position).getCreated_at() != null) {
while (position < this.statuses.size() && statuses.get(0).getCreated_at().before(this.statuses.get(position).getCreated_at())) {
position++;
}
}
ArrayList<Status> tmpStatuses = new ArrayList<>();
- for (Status tmpStatus : statuses) {
- //Put the toot at its place in the list (id desc)
- if (!apiResponse.isFetchmore() && this.statuses.size() > 0 && !this.statuses.contains(tmpStatus) && tmpStatus.getCreated_at() != null && this.statuses.get(0).getCreated_at() != null && tmpStatus.getCreated_at().after(this.statuses.get(0).getCreated_at())) { //Element not already added
- //Mark status at new ones when their id is greater than the last read toot id
- if ((type == RetrieveFeedsAsyncTask.Type.HOME || type == RetrieveFeedsAsyncTask.Type.PF_HOME) && lastReadTootDate != null && tmpStatus.getCreated_at().after(lastReadTootDate)) {
- tmpStatus.setNew(true);
- MainActivity.countNewStatus++;
- }
- tmpStatuses.add(tmpStatus);
- } else if (apiResponse.isFetchmore() && !this.statuses.contains(tmpStatus)) { //Element not already added
- //Mark status at new ones when their id is greater than the last read toot id
- if ((type == RetrieveFeedsAsyncTask.Type.HOME || type == RetrieveFeedsAsyncTask.Type.PF_HOME) && lastReadTootDate != null && tmpStatus.getCreated_at().after(lastReadTootDate)) {
- tmpStatus.setNew(true);
- MainActivity.countNewStatus++;
+
+
+ if (this.statuses.size() > 0) {
+ for (Status tmpStatus : statuses) {
+ //Put the toot at its place in the list (id desc)
+ if (!apiResponse.isFetchmore() && this.statuses.size() > 0 && !this.statuses.contains(tmpStatus) && tmpStatus.getCreated_at() != null && this.statuses.get(0).getCreated_at() != null && tmpStatus.getCreated_at().after(this.statuses.get(0).getCreated_at())) { //Element not already added
+ //Mark status at new ones when their id is greater than the last read toot id
+ if ((type == RetrieveFeedsAsyncTask.Type.HOME || type == RetrieveFeedsAsyncTask.Type.PF_HOME) && lastReadTootDate != null && tmpStatus.getCreated_at().after(lastReadTootDate)) {
+ tmpStatus.setNew(true);
+ MainActivity.countNewStatus++;
+ }
+ tmpStatuses.add(tmpStatus);
+ } else if (apiResponse.isFetchmore() && !this.statuses.contains(tmpStatus)) { //Element not already added
+ //Mark status at new ones when their id is greater than the last read toot id
+ if ((type == RetrieveFeedsAsyncTask.Type.HOME || type == RetrieveFeedsAsyncTask.Type.PF_HOME) && lastReadTootDate != null && tmpStatus.getCreated_at().after(lastReadTootDate)) {
+ tmpStatus.setNew(true);
+ MainActivity.countNewStatus++;
+ }
+ tmpStatuses.add(tmpStatus);
}
- tmpStatuses.add(tmpStatus);
}
+ } else {
+ this.statuses.addAll(statuses);
+ tmpStatuses.addAll(statuses);
}
+
try {
((MainActivity) context).updateHomeCounter();
} catch (Exception ignored) {
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 d0ede0a82..028870d21 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -3135,6 +3135,7 @@ public class Helper {
finalUrl = "http://" + url;
b.putString("url", finalUrl);
intent.putExtras(b);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} else {
boolean custom_tabs = sharedpreferences.getBoolean(Helper.SET_CUSTOM_TABS, true);
@@ -3149,6 +3150,7 @@ public class Helper {
}