summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2020-04-24 14:41:44 +0200
committerThomas <tschneider.ac@gmail.com>2020-04-24 14:41:44 +0200
commit5f5ed0ac957987ed5a17488bbc61e28e85b9ef75 (patch)
tree8f4c7c60d4a4a27a76184828713c0439963227ab /app
parentc7a6390346e378aeb545c44a38b665998cb5bdef (diff)
Fix some issues
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java14
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Account.java16
-rw-r--r--app/src/main/java/app/fedilab/android/client/Entities/Status.java16
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java102
5 files changed, 89 insertions, 61 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 6e554190e..dbfbe5932 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.application'
android {
compileSdkVersion 29
- buildToolsVersion "29.0.2"
+ buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 19
targetSdkVersion 29
diff --git a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
index 1fd81f6fb..6cdfedcaf 100644
--- a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java
@@ -202,6 +202,7 @@ public abstract class BaseMainActivity extends BaseActivity
private View dialogReleaseNoteView;
private List<Account> developers;
+ public static boolean isAttached = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -2383,6 +2384,18 @@ public abstract class BaseMainActivity extends BaseActivity
MASTALAB
}
+ @Override
+ public void onAttachedToWindow() {
+ super.onAttachedToWindow();
+ isAttached = true;
+ }
+
+ @Override
+ public void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ isAttached = false;
+ }
+
/**
* Page Adapter for Mastodon & Peertube & PixelFed
*/
@@ -2521,6 +2534,7 @@ public abstract class BaseMainActivity extends BaseActivity
}
}
+
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
if (mPageReferenceMap != null) {
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 06b8eb6e0..1753747b5 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
@@ -225,13 +225,15 @@ public class Account implements Parcelable {
//emojis can be used several times so we have to loop
for (int startPosition = -1; (startPosition = displayNameSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
final int endPosition = startPosition + targetedEmoji.length();
- if (endPosition <= displayNameSpan.toString().length() && endPosition >= startPosition) {
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- ImageSpan imageSpan = new ImageSpan(resource);
- displayNameSpan.setSpan(
- imageSpan, startPosition,
- endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+ if (resource != null && endPosition <= displayNameSpan.toString().length() && endPosition >= startPosition) {
+ try {
+ resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
+ resource.setVisible(true, true);
+ ImageSpan imageSpan = new ImageSpan(resource);
+ displayNameSpan.setSpan(
+ imageSpan, startPosition,
+ endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+ }catch (Exception ignored){}
return;
}
}
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 cee832d47..157f97eab 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
@@ -890,14 +890,16 @@ public class Status implements Parcelable {
//emojis can be used several times so we have to loop
for (int startPosition = -1; (startPosition = contentSpan.toString().indexOf(targetedEmoji, startPosition + 1)) != -1; startPosition++) {
final int endPosition = startPosition + targetedEmoji.length();
- if (endPosition <= contentSpan.toString().length() && endPosition >= startPosition) {
+ if (resource != null && endPosition <= contentSpan.toString().length() && endPosition >= startPosition) {
ImageSpan imageSpan;
- resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
- resource.setVisible(true, true);
- imageSpan = new ImageSpan(resource);
- contentSpan.setSpan(
- imageSpan, startPosition,
- endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+ try {
+ resource.setBounds(0, 0, (int) Helper.convertDpToPixel(20, context), (int) Helper.convertDpToPixel(20, context));
+ resource.setVisible(true, true);
+ imageSpan = new ImageSpan(resource);
+ contentSpan.setSpan(
+ imageSpan, startPosition,
+ endPosition, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
+ }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 1816699de..316ec2a4d 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -232,6 +232,7 @@ import okhttp3.TlsVersion;
import static android.content.Context.DOWNLOAD_SERVICE;
import static app.fedilab.android.activities.BaseMainActivity.filters;
+import static app.fedilab.android.activities.BaseMainActivity.isAttached;
import static app.fedilab.android.activities.BaseMainActivity.mutedAccount;
import static app.fedilab.android.activities.BaseMainActivity.regex_home;
import static app.fedilab.android.activities.BaseMainActivity.regex_local;
@@ -647,6 +648,9 @@ public class Helper {
editor.putString(Helper.PREF_INSTANCE, null);
editor.putString(Helper.ID, null);
editor.apply();
+ Intent loginActivity = new Intent(activity, LoginActivity.class);
+ activity.startActivity(loginActivity);
+ activity.finish();
} else {
editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, newAccount.getToken());
editor.putString(Helper.PREF_KEY_ID, newAccount.getId());
@@ -1788,38 +1792,40 @@ public class Helper {
if (!accountChoice.getAvatar().startsWith("http"))
accountChoice.setAvatar("https://" + accountChoice.getInstance() + accountChoice.getAvatar());
ImageView itemIconAcc = new ImageView(activity);
- if( !activity.isFinishing()) {
- Glide.with(activity)
- .asDrawable()
- .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
- .load(!disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static())
- .listener(new RequestListener<Drawable>() {
+ if( !activity.isFinishing() && isAttached) {
+ try {
+ Glide.with(activity)
+ .asDrawable()
+ .apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(270)))
+ .load(!disableGif ? accountChoice.getAvatar() : accountChoice.getAvatar_static())
+ .listener(new RequestListener<Drawable>() {
- @Override
- public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
- return false;
- }
+ @Override
+ public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
+ return false;
+ }
- @Override
- public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
- if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA)
- itemIconAcc.setImageResource(R.drawable.missing);
- else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE)
- itemIconAcc.setImageResource(R.drawable.missing_peertube);
- return false;
- }
- })
- .into(new CustomTarget<Drawable>() {
- @Override
- public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
- itemIconAcc.setImageDrawable(resource);
- }
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) {
+ if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA)
+ itemIconAcc.setImageResource(R.drawable.missing);
+ else if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PEERTUBE)
+ itemIconAcc.setImageResource(R.drawable.missing_peertube);
+ return false;
+ }
+ })
+ .into(new CustomTarget<Drawable>() {
+ @Override
+ public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
+ itemIconAcc.setImageDrawable(resource);
+ }
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
- }
- });
+ }
+ });
+ }catch (Exception ignored){}
}
if (accounts.size() > 2) {
@@ -1927,27 +1933,31 @@ public class Helper {
}
if (!urlHeader.contains("missing.png")) {
ImageView backgroundImage = headerLayout.findViewById(R.id.back_ground_image);
- Glide.with(activity)
- .asDrawable()
- .load(urlHeader)
- .into(new CustomTarget<Drawable>() {
- @Override
- public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
-
- backgroundImage.setImageDrawable(resource);
- if (theme == THEME_LIGHT) {
- backgroundImage.setImageAlpha(80);
- } else {
- backgroundImage.setImageAlpha(60);
- }
+ if( !activity.isFinishing() && isAttached) {
+ try {
+ Glide.with(activity)
+ .asDrawable()
+ .load(urlHeader)
+ .into(new CustomTarget<Drawable>() {
+ @Override
+ public void onResourceReady(@NonNull Drawable resource, Transition<? super Drawable> transition) {
- }
+ backgroundImage.setImageDrawable(resource);
+ if (theme == THEME_LIGHT) {
+ backgroundImage.setImageAlpha(80);
+ } else {
+ backgroundImage.setImageAlpha(60);
+ }
- @Override
- public void onLoadCleared(@Nullable Drawable placeholder) {
+ }
- }
- });
+ @Override
+ public void onLoadCleared(@Nullable Drawable placeholder) {
+
+ }
+ });
+ }catch (Exception ignored){}
+ }
}
}
profilePicture.setOnClickListener(null);