@@ -465,7 +465,19 @@ private void refreshRestoreButtonLogic() {
465465 btnAdvancedRestore .startProgress ();
466466 if (restoreLogPanel != null ) {
467467 restoreLogPanel .setVisibility (View .VISIBLE );
468- if (restoreLogText != null ) restoreLogText .setText ("" );
468+ if (restoreLogText != null ) {
469+ // Transparency at restore (the meaningful moment): note when the
470+ // backup carries no integrity checksum / no manifest.
471+ org .iiab .controller .deploy .data .RootfsManifest .Identity rid =
472+ org .iiab .controller .deploy .data .RootfsManifest .read (backupFile .getAbsolutePath ());
473+ if (!rid .present ) {
474+ restoreLogText .setText (fragment .getString (R .string .install_warn_manifest_missing ) + "\n \n " );
475+ } else if ("device-backup" .equals (rid .origin )) {
476+ restoreLogText .setText (fragment .getString (R .string .install_warn_no_checksum ) + "\n \n " );
477+ } else {
478+ restoreLogText .setText ("" );
479+ }
480+ }
469481 if (restoreLogResult != null ) restoreLogResult .setText ("" );
470482 }
471483 File iiabRootDir = new File (fragment .requireContext ().getFilesDir (), "rootfs" );
@@ -629,16 +641,6 @@ private void importBackupSafely(Uri sourceUri) {
629641 }
630642 // Soft phase: no identity manifest -> import is allowed, but warn the
631643 // user (a future version will validate silently). See docs/ROOTFS_MANIFEST.md.
632- if (okNoManifest && fragment .getActivity () != null ) {
633- fragment .getActivity ().runOnUiThread (() ->
634- showImportSnackbar (fragment .getString (R .string .install_warn_manifest_missing )));
635- }
636- // Transparency: an app-made (device) backup carries no integrity checksum.
637- if (okNoChecksum && fragment .getActivity () != null ) {
638- fragment .getActivity ().runOnUiThread (() ->
639- showImportSnackbar (fragment .getString (R .string .install_warn_no_checksum )));
640- }
641-
642644 if (fragment .getActivity () != null ) {
643645 fragment .getActivity ().runOnUiThread (() -> {
644646 host .setImporting (false );
@@ -647,7 +649,12 @@ private void importBackupSafely(Uri sourceUri) {
647649 btnImportBackup .setText (fragment .getString (R .string .install_btn_import_backup ));
648650 selectedBackupFile = fileName ;
649651 host .updateDynamicButtons ();
650- showImportSnackbar (fragment .getString (R .string .install_msg_import_success ));
652+ // One snackbar only (Snackbar replaces, never queues): fold the
653+ // no-checksum / no-manifest transparency into the final message.
654+ showImportSnackbar (fragment .getString (
655+ okNoChecksum ? R .string .install_warn_no_checksum
656+ : okNoManifest ? R .string .install_warn_manifest_missing
657+ : R .string .install_msg_import_success ));
651658 });
652659 }
653660 } catch (Exception e ) {
0 commit comments