Skip to content

Commit

Permalink
Merge pull request #3974 from nextcloud/richDocumentsOptionalMimetypes
Browse files Browse the repository at this point in the history
Use optional mimetypes on rich document, if available
  • Loading branch information
AndyScherzinger authored May 13, 2019
2 parents 22b352a + 4731796 commit da38941
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1961,6 +1961,8 @@ public OCCapability saveCapabilities(OCCapability capability) {
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT, capability.getRichDocuments().getValue());
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_MIMETYPE_LIST,
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()
.getValue());
cv.put(ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES, capability.getRichDocumentsTemplatesAvailable()
Expand Down Expand Up @@ -2132,6 +2134,13 @@ private OCCapability createCapabilityInstance(Cursor c) {
mimetypes = "";
}
capability.setRichDocumentsMimeTypeList(Arrays.asList(mimetypes.split(",")));

String optionalMimetypes = c.getString(c.getColumnIndex(
ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST));
if (optionalMimetypes == null) {
optionalMimetypes = "";
}
capability.setRichDocumentsOptionalMimeTypeList(Arrays.asList(optionalMimetypes.split(",")));
}
return capability;
}
Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/owncloud/android/db/ProviderMeta.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
*/
public class ProviderMeta {
public static final String DB_NAME = "filelist";
public static final int DB_VERSION = 45;
public static final int DB_VERSION = 46;

private ProviderMeta() {
// No instance
Expand Down Expand Up @@ -184,6 +184,8 @@ static public class ProviderTableMeta implements BaseColumns {
public static final String CAPABILITIES_ACTIVITY = "activity";
public static final String CAPABILITIES_RICHDOCUMENT = "richdocument";
public static final String CAPABILITIES_RICHDOCUMENT_MIMETYPE_LIST = "richdocument_mimetype_list";
public static final String CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST =
"richdocument_optional_mimetype_list";
public static final String CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING = "richdocument_direct_editing";
public static final String CAPABILITIES_RICHDOCUMENT_TEMPLATES = "richdocument_direct_templates";

Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/owncloud/android/files/FileMenuFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -248,8 +248,10 @@ private void filterSetPictureAs(List<Integer> toShow, List<Integer> toHide) {
}

private void filterOpenAsRichDocument(List<Integer> toShow, List<Integer> toHide, OCCapability capability) {
String mimeType = mFiles.iterator().next().getMimeType();
if (isSingleFile() && android.os.Build.VERSION.SDK_INT >= RichDocumentsWebView.MINIMUM_API &&
capability.getRichDocumentsMimeTypeList().contains(mFiles.iterator().next().getMimeType()) &&
(capability.getRichDocumentsMimeTypeList().contains(mimeType) ||
capability.getRichDocumentsOptionalMimeTypeList().contains(mimeType)) &&
capability.getRichDocumentsDirectEditing().isTrue()) {
toShow.add(R.id.action_open_file_as_richdocument);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -769,7 +769,8 @@ private void createCapabilitiesTable(SQLiteDatabase db) {
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_MIMETYPE_LIST + TEXT
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_DIRECT_EDITING + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES + " INTEGER );");
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_TEMPLATES + INTEGER
+ ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST + " TEXT );");
}

private void createUploadsTable(SQLiteDatabase db) {
Expand Down Expand Up @@ -1926,6 +1927,25 @@ public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (!upgraded) {
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
}

if (oldVersion < 46 && newVersion >= 46) {
Log_OC.i(SQL, "Entering in the #46 add optional mimetypes to capabilities table");
db.beginTransaction();
try {
db.execSQL(ALTER_TABLE + ProviderTableMeta.CAPABILITIES_TABLE_NAME +
ADD_COLUMN + ProviderTableMeta.CAPABILITIES_RICHDOCUMENT_OPTIONAL_MIMETYPE_LIST
+ " TEXT ");

upgraded = true;
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}

if (!upgraded) {
Log_OC.i(SQL, String.format(Locale.ENGLISH, UPGRADE_VERSION_MSG, oldVersion, newVersion));
}
}

@Override
Expand Down

0 comments on commit da38941

Please sign in to comment.