Переглянути джерело

use id instead of account name

Signed-off-by: tobiaskaminsky <tobias@kaminsky.me>
tobiaskaminsky 7 роки тому
батько
коміт
a259a3f84b

+ 18 - 1
src/main/java/com/owncloud/android/ui/dialog/SetupEncryptionDialogFragment.java

@@ -40,10 +40,12 @@ import android.widget.TextView;
 
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.ArbitraryDataProvider;
+import com.owncloud.android.lib.common.UserInfo;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.users.GetPrivateKeyOperation;
 import com.owncloud.android.lib.resources.users.GetPublicKeyOperation;
+import com.owncloud.android.lib.resources.users.GetRemoteUserInfoOperation;
 import com.owncloud.android.lib.resources.users.SendCSROperation;
 import com.owncloud.android.lib.resources.users.StorePrivateKeyOperation;
 import com.owncloud.android.utils.CsrHelper;
@@ -333,8 +335,23 @@ public class SetupEncryptionDialogFragment extends DialogFragment {
                 KeyPair keyPair = EncryptionUtils.generateKeyPair();
                 PrivateKey privateKey = keyPair.getPrivate();
 
+                // get user id
+                String userID;
+                GetRemoteUserInfoOperation remoteUserNameOperation =
+                        new GetRemoteUserInfoOperation();
+                RemoteOperationResult remoteUserNameOperationResult = remoteUserNameOperation
+                        .execute(account, getContext(), true);
+
+                if (remoteUserNameOperationResult.isSuccess() &&
+                        remoteUserNameOperationResult.getData() != null) {
+                    UserInfo userInfo = (UserInfo) remoteUserNameOperationResult.getData().get(0);
+                    userID = userInfo.getId();
+                } else {
+                    userID = account.name;
+                }
+
                 // create CSR
-                String urlEncoded = CsrHelper.generateCsrPemEncodedString(keyPair, account.name);
+                String urlEncoded = CsrHelper.generateCsrPemEncodedString(keyPair, userID);
 
                 SendCSROperation operation = new SendCSROperation(urlEncoded);
                 RemoteOperationResult result = operation.execute(account, getContext(), true);