diff --git a/Mifare Classic Tool/app/src/main/java/de/syss/MifareClassicTool/Activities/DumpEditor.java b/Mifare Classic Tool/app/src/main/java/de/syss/MifareClassicTool/Activities/DumpEditor.java
index 2c1f14a4..613ebf9a 100644
--- a/Mifare Classic Tool/app/src/main/java/de/syss/MifareClassicTool/Activities/DumpEditor.java
+++ b/Mifare Classic Tool/app/src/main/java/de/syss/MifareClassicTool/Activities/DumpEditor.java
@@ -292,6 +292,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
} else if (itemId == R.id.menuDumpEditorExportDump) {
exportDump();
return true;
+ } else if (itemId == R.id.menuDumpEditorCopyAllSectors) {
+ copyAllSectorsToClipboard();
+ return true;
}
return super.onOptionsItemSelected(item);
}
@@ -905,6 +908,33 @@ private void exportDump() {
startActivity(intent);
}
+ /**
+ * Copy all sectors as a string to the clipboard, maintaining newlines
+ * between all blocks.
+ */
+ private void copyAllSectorsToClipboard() {
+ int err = checkDumpAndUpdateLines();
+ if (err != 0) {
+ Common.isValidDumpErrorToast(err, this);
+ return;
+ }
+ // Build the dump string from mLines
+ StringBuilder dumpString = new StringBuilder();
+ for (int i = 0; i < mLines.length; i++) {
+ String line = mLines[i];
+ // Skip sector headers
+ if (line.startsWith("+")) {
+ continue;
+ }
+ // Add a newline before appending (except for the very first block)
+ if (dumpString.length() > 0) {
+ dumpString.append(System.lineSeparator());
+ }
+ dumpString.append(line);
+ }
+ Common.copyToClipboard(dumpString.toString(), this, true);
+ }
+
/**
* The dump will be checked and stored in the {@link Common#TMP_DIR} directory.
* @return The temporary dump file.
diff --git a/Mifare Classic Tool/app/src/main/res/menu/dump_editor_functions.xml b/Mifare Classic Tool/app/src/main/res/menu/dump_editor_functions.xml
index 5e1998c0..f0bc9c98 100644
--- a/Mifare Classic Tool/app/src/main/res/menu/dump_editor_functions.xml
+++ b/Mifare Classic Tool/app/src/main/res/menu/dump_editor_functions.xml
@@ -26,11 +26,6 @@
android:title="@string/action_save"
android:showAsAction="ifRoom"
tools:ignore="AppCompatResource" />
-
-
+
+
+
diff --git a/Mifare Classic Tool/app/src/main/res/values-it/strings.xml b/Mifare Classic Tool/app/src/main/res/values-it/strings.xml
index 64880a39..eeee2fd9 100644
--- a/Mifare Classic Tool/app/src/main/res/values-it/strings.xml
+++ b/Mifare Classic Tool/app/src/main/res/values-it/strings.xml
@@ -314,6 +314,7 @@
Apri lo strumento per clonare l\'UID
Nascondi i settori identici
Pulisci Logs
+ Copia tutti i settori negli appunti
- Scuro
- Chiaro
diff --git a/Mifare Classic Tool/app/src/main/res/values-zh/strings.xml b/Mifare Classic Tool/app/src/main/res/values-zh/strings.xml
index e65a1f9b..6b4fa65d 100644
--- a/Mifare Classic Tool/app/src/main/res/values-zh/strings.xml
+++ b/Mifare Classic Tool/app/src/main/res/values-zh/strings.xml
@@ -288,6 +288,7 @@
Cyber Chef
打开UID克隆工具
隐藏相同的扇区
+ 将所有扇区复制到剪贴板
- 暗色
- 亮色
diff --git a/Mifare Classic Tool/app/src/main/res/values/strings.xml b/Mifare Classic Tool/app/src/main/res/values/strings.xml
index 4b55934d..f68fb214 100644
--- a/Mifare Classic Tool/app/src/main/res/values/strings.xml
+++ b/Mifare Classic Tool/app/src/main/res/values/strings.xml
@@ -327,6 +327,7 @@
Open the Clone UID Tool
Hide identical sectors
Clear Logs
+ Copy all sectors to clipboard
- Dark
- Light