Pārlūkot izejas kodu

add sharee works

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
tobiasKaminsky 7 gadi atpakaļ
vecāks
revīzija
391368947c

+ 1 - 0
src/main/AndroidManifest.xml

@@ -80,6 +80,7 @@
         tools:ignore="UnusedAttribute">
         <activity
             android:name=".ui.activity.FileDisplayActivity"
+            android:launchMode="singleTop"
             android:label="@string/app_name"
             android:configChanges="orientation|screenSize"
             android:theme="@style/Theme.ownCloud.Launcher">

+ 17 - 12
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -87,6 +87,7 @@ import com.owncloud.android.media.MediaServiceBinder;
 import com.owncloud.android.operations.CopyFileOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateShareViaLinkOperation;
+import com.owncloud.android.operations.CreateShareWithShareeOperation;
 import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RefreshFolderOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
@@ -102,10 +103,8 @@ import com.owncloud.android.ui.events.SyncEventFinished;
 import com.owncloud.android.ui.events.TokenPushEvent;
 import com.owncloud.android.ui.fragment.ExtendedListFragment;
 import com.owncloud.android.ui.fragment.FileDetailFragment;
-import com.owncloud.android.ui.fragment.FileDetailSharingFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
-import com.owncloud.android.ui.fragment.ShareFileFragment;
 import com.owncloud.android.ui.fragment.TaskRetainerFragment;
 import com.owncloud.android.ui.fragment.contactsbackup.ContactListFragment;
 import com.owncloud.android.ui.helpers.FileOperationsHelper;
@@ -515,11 +514,7 @@ public class FileDisplayActivity extends HookActivity
                 }
 
                 if (!shareeNames.contains(shareWith)) {
-
-                    doShareWith(
-                            shareWith,
-                            data.getAuthority()
-                    );
+                    doShareWith(shareWith, data.getAuthority());
                 }
 
             } else {
@@ -1689,23 +1684,20 @@ public class FileDisplayActivity extends HookActivity
 
         if (operation instanceof RemoveFileOperation) {
             onRemoveFileOperationFinish((RemoveFileOperation) operation, result);
-
         } else if (operation instanceof RenameFileOperation) {
             onRenameFileOperationFinish((RenameFileOperation) operation, result);
-
         } else if (operation instanceof SynchronizeFileOperation) {
             onSynchronizeFileOperationFinish((SynchronizeFileOperation) operation, result);
-
         } else if (operation instanceof CreateFolderOperation) {
             onCreateFolderOperationFinish((CreateFolderOperation) operation, result);
-
         } else if (operation instanceof MoveFileOperation) {
             onMoveFileOperationFinish((MoveFileOperation) operation, result);
-
         } else if (operation instanceof CopyFileOperation) {
             onCopyFileOperationFinish((CopyFileOperation) operation, result);
         } else if (operation instanceof CreateShareViaLinkOperation) {
             onCreateShareViaLinkOperationFinish((CreateShareViaLinkOperation) operation, result);
+        } else if (operation instanceof CreateShareWithShareeOperation) {
+            onCreateShareWithShareeOperationFinish(result);
         }
     }
 
@@ -1882,6 +1874,19 @@ public class FileDisplayActivity extends HookActivity
         }
     }
 
+    private void onCreateShareWithShareeOperationFinish(RemoteOperationResult result) {
+
+        Fragment fileDetailFragment = getSecondFragment();
+
+        if (result.isSuccess()) {
+            if (fileDetailFragment instanceof FileDetailFragment) {
+                ((FileDetailFragment) fileDetailFragment).getFileDetailSharingFragment().setShareWithUserInfo();
+            }
+        } else {
+            Snackbar.make(fileDetailFragment.getView(), R.string.sharee_add_failed, Snackbar.LENGTH_LONG).show();
+        }
+    }
+
     /**
      * Shortcut to get access to the {@link FileDetailFragment} instance, if any
      *

+ 6 - 14
src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java

@@ -24,13 +24,10 @@ import android.accounts.Account;
 import android.app.SearchManager;
 import android.content.Context;
 import android.content.res.Resources;
-import android.graphics.PorterDuff;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.v4.app.Fragment;
-import android.support.v7.widget.AppCompatButton;
 import android.support.v7.widget.SearchView;
-import android.support.v7.widget.SwitchCompat;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -57,7 +54,6 @@ import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.adapter.UserListAdapter;
 import com.owncloud.android.ui.dialog.ExpirationDatePickerDialogFragment;
 import com.owncloud.android.ui.dialog.SharePasswordDialogFragment;
-import com.owncloud.android.utils.ThemeUtils;
 
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -216,14 +212,12 @@ public class FileDetailSharingFragment extends Fragment implements UserListAdapt
     /**
      * Update Share With data
      */
-    private void setShareWithUserInfo(){
+    public void setShareWithUserInfo() {
         // Get Users and Groups
         if (((FileActivity) getActivity()).getStorageManager() != null) {
-            FileDataStorageManager fileDataStorageManager = ((FileActivity) getActivity())
-                    .getStorageManager();
-            mShares = fileDataStorageManager.getSharesWithForAFile(
-                    file.getRemotePath(),account.name
-            );
+            FileDataStorageManager fileDataStorageManager = ((FileActivity) getActivity()).getStorageManager();
+
+            mShares = fileDataStorageManager.getSharesWithForAFile(file.getRemotePath(), account.name);
 
             // Update list of users/groups
             updateListOfUserGroups();
@@ -233,10 +227,8 @@ public class FileDetailSharingFragment extends Fragment implements UserListAdapt
     private void updateListOfUserGroups() {
         // Update list of users/groups
         // TODO Refactoring: create a new {@link ShareUserListAdapter} instance with every call should not be needed
-        UserListAdapter mUserGroupsAdapter = new UserListAdapter(
-                getActivity().getApplicationContext(),
-                R.layout.share_user_item, mShares, account, file,this
-        );
+        UserListAdapter mUserGroupsAdapter = new UserListAdapter(getActivity().getApplicationContext(),
+                R.layout.share_user_item, mShares, account, file, this);
 
         if (mShares.size() > 0) {
             usersList.setVisibility(View.VISIBLE);

+ 1 - 0
src/main/res/values/strings.xml

@@ -791,4 +791,5 @@
     <string name="create_new_folder">Create new folder</string>
     <string name="uploads_view_upload_status_virus_detected">Virus detected. Upload cannot be completed!</string>
     <string name="tags">Tags</string>
+    <string name="sharee_add_failed">Adding sharee failed</string>
 </resources>