From a554be18a60380d624fc9c65416368775cba9bae Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 26 May 2018 22:56:17 +0200 Subject: add support for S3 file transfers --- .../pixart/messenger/ui/EditAccountActivity.java | 6 +- .../messenger/ui/adapter/MessageAdapter.java | 69 ++++++++++++---------- 2 files changed, 42 insertions(+), 33 deletions(-) (limited to 'src/main/java/de/pixart/messenger/ui') diff --git a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java index 464ebde0f..8b79ba09f 100644 --- a/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java +++ b/src/main/java/de/pixart/messenger/ui/EditAccountActivity.java @@ -125,7 +125,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat boolean openPaymentUrl = mAccount != null && mAccount.getStatus() == Account.State.PAYMENT_REQUIRED; final boolean redirectionWorthyStatus = openPaymentUrl || openRegistrationUrl; URL url = connection != null && redirectionWorthyStatus ? connection.getRedirectionUrl() : null; - if (url != null && redirectionWorthyStatus && !wasDisabled) { + if (url != null && !wasDisabled) { try { startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url.toString()))); overridePendingTransition(R.animator.fade_in, R.animator.fade_out); @@ -1018,6 +1018,10 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat } if (features.httpUpload(0)) { this.binding.serverInfoHttpUpload.setText(R.string.server_info_available); + } + if (features.p1S3FileTransfer()) { + this.binding.serverInfoHttpUploadDescription.setText(R.string.p1_s3_filetransfer); + this.binding.serverInfoHttpUpload.setText(R.string.server_info_available); } else { this.binding.serverInfoHttpUpload.setText(R.string.server_info_unavailable); } diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index 92c937053..0c2238cdb 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -67,6 +67,7 @@ import de.pixart.messenger.entities.DownloadableFile; import de.pixart.messenger.entities.Message; import de.pixart.messenger.entities.Message.FileParams; import de.pixart.messenger.entities.Transferable; +import de.pixart.messenger.http.P1S3UrlStreamHandler; import de.pixart.messenger.persistance.FileBackend; import de.pixart.messenger.services.AudioPlayer; import de.pixart.messenger.services.MessageArchiveService; @@ -99,13 +100,10 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie private static final int SENT = 0; private static final int RECEIVED = 1; private static final int STATUS = 2; - private static final int DATE_SEPARATOR = 3; boolean isResendable = false; - private List highlightedTerm = null; - private static final Linkify.TransformFilter WEBURL_TRANSFORM_FILTER = (matcher, url) -> { if (url == null) { return null; @@ -118,24 +116,7 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } }; - private static String removeTrailingBracket(final String url) { - int numOpenBrackets = 0; - for (char c : url.toCharArray()) { - if (c == '(') { - ++numOpenBrackets; - } else if (c == ')') { - --numOpenBrackets; - } - } - if (numOpenBrackets != 0 && url.charAt(url.length() - 1) == ')') { - return url.substring(0, url.length() - 1); - } else { - return url; - } - } - private static final Linkify.MatchFilter WEBURL_MATCH_FILTER = (cs, start, end) -> start < 1 || (cs.charAt(start - 1) != '@' && cs.charAt(start - 1) != '.' && !cs.subSequence(Math.max(0, start - 3), start).equals("://")); - private static final Linkify.MatchFilter XMPPURI_MATCH_FILTER = (s, start, end) -> { XmppUri uri = new XmppUri(s.subSequence(start, end).toString()); return uri.isJidValid(); @@ -143,7 +124,8 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie private final XmppActivity activity; private final ListSelectionManager listSelectionManager = new ListSelectionManager(); - public final AudioPlayer audioPlayer; + private final AudioPlayer audioPlayer; + private List highlightedTerm = null; private DisplayMetrics metrics; private OnContactPictureClicked mOnContactPictureClickedListener; private OnContactPictureLongClicked mOnContactPictureLongClickedListener; @@ -158,6 +140,22 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie updatePreferences(); } + private static String removeTrailingBracket(final String url) { + int numOpenBrackets = 0; + for (char c : url.toCharArray()) { + if (c == '(') { + ++numOpenBrackets; + } else if (c == ')') { + --numOpenBrackets; + } + } + if (numOpenBrackets != 0 && url.charAt(url.length() - 1) == ')') { + return url.substring(0, url.length() - 1); + } else { + return url; + } + } + public static boolean cancelPotentialWork(Message message, ImageView imageView) { final BitmapWorkerTask bitmapWorkerTask = getBitmapWorkerTask(imageView); @@ -183,6 +181,12 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie return null; } + private static void resetClickListener(View... views) { + for (View view : views) { + view.setOnClickListener(null); + } + } + public void flagScreenOn() { activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } @@ -957,11 +961,18 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie } else if (message.treatAsDownloadable()) { try { URL url = new URL(message.getBody()); - displayDownloadableMessage(viewHolder, - message, - activity.getString(R.string.check_x_filesize_on_host, - UIHelper.getFileDescriptionString(activity, message), - url.getHost())); + if (P1S3UrlStreamHandler.PROTOCOL_NAME.equalsIgnoreCase(url.getProtocol())) { + displayDownloadableMessage(viewHolder, + message, + activity.getString(R.string.check_x_filesize, + UIHelper.getFileDescriptionString(activity, message))); + } else { + displayDownloadableMessage(viewHolder, + message, + activity.getString(R.string.check_x_filesize_on_host, + UIHelper.getFileDescriptionString(activity, message), + url.getHost())); + } } catch (Exception e) { displayDownloadableMessage(viewHolder, message, @@ -999,12 +1010,6 @@ public class MessageAdapter extends ArrayAdapter implements CopyTextVie return view; } - private static void resetClickListener(View... views) { - for (View view : views) { - view.setOnClickListener(null); - } - } - private void promptOpenKeychainInstall(View view) { activity.showInstallPgpDialog(); } -- cgit v1.2.3