diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml index 7fcfe11..4e18d66 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml @@ -57,6 +57,12 @@ android:screenOrientation="portrait" android:theme="@style/ChatStyle" /> + + + diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_audio-web.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_audio-web.png new file mode 100644 index 0000000..8fb84bb Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_audio-web.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_gallery-web.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_gallery-web.png new file mode 100644 index 0000000..85fdad6 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_dialog_gallery-web.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_picker_document-web.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_picker_document-web.png new file mode 100644 index 0000000..b1f9597 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/ic_file_picker_document-web.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerActivity.java index 9d3444d..b82680b 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerActivity.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/FilePickerActivity.java @@ -1,5 +1,23 @@ package de.beyondsoft.ownchat.filepicker; +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.app.ActionBar; +import android.view.Menu; +import android.view.MenuItem; + +import java.util.ArrayList; + +import de.beyondsoft.ownchat.R; +import de.beyondsoft.ownchat.filepicker.fragments.DocFragment; +import de.beyondsoft.ownchat.filepicker.fragments.DocPickerFragment; +import de.beyondsoft.ownchat.filepicker.fragments.ImagePickerFragmentListener; +import de.beyondsoft.ownchat.filepicker.fragments.MediaPickerFragment; +import de.beyondsoft.ownchat.filepicker.utils.FragmentUtil; + /** * Created by Lyndon on 26-Oct-2017. */ @@ -9,4 +27,144 @@ public class FilePickerActivity extends BaseFilePickerActivity implements DocFragment.DocFragmentListener, DocPickerFragment.DocPickerFragmentListener, MediaPickerFragment.MediaPickerFragmentListener { + + private static final String TAG = FilePickerActivity.class.getSimpleName(); + private int type; + + @SuppressLint("MissingSuperCall") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState, R.layout.activity_file_picker); + } + + @Override + protected void initView() { + Intent intent = getIntent(); + if (intent != null) { + if(getSupportActionBar()!=null) + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + ArrayList selectedPaths = intent.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA); + type = intent.getIntExtra(FilePickerConst.EXTRA_PICKER_TYPE, FilePickerConst.MEDIA_PICKER); + + if(selectedPaths!=null) { + + if (PickerManager.getInstance().getMaxCount() == 1) { + selectedPaths.clear(); + } + + if (type == FilePickerConst.MEDIA_PICKER) { + PickerManager.getInstance().add(selectedPaths, FilePickerConst.FILE_TYPE_MEDIA); + } else { + PickerManager.getInstance().add(selectedPaths, FilePickerConst.FILE_TYPE_DOCUMENT); + } + } + else + selectedPaths = new ArrayList<>(); + + setToolbarTitle(PickerManager.getInstance().getCurrentCount()); + openSpecificFragment(type, selectedPaths); + } + } + + private void openSpecificFragment(int type, @Nullable ArrayList selectedPaths) { + if (type == FilePickerConst.MEDIA_PICKER) { + MediaPickerFragment photoFragment = MediaPickerFragment.newInstance(); + FragmentUtil.addFragment(this, R.id.container, photoFragment); + } else { + if(PickerManager.getInstance().isDocSupport()) + PickerManager.getInstance().addDocTypes(); + + DocPickerFragment photoFragment = DocPickerFragment.newInstance(selectedPaths); + FragmentUtil.addFragment(this, R.id.container, photoFragment); + } + } + + private void setToolbarTitle(int count) { + ActionBar actionBar = getSupportActionBar(); + if(actionBar!=null) { + if (PickerManager.getInstance().getMaxCount() > 1) + actionBar.setTitle(String.format(getString(R.string.attachments_title_text), count, PickerManager.getInstance().getMaxCount())); + else { + if (type == FilePickerConst.MEDIA_PICKER) + actionBar.setTitle(R.string.select_photo_text); + else + actionBar.setTitle(R.string.select_doc_text); + } + } + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.picker_menu, menu); + + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int i = item.getItemId(); + if (i == R.id.action_done) { + if (type == FilePickerConst.MEDIA_PICKER) + returnData(PickerManager.getInstance().getSelectedPhotos()); + else + returnData(PickerManager.getInstance().getSelectedFiles()); + + return true; + } else if (i == android.R.id.home) { + onBackPressed(); + return true; + } + return super.onOptionsItemSelected(item); + } + + @Override + public void onBackPressed() { + super.onBackPressed(); + setResult(RESULT_CANCELED); + finish(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + switch (requestCode) + { + case FilePickerConst.REQUEST_CODE_MEDIA_DETAIL: + if(resultCode== Activity.RESULT_OK) + { + if (type == FilePickerConst.MEDIA_PICKER) + returnData(PickerManager.getInstance().getSelectedPhotos()); + else + returnData(PickerManager.getInstance().getSelectedFiles()); + } + else + { + setToolbarTitle(PickerManager.getInstance().getCurrentCount()); + } + break; + } + } + + private void returnData(ArrayList paths) { + Intent intent = new Intent(); + + if (type == FilePickerConst.MEDIA_PICKER) { + intent.putStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA, paths); + } else { + intent.putStringArrayListExtra(FilePickerConst.KEY_SELECTED_DOCS, paths); + } + + setResult(RESULT_OK, intent); + finish(); + } + + @Override + public void onItemSelected() { + setToolbarTitle(PickerManager.getInstance().getCurrentCount()); + + if(PickerManager.getInstance().getMaxCount()==1) + returnData(type == FilePickerConst.MEDIA_PICKER ? PickerManager.getInstance().getSelectedPhotos() : PickerManager.getInstance().getSelectedFiles()); + } } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/PickerManager.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/PickerManager.java index dacbff3..c0e55e6 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/PickerManager.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/PickerManager.java @@ -49,7 +49,7 @@ public class PickerManager { fileTypes = new ArrayList<>(); } - public void setMaxCount(int count) { + void setMaxCount(int count) { clearSelections(); this.mMaxCount = count; } @@ -58,18 +58,19 @@ public class PickerManager { return mMaxCount; } - public int getCurrentCount() { + int getCurrentCount() { return mCurrentCount; } public void add(String path, int type) { if (path != null && shouldAdd()) { - if (!mediaFiles.contains(path) && type == FilePickerConst.FILE_TYPE_MEDIA) + if (!mediaFiles.contains(path) && type == FilePickerConst.FILE_TYPE_MEDIA) { mediaFiles.add(path); - else if (type == FilePickerConst.FILE_TYPE_DOCUMENT) + } else if (type == FilePickerConst.FILE_TYPE_DOCUMENT) { docFiles.add(path); - else + } else { return; + } mCurrentCount++; } @@ -85,7 +86,6 @@ public class PickerManager { if ((type == FilePickerConst.FILE_TYPE_MEDIA) && mediaFiles.contains(path)) { mediaFiles.remove(path); mCurrentCount--; - } else if (type == FilePickerConst.FILE_TYPE_DOCUMENT) { docFiles.remove(path); @@ -107,13 +107,15 @@ public class PickerManager { public ArrayList getSelectedFilePaths(ArrayList files) { ArrayList paths = new ArrayList<>(); + for (int index = 0; index < files.size(); index++) { paths.add(files.get(index).getPath()); } + return paths; } - public void clearSelections() { + private void clearSelections() { docFiles.clear(); mediaFiles.clear(); fileTypes.clear(); @@ -125,7 +127,7 @@ public class PickerManager { return theme; } - public void setTheme(int theme) { + void setTheme(int theme) { this.theme = theme; } @@ -133,7 +135,7 @@ public class PickerManager { return showVideos; } - public void setShowVideos(boolean showVideos) { + void setShowVideos(boolean showVideos) { this.showVideos = showVideos; } @@ -141,7 +143,7 @@ public class PickerManager { return mShowImages; } - public void setShowImages(boolean showImages) { + void setShowImages(boolean showImages) { this.mShowImages = showImages; } @@ -149,7 +151,7 @@ public class PickerManager { return showGif; } - public void setShowGif(boolean showGif) { + void setShowGif(boolean showGif) { this.showGif = showGif; } @@ -157,16 +159,16 @@ public class PickerManager { return showFolderView; } - public void setShowFolderView(boolean showFolderView) { + void setShowFolderView(boolean showFolderView) { this.showFolderView = showFolderView; } - public void addFileType(FileType fileType) + void addFileType(FileType fileType) { fileTypes.add(fileType); } - public void addDocTypes() + void addDocTypes() { String[] pdfs = {"pdf"}; fileTypes.add(new FileType(FilePickerConst.PDF,pdfs,R.drawable.document)); @@ -189,11 +191,11 @@ public class PickerManager { return fileTypes; } - public boolean isDocSupport() { + boolean isDocSupport() { return docSupport; } - public void setDocSupport(boolean docSupport) { + void setDocSupport(boolean docSupport) { this.docSupport = docSupport; } @@ -201,7 +203,7 @@ public class PickerManager { return enableCamera; } - public void setEnableCamera(boolean enableCamera) { + void setEnableCamera(boolean enableCamera) { this.enableCamera = enableCamera; } @@ -217,11 +219,11 @@ public class PickerManager { return providerAuthorities; } - public void setProviderAuthorities(String providerAuthorities) { + void setProviderAuthorities(String providerAuthorities) { this.providerAuthorities = providerAuthorities; } - public void setCameraDrawable(int drawable) { + void setCameraDrawable(int drawable) { this.mCameraDrawble = drawable; } diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/ImageGridAdapter.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/ImageGridAdapter.java index cc183c0..5758748 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/ImageGridAdapter.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/adapters/ImageGridAdapter.java @@ -15,7 +15,6 @@ import com.bumptech.glide.RequestManager; import java.io.File; import java.util.ArrayList; -import butterknife.BindView; import de.beyondsoft.ownchat.R; import de.beyondsoft.ownchat.filepicker.FilePickerConst; import de.beyondsoft.ownchat.filepicker.PickerManager; @@ -166,20 +165,20 @@ public class ImageGridAdapter extends SelectableAdapter { + dialog.dismiss(); + }); + + attachDocumentImageView.setOnClickListener(v -> { + FilePickerBuilder.getInstance().setMaxCount(1) + .addFileSupport("ZIP", zipFileTypes) + .addFileSupport("PDF", pdfFileTypes) + .enableDocSupport(false) + .withOrientation(Orientation.PORTRAIT_ONLY) + .pickFile(this); + + dialog.dismiss(); + }); + + attachFromGalleryImageView.setOnClickListener(v -> { + FilePickerBuilder.getInstance().setMaxCount(1) + .enableVideoPicker(true) + .enableCameraSupport(false) + .showGifs(true) + .showFolderView(true) + .enableImagePicker(true) + .withOrientation(Orientation.PORTRAIT_ONLY) + .pickPhoto(this); + + dialog.dismiss(); + }); + + dialog.show(); } @Override @@ -299,11 +344,10 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha } if (requestCode == SELECT_FILE) { - if (null == data.getData()) { - return; - } - - final Uri uri = data.getData(); + // TODO: support documents too (FilePickerConst.KEY_SELECTED_DOCS) + final Uri uri = Uri.fromFile(new File(data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA) != null ? + data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA).get(0) : + data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_DOCS).get(0))); if (Build.VERSION.SDK_INT >= 19) { final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); @@ -321,9 +365,7 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha } Bundle bundle = new Bundle(); - bundle.putString(Constants.FILENAME, uri.toString()); - - + bundle.putString(Constants.FILENAME, data.getStringArrayListExtra(FilePickerConst.KEY_SELECTED_MEDIA).get(0)); Intent intent = new Intent(this, FileConfirmationActivity.class); intent.putExtras(bundle); @@ -334,16 +376,14 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha } if(requestCode == CONFIRM_FILE) { - String fileUriString = data.getStringExtra(Constants.FILE_URI); + String filePath = data.getStringExtra(Constants.FILE_PATH); 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))); + mCallback.sendFile(Uri.fromFile(new File(filePath)), fileMessageText); } } @@ -400,6 +440,11 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha return MediaType.parse(getContentResolver().getType(fileUri)); } + @Override + public MediaType getMediaType(String mimeType) { + return MediaType.parse(mimeType); + } + @Override public File getFile(Uri fileUri) { return FileUtils.getFile(this, fileUri); 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 7b1e668..f578244 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 @@ -71,11 +71,14 @@ abstract class BaseChatAdapter extends RecyclerView.Adapter implements Cha * Send the file to the server. */ @Override - public void sendFile(Uri fileUri, String messageText, String mimeType) { + public void sendFile(Uri fileUri, String messageText) { File file = getView().getFile(fileUri); + final String mimeType = FileUtils.getMimeType(file); + if (file == null || !file.exists()) { getView().showToastMessage(R.string.error_file_not_found); return; @@ -457,8 +459,6 @@ 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))) { try { BitmapFactory.Options options = new BitmapFactory.Options(); @@ -500,7 +500,7 @@ public class ChatPresenter extends MVPAbstractPresenter implements Cha boolean scaledImageExists = scaledImage.exists(); // create RequestBody instance from file - RequestBody requestFile = RequestBody.create(getView().getMediaType(fileUri), scaledImageExists ? scaledImage : file); + RequestBody requestFile = RequestBody.create(getView().getMediaType(mimeType), scaledImageExists ? scaledImage : file); // MultipartBody.Part is used to send also the actual file name MultipartBody.Part body = MultipartBody.Part.createFormData("file", file.getName(), requestFile); 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 4a81c4e..d5cf39c 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 @@ -43,6 +43,8 @@ interface ChatView extends MVPView { MediaType getMediaType(Uri fileUri); + MediaType getMediaType(String mimeType); + File getFile(Uri fileUri); void enableMessageRetry(String messageId); @@ -67,7 +69,7 @@ interface ChatView extends MVPView { void resetMessages(); - void sendFile(Uri fileUri, String messageText, String mimeType); + void sendFile(Uri fileUri, String messageText); void sendMessage(String message); @@ -81,5 +83,4 @@ interface ChatView extends MVPView { void fetchNewMessages(long groupId); } - } 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 dc43359..651a745 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 @@ -87,8 +87,9 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC mSelectedUri = Uri.parse(fileUri); + // getFile(mSelectedUri).getPath() Glide.with(this) - .load(getFile(mSelectedUri).getPath()) + .load(fileUri) .dontAnimate() .diskCacheStrategy(DiskCacheStrategy.ALL) .into(new GlideDrawableImageViewTarget(mFileImageView)); @@ -133,7 +134,7 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC void sendFile() { Intent intent = new Intent(); - intent.putExtra(Constants.FILE_URI, mSelectedUri.toString()); + intent.putExtra(Constants.FILE_PATH, mSelectedUri.toString()); intent.putExtra(Constants.FILE_MESSAGE_TEXT, mMessageEmojiconEditText.getText().toString()); setResult(-1, intent); diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/Constants.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/Constants.java index 5b04f51..f8cedf0 100644 --- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/Constants.java +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/utils/Constants.java @@ -23,7 +23,7 @@ public interface Constants { String CHAT_IS_ALREADY_OPEN = "chat_is_already_open"; String KEY_TEXT_REPLY = "key_text_reply"; - String FILE_URI = "file_uri"; + String FILE_PATH = "file_uri"; String FILE_MESSAGE_TEXT = "file_message_text"; String EXTRA_GROUP = "group"; diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/file_chooser_dialog.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/file_chooser_dialog.xml new file mode 100644 index 0000000..7e1b8ce --- /dev/null +++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/file_chooser_dialog.xml @@ -0,0 +1,35 @@ + + + + + + + + + + \ No newline at end of file diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_audio.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_audio.png new file mode 100644 index 0000000..cd00a05 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_audio.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_gallery.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_gallery.png new file mode 100644 index 0000000..144135c Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_dialog_gallery.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_picker_document.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_picker_document.png new file mode 100644 index 0000000..6471662 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-hdpi/ic_file_picker_document.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_audio.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_audio.png new file mode 100644 index 0000000..5053e16 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_audio.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_gallery.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_gallery.png new file mode 100644 index 0000000..a4e1bb9 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_dialog_gallery.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_picker_document.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_picker_document.png new file mode 100644 index 0000000..b820bf1 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-mdpi/ic_file_picker_document.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_audio.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_audio.png new file mode 100644 index 0000000..b87c8ca Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_audio.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_gallery.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_gallery.png new file mode 100644 index 0000000..28c0e89 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_dialog_gallery.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_picker_document.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_picker_document.png new file mode 100644 index 0000000..43cfc65 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xhdpi/ic_file_picker_document.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_audio.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_audio.png new file mode 100644 index 0000000..afe9c91 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_audio.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_gallery.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_gallery.png new file mode 100644 index 0000000..9a07e9f Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_dialog_gallery.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_picker_document.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_picker_document.png new file mode 100644 index 0000000..1bcfc66 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxhdpi/ic_file_picker_document.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_audio.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_audio.png new file mode 100644 index 0000000..e3a57a9 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_audio.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_gallery.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_gallery.png new file mode 100644 index 0000000..e8b5f72 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_dialog_gallery.png differ diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_picker_document.png b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_picker_document.png new file mode 100644 index 0000000..4c61db9 Binary files /dev/null and b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/mipmap-xxxhdpi/ic_file_picker_document.png differ 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 1ba0dcb..373d410 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 @@ -73,6 +73,7 @@ Impressum + Fertig Keine Dateien gefunden Keine Kamera vorhanden @@ -81,5 +82,8 @@ Alle Videos Alle Bilder Alle Dateien + Anhänge (%d/%d) + Eine Mediendatei anhängen + Ein Dokument anhängen \ No newline at end of file