diff --git a/CHANGELOG.md b/CHANGELOG.md
index b263431db..ef57632dd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## Unreleased - 136
+
+- Support for creating a card when sharing plain text
+
## v2.29.1 - 135 (2024-05-19)
- Various fixes and improvements to balance handling
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 2f3c1c4c5..53861ab0e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -43,6 +43,7 @@
+
diff --git a/app/src/main/java/protect/card_locker/MainActivity.java b/app/src/main/java/protect/card_locker/MainActivity.java
index 69ab85ef6..80c72f288 100644
--- a/app/src/main/java/protect/card_locker/MainActivity.java
+++ b/app/src/main/java/protect/card_locker/MainActivity.java
@@ -34,6 +34,7 @@ import com.google.android.material.tabs.TabLayout;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@@ -482,7 +483,9 @@ public class MainActivity extends CatimaAppCompatActivity implements LoyaltyCard
if (Intent.ACTION_SEND.equals(receivedAction)) {
List barcodeValuesList;
- if (receivedType.startsWith("image/")) {
+ if (receivedType.equals("text/plain")) {
+ barcodeValuesList = Collections.singletonList(new BarcodeValues(null, intent.getStringExtra(Intent.EXTRA_TEXT)));
+ } else if (receivedType.startsWith("image/")) {
barcodeValuesList = Utils.retrieveBarcodesFromImage(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));
} else if (receivedType.equals("application/pdf")) {
barcodeValuesList = Utils.retrieveBarcodesFromPdf(this, intent.getParcelableExtra(Intent.EXTRA_STREAM));