diff --git a/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java b/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java index 79a6f73b0c45..c054601f390f 100644 --- a/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java +++ b/src/main/java/com/owncloud/android/operations/CreateShareWithShareeOperation.java @@ -55,7 +55,7 @@ public class CreateShareWithShareeOperation extends SyncOperation { */ public CreateShareWithShareeOperation(String path, String shareeName, ShareType shareType, int permissions) { if (!ShareType.USER.equals(shareType) && !ShareType.GROUP.equals(shareType) - && !ShareType.FEDERATED.equals(shareType)) { + && !ShareType.FEDERATED.equals(shareType) && !ShareType.EMAIL.equals(shareType)) { throw new IllegalArgumentException("Illegal share type " + shareType); } mPath = path; diff --git a/src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java b/src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java index 586a11e451a9..38d8e6e11665 100644 --- a/src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java +++ b/src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java @@ -110,6 +110,7 @@ public boolean onCreate() { sShareTypes.put(DATA_USER, ShareType.USER); sShareTypes.put(DATA_GROUP, ShareType.GROUP); sShareTypes.put(DATA_REMOTE, ShareType.FEDERATED); + sShareTypes.put(DATA_REMOTE, ShareType.EMAIL); mUriMatcher = new UriMatcher(UriMatcher.NO_MATCH); mUriMatcher.addURI(AUTHORITY, SearchManager.SUGGEST_URI_PATH_QUERY + "/*", SEARCH); @@ -215,6 +216,9 @@ private Cursor searchForUsersOrGroups(Uri uri) { displayName = userName; icon = R.drawable.ic_user; dataUri = Uri.withAppendedPath(userBaseUri, shareWith); + } else if (ShareType.EMAIL.getValue() == type) { + icon = R.drawable.ic_email; + displayName = getContext().getString(R.string.share_email_clarification, userName); } if (displayName != null && dataUri != null) { diff --git a/src/main/java/com/owncloud/android/ui/fragment/util/FileDetailSharingFragmentHelper.java b/src/main/java/com/owncloud/android/ui/fragment/util/FileDetailSharingFragmentHelper.java index 9ab5eab0d34f..84b85fc013ef 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/util/FileDetailSharingFragmentHelper.java +++ b/src/main/java/com/owncloud/android/ui/fragment/util/FileDetailSharingFragmentHelper.java @@ -22,18 +22,11 @@ import android.app.SearchManager; import android.content.ComponentName; -import android.content.res.Resources; import android.support.v7.widget.SearchView; -import android.view.MenuItem; import android.view.inputmethod.EditorInfo; -import com.owncloud.android.R; -import com.owncloud.android.lib.resources.shares.OCShare; import com.owncloud.android.lib.resources.status.OCCapability; -import java.text.SimpleDateFormat; -import java.util.Date; - /** * Helper calls for visibility logic of the sharing fragment. */ diff --git a/src/main/java/com/owncloud/android/ui/fragment/util/SharingMenuHelper.java b/src/main/java/com/owncloud/android/ui/fragment/util/SharingMenuHelper.java index 454a33d9dfe9..e68791fc61ff 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/util/SharingMenuHelper.java +++ b/src/main/java/com/owncloud/android/ui/fragment/util/SharingMenuHelper.java @@ -20,16 +20,11 @@ package com.owncloud.android.ui.fragment.util; -import android.app.SearchManager; -import android.content.ComponentName; import android.content.res.Resources; -import android.support.v7.widget.SearchView; import android.view.MenuItem; -import android.view.inputmethod.EditorInfo; import com.owncloud.android.R; import com.owncloud.android.lib.resources.shares.OCShare; -import com.owncloud.android.lib.resources.status.OCCapability; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java b/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java index 23a5842f4612..63f819ea3808 100755 --- a/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java +++ b/src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java @@ -34,7 +34,6 @@ import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.Nullable; -import android.support.design.widget.Snackbar; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.content.FileProvider; @@ -93,7 +92,7 @@ public class FileOperationsHelper { private static final String TAG = FileOperationsHelper.class.getSimpleName(); private static final Pattern mPatternUrl = Pattern.compile("^URL=(.+)$"); private static final Pattern mPatternString = Pattern.compile("(.+)"); - private FileActivity mFileActivity = null; + private FileActivity mFileActivity; /// Identifier of operation in progress which result shouldn't be lost private long mWaitingForOpId = Long.MAX_VALUE; @@ -432,10 +431,8 @@ public void shareFileWithSharee(OCFile file, String shareeName, ShareType shareT * @return 'True' if the server supports the Share API */ public boolean isSharedSupported() { - if (mFileActivity.getAccount() != null) { - return AccountUtils.getServerVersion(mFileActivity.getAccount()).isSharedSupported(); - } - return false; + return mFileActivity.getAccount() != null && + AccountUtils.getServerVersion(mFileActivity.getAccount()).isSharedSupported(); } @@ -475,8 +472,7 @@ public void unshareFileWithUserOrGroup(OCFile file, ShareType shareType, String private void queueShareIntent(Intent shareIntent) { if (isSharedSupported()) { // Unshare the file - mWaitingForOpId = mFileActivity.getOperationsServiceBinder(). - queueNewOperation(shareIntent); + mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(shareIntent); mFileActivity.showLoadingDialog(mFileActivity.getApplicationContext(). getString(R.string.wait_a_moment)); @@ -943,10 +939,8 @@ public void setOpIdWaitingFor(long waitingForOpId) { * @return 'True' if the server doesn't need to check forbidden characters */ public boolean isVersionWithForbiddenCharacters() { - if (mFileActivity.getAccount() != null) { - return AccountUtils.getServerVersion(mFileActivity.getAccount()).isVersionWithForbiddenCharacters(); - } - return false; + return mFileActivity.getAccount() != null && + AccountUtils.getServerVersion(mFileActivity.getAccount()).isVersionWithForbiddenCharacters(); } /** diff --git a/src/main/java/com/owncloud/android/utils/ThemeUtils.java b/src/main/java/com/owncloud/android/utils/ThemeUtils.java index 41bef373b460..ef736b03e35b 100644 --- a/src/main/java/com/owncloud/android/utils/ThemeUtils.java +++ b/src/main/java/com/owncloud/android/utils/ThemeUtils.java @@ -236,7 +236,7 @@ public static void setStatusBarColor(Activity activity, @ColorInt int color) { * Adjust lightness of given color * * @param lightnessDelta values -1..+1 - * @param color + * @param color original color * @param threshold 0..1 as maximum value, -1 to disable * @return color adjusted by lightness */ @@ -374,15 +374,16 @@ public static Drawable tintDrawable(@DrawableRes int id, int color) { return tintDrawable(drawable, color); } + @Nullable public static Drawable tintDrawable(Drawable drawable, int color) { if (drawable != null) { Drawable wrap = DrawableCompat.wrap(drawable); wrap.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); return wrap; - } else { - return drawable; } + + return null; } public static String colorToHexString(int color) {