Эх сурвалжийг харах

Merge pull request #2700 from nextcloud/emailShare

Iteration 4 for File detail & new sharing - email share
Andy Scherzinger 6 жил өмнө
parent
commit
b3d3d3c047

+ 1 - 1
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;

+ 4 - 0
src/main/java/com/owncloud/android/providers/UsersAndGroupsSearchProvider.java

@@ -110,6 +110,7 @@ public class UsersAndGroupsSearchProvider extends ContentProvider {
         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 @@ public class UsersAndGroupsSearchProvider extends ContentProvider {
                         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) {

+ 0 - 7
src/main/java/com/owncloud/android/ui/fragment/util/FileDetailSharingFragmentHelper.java

@@ -22,18 +22,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;
-
 /**
  * Helper calls for visibility logic of the sharing fragment.
  */

+ 0 - 5
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;

+ 6 - 12
src/main/java/com/owncloud/android/ui/helpers/FileOperationsHelper.java

@@ -34,7 +34,6 @@ import android.net.Uri;
 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("<string>(.+)</string>");
-    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 class FileOperationsHelper {
      * @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 class FileOperationsHelper {
     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 class FileOperationsHelper {
      * @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();
     }
 
     /**

+ 4 - 3
src/main/java/com/owncloud/android/utils/ThemeUtils.java

@@ -236,7 +236,7 @@ public class ThemeUtils {
      * 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 class ThemeUtils {
         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) {