Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-06-24 14:03:18 +0300
committerStefan Niedermann <info@niedermann.it>2020-06-24 14:03:18 +0300
commitf828c7187bc14df52d9a9c9108151232208d735b (patch)
treecd3b2d37f3bbd078631633c5d0f69d81e43fb933
parent719ac9ebee257f9254e35c2501b1eff28f6a2992 (diff)
version bump to 1.5.61.5.6
- 🐞 Fix sharing text based files like contacts
-rw-r--r--app/build.gradle4
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/util/MimeTypeUtil.java38
-rw-r--r--app/src/main/res/drawable/ic_baseline_contact_mail_24.xml5
-rw-r--r--app/src/test/java/it/niedermann/nextcloud/deck/MimeTypeUtilTest.java46
-rw-r--r--fastlane/metadata/android/en-US/changelogs/1005006.txt35
7 files changed, 103 insertions, 29 deletions
diff --git a/app/build.gradle b/app/build.gradle
index c3176a29b..e7ebe318b 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -6,8 +6,8 @@ android {
applicationId "it.niedermann.nextcloud.deck"
minSdkVersion 17
targetSdkVersion 29
- versionCode 1005005
- versionName "1.5.5"
+ versionCode 1005006
+ versionName "1.5.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
javaCompileOptions {
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java
index d17d5cbc6..3ecee8583 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/attachments/CardAttachmentAdapter.java
@@ -152,6 +152,8 @@ public class CardAttachmentAdapter extends RecyclerView.Adapter<AttachmentViewHo
holder.getPreview().setImageResource(R.drawable.ic_local_movies_grey600_24dp);
} else if (MimeTypeUtil.isPdf(attachment.getMimetype())) {
holder.getPreview().setImageResource(R.drawable.ic_baseline_picture_as_pdf_24);
+ } else if (MimeTypeUtil.isContact(attachment.getMimetype())) {
+ holder.getPreview().setImageResource(R.drawable.ic_baseline_contact_mail_24);
} else {
holder.getPreview().setImageResource(R.drawable.ic_attach_file_grey600_24dp);
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
index 535ec41a7..a64629bd7 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/sharetarget/ShareTargetActivity.java
@@ -58,7 +58,7 @@ public class ShareTargetActivity extends MainActivity implements SelectCardListe
final String receivedType = receivedIntent.getType();
DeckLog.info(receivedAction);
DeckLog.info(receivedType);
- isFile = !MimeTypeUtil.isText(receivedType);
+ isFile = !MimeTypeUtil.isTextPlain(receivedType);
if (isFile) {
if (Intent.ACTION_SEND.equals(receivedIntent.getAction())) {
mStreamsToUpload = Collections.singletonList(receivedIntent.getParcelableExtra(Intent.EXTRA_STREAM));
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/util/MimeTypeUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/util/MimeTypeUtil.java
index bdbb08a63..0390bf96d 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/util/MimeTypeUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/util/MimeTypeUtil.java
@@ -1,45 +1,41 @@
package it.niedermann.nextcloud.deck.util;
+import androidx.annotation.Nullable;
+
import java.util.Locale;
public class MimeTypeUtil {
public static final String TEXT_PLAIN = "text/plain";
+ public static final String TEXT_VCARD = "text/vcard";
public static final String APPLICATION_PDF = "application/pdf";
- /**
- * @return 'True' if the mime type defines image
- */
- public static boolean isImage(String mimeType) {
+ public static boolean isImage(@Nullable String mimeType) {
return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith("image/") &&
!mimeType.toLowerCase(Locale.ROOT).contains("djvu");
}
- /**
- * @return 'True' the mime type defines video
- */
- public static boolean isVideo(String mimeType) {
+ public static boolean isVideo(@Nullable String mimeType) {
return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith("video/");
}
- /**
- * @return 'True' the mime type defines audio
- */
- public static boolean isAudio(String mimeType) {
+ public static boolean isAudio(@Nullable String mimeType) {
return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith("audio/");
}
- /**
- * @return 'True' if mime type defines text
- */
- public static boolean isText(String mimeType) {
+ public static boolean isText(@Nullable String mimeType) {
return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith("text/");
}
- /**
- * @return 'True' if mime type defines pdf
- */
- public static boolean isPdf(String mimeType) {
- return APPLICATION_PDF.equals(mimeType.toLowerCase(Locale.ROOT));
+ public static boolean isTextPlain(@Nullable String mimeType) {
+ return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith(TEXT_PLAIN);
+ }
+
+ public static boolean isContact(@Nullable String mimeType) {
+ return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith(TEXT_VCARD);
+ }
+
+ public static boolean isPdf(@Nullable String mimeType) {
+ return mimeType != null && mimeType.toLowerCase(Locale.ROOT).startsWith(APPLICATION_PDF);
}
}
diff --git a/app/src/main/res/drawable/ic_baseline_contact_mail_24.xml b/app/src/main/res/drawable/ic_baseline_contact_mail_24.xml
new file mode 100644
index 000000000..79f9e21a8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_contact_mail_24.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="#757575" android:viewportHeight="24"
+ android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M21,8L21,7l-3,2 -3,-2v1l3,2 3,-2zM22,3L2,3C0.9,3 0,3.9 0,5v14c0,1.1 0.9,2 2,2h20c1.1,0 1.99,-0.9 1.99,-2L24,5c0,-1.1 -0.9,-2 -2,-2zM8,6c1.66,0 3,1.34 3,3s-1.34,3 -3,3 -3,-1.34 -3,-3 1.34,-3 3,-3zM14,18L2,18v-1c0,-2 4,-3.1 6,-3.1s6,1.1 6,3.1v1zM22,12h-8L14,6h8v6z"/>
+</vector>
diff --git a/app/src/test/java/it/niedermann/nextcloud/deck/MimeTypeUtilTest.java b/app/src/test/java/it/niedermann/nextcloud/deck/MimeTypeUtilTest.java
index 757a6ec35..5b5528bdd 100644
--- a/app/src/test/java/it/niedermann/nextcloud/deck/MimeTypeUtilTest.java
+++ b/app/src/test/java/it/niedermann/nextcloud/deck/MimeTypeUtilTest.java
@@ -18,7 +18,7 @@ public class MimeTypeUtilTest {
"image/jpeg", "image/png", "image/tiff", "image/svg",
};
final String[] invalidMimeTypes = new String[]{
- "audio/jpg", "img/jpg", "application/octet-stream", "image/djvu"
+ "audio/jpg", "img/jpg", "application/octet-stream", "image/djvu", "", null
};
for (String validMimeType : validMimeTypes) {
@@ -36,7 +36,7 @@ public class MimeTypeUtilTest {
"video/mkv", "video/mp4", "video/mp2", "ViDeO/avi", "VIDEO/mp4", "Video/mp2"
};
final String[] invalidMimeTypes = new String[]{
- "audio/jpg", "img/jpg", "application/octet-stream"
+ "audio/jpg", "img/jpg", "application/octet-stream", "", null
};
for (String validMimeType : validMimeTypes) {
@@ -54,7 +54,7 @@ public class MimeTypeUtilTest {
"audio/mp3", "audio/ogg", "audio/vorbis", "audio/flac", "Audio/mp3", "AUDIO/MP3"
};
final String[] invalidMimeTypes = new String[]{
- "text/plain", "img/jpg", "application/octet-stream"
+ "text/plain", "img/jpg", "application/octet-stream", "", null
};
for (String validMimeType : validMimeTypes) {
@@ -72,7 +72,7 @@ public class MimeTypeUtilTest {
"text/plain", "text/rtf", "text/PLAIN", "Text/Plain", "TEXT/rtf", "TEXT/RTF"
};
final String[] invalidMimeTypes = new String[]{
- "audio/jpg", "img/jpg", "application/octet-stream"
+ "audio/jpg", "img/jpg", "application/octet-stream", "", null
};
for (String validMimeType : validMimeTypes) {
@@ -85,12 +85,48 @@ public class MimeTypeUtilTest {
}
@Test
+ public void isTextPlain() {
+ final String[] validMimeTypes = new String[]{
+ "text/plain", "TEXT/PLAIN", "Text/Plain"
+ };
+ final String[] invalidMimeTypes = new String[]{
+ "text/rtf", "text/jpg", "", null
+ };
+
+ for (String validMimeType : validMimeTypes) {
+ assertTrue("Expecting " + validMimeType + " to be a valid text mimetype", MimeTypeUtil.isTextPlain(validMimeType));
+ }
+
+ for (String invalidMimeType : invalidMimeTypes) {
+ assertFalse("Expecting " + invalidMimeType + " to be an invalid text mimetype", MimeTypeUtil.isTextPlain(invalidMimeType));
+ }
+ }
+
+ @Test
+ public void isContact() {
+ final String[] validMimeTypes = new String[]{
+ "text/vcard", "TEXT/VCARD", "Text/vCard", "text/VCard"
+ };
+ final String[] invalidMimeTypes = new String[]{
+ "text/plain", "text/rtf", "text/jpg", "", null
+ };
+
+ for (String validMimeType : validMimeTypes) {
+ assertTrue("Expecting " + validMimeType + " to be a valid text mimetype", MimeTypeUtil.isContact(validMimeType));
+ }
+
+ for (String invalidMimeType : invalidMimeTypes) {
+ assertFalse("Expecting " + invalidMimeType + " to be an invalid text mimetype", MimeTypeUtil.isContact(invalidMimeType));
+ }
+ }
+
+ @Test
public void isPdf() {
final String[] validMimeTypes = new String[]{
"application/pdf", "APPLICATION/PDF", "Application/Pdf"
};
final String[] invalidMimeTypes = new String[]{
- "audio/jpg", "img/jpg", "application/octet-stream", "app/pdf"
+ "audio/jpg", "img/jpg", "application/octet-stream", "app/pdf", "", null
};
for (String validMimeType : validMimeTypes) {
diff --git a/fastlane/metadata/android/en-US/changelogs/1005006.txt b/fastlane/metadata/android/en-US/changelogs/1005006.txt
new file mode 100644
index 000000000..16c4eef62
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/1005006.txt
@@ -0,0 +1,35 @@
+1.5.6
+
+- 🐞 Fix sharing text based files like contacts
+
+1.5.5
+
+- đŸ“Ĩ Enhanced sharing from third party apps into Deck
+
+1.5.4
+
+- ➕ Allow to share text as comment
+- 🐞 Fixed adding new lists
+
+1.5.3
+
+- 🐞 Delete attachments on failed uploads (#547)
+
+1.5.2
+
+- 🐞 Fix bug which prevented account imports
+- 🌎 Language updates
+
+1.5.1
+
+- 🐞 Activities do not load deterministically (#518)
+- 🐞 Card order not synced properly (#524)
+- 📎 Improve attachment handling (#516)
+
+1.5.0
+
+- ↩ī¸ Reply to comments (#454)
+- đŸ“Ļ Archive all cards of a stack (#495)
+- 🐞 List not synchronized list is emptied (#501)
+- đŸ‘Ĩ Fix wrong avatars in multi account setup (#531)
+- 🐞 Fix NullPointerException when closing card immediately after opening before data has been loaded \ No newline at end of file