diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
index 0d7b0ee..1df7259 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
@@ -97,7 +97,13 @@
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorDefault" />
-
+
+
\ No newline at end of file
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java
index 0534167..547acf2 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/firebase/HandleMessagesService.java
@@ -2,13 +2,11 @@ package de.beyondsoft.ownchat.data.firebase;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
-import com.google.gson.JsonObject;
import de.beyondsoft.ownchat.R;
import de.beyondsoft.ownchat.data.AppPrefsConstants;
import de.beyondsoft.ownchat.data.api.common.ErrorHandlingResponseConverter;
import de.beyondsoft.ownchat.data.api.responses.MessageResponse;
-import de.beyondsoft.ownchat.data.api.responses.MessagesResponse;
import de.beyondsoft.ownchat.data.api.services.ChatService;
import de.beyondsoft.ownchat.data.prefs.LongPreference;
import de.beyondsoft.ownchat.data.repository.GroupRealmRepository;
@@ -23,7 +21,6 @@ import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.LoggedOutUtils;
import de.beyondsoft.ownchat.utils.rx.RxUtils;
import rx.Observable;
-import rx.Subscriber;
import rx.functions.Func1;
import android.app.Activity;
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java
index 17ef1df..15c0837 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatActivity.java
@@ -10,8 +10,10 @@ import de.beyondsoft.ownchat.di.InjectionHelper;
import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.model.Message;
import de.beyondsoft.ownchat.page.common.RuntimePermissionActivity;
+import de.beyondsoft.ownchat.page.fileconfirmation.FileConfirmationActivity;
import de.beyondsoft.ownchat.page.login.LoginPresenter;
import de.beyondsoft.ownchat.page.main.LogoutNavigation;
+import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.EndlessScrollListener;
import de.beyondsoft.ownchat.utils.FileUtils;
import de.beyondsoft.ownchat.utils.SystemUtils;
@@ -69,6 +71,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
private final static int STORAGE_REQUEST_CODE = 9999;
private final static int SELECT_FILE = 5055;
+ private final static int CONFIRM_FILE = 666;
private final static int VISIBLE_THRESHOLD = 25;
protected final static String MESSAGE_ARG = "message_arg";
protected final static String GROUP_ARG = "group_arg";
@@ -134,6 +137,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
if (!getIntent().hasExtra(GROUP_ARG) && !getIntent().hasExtra(MESSAGE_ARG)) {
throw new RuntimeException("Arguments are missing. Please use createIntentMethodInstead;");
}
+
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
setContentView(R.layout.activity_chat);
@@ -143,8 +147,10 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
mBaseChatAdapter = getAdapter();
mEmptyLayout.setOnTryAgainClickListener(v -> mCallback.fetchMoreMessagesByGroupId());
setupRecyclerView();
+
EmojIconActions emojIcon = new EmojIconActions(this, mCoordinatorLayout, mChatMessageEmojiEditText, mEmojiButton);
emojIcon.ShowEmojIcon();
+
showLoading();
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(mKeyboardListener);
@@ -197,6 +203,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
mRecyclerView.scrollToPosition(0);
return;
}
+
mBaseChatAdapter.addMessages(messages);
}
@@ -206,6 +213,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
mSnackbar = Snackbar.make(mCoordinatorLayout, errorRes, Snackbar.LENGTH_LONG);
mSnackbar.setActionTextColor(ContextCompat.getColor(this, R.color.colorDefault));
}
+
mSnackbar.setText(errorRes);
mSnackbar.show();
}
@@ -251,7 +259,6 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
@OnClick(R.id.chat_send_message)
void messageSent() {
-// mLoginPresenter.checkIfVoucherStillAvailable(this);
mCallback.sendMessage(mChatMessageEmojiEditText.getText().toString());
mChatMessageEmojiEditText.setText("");
}
@@ -306,6 +313,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// Check for the freshest data.
try {
+ //noinspection WrongConstant
getContentResolver().takePersistableUriPermission(uri, takeFlags);
} catch (Exception e) {
e.printStackTrace();
@@ -316,17 +324,30 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
mChatPresenter.attachView(this);
}
- // TODO: Show preview for images/gifs and maybe videos
-
- /*Bundle bundle = new Bundle();
+ Bundle bundle = new Bundle();
bundle.putString(Constants.FILENAME, uri.toString());
+
+
Intent intent = new Intent(this, FileConfirmationActivity.class);
intent.putExtras(bundle);
- startActivityForResult(intent, 666);*/
+ intent.putExtra(Constants.EXTRA_GROUP, mGroup);
- mCallback.sendFile(uri);
+ startActivityForResult(intent, 666);
+ }
+
+ if(requestCode == CONFIRM_FILE) {
+ String fileUriString = data.getStringExtra(Constants.FILE_URI);
+ String fileMessageText = data.getStringExtra(Constants.FILE_MESSAGE_TEXT);
+
+ if (!mChatPresenter.isAttached()) {
+ mChatPresenter.attachView(this);
+ }
+
+
+
+ mCallback.sendFile(Uri.parse(fileUriString), fileMessageText, getContentResolver().getType(Uri.parse(fileUriString)));
}
}
@@ -346,16 +367,20 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
if (!mChatPresenter.isAttached()) {
mChatPresenter.attachView(this);
}
+
String[] split = message.filePath.split("/");
String fileName = split[split.length - 1];
File file = getExternalFilesDir(null);
+
if (file != null) {
mCallback.downloadFile(message, file + "/" + fileName, itemPosition);
return;
}
+
file = new File(Environment.getExternalStorageDirectory(), getString(R.string.app_name) + "/" + fileName);
//noinspection ResultOfMethodCallIgnored
file.mkdirs();
+
mCallback.downloadFile(message, file.getAbsolutePath(), itemPosition);
}
@@ -371,7 +396,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
mChatPresenter.attachView(this);
}
- mCallback.resendMessage(message);
+ mCallback.resendMessage(message, !TextUtils.isEmpty(message.filePath) ? getContentResolver().getType(Uri.parse(message.filePath)) : "");
}
@Override
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatAdapter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatAdapter.java
index f491cbf..7b1e668 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatAdapter.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/BaseChatAdapter.java
@@ -53,7 +53,7 @@ abstract class BaseChatAdapter extends RecyclerView.Adapter mDownloadProgressMap = new HashMap<>();
+ private HashMap mDownloadProgressMap = new HashMap<>();
BaseChatAdapter(long userId) {
mUserId = userId;
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatPresenter.java
index ab734c4..b028a6a 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatPresenter.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatPresenter.java
@@ -20,18 +20,25 @@ import de.beyondsoft.ownchat.di.scopes.ActivityScope;
import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.model.Message;
import de.beyondsoft.ownchat.page.mvp.MVPAbstractPresenter;
+import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.SystemUtils;
import de.beyondsoft.ownchat.utils.rx.RxUtils;
import org.greenrobot.eventbus.EventBus;
+import android.app.Activity;
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.v4.util.Pair;
import android.text.TextUtils;
import android.util.Log;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -96,6 +103,9 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
@Inject
RealmProvider mRealmProvider;
+ @Inject
+ Context mContext;
+
@Inject
ChatPresenter() {
}
@@ -405,7 +415,7 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
* Send the file to the server.
*/
@Override
- public void sendFile(Uri fileUri) {
+ public void sendFile(Uri fileUri, String messageText, String mimeType) {
File file = getView().getFile(fileUri);
if (file == null || !file.exists()) {
@@ -413,12 +423,14 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
return;
}
+ String tmpFileLocation = mContext.getExternalFilesDir(null) + "/tmp_" + file.getName();
+
String[] split = file.getAbsolutePath().split("/");
Message message = new Message(findUniqueRandomId(mRealmProvider, mUserIdPreference.get()),
mGroupId,
System.currentTimeMillis() / 1000,
- null,
+ messageText,
file.getPath(),
file.getPath(),
split[split.length - 1],
@@ -447,8 +459,57 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
message.createdAt *= 1000;
getView().addOneMessage(message);
+ // image/gif, image/jpeg, image/png
+
+ if((mimeType.equals(Constants.MIME_TYPE_JPEG) || mimeType.equals(Constants.MIME_TYPE_PNG)) && (file.length() > (1000L * 1024L))) {
+ Log.i("IMAGE DOWN SCALING", "Trying to scale down the image");
+
+ try {
+ BitmapFactory.Options options = new BitmapFactory.Options();
+
+ Bitmap bitmapToScale = BitmapFactory.decodeFile(file.getPath(), options);
+
+ int originalWidth = options.outWidth;
+ int originalHeight = options.outHeight;
+
+ int newHeight, newWidth;
+ double aspectRatio = ((double) originalWidth) / ((double) originalHeight);
+
+ if(originalHeight > originalWidth) {
+ newWidth = 1080;
+ newHeight = (int) (newWidth * aspectRatio);
+ } else {
+ newHeight = 1080;
+ newWidth = (int) (newHeight * aspectRatio);
+ }
+
+ Bitmap bitmap = Bitmap.createScaledBitmap(bitmapToScale, newWidth, newHeight, false);
+ File tmpFile = new File(tmpFileLocation);
+ tmpFile.createNewFile();
+
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream);
+ FileOutputStream fileOutputStream = new FileOutputStream(tmpFile);
+ fileOutputStream.write(outputStream.toByteArray());
+ bitmap.recycle();
+ fileOutputStream.flush();
+ fileOutputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ File scaledImage = new File(tmpFileLocation);
+ boolean scaledImageExists = scaledImage.exists();
+
+ if(scaledImageExists) {
+ Log.i("FILE SIZES", "" + ((int) (file.length() / 1024d)) + "Kb vs. " + (scaledImage.length() / 1024) + "Kb");
+ }
+
+ // TODO: delete tempFile after it has been sent successfully
+
// create RequestBody instance from file
- RequestBody requestFile = RequestBody.create(getView().getMediaType(fileUri), file);
+ RequestBody requestFile = RequestBody.create(getView().getMediaType(fileUri), scaledImageExists ? scaledImage : file);
// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile);
@@ -457,8 +518,6 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
String groupIdString = String.valueOf(mGroupId);
RequestBody groupIdBody = RequestBody.create(okhttp3.MultipartBody.FORM, groupIdString);
- Log.d("SENDING FILE", "Sending file with text message...");
-
RequestBody textBody = RequestBody.create(okhttp3.MultipartBody.FORM, message.message == null ? "" : message.message);
mChatService.sendFile(groupIdBody, body, textBody)
@@ -478,18 +537,25 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
newMessage.isRead = true;
storeMessageLocally(newMessage, message.id, false);
storeGroupLocally(mGroupId, message);
+
if (!isAttached()) {
return;
}
+
if (mSystemUtils.isNetworkUnavailable()) {
getView().showError(R.string.error_no_internet_connection);
return;
}
+
getView().showError(R.string.error_something_went_wrong);
}
@Override
public void onNext(MessageResponse baseResponse) {
+ if (scaledImageExists) {
+ boolean delete = scaledImage.delete();
+ Log.i("DELETED SCALED IMAGE", "Success: " + delete);
+ }
deleteLocalMessage(message);
baseResponse.response.message.status = Message.Status.DELIVERED;
baseResponse.response.message.isRead = true;
@@ -562,12 +628,13 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
}
@Override
- public void resendMessage(Message message) {
+ public void resendMessage(Message message, String mimeType) {
if (mSystemUtils.isNetworkUnavailable()) {
getView().enableMessageRetry(message.id);
getView().showError(R.string.error_no_internet_connection);
return;
}
+
if (TextUtils.isEmpty(message.message)) {
Uri fileUri = Uri.parse(message.uri);
File file = getView().getFile(fileUri);
@@ -577,6 +644,13 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
return;
}
+ // TODO: resize file
+ // image/gif, image/jpeg, image/png
+
+ if(mimeType.equals("image/jpeg") || mimeType.equals("image/png")) {
+
+ }
+
// create RequestBody instance from file
RequestBody requestFile = RequestBody.create(getView().getMediaType(fileUri), file);
@@ -620,6 +694,7 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha
storeGroupLocally(mGroupId, baseResponse.response.message);
}
});
+
return;
}
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatView.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatView.java
index f876d46..4a81c4e 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatView.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/ChatView.java
@@ -67,11 +67,11 @@ interface ChatView extends MVPView {
void resetMessages();
- void sendFile(Uri fileUri);
+ void sendFile(Uri fileUri, String messageText, String mimeType);
void sendMessage(String message);
- void resendMessage(Message message);
+ void resendMessage(Message message, String mimeType);
void downloadFile(Message message, String filePath, int itemPosition);
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java
index 22bfffb..d21efab 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/chat/GroupChatActivity.java
@@ -93,15 +93,21 @@ public class GroupChatActivity extends BaseChatActivity {
@Override
protected void setToolbar() {
mSingleChatTitleTextView.setVisibility(View.GONE);
+
mGroupTitleTextView.setVisibility(View.VISIBLE);
+
mGroupMembersTextView.setVisibility(View.VISIBLE);
+
mExtraImageView.setVisibility(View.VISIBLE);
+
mGroupMembersTextView.setText(mGroup.getContactsNames());
+
mExtraImageView.setImageResource(R.drawable.vertical_dots);
+
mChatImageView.setImageResource(mGroup.isHelpGroup() ? R.drawable.avatar_help_group : R.drawable.avatar_team_group);
+
mGroupTitleTextView.setText(mGroup.name);
- mGroupTitleTextView.setTextColor(ContextCompat.getColor(this,
- mGroup.isHelpGroup() ? R.color.colorHelpGroup : R.color.colorTeamGroup));
+ mGroupTitleTextView.setTextColor(ContextCompat.getColor(this, mGroup.isHelpGroup() ? R.color.colorHelpGroup : R.color.colorTeamGroup));
}
@Override
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java
index 7fd2010..dc43359 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationActivity.java
@@ -1,17 +1,26 @@
package de.beyondsoft.ownchat.page.fileconfirmation;
-import android.database.Cursor;
+import android.content.Intent;
import android.net.Uri;
-import android.provider.MediaStore;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
+import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
-import android.webkit.WebView;
+import android.text.TextUtils;
+import android.view.View;
import android.widget.ImageView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
+
+import butterknife.OnClick;
import de.beyondsoft.ownchat.R;
import de.beyondsoft.ownchat.di.InjectionHelper;
+import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.FileUtils;
@@ -21,6 +30,7 @@ import javax.inject.Inject;
import butterknife.BindView;
import butterknife.ButterKnife;
+import hani.momanii.supernova_emoji_library.Actions.EmojIconActions;
import hani.momanii.supernova_emoji_library.Helper.EmojiconEditText;
public class FileConfirmationActivity extends AppCompatActivity implements FileConfirmationView {
@@ -31,17 +41,35 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
@BindView(R.id.file_emoji_button)
ImageView mEmojiButtonImageView;
- @BindView(R.id.media_file_webview)
- WebView mFileWebView;
+ @BindView(R.id.media_file)
+ ImageView mFileImageView;
+
+ @BindView(R.id.file_relative_layout)
+ RelativeLayout mRelativeLayout;
@BindView(R.id.file_send_message)
ImageView mSendMessageButtonImageView;
+ @BindView(R.id.chat_toolbar_image_view)
+ ImageView mChatImageView;
+
+ @BindView(R.id.chat_toolbar_single_title)
+ TextView mSingleChatTitleTextView;
+
+ @BindView(R.id.chat_toolbar_group_title)
+ TextView mGroupTitleTextView;
+
+ @BindView(R.id.chat_toolbar_group_members)
+ TextView mGroupMembersTextView;
+
+ @BindView(R.id.chat_toolbar_extra_image)
+ ImageView mExtraImageView;
@Inject
FileConfirmationPresenter mFileConfirmationPresenter;
- private Callback mCallback;
+ private Uri mSelectedUri;
+ private Group mGroup;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -52,43 +80,69 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
ButterKnife.bind(this);
mFileConfirmationPresenter.attachView(this);
+ EmojIconActions emojiIcon = new EmojIconActions(this, mRelativeLayout, mMessageEmojiconEditText, mEmojiButtonImageView);
+ emojiIcon.ShowEmojIcon();
+
String fileUri = getIntent().getStringExtra(Constants.FILENAME);
- File file = getFile(Uri.parse(fileUri));
- String absolutePath = file.getAbsolutePath();
+ mSelectedUri = Uri.parse(fileUri);
- String html = "
";
- try {
- mFileWebView.loadDataWithBaseURL("", html, "text/html", "utf-8", null);
- } catch (Exception e) {
- e.printStackTrace();
+ Glide.with(this)
+ .load(getFile(mSelectedUri).getPath())
+ .dontAnimate()
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .into(new GlideDrawableImageViewTarget(mFileImageView));
+
+ mGroup = getIntent().getParcelableExtra(Constants.EXTRA_GROUP);
+ setToolBar();
+ }
+
+ private void setToolBar() {
+ if(mGroup.users.size() > 2) {
+ mSingleChatTitleTextView.setVisibility(View.GONE);
+
+ mGroupTitleTextView.setVisibility(View.VISIBLE);
+
+ mGroupMembersTextView.setVisibility(View.VISIBLE);
+
+ mGroupMembersTextView.setText(mGroup.getContactsNames());
+
+ mExtraImageView.setImageResource(R.drawable.vertical_dots);
+
+ mChatImageView.setImageResource(mGroup.isHelpGroup() ? R.drawable.avatar_help_group : R.drawable.avatar_team_group);
+
+ mGroupTitleTextView.setText(mGroup.name);
+ mGroupTitleTextView.setTextColor(ContextCompat.getColor(this, mGroup.isHelpGroup() ? R.color.colorHelpGroup : R.color.colorTeamGroup));
+ } else {
+ mSingleChatTitleTextView.setVisibility(View.VISIBLE);
+ mSingleChatTitleTextView.setText(mGroup.name);
+ mSingleChatTitleTextView.setTextColor(ContextCompat.getColor(this, mGroup.onlyEmployees ? de.beyondsoft.ownchat.R.color.colorBlack : de.beyondsoft.ownchat.R.color.colorHelpGroup));
+
+ if (TextUtils.isEmpty(mGroup.avatar)) {
+ mChatImageView.setImageResource(mGroup.onlyEmployees ? de.beyondsoft.ownchat.R.drawable.avatar : R.drawable.avatar_help);
+ } else {
+ Glide.with(this).load(mGroup.avatar)
+ .placeholder(de.beyondsoft.ownchat.R.drawable.avatar)
+ .dontAnimate()
+ .into(mChatImageView);
+ }
}
}
- private String getPath(Uri uri) {
- String[] projection = {MediaStore.Images.Media.DATA};
- Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
+ @OnClick(R.id.file_send_message)
+ void sendFile() {
+ Intent intent = new Intent();
- if(cursor == null) {
- return null;
- }
+ intent.putExtra(Constants.FILE_URI, mSelectedUri.toString());
+ intent.putExtra(Constants.FILE_MESSAGE_TEXT, mMessageEmojiconEditText.getText().toString());
- int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- cursor.moveToFirst();
- String path = cursor.getString(columnIndex);
- cursor.close();
-
- return path;
+ setResult(-1, intent);
+ finish();
}
- @Override
- public void sendFileSuccessful() {
-
- }
-
- @Override
- public void setCallback(Callback callback) {
- mCallback = callback;
+ @OnClick(R.id.chat_toolbar_back_arrow)
+ void backPressed() {
+ onBackPressed();
}
@Override
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationPresenter.java
index e7ee936..ff91777 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationPresenter.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationPresenter.java
@@ -1,10 +1,8 @@
package de.beyondsoft.ownchat.page.fileconfirmation;
import android.content.Context;
-import android.net.Uri;
import android.support.annotation.NonNull;
-import de.beyondsoft.ownchat.data.api.services.ChatService;
import de.beyondsoft.ownchat.page.mvp.MVPAbstractPresenter;
import javax.inject.Inject;
@@ -13,10 +11,7 @@ import javax.inject.Inject;
* Created by Lyndon on 13-Oct-2017.
*/
-public class FileConfirmationPresenter extends MVPAbstractPresenter implements FileConfirmationView.Callback {
-
- @Inject
- ChatService mChatService;
+public class FileConfirmationPresenter extends MVPAbstractPresenter {
@Inject
Context mContext;
@@ -27,17 +22,11 @@ public class FileConfirmationPresenter extends MVPAbstractPresenter 0) {
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_file_confirmation.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_file_confirmation.xml
index f82d6c8..fc769e5 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_file_confirmation.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_file_confirmation.xml
@@ -1,18 +1,22 @@
-
-
+
+
-
+