diff options
Diffstat (limited to 'app/src/main/java/app/fedilab/android/BaseMainActivity.java')
-rw-r--r-- | app/src/main/java/app/fedilab/android/BaseMainActivity.java | 45 |
1 files changed, 30 insertions, 15 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 0ebb6a3ba..cffdb7456 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -1076,8 +1076,12 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt Uri imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM); if (imageUri != null) { Bundle b = new Bundle(); - b.putParcelable(Helper.ARG_SHARE_URI, imageUri); - CrossActionHelper.doCrossShare(BaseMainActivity.this, b); + List<Uri> uris = new ArrayList<>(); + uris.add(imageUri); + Helper.createAttachmentFromUri(BaseMainActivity.this, uris, attachments -> { + b.putSerializable(Helper.ARG_MEDIA_ATTACHMENTS, new ArrayList<>(attachments)); + CrossActionHelper.doCrossShare(BaseMainActivity.this, b); + }); } else { Toasty.warning(BaseMainActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show(); } @@ -1087,7 +1091,10 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt ArrayList<Uri> imageList = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); if (imageList != null) { Bundle b = new Bundle(); - b.putParcelableArrayList(Helper.ARG_SHARE_URI_LIST, imageList); + Helper.createAttachmentFromUri(BaseMainActivity.this, imageList, attachments -> { + b.putSerializable(Helper.ARG_MEDIA_ATTACHMENTS, new ArrayList<>(attachments)); + CrossActionHelper.doCrossShare(BaseMainActivity.this, b); + }); CrossActionHelper.doCrossShare(BaseMainActivity.this, b); } else { Toasty.warning(BaseMainActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show(); @@ -1118,8 +1125,8 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt } //Here we know that the intent contains a valid URL if (!url.contains("medium.com")) { - Pattern link = Pattern.compile("https?://([\\da-z.-]+\\.[a-z.]{2,10})/(@[\\w._-]*[0-9]*)(/[0-9]+)?$"); - Matcher matcherLink = null; + Pattern link = Pattern.compile("https?://([\\da-z.-]+[à-ü]?\\.[a-z.]{2,10})/(@[\\w._-]*[0-9]*)(/[0-9]+)?$"); + Matcher matcherLink; matcherLink = link.matcher(url); if (matcherLink.find()) { if (currentAccount == null) { @@ -1137,10 +1144,14 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt CrossActionHelper.fetchRemoteStatus(BaseMainActivity.this, currentAccount, url, new CrossActionHelper.Callback() { @Override public void federatedStatus(Status status) { - Intent intent = new Intent(BaseMainActivity.this, ContextActivity.class); - intent.putExtra(Helper.ARG_STATUS, status); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); + if (status != null) { + Intent intent = new Intent(BaseMainActivity.this, ContextActivity.class); + intent.putExtra(Helper.ARG_STATUS, status); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } else { + Toasty.error(BaseMainActivity.this, getString(R.string.toast_error), Toasty.LENGTH_SHORT).show(); + } } @Override @@ -1155,12 +1166,16 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt @Override public void federatedAccount(app.fedilab.android.client.entities.api.Account account) { - Intent intent = new Intent(BaseMainActivity.this, ProfileActivity.class); - Bundle b = new Bundle(); - b.putSerializable(Helper.ARG_ACCOUNT, account); - intent.putExtras(b); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); + if (account != null) { + Intent intent = new Intent(BaseMainActivity.this, ProfileActivity.class); + Bundle b = new Bundle(); + b.putSerializable(Helper.ARG_ACCOUNT, account); + intent.putExtras(b); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + } else { + Toasty.error(BaseMainActivity.this, getString(R.string.toast_error), Toasty.LENGTH_SHORT).show(); + } } }); } |