Skip to content

Commit fef7249

Browse files
authored
Merge pull request ikarus23#546 from Real96/copy_all_sectors
Add an option to copy all the sectors
2 parents 9213243 + 2ec1574 commit fef7249

5 files changed

Lines changed: 42 additions & 7 deletions

File tree

Mifare Classic Tool/app/src/main/java/de/syss/MifareClassicTool/Activities/DumpEditor.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
292292
} else if (itemId == R.id.menuDumpEditorExportDump) {
293293
exportDump();
294294
return true;
295+
} else if (itemId == R.id.menuDumpEditorCopyAllSectors) {
296+
copyAllSectorsToClipboard();
297+
return true;
295298
}
296299
return super.onOptionsItemSelected(item);
297300
}
@@ -905,6 +908,33 @@ private void exportDump() {
905908
startActivity(intent);
906909
}
907910

911+
/**
912+
* Copy all sectors as a string to the clipboard, maintaining newlines
913+
* between all blocks.
914+
*/
915+
private void copyAllSectorsToClipboard() {
916+
int err = checkDumpAndUpdateLines();
917+
if (err != 0) {
918+
Common.isValidDumpErrorToast(err, this);
919+
return;
920+
}
921+
// Build the dump string from mLines
922+
StringBuilder dumpString = new StringBuilder();
923+
for (int i = 0; i < mLines.length; i++) {
924+
String line = mLines[i];
925+
// Skip sector headers
926+
if (line.startsWith("+")) {
927+
continue;
928+
}
929+
// Add a newline before appending (except for the very first block)
930+
if (dumpString.length() > 0) {
931+
dumpString.append(System.lineSeparator());
932+
}
933+
dumpString.append(line);
934+
}
935+
Common.copyToClipboard(dumpString.toString(), this, true);
936+
}
937+
908938
/**
909939
* The dump will be checked and stored in the {@link Common#TMP_DIR} directory.
910940
* @return The temporary dump file.

Mifare Classic Tool/app/src/main/res/menu/dump_editor_functions.xml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,6 @@
2626
android:title="@string/action_save"
2727
android:showAsAction="ifRoom"
2828
tools:ignore="AppCompatResource" />
29-
<item android:id="@+id/menuDumpEditorShare"
30-
android:icon="@android:drawable/ic_menu_share"
31-
android:title="@string/action_share"
32-
android:showAsAction="ifRoom"
33-
tools:ignore="AppCompatResource" />
3429
<item android:id="@+id/menuDumpEditorAscii"
3530
android:title="@string/action_data_as_ascii" />
3631
<item android:id="@+id/menuDumpEditorAccessConditions"
@@ -43,8 +38,6 @@
4338
android:title="@string/action_compare_dump" />
4439
<item android:id="@+id/menuDumpEditorWriteDump"
4540
android:title="@string/action_write_dump" />
46-
<item android:id="@+id/menuDumpEditorExportDump"
47-
android:title="@string/action_export_dump" />
4841
<item android:id="@+id/menuDumpEditorSaveKeys"
4942
android:title="@string/action_save_keys" />
5043
<item android:id="@+id/menuDumpEditorOpenValueBlockTool"
@@ -53,4 +46,13 @@
5346
android:title="@string/action_show_ac_tool" />
5447
<item android:id="@+id/menuDumpEditorOpenBccTool"
5548
android:title="@string/action_show_bcc_tool" />
49+
<item android:id="@+id/menuDumpEditorShare"
50+
android:icon="@android:drawable/ic_menu_share"
51+
android:title="@string/action_share"
52+
android:showAsAction="ifRoom"
53+
tools:ignore="AppCompatResource" />
54+
<item android:id="@+id/menuDumpEditorCopyAllSectors"
55+
android:title="@string/action_copy_all_sectors" />
56+
<item android:id="@+id/menuDumpEditorExportDump"
57+
android:title="@string/action_export_dump" />
5658
</menu>

Mifare Classic Tool/app/src/main/res/values-it/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,7 @@
314314
<string name="action_open_clone_uid_tool">Apri lo strumento per clonare l\'UID</string>
315315
<string name="action_hide_identical_sectors">Nascondi i settori identici</string>
316316
<string name="action_clear_logs">Pulisci Logs</string>
317+
<string name="action_copy_all_sectors">Copia tutti i settori negli appunti</string>
317318
<string-array name="action_themes">
318319
<item>Scuro</item>
319320
<item>Chiaro</item>

Mifare Classic Tool/app/src/main/res/values-zh/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@
288288
<string name="action_cyber_chef">Cyber Chef</string>
289289
<string name="action_open_clone_uid_tool">打开UID克隆工具</string>
290290
<string name="action_hide_identical_sectors">隐藏相同的扇区</string>
291+
<string name="action_copy_all_sectors">将所有扇区复制到剪贴板</string>
291292
<string-array name="action_themes">
292293
<item>暗色</item>
293294
<item>亮色</item>

Mifare Classic Tool/app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,7 @@
327327
<string name="action_open_clone_uid_tool">Open the Clone UID Tool</string>
328328
<string name="action_hide_identical_sectors">Hide identical sectors</string>
329329
<string name="action_clear_logs">Clear Logs</string>
330+
<string name="action_copy_all_sectors">Copy all sectors to clipboard</string>
330331
<string-array name="action_themes">
331332
<item>Dark</item>
332333
<item>Light</item>

0 commit comments

Comments
 (0)