summaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2022-10-30 18:12:51 +0100
committerThomas <tschneider.ac@gmail.com>2022-10-30 18:12:51 +0100
commit72fd064f8a225e3ee34ae62a0f10b3e2ef371db2 (patch)
tree688c42b831eb657d8b6bce1d5cc6d562d47a6f50 /app/src/main/java
parent365179def87debc78d157f17758cfd37aabcf720 (diff)
Some fixes
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ComposeActivity.java8
-rw-r--r--app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java2
-rw-r--r--app/src/main/java/app/fedilab/android/activities/ProfileActivity.java7
-rw-r--r--app/src/main/java/app/fedilab/android/client/entities/app/DomainsBlock.java7
-rw-r--r--app/src/main/java/app/fedilab/android/helper/CustomEmoji.java4
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java14
-rw-r--r--app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java2
-rw-r--r--app/src/main/java/app/fedilab/android/viewmodel/mastodon/NodeInfoVM.java59
8 files changed, 60 insertions, 43 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java
index d3aecaf27..fc3d80006 100644
--- a/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ComposeActivity.java
@@ -122,7 +122,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
for (Status status : statusList) {
if (status.media_attachments != null && status.media_attachments.size() > 0) {
for (Attachment attachment : status.media_attachments) {
- if (attachment.local_path.equalsIgnoreCase(imgpath)) {
+ if (attachment.local_path != null && attachment.local_path.equalsIgnoreCase(imgpath)) {
if (focusX != -2) {
attachment.focus = focusX + "," + focusY;
}
@@ -492,7 +492,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
visibility = b.getString(Helper.ARG_VISIBILITY, null);
if (visibility == null && statusReply != null) {
visibility = getVisibility(statusReply.visibility);
- } else if (visibility == null && currentAccount != null && currentAccount.mastodon_account.source != null) {
+ } else if (visibility == null && currentAccount != null && currentAccount.mastodon_account != null && currentAccount.mastodon_account.source != null) {
visibility = currentAccount.mastodon_account.source.privacy;
}
mentionBooster = (app.fedilab.android.client.entities.api.Account) b.getSerializable(Helper.ARG_MENTION_BOOSTER);
@@ -615,7 +615,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
//We change order for mentions
//At first place the account that has been mentioned if it's not our
statusDraftList.get(0).mentions = new ArrayList<>();
- if (statusReply.account.acct != null && !statusReply.account.acct.equalsIgnoreCase(currentAccount.mastodon_account.acct)) {
+ if (statusReply.account.acct != null && currentAccount.mastodon_account != null && !statusReply.account.acct.equalsIgnoreCase(currentAccount.mastodon_account.acct)) {
Mention mention = new Mention();
mention.acct = "@" + statusReply.account.acct;
mention.url = statusReply.account.url;
@@ -626,7 +626,7 @@ public class ComposeActivity extends BaseActivity implements ComposeAdapter.Mana
//There are other mentions to
if (statusReply.mentions != null && statusReply.mentions.size() > 0) {
for (Mention mentionTmp : statusReply.mentions) {
- if (statusReply.account.acct != null && !mentionTmp.acct.equalsIgnoreCase(statusReply.account.acct) && !mentionTmp.acct.equalsIgnoreCase(currentAccount.mastodon_account.acct)) {
+ if (statusReply.account.acct != null && !mentionTmp.acct.equalsIgnoreCase(statusReply.account.acct) && currentAccount.mastodon_account != null && !mentionTmp.acct.equalsIgnoreCase(currentAccount.mastodon_account.acct)) {
statusDraftList.get(0).mentions.add(mentionTmp);
}
}
diff --git a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
index 3d8a431cf..a12da7040 100644
--- a/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/MastodonListActivity.java
@@ -277,7 +277,7 @@ public class MastodonListActivity extends BaseActivity implements MastodonListAd
if (mastodonListList == null) {
mastodonListList = new ArrayList<>();
}
- if (newMastodonList != null) {
+ if (newMastodonList != null && mastodonListAdapter != null) {
mastodonListList.add(0, newMastodonList);
mastodonListAdapter.notifyItemInserted(0);
} else {
diff --git a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
index 569016b33..384337739 100644
--- a/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/ProfileActivity.java
@@ -663,7 +663,10 @@ public class ProfileActivity extends BaseActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
- String[] splitAcct = account.acct.split("@");
+ String[] splitAcct = null;
+ if (account.acct != null) {
+ splitAcct = account.acct.split("@");
+ }
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(ProfileActivity.this);
AlertDialog.Builder builderInner = null;
final boolean isOwner = account.id != null && BaseMainActivity.currentUserID != null && account.id.compareToIgnoreCase(BaseMainActivity.currentUserID) == 0;
@@ -677,7 +680,7 @@ public class ProfileActivity extends BaseActivity {
if (itemId == android.R.id.home) {
finish();
return true;
- } else if (itemId == R.id.action_follow_instance) {
+ } else if (itemId == R.id.action_follow_instance && splitAcct != null) {
String finalInstanceName = splitAcct[1];
ReorderVM reorderVM = new ViewModelProvider(ProfileActivity.this).get(ReorderVM.class);
//Get pinned instances
diff --git a/app/src/main/java/app/fedilab/android/client/entities/app/DomainsBlock.java b/app/src/main/java/app/fedilab/android/client/entities/app/DomainsBlock.java
index 6843b11fe..d72744a3d 100644
--- a/app/src/main/java/app/fedilab/android/client/entities/app/DomainsBlock.java
+++ b/app/src/main/java/app/fedilab/android/client/entities/app/DomainsBlock.java
@@ -59,7 +59,12 @@ public class DomainsBlock {
List<String> domains = new ArrayList<>();
while ((line = br.readLine()) != null) {
if (line.startsWith("0.0.0.0 ")) {
- domains.add(line.replace("0.0.0.0 ", "").trim());
+ try {
+ domains.add(line.replace("0.0.0.0 ", "").trim());
+ } catch (Exception e) {
+ return;
+ }
+
}
}
br.close();
diff --git a/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java b/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
index 8f816ccc0..51ce2fc87 100644
--- a/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
+++ b/app/src/main/java/app/fedilab/android/helper/CustomEmoji.java
@@ -95,7 +95,9 @@ public class CustomEmoji extends ReplacementSpan {
((Animatable) resource).start();
}
imageDrawable = resource;
- view.invalidate();
+ if (view != null) {
+ view.invalidate();
+ }
}
@Override
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 8a675be5b..2f3711b78 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -990,8 +990,12 @@ public class Helper {
*/
public static String getFileName(Context context, Uri uri) {
ContentResolver resolver = context.getContentResolver();
- Cursor returnCursor =
- resolver.query(uri, null, null, null, null);
+ Cursor returnCursor = null;
+ try {
+ returnCursor =
+ resolver.query(uri, null, null, null, null);
+ } catch (Exception ignored) {
+ }
if (returnCursor != null) {
try {
int nameIndex = returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
@@ -1092,7 +1096,7 @@ public class Helper {
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
boolean disableGif = sharedpreferences.getBoolean(context.getString(R.string.SET_DISABLE_GIF), false);
String targetedUrl = disableGif ? account.mastodon_account.avatar_static : account.mastodon_account.avatar;
- if (targetedUrl != null) {
+ if (targetedUrl != null && Helper.isValidContextForGlide(view.getContext())) {
if (disableGif || (!targetedUrl.endsWith(".gif"))) {
RequestBuilder<Drawable> requestBuilder = Glide.with(view.getContext())
.asDrawable()
@@ -1112,7 +1116,7 @@ public class Helper {
}
requestBuilder.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(10))).into(view);
}
- } else {
+ } else if (Helper.isValidContextForGlide(view.getContext())) {
Glide.with(view.getContext())
.asDrawable()
.load(R.drawable.ic_person)
@@ -1201,7 +1205,7 @@ public class Helper {
int w = options.outWidth;
int h = options.outHeight;
- float valx = (float) 1.0 - (float) width / (float) w;
+ float valx = (float) 1.0 - width / (float) w;
if (valx < 0)
valx = 0;
float valy = (h - Helper.convertDpToPixel(textSize, context) - 10) / (float) h;
diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java
index 7169469b0..b13ccdc14 100644
--- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java
+++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java
@@ -488,7 +488,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
}
});
//For first tab we fetch new messages, if we keep position
- if (slug.compareTo(Helper.getSlugOfFirstFragment(requireActivity(), currentUserID, currentInstance)) == 0 && rememberPosition) {
+ if (slug != null && slug.compareTo(Helper.getSlugOfFirstFragment(requireActivity(), currentUserID, currentInstance)) == 0 && rememberPosition) {
route(DIRECTION.FETCH_NEW, true);
}
}
diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NodeInfoVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NodeInfoVM.java
index 522ccf543..a9af9fa89 100644
--- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NodeInfoVM.java
+++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NodeInfoVM.java
@@ -66,39 +66,42 @@ public class NodeInfoVM extends AndroidViewModel {
* @return LiveData<WellKnownNodeinfo.NodeInfo>
*/
public LiveData<WellKnownNodeinfo.NodeInfo> getNodeInfo(String instance) {
- NodeInfoService nodeInfoService = init(instance);
- nodeInfoMutableLiveData = new MutableLiveData<>();
- new Thread(() -> {
- WellKnownNodeinfo.NodeInfo nodeInfo = null;
-
- Call<WellKnownNodeinfo> nodeInfoLinksCall = nodeInfoService.getWellKnownNodeinfoLinks();
- if (nodeInfoLinksCall != null) {
- try {
- Response<WellKnownNodeinfo> nodeInfoLinksResponse = nodeInfoLinksCall.execute();
- if (nodeInfoLinksResponse.isSuccessful() && nodeInfoLinksResponse.body() != null) {
- WellKnownNodeinfo wellKnownNodeinfo = nodeInfoLinksResponse.body();
- Call<WellKnownNodeinfo.NodeInfo> wellKnownNodeinfoCall = nodeInfoService.getNodeinfo(wellKnownNodeinfo.links.get(0).href);
- if (wellKnownNodeinfoCall != null) {
- try {
- Response<WellKnownNodeinfo.NodeInfo> response = wellKnownNodeinfoCall.execute();
- if (response.isSuccessful() && response.body() != null) {
- nodeInfo = response.body();
+ if (instance != null) {
+ NodeInfoService nodeInfoService = init(instance);
+ nodeInfoMutableLiveData = new MutableLiveData<>();
+ new Thread(() -> {
+ WellKnownNodeinfo.NodeInfo nodeInfo = null;
+
+ Call<WellKnownNodeinfo> nodeInfoLinksCall = nodeInfoService.getWellKnownNodeinfoLinks();
+ if (nodeInfoLinksCall != null) {
+ try {
+ Response<WellKnownNodeinfo> nodeInfoLinksResponse = nodeInfoLinksCall.execute();
+ if (nodeInfoLinksResponse.isSuccessful() && nodeInfoLinksResponse.body() != null) {
+ WellKnownNodeinfo wellKnownNodeinfo = nodeInfoLinksResponse.body();
+ Call<WellKnownNodeinfo.NodeInfo> wellKnownNodeinfoCall = nodeInfoService.getNodeinfo(wellKnownNodeinfo.links.get(0).href);
+ if (wellKnownNodeinfoCall != null) {
+ try {
+ Response<WellKnownNodeinfo.NodeInfo> response = wellKnownNodeinfoCall.execute();
+ if (response.isSuccessful() && response.body() != null) {
+ nodeInfo = response.body();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
}
- } catch (Exception e) {
- e.printStackTrace();
}
}
+ } catch (Exception e) {
+ e.printStackTrace();
}
- } catch (Exception e) {
- e.printStackTrace();
}
- }
-
- Handler mainHandler = new Handler(Looper.getMainLooper());
- WellKnownNodeinfo.NodeInfo finalNodeInfo = nodeInfo;
- Runnable myRunnable = () -> nodeInfoMutableLiveData.setValue(finalNodeInfo);
- mainHandler.post(myRunnable);
- }).start();
+ Handler mainHandler = new Handler(Looper.getMainLooper());
+ WellKnownNodeinfo.NodeInfo finalNodeInfo = nodeInfo;
+ Runnable myRunnable = () -> nodeInfoMutableLiveData.setValue(finalNodeInfo);
+ mainHandler.post(myRunnable);
+ }).start();
+ } else {
+ nodeInfoMutableLiveData.setValue(null);
+ }
return nodeInfoMutableLiveData;
}