summaryrefslogtreecommitdiffstats
path: root/app/src/main/java/app/fedilab/android/BaseMainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/app/fedilab/android/BaseMainActivity.java')
-rw-r--r--app/src/main/java/app/fedilab/android/BaseMainActivity.java45
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();
+ }
}
});
}