From 2fecb449f854469ef4c2d71cf3e7f4ff9bd63aea Mon Sep 17 00:00:00 2001 From: staccatomamba Date: Tue, 31 Oct 2017 18:25:38 +0100 Subject: [PATCH] Issue when sending images with file type in all caps fixed --- .../bewoplaner-chat-android/app/build.gradle | 4 ++-- .../ownchat/data/AppPrefsConstants.java | 1 + .../ownchat/data/prefs/AppPrefsModule.java | 7 +++++++ .../ownchat/di/ApplicationComponent.java | 3 +++ .../ownchat/page/chat/BaseChatActivity.java | 9 +++++++-- .../ownchat/page/chat/ChatPresenter.java | 19 +++++++++++++++---- .../ownchat/page/login/LoginPresenter.java | 5 +++++ .../beyondsoft/ownchat/utils/FileUtils.java | 2 +- .../app/src/main/res/values/strings.xml | 1 + 9 files changed, 42 insertions(+), 9 deletions(-) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle index 6ded610..be5dd7b 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/build.gradle @@ -33,7 +33,7 @@ android { minSdkVersion 19 targetSdkVersion 26 versionCode 2 - versionName "1.1" + versionName "1.2" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } @@ -83,7 +83,7 @@ dependencies { // Glide // Circle ImageView compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') { - transitive = true; + transitive = true } // Secure Preferences // Firebase diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/AppPrefsConstants.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/AppPrefsConstants.java index 1cc90db..2053a89 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/AppPrefsConstants.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/AppPrefsConstants.java @@ -22,4 +22,5 @@ public interface AppPrefsConstants { String USER_PASSWORD = "user_password"; String USER_NAME = "user_name"; + String VERIFY_CHAT_CODE_ERROR_MESSAGE = "verify_chat_code_error_message"; } \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/prefs/AppPrefsModule.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/prefs/AppPrefsModule.java index 86f34d8..27f8d2b 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/prefs/AppPrefsModule.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/data/prefs/AppPrefsModule.java @@ -55,6 +55,13 @@ public class AppPrefsModule { return new BooleanPreference(sharedPreferences, AppPrefsConstants.SAVE_PASSWORD); } + @Provides + @ApplicationScope + @Named(AppPrefsConstants.VERIFY_CHAT_CODE_ERROR_MESSAGE) + StringPreference provideVerifyChatCodeErrorMessage(@AppPrefs SecurePreferences sharedPreferences) { + return new StringPreference(sharedPreferences, AppPrefsConstants.VERIFY_CHAT_CODE_ERROR_MESSAGE); + } + @Provides @ApplicationScope @Named(AppPrefsConstants.USER_NAME) diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/di/ApplicationComponent.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/di/ApplicationComponent.java index 1356124..ab0de58 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/di/ApplicationComponent.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/di/ApplicationComponent.java @@ -91,6 +91,9 @@ public interface ApplicationComponent { @Named(AppPrefsConstants.USER_NAME) StringPreference provideUserName(); + @Named(AppPrefsConstants.VERIFY_CHAT_CODE_ERROR_MESSAGE) + StringPreference provideVerifyChatCodeErrorMessage(); + @Named(AppPrefsConstants.USER_PASSWORD) StringPreference providePassword(); 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 1962e77..c2a17ce 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 @@ -145,6 +145,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha } super.onCreate(savedInstanceState); + EventBus.getDefault().register(this); setContentView(R.layout.activity_chat); ButterKnife.bind(this); @@ -154,8 +155,8 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha mEmptyLayout.setOnTryAgainClickListener(v -> mCallback.fetchMoreMessagesByGroupId()); setupRecyclerView(); - EmojIconActions emojIcon = new EmojIconActions(this, mCoordinatorLayout, mChatMessageEmojiEditText, mEmojiButton); - emojIcon.ShowEmojIcon(); + EmojIconActions emojiIcon = new EmojIconActions(this, mCoordinatorLayout, mChatMessageEmojiEditText, mEmojiButton); + emojiIcon.ShowEmojIcon(); showLoading(); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); @@ -166,10 +167,13 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setStackFromEnd(true); linearLayoutManager.setReverseLayout(true); + mRecyclerView.setLayoutManager(linearLayoutManager); mBaseChatAdapter.setMessageClickListener(this); mRecyclerView.setAdapter(mBaseChatAdapter); + ((SimpleItemAnimator) mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false); + mEndlessScrollListener = new EndlessScrollListener(VISIBLE_THRESHOLD, linearLayoutManager) { @Override public boolean onLoad() { @@ -180,6 +184,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha return true; } }; + mRecyclerView.addOnScrollListener(mEndlessScrollListener); } 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 3c99c35..33b4e09 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 @@ -98,6 +98,10 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha @Named(AppPrefsConstants.NAME) StringPreference mProfileNamePreference; + @Inject + @Named(AppPrefsConstants.UPLOAD_MAX_SIZE) + LongPreference mUploadMaxSizePreference; + @Inject RealmProvider mRealmProvider; @@ -499,8 +503,17 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha File scaledImage = new File(tmpFileLocation); boolean scaledImageExists = scaledImage.exists(); + File fileToSend = scaledImageExists ? scaledImage : file; + + Log.d("FILE_SIZE", "" + file.length() + " vs. " + mUploadMaxSizePreference.get()); + + if(mUploadMaxSizePreference.get() > 0L && fileToSend.length() > mUploadMaxSizePreference.get()){ + getView().showError(R.string.error_file_is_too_large); + return; + } + // create RequestBody instance from file - RequestBody requestFile = RequestBody.create(getView().getMediaType(mimeType), scaledImageExists ? scaledImage : file); + RequestBody requestFile = RequestBody.create(getView().getMediaType(mimeType), fileToSend); // MultipartBody.Part is used to send also the actual file name MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile); @@ -543,9 +556,7 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha @Override public void onNext(MessageResponse baseResponse) { - if (scaledImageExists) { - boolean delete = scaledImage.delete(); - } + boolean delete = scaledImage.delete(); deleteLocalMessage(message); baseResponse.response.message.status = Message.Status.DELIVERED; diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java index 96f2a5d..4a312c7 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/login/LoginPresenter.java @@ -64,6 +64,10 @@ public class LoginPresenter extends MVPAbstractPresenter implements L @Inject RegisterService mRegisterService; + @Inject + @Named(AppPrefsConstants.VERIFY_CHAT_CODE_ERROR_MESSAGE) + StringPreference mVerifyChatCodeErrorMessage; + @Inject @Named(AppPrefsConstants.SHOW_LOGIN_AGAIN) BooleanPreference mShowLoginAgainPreference; @@ -529,6 +533,7 @@ public class LoginPresenter extends MVPAbstractPresenter implements L @Override public void onNext(JsonObject response) { if (!response.has("result") || response.get("result") == null) { + getView().showError("Test message after verifying the cat code"); logoutNavigation.logoutDirectly(false); return; } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/FileUtils.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/FileUtils.java index efb5a04..a09453e 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/FileUtils.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/FileUtils.java @@ -135,7 +135,7 @@ public class FileUtils { * @return The MIME type for the given file. */ public static String getMimeType(File file) { - String extension = getExtension(file.getName()); + String extension = getExtension(file.getName().toLowerCase()); if (extension.length() > 0) { return MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension.substring(1)); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml index 373d410..344c6ad 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/strings.xml @@ -85,5 +85,6 @@ Anhänge (%d/%d) Eine Mediendatei anhängen Ein Dokument anhängen + Die Datei, die Sie versuchen hochzuladen, ist zu groß \ No newline at end of file