Revert "Changes from comments in PR#442, in oc-project"
[pub/Android/ownCloud.git] / src / com / owncloud / android / operations / CreateShareOperation.java
index 4b2f6ad..17151ab 100644 (file)
@@ -42,6 +42,9 @@ import com.owncloud.android.utils.Log_OC;
 public class CreateShareOperation extends SyncOperation {
 
     private static final String TAG = CreateShareOperation.class.getSimpleName();
+    
+    // String to build the link with the token of a share: server address + "/public.php?service=files&t=" + token
+    private final String SHARING_LINK_TOKEN = "/public.php?service=files&t=";
 
     protected FileDataStorageManager mStorageManager;
 
@@ -92,13 +95,21 @@ public class CreateShareOperation extends SyncOperation {
         RemoteOperationResult result = ((GetRemoteSharesForFileOperation)operation).execute(client);
 
         if (result.isSuccess()) {
-            operation = new CreateRemoteShareOperation(mPath, mShareType, mShareWith, mPublicUpload, mPassword, mPermissions);
-            result = ((CreateRemoteShareOperation)operation).execute(client);
+            if (result.getData().size() > 0) {
+                OCShare share = (OCShare) result.getData().get(0);
+                // Update the link, build it with the token: server address + "/public.php?service=files&t=" + token
+                share.setShareLink(client.getBaseUri() + SHARING_LINK_TOKEN + share.getToken());
+                Log_OC.d(TAG, "Build Share link= " + share.getShareLink());
+                updateData(share);
+            } else {
+                operation = new CreateRemoteShareOperation(mPath, mShareType, mShareWith, mPublicUpload, mPassword, mPermissions);
+                result = ((CreateRemoteShareOperation)operation).execute(client);
 
-            if (result.isSuccess()) {
-                if (result.getData().size() > 0) {
-                    OCShare share = (OCShare) result.getData().get(0);
-                    updateData(share);
+                if (result.isSuccess()) {
+                    if (result.getData().size() > 0) {
+                        OCShare share = (OCShare) result.getData().get(0);
+                        updateData(share);
+                    }
                 }
             }
         }