diff options
Diffstat (limited to 'app/src')
46 files changed, 1534 insertions, 506 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 13177a62c..f01b939ca 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -111,6 +111,7 @@ android:name="app.fedilab.android.activities.MainActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:label="@string/app_name" + android:launchMode="singleTask" android:theme="@style/AppThemeDark_NoActionBar" android:windowSoftInputMode="adjustResize"> <intent-filter> diff --git a/app/src/main/assets/changelogs/342.txt b/app/src/main/assets/changelogs/342.txt deleted file mode 100644 index 2d2b53d36..000000000 --- a/app/src/main/assets/changelogs/342.txt +++ /dev/null @@ -1,12 +0,0 @@ -Added -- Unshortened URLs can be copied or shared -- Trends in tags search -- Image are shared/stored from cache -- Message when a media is successfully downloaded - -Fixed -- Issue with polls not displayed -- Notifications not stopped -- Pleroma wysiwyg -- Login issue -- Some crashes
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/343.txt b/app/src/main/assets/changelogs/343.txt deleted file mode 100644 index 769ebc05d..000000000 --- a/app/src/main/assets/changelogs/343.txt +++ /dev/null @@ -1,6 +0,0 @@ -Added -- Follow Nitter feeds (ie: Twitter account timelines) - -Fixed -- Crash issue when no live notifications -- Trends can't be hidden diff --git a/app/src/main/assets/changelogs/344.txt b/app/src/main/assets/changelogs/344.txt deleted file mode 100644 index dd079ee1a..000000000 --- a/app/src/main/assets/changelogs/344.txt +++ /dev/null @@ -1,14 +0,0 @@ -Added -- Original & boost dates added separately -- Follow request notifications -- Identity proofs support - -Changed -- Media are preloaded when scrolling -- Improve live/delayed notifications - -Fixed -- Counter for mentions -- Preview images displayed twice -- Media not saved on Android 10+ -- Issue when following instances/pinging tags
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/345.txt b/app/src/main/assets/changelogs/345.txt deleted file mode 100644 index 8bcd296b8..000000000 --- a/app/src/main/assets/changelogs/345.txt +++ /dev/null @@ -1,6 +0,0 @@ -Added -- Friendica: Authorize/Reject follow requests - -Fixed -- Not cropped media -- Crash when starting the app
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/346.txt b/app/src/main/assets/changelogs/346.txt deleted file mode 100644 index 8bcd296b8..000000000 --- a/app/src/main/assets/changelogs/346.txt +++ /dev/null @@ -1,6 +0,0 @@ -Added -- Friendica: Authorize/Reject follow requests - -Fixed -- Not cropped media -- Crash when starting the app
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/347.txt b/app/src/main/assets/changelogs/347.txt deleted file mode 100644 index 0153a50d5..000000000 --- a/app/src/main/assets/changelogs/347.txt +++ /dev/null @@ -1,13 +0,0 @@ -Added -- Pixelfed: post media to stories -- Long press bio to open the contextual menu -- Allow to invite with Pleroma - -Changed -- Import theme always visible -- Improve login activity - -Fixed -- Filter with regex -- Issues with talk back and magnifying glass -- Some crashes
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/348.txt b/app/src/main/assets/changelogs/348.txt deleted file mode 100644 index 9fc1b98cd..000000000 --- a/app/src/main/assets/changelogs/348.txt +++ /dev/null @@ -1,5 +0,0 @@ -Fixed: -- Mentions with delete & re-draft for Pleroma accounts -- Nitter timelines with refresh -- Remove notification bar for Android 8- -- Fix "No Internet connection" error on some instances when posting
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/349.txt b/app/src/main/assets/changelogs/349.txt deleted file mode 100644 index 6f838f0a0..000000000 --- a/app/src/main/assets/changelogs/349.txt +++ /dev/null @@ -1,13 +0,0 @@ -Added: -- Català language -- Push notifications for Friendica & GNU Social -- Add follow/unfollow buttons for Pixelfed -- View your own story (need to wait the endpoint) -- Increase max bio chars to 500 for Pleroma - -Fixed: -- Proxy not applied with embedded videos -- Fix no toots that remains displayed on Nitter timelines -- Avoid to lose composed message when not sent -- Notifications not pushed -- Fix some crashes
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/350.txt b/app/src/main/assets/changelogs/350.txt deleted file mode 100644 index a1a3b198d..000000000 --- a/app/src/main/assets/changelogs/350.txt +++ /dev/null @@ -1,7 +0,0 @@ -Added: -- Text selectable for fields in profiles - -Fixed: -- Fix the scrolling issue in timelines -- Peertube videos crashes -- Color of the compose menu for the light theme
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/354.txt b/app/src/main/assets/changelogs/354.txt deleted file mode 100644 index 95e6e4b04..000000000 --- a/app/src/main/assets/changelogs/354.txt +++ /dev/null @@ -1,9 +0,0 @@ -Added: -- Announcements for Mastodon with reactions -- Pleroma: reactions in posts - -Changed: -- Filters changed to speed-up the scroll - -Fixed: -- Custom emojis not displayed in compose activity
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/355.txt b/app/src/main/assets/changelogs/355.txt deleted file mode 100644 index 573d2e8a4..000000000 --- a/app/src/main/assets/changelogs/355.txt +++ /dev/null @@ -1,14 +0,0 @@ -Added: -- Allow to edit searches - -Changed: -- Move the favourite item in menu - -Fixed: -- Filters not working -- Crash when sharing http URLs -- Missing ogg image when sharing -- Extra space with quick replies -- Crash when doing searches -- Fix crash when clicking on conversations -- Fix crash when editing profile
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/356.txt b/app/src/main/assets/changelogs/356.txt deleted file mode 100644 index 7737b5063..000000000 --- a/app/src/main/assets/changelogs/356.txt +++ /dev/null @@ -1,4 +0,0 @@ -Fixed: -- Crash due to a library update -- Missing animate profile pictures -- Fix some color issues
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/357.txt b/app/src/main/assets/changelogs/357.txt deleted file mode 100644 index 3b01064b7..000000000 --- a/app/src/main/assets/changelogs/357.txt +++ /dev/null @@ -1,9 +0,0 @@ -Changed: -- Improve memory management -- Improve scroll -- One logout entry in the menu (it will remove the account from the app) -- Clear push notifications when visiting notifications tab - -Fixed: -- Long press to store media download the preview image -- Fix pagination with Nitter timelines
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/358.txt b/app/src/main/assets/changelogs/358.txt deleted file mode 100644 index 1d6b959b1..000000000 --- a/app/src/main/assets/changelogs/358.txt +++ /dev/null @@ -1,11 +0,0 @@ -Changed: -- Improve memory management -- Improve scroll -- Poll layouts cleaner -- One logout entry in the menu (it will remove the account from the app) -- Clear push notifications when visiting notifications tab - -Fixed: -- Long press to store media download the preview image -- Fix pagination with Nitter timelines -- Avatars not displayed for Peertube
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/359.txt b/app/src/main/assets/changelogs/359.txt deleted file mode 100644 index d2c164b6b..000000000 --- a/app/src/main/assets/changelogs/359.txt +++ /dev/null @@ -1,8 +0,0 @@ -Added: -- Gif support for some keyboards. -- Support animated emoji for reactions - -Fixed: -- Crash when playing Youtube videos in timelines -- Announcements not displayed -- A crash due to recent changes
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/360.txt b/app/src/main/assets/changelogs/360.txt deleted file mode 100644 index 4c3b093ba..000000000 --- a/app/src/main/assets/changelogs/360.txt +++ /dev/null @@ -1,9 +0,0 @@ -Added: -- Gif support for some keyboards. -- Support animated emoji for reactions - -Fixed: -- Crash when playing Youtube videos in timelines -- Announcements not displayed -- A crash due to recent changes -- +Fix a crash due to polls
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/362.txt b/app/src/main/assets/changelogs/362.txt deleted file mode 100644 index d6316cd3b..000000000 --- a/app/src/main/assets/changelogs/362.txt +++ /dev/null @@ -1,3 +0,0 @@ -Fixed: -- Empty content for Friendica/GNU accounts -- Username can't be changed in profile
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/363.txt b/app/src/main/assets/changelogs/363.txt deleted file mode 100644 index 9b2e9153b..000000000 --- a/app/src/main/assets/changelogs/363.txt +++ /dev/null @@ -1,4 +0,0 @@ -Fixed: -- Lot of crashes 🥺🥺😱 -- Push notifications not working -- Some issues with filters
\ No newline at end of file diff --git a/app/src/main/assets/changelogs/369.txt b/app/src/main/assets/changelogs/369.txt new file mode 100644 index 000000000..1bf9975c3 --- /dev/null +++ b/app/src/main/assets/changelogs/369.txt @@ -0,0 +1,10 @@ +Added: +- Silesian localization + +Changed: +- Add Silesian in language picker + +Fixed: +- Some URLs not clickable +- Empty home timeline +- Some crashes when scrolling
\ No newline at end of file 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.toS |