aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationActivity.java70
-rw-r--r--src/main/java/de/pixart/messenger/ui/ShareWithActivity.java35
-rw-r--r--src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java35
-rw-r--r--src/main/java/de/pixart/messenger/ui/UiInformableCallback.java5
4 files changed, 54 insertions, 91 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java
index a68765632..529c926aa 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationActivity.java
@@ -117,7 +117,6 @@ public class ConversationActivity extends XmppActivity
final private List<Uri> mPendingImageUris = new ArrayList<>();
final private List<Uri> mPendingPhotoUris = new ArrayList<>();
final private List<Uri> mPendingFileUris = new ArrayList<>();
- final private List<Uri> mPendingVideoUris = new ArrayList<>();
private String mOpenConversation = null;
private boolean mPanelOpen = true;
private AtomicBoolean mShouldPanelBeOpen = new AtomicBoolean(false);
@@ -674,9 +673,10 @@ public class ConversationActivity extends XmppActivity
chooser = true;
break;
case ATTACHMENT_CHOICE_CHOOSE_VIDEO:
- intent.setAction(Intent.ACTION_GET_CONTENT);
- intent.setType("video/*");
chooser = true;
+ intent.setType("video/*");
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ intent.setAction(Intent.ACTION_GET_CONTENT);
break;
case ATTACHMENT_CHOICE_TAKE_PHOTO:
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
@@ -1370,7 +1370,6 @@ public class ConversationActivity extends XmppActivity
private void clearPending() {
mPendingImageUris.clear();
mPendingFileUris.clear();
- mPendingVideoUris.clear();
mPendingPhotoUris.clear();
mPendingGeoUri = null;
mPostponedActivityResult = null;
@@ -1509,11 +1508,6 @@ public class ConversationActivity extends XmppActivity
attachPhotoToConversation(getSelectedConversation(), i.next());
}
- for (Iterator<Uri> i = mPendingVideoUris.iterator(); i.hasNext(); i.remove()) {
- Log.d(Config.LOGTAG, "ConversationActivity.onBackendConnected() - attaching video to conversations. stopping=" + Boolean.toString(stopping));
- attachVideoToConversation(getSelectedConversation(), i.next());
- }
-
for (Iterator<Uri> i = mPendingFileUris.iterator(); i.hasNext(); i.remove()) {
Log.d(Config.LOGTAG, "ConversationActivity.onBackendConnected() - attaching file to conversations. stopping=" + Boolean.toString(stopping));
attachFileToConversation(getSelectedConversation(), i.next());
@@ -1659,7 +1653,7 @@ public class ConversationActivity extends XmppActivity
}
}
}
- } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE) {
+ } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE || requestCode == ATTACHMENT_CHOICE_CHOOSE_VIDEO) {
final List<Uri> uris = extractUriFromIntent(data);
final Conversation c = getSelectedConversation();
final OnPresenceSelected callback = new OnPresenceSelected() {
@@ -1682,29 +1676,6 @@ public class ConversationActivity extends XmppActivity
} else {
selectPresence(c, callback);
}
- } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_VIDEO) {
- final List<Uri> uris = extractUriFromIntent(data);
- final Conversation c = getSelectedConversation();
- final OnPresenceSelected callback = new OnPresenceSelected() {
- @Override
- public void onPresenceSelected() {
- mPendingVideoUris.clear();
- mPendingVideoUris.addAll(uris);
- if (xmppConnectionServiceBound) {
- for (Iterator<Uri> i = mPendingVideoUris.iterator(); i.hasNext(); i.remove()) {
- Log.d(Config.LOGTAG, "ConversationActivity.onActivityResult() - attaching video to conversations. CHOOSE_VIDEO");
- attachVideoToConversation(c, i.next());
- }
- }
- }
- };
- if (c == null || c.getMode() == Conversation.MODE_MULTI
- || FileBackend.allFilesUnderSize(this, uris, getMaxHttpUploadSize(c))
- || c.getNextEncryption() == Message.ENCRYPTION_OTR) {
- callback.onPresenceSelected();
- } else {
- selectPresence(c, callback);
- }
} else if (requestCode == ATTACHMENT_CHOICE_TAKE_PHOTO) {
if (mPendingPhotoUris.size() == 1) {
Uri uri = FileBackend.getIndexableTakePhotoUri(mPendingPhotoUris.get(0));
@@ -1831,41 +1802,26 @@ public class ConversationActivity extends XmppActivity
}
final Toast prepareFileToast = Toast.makeText(getApplicationContext(), getText(R.string.preparing_file), Toast.LENGTH_LONG);
prepareFileToast.show();
- xmppConnectionService.attachFileToConversation(conversation, uri, new UiCallback<Message>() {
+ xmppConnectionService.attachFileToConversation(conversation, uri, new UiInformableCallback<Message>() {
@Override
- public void success(Message message) {
- hidePrepareFileToast(prepareFileToast);
- xmppConnectionService.sendMessage(message);
- }
-
- @Override
- public void error(final int errorCode, Message message) {
+ public void inform(final String text) {
hidePrepareFileToast(prepareFileToast);
runOnUiThread(new Runnable() {
@Override
public void run() {
- replaceToast(getString(errorCode));
+ replaceToast(text);
}
});
-
- }
-
- @Override
- public void userInputRequried(PendingIntent pi, Message message) {
- hidePrepareFileToast(prepareFileToast);
}
- });
- }
- private void attachVideoToConversation(Conversation conversation, final Uri uri) {
- if (conversation == null) {
- return;
- }
- final Toast prepareFileToast = Toast.makeText(getApplicationContext(), getText(R.string.preparing_video), Toast.LENGTH_LONG);
- prepareFileToast.show();
- xmppConnectionService.attachVideoToConversation(conversation, uri, new UiCallback<Message>() {
@Override
public void success(Message message) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ hideToast();
+ }
+ });
hidePrepareFileToast(prepareFileToast);
xmppConnectionService.sendMessage(message);
}
diff --git a/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java b/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
index 870812cc4..c2cf95241 100644
--- a/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ShareWithActivity.java
@@ -49,7 +49,6 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
private class Share {
public List<Uri> uris = new ArrayList<>();
public boolean image;
- public boolean video;
public String account;
public String contact;
public String text;
@@ -66,7 +65,17 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
private Toast mToast;
private AtomicInteger attachmentCounter = new AtomicInteger(0);
- private UiCallback<Message> attachFileCallback = new UiCallback<Message>() {
+ private UiInformableCallback<Message> attachFileCallback = new UiInformableCallback<Message>() {
+
+ @Override
+ public void inform(final String text) {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ replaceToast(text);
+ }
+ });
+ }
@Override
public void userInputRequried(PendingIntent pi, Message object) {
@@ -86,8 +95,6 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
resId = R.string.shared_images_with_x;
} else if (share.image) {
resId = R.string.shared_image_with_x;
- } else if (share.video) {
- resId = R.string.shared_video_with_x;
} else {
resId = R.string.shared_file_with_x;
}
@@ -219,7 +226,6 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
this.share.uris.clear();
this.share.uris.add(uri);
this.share.image = type.startsWith("image/") || isImage(uri);
- this.share.video = type.startsWith("video/") || isVideo(uri);
} else {
if (subject != null) {
this.share.text = format("[%s]%n%s", subject, text);
@@ -265,15 +271,6 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
}
}
- protected boolean isVideo(Uri uri) {
- try {
- String guess = URLConnection.guessContentTypeFromName(uri.toString());
- return (guess != null && guess.startsWith("video/"));
- } catch (final StringIndexOutOfBoundsException ignored) {
- return false;
- }
- }
-
@Override
void onBackendConnected() {
if (xmppConnectionServiceBound && share != null
@@ -341,24 +338,16 @@ public class ShareWithActivity extends XmppActivity implements XmppConnectionSer
.attachImageToConversation(conversation, i.next(),
attachFileCallback);
}
- } else if (share.video) {
- Log.d(Config.LOGTAG, "ShareWithActivity share() video " + share.uris.size() + " uri(s) " + share.uris.toString());
- replaceToast(getString(R.string.preparing_video));
- ShareWithActivity.this.xmppConnectionService
- .attachVideoToConversation(conversation, share.uris.get(0),
- attachFileCallback);
} else {
Log.d(Config.LOGTAG, "ShareWithActivity share() file " + share.uris.size() + " uri(s) " + share.uris.toString());
replaceToast(getString(R.string.preparing_file));
ShareWithActivity.this.xmppConnectionService
- .attachFileToConversation(conversation, share.uris.get(0),
- attachFileCallback);
+ .attachFileToConversation(conversation, share.uris.get(0), attachFileCallback);
}
}
};
if (account.httpUploadAvailable()
&& ((share.image && !neverCompressPictures())
- || share.video
|| conversation.getMode() == Conversation.MODE_MULTI
|| FileBackend.allFilesUnderSize(this, share.uris, max))
&& conversation.getNextEncryption() != Message.ENCRYPTION_OTR) {
diff --git a/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java b/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java
index 5f1fdc3c7..a8253fd1c 100644
--- a/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java
@@ -30,8 +30,6 @@ import java.io.InputStream;
import de.pixart.messenger.Config;
import de.pixart.messenger.R;
-import de.pixart.messenger.persistance.FileBackend;
-import de.pixart.messenger.services.XmppConnectionService;
import de.pixart.messenger.utils.ExifHelper;
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
@@ -50,8 +48,6 @@ public class ShowFullscreenMessageActivity extends Activity {
int height = 0;
int width = 0;
int rotation = 0;
- FileBackend mFileBackend;
- XmppConnectionService mXmppConnectionService;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -194,18 +190,35 @@ public class ShowFullscreenMessageActivity extends Activity {
retriever.setDataSource(uri.getPath());
height = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
width = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
- Log.d(Config.LOGTAG, "Video height: " + height + ", width: " + width);
+ rotation = Integer.valueOf(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION));
+ Log.d(Config.LOGTAG, "Video height: " + height + ", width: " + width + ", rotation: " + rotation);
if (width > height) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE);
+ if (rotation == 0 || rotation == 180) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ }
} else {
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ }
}
} else if (width <= height) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
+ if (rotation == 90 || rotation == 270) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ }
} else {
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
+ } else {
+ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+ }
}
}
try {
diff --git a/src/main/java/de/pixart/messenger/ui/UiInformableCallback.java b/src/main/java/de/pixart/messenger/ui/UiInformableCallback.java
new file mode 100644
index 000000000..53ed044cc
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/ui/UiInformableCallback.java
@@ -0,0 +1,5 @@
+package de.pixart.messenger.ui;
+
+public interface UiInformableCallback<T> extends UiCallback<T> {
+ void inform(String text);
+} \ No newline at end of file