diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
index cf15c0b..ad07d71 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/AndroidManifest.xml
@@ -60,9 +60,13 @@
+ android:theme="@style/AppTheme.NoActionBar"
+ android:screenOrientation="portrait"
+ />
+ android:theme="@style/AppTheme.NoActionBar"
+ android:screenOrientation="portrait"
+ />
{
+public class FolderGridAdapter extends SelectableAdapter implements RequestListener {
private final Context context;
private final RequestManager glide;
private final boolean showCamera;
private int imageSize;
- public final static int ITEM_TYPE_CAMERA = 100;
- public final static int ITEM_TYPE_PHOTO = 101;
+ private final static int ITEM_TYPE_CAMERA = 100;
+ private final static int ITEM_TYPE_PHOTO = 101;
private FolderGridAdapterListener folderGridAdapterListener;
+ @Override
+ public boolean onException(Exception e, File model, Target target, boolean isFirstResource) {
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(GlideDrawable resource, File model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {
+ if(resource.isAnimated()) {
+ target.onResourceReady(new GlideBitmapDrawable(null, ((GifDrawable) resource).getFirstFrame()), null);
+ return true;
+ }
+
+ return false;
+ }
+
public interface FolderGridAdapterListener{
void onCameraClicked();
void onFolderClicked(ImageDirectory photoDirectory);
}
- public FolderGridAdapter(Context context, RequestManager requestManager, ArrayList photos, ArrayList selectedPaths, boolean showCamera)
- {
+ public FolderGridAdapter(Context context, RequestManager requestManager, ArrayList photos, ArrayList selectedPaths, boolean showCamera) {
super(photos, selectedPaths);
this.context = context;
this.glide = requestManager;
@@ -58,42 +77,37 @@ public class FolderGridAdapter extends SelectableAdapter {
+ if(folderGridAdapterListener!=null) {
+ folderGridAdapterListener.onFolderClicked(photoDirectory);
}
});
holder.bottomOverlay.setVisibility(View.VISIBLE);
- }
- else
- {
+ } else {
holder.imageView.setImageResource(PickerManager.getInstance().getCameraDrawable());
holder.itemView.setOnClickListener(view -> {
if(folderGridAdapterListener!=null) {
@@ -115,13 +129,14 @@ public class FolderGridAdapter extends SelectableAdapter {
+public class ImageGridAdapter extends SelectableAdapter implements RequestListener {
private final Context context;
private final RequestManager glide;
private final boolean showCamera;
@@ -36,13 +41,7 @@ public class ImageGridAdapter extends SelectableAdapter medias,
- ArrayList selectedPaths,
- boolean showCamera,
- FileAdapterListener photoGridAdapterListener)
- {
+ public ImageGridAdapter(Context context, RequestManager requestManager, ArrayList medias, ArrayList selectedPaths, boolean showCamera, FileAdapterListener photoGridAdapterListener) {
super(medias, selectedPaths);
this.context = context;
this.glide = requestManager;
@@ -70,13 +69,13 @@ public class ImageGridAdapter extends SelectableAdapter target, boolean isFirstResource) {
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(GlideDrawable resource, File model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {
+ if(resource.isAnimated()) {
+ target.onResourceReady(new GlideBitmapDrawable(null, ((GifDrawable) resource).getFirstFrame()), null);
+ return true;
+ }
+
+ return false;
+ }
+
+ static class ImageViewHolder extends RecyclerView.ViewHolder {
CheckBox checkBox;
ImageView imageView;
@@ -173,7 +180,7 @@ public class ImageGridAdapter extends SelectableAdapter() {
- @Override
- public void onResultCallback(List files) {
- if(!isAdded()) return;
- progressBar.setVisibility(View.GONE);
- setDataOnFragments(files);
+ MediaStoreHelper.getDocs(getActivity(), files -> {
+ if(!isAdded()) {
+ return;
}
+
+ progressBar.setVisibility(View.GONE);
+ setDataOnFragments(files);
});
}
private void setDataOnFragments(List files) {
SectionsPagerAdapter sectionsPagerAdapter = (SectionsPagerAdapter) viewPager.getAdapter();
- if(sectionsPagerAdapter!=null)
- {
+
+ if(sectionsPagerAdapter != null) {
for (int index = 0; index < sectionsPagerAdapter.getCount(); index++) {
- DocFragment docFragment = (DocFragment) getChildFragmentManager()
- .findFragmentByTag(
- "android:switcher:" + R.id.viewPager + ":"+index);
- if(docFragment!=null)
- {
+ DocFragment docFragment = (DocFragment) getChildFragmentManager().findFragmentByTag("android:switcher:" + R.id.viewPager + ":"+index);
+
+ if(docFragment != null) {
FileType fileType = docFragment.getFileType();
- if(fileType!=null)
+
+ if(fileType != null) {
docFragment.updateList(filterDocuments(fileType.extensions, files));
+ }
}
}
}
@@ -131,6 +130,7 @@ public class DocPickerFragment extends BaseFragment {
private void setUpViewPager() {
SectionsPagerAdapter adapter = new SectionsPagerAdapter(getChildFragmentManager());
ArrayList supportedTypes = PickerManager.getInstance().getFileTypes();
+
for (int index = 0; index < supportedTypes.size(); index++) {
adapter.addFragment(DocFragment.newInstance(supportedTypes.get(index)),supportedTypes.get(index).title);
}
@@ -143,13 +143,8 @@ public class DocPickerFragment extends BaseFragment {
mTabLayoutHelper.setAutoAdjustTabModeEnabled(true);
}
- private ArrayList filterDocuments(final String[] type, List documents)
- {
- final Predicate docType = new Predicate() {
- public boolean apply(Document document) {
- return document.isThisType(type);
- }
- };
+ private ArrayList filterDocuments(final String[] type, List documents) {
+ final Predicate docType = document -> document.isThisType(type);
return new ArrayList<>(Utils.filter(new HashSet<>(documents),docType));
}
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaDetailPickerFragment.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaDetailPickerFragment.java
index 3964627..09b0fd1 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaDetailPickerFragment.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaDetailPickerFragment.java
@@ -22,7 +22,6 @@ import com.bumptech.glide.RequestManager;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import de.beyondsoft.ownchat.R;
@@ -30,7 +29,6 @@ import de.beyondsoft.ownchat.filepicker.FilePickerConst;
import de.beyondsoft.ownchat.filepicker.PickerManager;
import de.beyondsoft.ownchat.filepicker.adapters.FileAdapterListener;
import de.beyondsoft.ownchat.filepicker.adapters.ImageGridAdapter;
-import de.beyondsoft.ownchat.filepicker.cursors.loadercallbacks.FileResultCallback;
import de.beyondsoft.ownchat.filepicker.models.ImageDirectory;
import de.beyondsoft.ownchat.filepicker.models.Media;
import de.beyondsoft.ownchat.filepicker.utils.AndroidLifecycleUtils;
@@ -60,8 +58,7 @@ public class MediaDetailPickerFragment extends BaseFragment implements FileAdapt
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_image_picker, container, false);
}
@@ -69,11 +66,11 @@ public class MediaDetailPickerFragment extends BaseFragment implements FileAdapt
@Override
public void onAttach(Context context) {
super.onAttach(context);
+
if (context instanceof ImagePickerFragmentListener) {
mListener = (ImagePickerFragmentListener) context;
} else {
- throw new RuntimeException(context.toString()
- + " must implement PhotoPickerFragmentListener");
+ throw new RuntimeException(context.toString() + " must implement PhotoPickerFragmentListener");
}
}
@@ -126,7 +123,7 @@ public class MediaDetailPickerFragment extends BaseFragment implements FileAdapt
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
- // Log.d(">>> Picker >>>", "dy = " + dy);
+
if (Math.abs(dy) > SCROLL_THRESHOLD) {
mGlideRequestManager.pauseRequests();
} else {
@@ -149,85 +146,62 @@ public class MediaDetailPickerFragment extends BaseFragment implements FileAdapt
mediaStoreArgs.putInt(FilePickerConst.EXTRA_FILE_TYPE, fileType);
if(fileType==FilePickerConst.MEDIA_TYPE_IMAGE) {
- MediaStoreHelper.getPhotoDirs(getActivity(), mediaStoreArgs,
- dirs -> updateList(dirs));
- }
- else if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO)
- {
- MediaStoreHelper.getVideoDirs(getActivity(), mediaStoreArgs,
- dirs -> updateList(dirs));
+ MediaStoreHelper.getPhotoDirs(getActivity(), mediaStoreArgs, this::updateList);
+ } else if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO) {
+ MediaStoreHelper.getVideoDirs(getActivity(), mediaStoreArgs, this::updateList);
}
}
private void updateList(List dirs) {
ArrayList medias = new ArrayList<>();
+
for (int i = 0; i < dirs.size(); i++) {
medias.addAll(dirs.get(i).getMedias());
}
- Collections.sort(medias,new Comparator() {
- @Override
- public int compare(Media a, Media b) {
- return b.getId() - a.getId();
- }
- });
+ Collections.sort(medias, (a, b) -> b.getId() - a.getId());
- if(medias.size()>0) {
+ if(medias.size() > 0) {
emptyView.setVisibility(View.GONE);
- }
- else {
+ } else {
emptyView.setVisibility(View.VISIBLE);
}
- if(photoGridAdapter!=null)
- {
+ if(photoGridAdapter != null) {
photoGridAdapter.setData(medias);
photoGridAdapter.notifyDataSetChanged();
- }
- else
- {
- photoGridAdapter = new ImageGridAdapter(getActivity(), mGlideRequestManager, (ArrayList) medias, PickerManager.getInstance().getSelectedPhotos(),(fileType==FilePickerConst.MEDIA_TYPE_IMAGE) && PickerManager.getInstance().isEnableCamera(), this);
+ } else {
+ photoGridAdapter = new ImageGridAdapter(getActivity(), mGlideRequestManager, medias, PickerManager.getInstance().getSelectedPhotos(),(fileType==FilePickerConst.MEDIA_TYPE_IMAGE) && PickerManager.getInstance().isEnableCamera(), this);
recyclerView.setAdapter(photoGridAdapter);
- photoGridAdapter.setCameraListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- try {
- Intent intent = imageCaptureManager.dispatchTakePictureIntent(getActivity());
- if(intent!=null)
- startActivityForResult(intent, ImageCaptureManager.REQUEST_TAKE_PHOTO);
- else
- Toast.makeText(getActivity(), R.string.no_camera_exists, Toast.LENGTH_SHORT).show();
- } catch (IOException e) {
- e.printStackTrace();
+ photoGridAdapter.setCameraListener(v -> {
+ try {
+ Intent intent = imageCaptureManager.dispatchTakePictureIntent(getActivity());
+
+ if(intent!=null) {
+ startActivityForResult(intent, ImageCaptureManager.REQUEST_TAKE_PHOTO);
+ } else {
+ Toast.makeText(getActivity(), R.string.no_camera_exists, Toast.LENGTH_SHORT).show();
}
+ } catch (IOException e) {
+ e.printStackTrace();
}
});
}
-
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode)
- {
+
+ switch (requestCode) {
case ImageCaptureManager.REQUEST_TAKE_PHOTO:
- if(resultCode== Activity.RESULT_OK)
- {
+ if(resultCode== Activity.RESULT_OK) {
String imagePath = imageCaptureManager.galleryAddPic();
- if(imagePath!=null && PickerManager.getInstance().getMaxCount()==1)
- {
+ if(imagePath!=null && PickerManager.getInstance().getMaxCount() == 1) {
PickerManager.getInstance().add(imagePath, FilePickerConst.FILE_TYPE_MEDIA);
mListener.onItemSelected();
- }
- else {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- getDataFromMedia();
-
- }
- }, 1000);
+ } else {
+ new Handler().postDelayed(() -> getDataFromMedia(), 1000);
}
}
break;
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaFolderPickerFragment.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaFolderPickerFragment.java
index 7e51101..c572dbd 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaFolderPickerFragment.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/filepicker/fragments/MediaFolderPickerFragment.java
@@ -28,7 +28,6 @@ import de.beyondsoft.ownchat.filepicker.FilePickerConst;
import de.beyondsoft.ownchat.filepicker.MediaDetailsActivity;
import de.beyondsoft.ownchat.filepicker.PickerManager;
import de.beyondsoft.ownchat.filepicker.adapters.FolderGridAdapter;
-import de.beyondsoft.ownchat.filepicker.cursors.loadercallbacks.FileResultCallback;
import de.beyondsoft.ownchat.filepicker.models.ImageDirectory;
import de.beyondsoft.ownchat.filepicker.utils.AndroidLifecycleUtils;
import de.beyondsoft.ownchat.filepicker.utils.GridSpacingItemDecoration;
@@ -52,14 +51,11 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
private RequestManager mGlideRequestManager;
private int fileType;
- public MediaFolderPickerFragment() {
- // Required empty public constructor
- }
+ public MediaFolderPickerFragment() {}
@Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_media_folder_picker, container, false);
}
@@ -67,11 +63,11 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
@Override
public void onAttach(Context context) {
super.onAttach(context);
+
if (context instanceof ImagePickerFragmentListener) {
mListener = (ImagePickerFragmentListener) context;
} else {
- throw new RuntimeException(context.toString()
- + " must implement PhotoPickerFragmentListener");
+ throw new RuntimeException(context.toString() + " must implement PhotoPickerFragmentListener");
}
}
@@ -102,8 +98,8 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
}
private void initView(View view) {
- recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
- emptyView = (TextView) view.findViewById(R.id.empty_view);
+ recyclerView = view.findViewById(R.id.recyclerview);
+ emptyView = view.findViewById(R.id.empty_view);
fileType = getArguments().getInt(FILE_TYPE);
imageCaptureManager = new ImageCaptureManager(getActivity());
@@ -111,21 +107,22 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
int spanCount = 2; // 2 columns
int spacing = 5; // 5px
- boolean includeEdge = false;
- recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge));
+
+ recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, false));
recyclerView.setLayoutManager(layoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
- // Log.d(">>> Picker >>>", "dy = " + dy);
+
if (Math.abs(dy) > SCROLL_THRESHOLD) {
mGlideRequestManager.pauseRequests();
} else {
resumeRequestsIfNotDestroyed();
}
}
+
@Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
resumeRequestsIfNotDestroyed();
@@ -142,23 +139,19 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
mediaStoreArgs.putInt(FilePickerConst.EXTRA_FILE_TYPE, fileType);
if(fileType==FilePickerConst.MEDIA_TYPE_IMAGE) {
- MediaStoreHelper.getPhotoDirs(getActivity(), mediaStoreArgs,
- dirs -> updateList(dirs));
- }
- else if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO)
- {
- MediaStoreHelper.getVideoDirs(getActivity(), mediaStoreArgs,
- dirs -> updateList(dirs));
+ MediaStoreHelper.getPhotoDirs(getActivity(), mediaStoreArgs, this::updateList);
+ } else if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO) {
+ MediaStoreHelper.getVideoDirs(getActivity(), mediaStoreArgs, this::updateList);
}
}
private void updateList(List dirs) {
Log.i("updateList",""+dirs.size());
+
if(dirs.size()>0) {
emptyView.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
- }
- else {
+ } else {
emptyView.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
return;
@@ -167,20 +160,15 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
ImageDirectory photoDirectory = new ImageDirectory();
photoDirectory.setBucketId(FilePickerConst.ALL_PHOTOS_BUCKET_ID);
- if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO)
- {
+ if(fileType==FilePickerConst.MEDIA_TYPE_VIDEO) {
photoDirectory.setName(getString(R.string.all_videos));
- }
- else if(fileType==FilePickerConst.MEDIA_TYPE_IMAGE)
- {
+ } else if(fileType==FilePickerConst.MEDIA_TYPE_IMAGE) {
photoDirectory.setName(getString(R.string.all_photos));
- }
- else {
+ } else {
photoDirectory.setName(getString(R.string.all_files));
}
- if(dirs.size()>0 && dirs.get(0).getMedias().size()>0)
- {
+ if(dirs.size() > 0 && dirs.get(0).getMedias().size() > 0) {
photoDirectory.setDateAdded(dirs.get(0).getDateAdded());
photoDirectory.setCoverPath(dirs.get(0).getMedias().get(0).getPath());
}
@@ -191,29 +179,27 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
dirs.add(0,photoDirectory);
- if(photoGridAdapter!=null)
- {
+ if(photoGridAdapter != null) {
photoGridAdapter.setData(dirs);
photoGridAdapter.notifyDataSetChanged();
- }
- else
- {
+ } else {
photoGridAdapter = new FolderGridAdapter(getActivity(), mGlideRequestManager, (ArrayList) dirs, null, (fileType== FilePickerConst.MEDIA_TYPE_IMAGE) && PickerManager.getInstance().isEnableCamera());
recyclerView.setAdapter(photoGridAdapter);
photoGridAdapter.setFolderGridAdapterListener(this);
}
-
}
@Override
public void onCameraClicked() {
try {
Intent intent = imageCaptureManager.dispatchTakePictureIntent(getActivity());
- if(intent!=null)
+
+ if(intent!=null) {
startActivityForResult(intent, ImageCaptureManager.REQUEST_TAKE_PHOTO);
- else
+ } else {
Toast.makeText(getActivity(), R.string.no_camera_exists, Toast.LENGTH_SHORT).show();
+ }
} catch (IOException e) {
e.printStackTrace();
}
@@ -230,27 +216,21 @@ public class MediaFolderPickerFragment extends BaseFragment implements FolderGri
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
- switch (requestCode)
- {
+
+ switch(requestCode) {
case ImageCaptureManager.REQUEST_TAKE_PHOTO:
- if(resultCode== Activity.RESULT_OK)
- {
+ if(resultCode== Activity.RESULT_OK) {
String imagePath = imageCaptureManager.galleryAddPic();
+
if(imagePath!=null && PickerManager.getInstance().getMaxCount()==1)
{
PickerManager.getInstance().add(imagePath, FilePickerConst.FILE_TYPE_MEDIA);
mListener.onItemSelected();
- }
- else {
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- getDataFromMedia();
-
- }
- }, 1000);
+ } else {
+ new Handler().postDelayed(this::getDataFromMedia, 1000);
}
}
+
break;
}
}
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 10a340b..00ce2f2 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
@@ -630,9 +630,9 @@ abstract class BaseChatActivity extends RuntimePermissionActivity implements Cha
@Override
protected void onNewIntent(Intent intent) {
- boolean test = intent.getBooleanExtra("TEST_EXTRA", false);
+ boolean hasOpenChat = intent.getBooleanExtra(Constants.HAS_OPEN_CHAT, false);
- if(test) {
+ if(hasOpenChat) {
Group group = intent.getParcelableExtra(GROUP_ARG);
if(group != null) {
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 f578244..6f681d7 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
@@ -213,6 +213,7 @@ abstract class BaseChatAdapter extends RecyclerView.Adapter {
@BindView(R.id.file_message)
EmojiconEditText mMessageEmojiconEditText;
@@ -69,6 +74,9 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
@BindView(R.id.chat_toolbar_extra_image)
ImageView mExtraImageView;
+ @BindView(R.id.file_preview_progress_bar)
+ ProgressBar statusProgressBar;
+
@Inject
FileConfirmationPresenter mFileConfirmationPresenter;
@@ -91,11 +99,16 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
mSelectedUri = Uri.parse(fileUri);
+ ViewUtils.setProgressBarColor(statusProgressBar, R.color.colorDefault);
+
+ showLoading();
+
Glide.with(this)
.load(fileUri)
.dontAnimate()
.placeholder(R.drawable.document)
.diskCacheStrategy(DiskCacheStrategy.ALL)
+ .listener(this)
.into(new GlideDrawableImageViewTarget(mFileImageView));
mGroup = getIntent().getParcelableExtra(Constants.EXTRA_GROUP);
@@ -159,7 +172,12 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
@Override
public void showLoading() {
+ statusProgressBar.setVisibility(View.VISIBLE);
+ }
+ @Override
+ public void hideLoading() {
+ statusProgressBar.setVisibility(View.GONE);
}
@Override
@@ -176,4 +194,18 @@ public class FileConfirmationActivity extends AppCompatActivity implements FileC
public void showError(String message) {
}
+
+ @Override
+ public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {
+ hideLoading();
+
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(GlideDrawable resource, String model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {
+ hideLoading();
+
+ return false;
+ }
}
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationView.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationView.java
index 499c1c2..20b2d94 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationView.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/fileconfirmation/FileConfirmationView.java
@@ -7,5 +7,7 @@ import de.beyondsoft.ownchat.page.mvp.MVPLceView;
*/
public interface FileConfirmationView extends MVPLceView {
+ void showLoading();
+ void hideLoading();
}
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java
index e74f58e..4ce18a1 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/java/de/beyondsoft/ownchat/page/sharing/SharingActivity.java
@@ -9,11 +9,9 @@ import android.support.annotation.StringRes;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
-import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
@@ -27,16 +25,15 @@ import butterknife.OnClick;
import de.beyondsoft.ownchat.R;
import de.beyondsoft.ownchat.data.AppPrefsConstants;
import de.beyondsoft.ownchat.data.prefs.BooleanPreference;
-import de.beyondsoft.ownchat.data.prefs.LongPreference;
import de.beyondsoft.ownchat.data.prefs.StringPreference;
import de.beyondsoft.ownchat.di.InjectionHelper;
import de.beyondsoft.ownchat.model.Group;
import de.beyondsoft.ownchat.page.chat.GroupChatActivity;
import de.beyondsoft.ownchat.page.chat.SingleChatActivity;
import de.beyondsoft.ownchat.page.common.RuntimePermissionActivity;
-import de.beyondsoft.ownchat.page.contacts.ContactsFragment;
import de.beyondsoft.ownchat.page.login.LoginActivity;
import de.beyondsoft.ownchat.page.main.MainActivity;
+import de.beyondsoft.ownchat.utils.Constants;
import de.beyondsoft.ownchat.utils.ui.EmptyLayout;
import de.beyondsoft.ownchat.utils.ui.HorizontalDividerItemDecoration;
@@ -160,7 +157,7 @@ public class SharingActivity extends RuntimePermissionActivity implements Sharin
@Override
public void onOpenGroupMessage(Group group) {
Intent intent = GroupChatActivity.createIntent(this, group);
- intent.putExtra("TEST_EXTRA", true);
+ intent.putExtra(Constants.HAS_OPEN_CHAT, true);
startActivity(intent);
finishAffinity();
@@ -170,7 +167,7 @@ public class SharingActivity extends RuntimePermissionActivity implements Sharin
public void onOpenPrivateMessage(Group contact) {
Intent intent = SingleChatActivity.createIntent(this, contact);
- intent.putExtra("TEST_EXTRA", true);
+ intent.putExtra(Constants.HAS_OPEN_CHAT, true);
startActivity(intent);
finishAffinity();
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 f2ae2f1..2f6c56f 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
@@ -32,4 +32,6 @@ public interface Constants {
String MIME_TYPE_GIF = "image/gif";
String TMP_FILE_DIR = "tmp_files";
+
+ String HAS_OPEN_CHAT = "has_open_chat";
}
\ No newline at end of file
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_chat.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_chat.xml
index c8a72fc..469f19e 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_chat.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/activity_chat.xml
@@ -42,7 +42,6 @@
android:layout_height="wrap_content"
android:contentDescription="@null"
android:paddingBottom="10dp"
- android:paddingLeft="16dp"
android:paddingStart="16dp"
android:paddingTop="10dp"
android:src="@drawable/smiley"
@@ -55,8 +54,6 @@
android:contentDescription="@null"
android:paddingBottom="10dp"
android:paddingEnd="22dp"
- android:paddingLeft="16dp"
- android:paddingRight="22dp"
android:paddingStart="16dp"
android:paddingTop="10dp"
android:src="@drawable/attachment"
@@ -71,7 +68,6 @@
android:background="@android:color/transparent"
android:hint="@string/chat_type_your_message"
android:paddingEnd="5dp"
- android:paddingRight="5dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:scrollHorizontally="false"
@@ -87,7 +83,6 @@
android:layout_height="wrap_content"
android:contentDescription="@null"
android:paddingEnd="16dp"
- android:paddingRight="16dp"
android:src="@drawable/send"
tools:ignore="RtlSymmetry" />
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 fc769e5..c052c1a 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
@@ -11,12 +11,22 @@
+
+
+ android:layout_height="match_parent"
+ android:src="@drawable/document"
+ android:contentDescription="@null" />
-
+
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_folder_layout.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_folder_layout.xml
index 742ba81..0ee2442 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_folder_layout.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_folder_layout.xml
@@ -26,8 +26,9 @@
+ android:textColor="@color/colorAccent"
+ android:textSize="13.0sp"
+ tools:text="All Photos" />
+ android:textColor="@color/colorAccent"
+ android:textSize="12sp"
+ tools:text="123" />
\ No newline at end of file
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_single_chat_right.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_single_chat_right.xml
index 88bb35c..b7e1cf0 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_single_chat_right.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/layout/item_single_chat_right.xml
@@ -8,13 +8,9 @@
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
- android:paddingLeft="40dp"
android:paddingEnd="40dp"
- android:paddingRight="0dp"
android:paddingStart="0dp">
-
-
@@ -58,8 +51,6 @@
android:layout_alignBottom="@+id/chat_item_time"
android:layout_alignTop="@+id/chat_item_time"
android:layout_marginStart="5dp"
- android:layout_marginLeft="5dp"
- android:layout_toRightOf="@+id/chat_item_time"
android:layout_toEndOf="@+id/chat_item_time"
android:contentDescription="@null"
android:visibility="gone"
@@ -70,7 +61,6 @@
android:id="@+id/chat_item_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="@color/colorTimestamp"
android:textSize="10sp"
@@ -82,7 +72,6 @@
android:id="@+id/chat_item_file"
android:layout_width="wrap_content"
android:layout_height="120dp"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@id/chat_item_time"
android:layout_marginTop="4dp"
@@ -97,7 +86,6 @@
android:id="@+id/chat_item_progress"
android:layout_width="90dp"
android:layout_height="90dp"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@id/chat_item_time"
android:layout_marginTop="4dp"
@@ -111,7 +99,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_below="@+id/chat_item_file"
android:textColor="@color/colorBlack"
android:visibility="gone"
@@ -123,7 +110,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_below="@id/chat_item_file_name"
android:visibility="gone"
emojicon:emojiconSize="20sp"
diff --git a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/colors.xml b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/colors.xml
index a3a0fba..04842b9 100644
--- a/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/colors.xml
+++ b/BeWoPlanerChat/bewoplaner-chat-android/app/src/main/res/values/colors.xml
@@ -6,7 +6,7 @@
#F3F3F3
#000000
#ffffff
- #FFFF5E00
+ #ff5e00
#B3FF5E00
#4D000000
#80000000