|
@@ -38,6 +38,7 @@ import android.text.TextUtils;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.JsonSyntaxException;
|
|
|
import com.owncloud.android.MainApp;
|
|
|
+import com.owncloud.android.db.ProviderMeta;
|
|
|
import com.owncloud.android.db.ProviderMeta.ProviderTableMeta;
|
|
|
import com.owncloud.android.lib.common.network.WebdavEntry;
|
|
|
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
|
|
@@ -54,6 +55,8 @@ import com.owncloud.android.utils.FileStorageUtils;
|
|
|
import com.owncloud.android.utils.MimeType;
|
|
|
import com.owncloud.android.utils.MimeTypeUtil;
|
|
|
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
+
|
|
|
import java.io.File;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
@@ -1920,8 +1923,50 @@ public class FileDataStorageManager {
|
|
|
public OCCapability saveCapabilities(OCCapability capability) {
|
|
|
|
|
|
// Prepare capabilities data
|
|
|
+ ContentValues cv = createContentValues(account.name, capability);
|
|
|
+
|
|
|
+ if (capabilityExists(account.name)) {
|
|
|
+ if (getContentResolver() != null) {
|
|
|
+ getContentResolver().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv,
|
|
|
+ ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
|
|
|
+ new String[]{account.name});
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES,
|
|
|
+ cv, ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
|
|
|
+ new String[]{account.name});
|
|
|
+ } catch (RemoteException e) {
|
|
|
+ Log_OC.e(TAG, FAILED_TO_INSERT_MSG + e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Uri result_uri = null;
|
|
|
+ if (getContentResolver() != null) {
|
|
|
+ result_uri = getContentResolver().insert(
|
|
|
+ ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ result_uri = getContentProviderClient().insert(
|
|
|
+ ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
|
|
|
+ } catch (RemoteException e) {
|
|
|
+ Log_OC.e(TAG, FAILED_TO_INSERT_MSG + e.getMessage(), e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (result_uri != null) {
|
|
|
+ long new_id = Long.parseLong(result_uri.getPathSegments()
|
|
|
+ .get(1));
|
|
|
+ capability.setId(new_id);
|
|
|
+ capability.setAccountName(account.name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return capability;
|
|
|
+ }
|
|
|
+
|
|
|
+ @NotNull
|
|
|
+ private ContentValues createContentValues(String accountName, OCCapability capability) {
|
|
|
ContentValues cv = new ContentValues();
|
|
|
- cv.put(ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME, account.name);
|
|
|
+ cv.put(ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME, accountName);
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MAYOR, capability.getVersionMayor());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MINOR, capability.getVersionMinor());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_VERSION_MICRO, capability.getVersionMicro());
|
|
@@ -1931,28 +1976,28 @@ public class FileDataStorageManager {
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_CORE_POLLINTERVAL, capability.getCorePollInterval());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_API_ENABLED, capability.getFilesSharingApiEnabled().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ENABLED,
|
|
|
- capability.getFilesSharingPublicEnabled().getValue());
|
|
|
+ capability.getFilesSharingPublicEnabled().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_PASSWORD_ENFORCED,
|
|
|
- capability.getFilesSharingPublicPasswordEnforced().getValue());
|
|
|
+ capability.getFilesSharingPublicPasswordEnforced().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_ASK_FOR_OPTIONAL_PASSWORD,
|
|
|
capability.getFilesSharingPublicAskForOptionalPassword().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENABLED,
|
|
|
- capability.getFilesSharingPublicExpireDateEnabled().getValue());
|
|
|
+ capability.getFilesSharingPublicExpireDateEnabled().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_DAYS,
|
|
|
- capability.getFilesSharingPublicExpireDateDays());
|
|
|
+ capability.getFilesSharingPublicExpireDateDays());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_EXPIRE_DATE_ENFORCED,
|
|
|
- capability.getFilesSharingPublicExpireDateEnforced().getValue());
|
|
|
+ capability.getFilesSharingPublicExpireDateEnforced().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_SEND_MAIL,
|
|
|
- capability.getFilesSharingPublicSendMail().getValue());
|
|
|
+ capability.getFilesSharingPublicSendMail().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_PUBLIC_UPLOAD,
|
|
|
- capability.getFilesSharingPublicUpload().getValue());
|
|
|
+ capability.getFilesSharingPublicUpload().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_USER_SEND_MAIL,
|
|
|
- capability.getFilesSharingUserSendMail().getValue());
|
|
|
+ capability.getFilesSharingUserSendMail().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_RESHARING, capability.getFilesSharingResharing().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_OUTGOING,
|
|
|
- capability.getFilesSharingFederationOutgoing().getValue());
|
|
|
+ capability.getFilesSharingFederationOutgoing().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_SHARING_FEDERATION_INCOMING,
|
|
|
- capability.getFilesSharingFederationIncoming().getValue());
|
|
|
+ capability.getFilesSharingFederationIncoming().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_FILES_BIGFILECHUNKING, capability.getFilesBigFileChunking().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_FILES_UNDELETE, capability.getFilesUndelete().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_FILES_VERSIONING, capability.getFilesVersioning().getValue());
|
|
@@ -1972,7 +2017,7 @@ public class FileDataStorageManager {
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_ACTIVITY, capability.getActivity().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT, capability.getRichDocuments().getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_MIMETYPE_LIST,
|
|
|
- TextUtils.join(",", capability.getRichDocumentsMimeTypeList()));
|
|
|
+ TextUtils.join(",", capability.getRichDocumentsMimeTypeList()));
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST,
|
|
|
TextUtils.join(",", capability.getRichDocumentsOptionalMimeTypeList()));
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING, capability.getRichDocumentsDirectEditing()
|
|
@@ -1980,43 +2025,7 @@ public class FileDataStorageManager {
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES, capability.getRichDocumentsTemplatesAvailable()
|
|
|
.getValue());
|
|
|
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_PRODUCT_NAME, capability.getRichDocumentsProductName());
|
|
|
-
|
|
|
- if (capabilityExists(account.name)) {
|
|
|
- if (getContentResolver() != null) {
|
|
|
- getContentResolver().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv,
|
|
|
- ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
|
|
|
- new String[]{account.name});
|
|
|
- } else {
|
|
|
- try {
|
|
|
- getContentProviderClient().update(ProviderTableMeta.CONTENT_URI_CAPABILITIES,
|
|
|
- cv, ProviderTableMeta.CAPABILITIES_ACCOUNT_NAME + "=?",
|
|
|
- new String[]{account.name});
|
|
|
- } catch (RemoteException e) {
|
|
|
- Log_OC.e(TAG, FAILED_TO_INSERT_MSG + e.getMessage(), e);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- Uri result_uri = null;
|
|
|
- if (getContentResolver() != null) {
|
|
|
- result_uri = getContentResolver().insert(
|
|
|
- ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
|
|
|
- } else {
|
|
|
- try {
|
|
|
- result_uri = getContentProviderClient().insert(
|
|
|
- ProviderTableMeta.CONTENT_URI_CAPABILITIES, cv);
|
|
|
- } catch (RemoteException e) {
|
|
|
- Log_OC.e(TAG, FAILED_TO_INSERT_MSG + e.getMessage(), e);
|
|
|
- }
|
|
|
- }
|
|
|
- if (result_uri != null) {
|
|
|
- long new_id = Long.parseLong(result_uri.getPathSegments()
|
|
|
- .get(1));
|
|
|
- capability.setId(new_id);
|
|
|
- capability.setAccountName(account.name);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return capability;
|
|
|
+ return cv;
|
|
|
}
|
|
|
|
|
|
private boolean capabilityExists(String accountName) {
|