diff --git a/app/src/main/java/at/tomtasche/reader/ui/activity/MainActivity.java b/app/src/main/java/at/tomtasche/reader/ui/activity/MainActivity.java index 81aa4f3248bf..cdcf1b9b5d70 100644 --- a/app/src/main/java/at/tomtasche/reader/ui/activity/MainActivity.java +++ b/app/src/main/java/at/tomtasche/reader/ui/activity/MainActivity.java @@ -557,6 +557,36 @@ public boolean onKeyDown(int keyCode, KeyEvent event) { return super.onKeyDown(keyCode, event); } + @Override + public void onBackPressed() { + // Check if document is displayed and was opened internally + if (documentFragment != null && documentContainer.getVisibility() == View.VISIBLE) { + // Check if the activity was launched without external data (internal file selection) + if (getIntent().getData() == null) { + // Return to landing screen instead of exiting + landingContainer.setVisibility(View.VISIBLE); + documentContainer.setVisibility(View.GONE); + + // Clear the document fragment + getSupportFragmentManager() + .beginTransaction() + .remove(documentFragment) + .commitNow(); + documentFragment = null; + + // Clear the lastUri to reset state + lastUri = null; + + analyticsManager.setCurrentScreen(this, "screen_main"); + + return; + } + } + + // Default behavior for external files or when no document is shown + super.onBackPressed(); + } + public void findDocument() { final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE);