From 4fd58b5aebafa73a77f8c85345632a9accfecad0 Mon Sep 17 00:00:00 2001 From: Sean Mac Gillicuddy Date: Mon, 9 Sep 2019 13:25:17 +0100 Subject: [PATCH] #1031 Delete webview history when user clears Histry in HistoryActivity --- .../kiwixmobile/history/HistoryActivity.java | 2 + .../kiwix/kiwixmobile/main/MainActivity.java | 58 +++++++++++-------- 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryActivity.java index 7b22bac44..ed33cfbd7 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/history/HistoryActivity.java @@ -36,6 +36,7 @@ public class HistoryActivity extends BaseActivity implements HistoryContract.Vie private final List fullHistory = new ArrayList<>(); private final List deleteList = new ArrayList<>(); private static final String LIST_STATE_KEY = "recycler_list_state"; + public static final String USER_CLEARED_HISTORY = "user_cleared_history"; @BindView(R.id.toolbar) Toolbar toolbar; @@ -192,6 +193,7 @@ public class HistoryActivity extends BaseActivity implements HistoryContract.Vie fullHistory.clear(); historyList.clear(); historyAdapter.notifyDataSetChanged(); + setResult(RESULT_OK, new Intent().putExtra(USER_CLEARED_HISTORY, true)); Toast.makeText(this, R.string.all_history_cleared_toast, Toast.LENGTH_SHORT).show(); return true; } diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java index 4c3ddf393..cb448ceea 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java +++ b/app/src/main/java/org/kiwix/kiwixmobile/main/MainActivity.java @@ -1654,37 +1654,45 @@ public class MainActivity extends BaseActivity implements WebViewCallback, case REQUEST_FILE_SELECT: case REQUEST_HISTORY_ITEM_CHOSEN: if (resultCode == RESULT_OK) { - String title = data.getStringExtra(EXTRA_CHOSE_X_TITLE); - String url = data.getStringExtra(EXTRA_CHOSE_X_URL); - if (data.getData() != null) { - final Uri uri = data.getData(); - File file = null; - if (uri != null) { - String path = uri.getPath(); - if (path != null) { - file = new File(path); - } + if (data.getBooleanExtra(HistoryActivity.USER_CLEARED_HISTORY, false)) { + for (KiwixWebView kiwixWebView : webViewList) { + kiwixWebView.clearHistory(); } - if (file == null) { - Toast.makeText(this, R.string.error_file_not_found, Toast.LENGTH_LONG).show(); + webViewList.clear(); + newTab(HOME_URL); + } else { + String title = data.getStringExtra(EXTRA_CHOSE_X_TITLE); + String url = data.getStringExtra(EXTRA_CHOSE_X_URL); + if (data.getData() != null) { + final Uri uri = data.getData(); + File file = null; + if (uri != null) { + String path = uri.getPath(); + if (path != null) { + file = new File(path); + } + } + if (file == null) { + Toast.makeText(this, R.string.error_file_not_found, Toast.LENGTH_LONG).show(); + return; + } + Intent zimFile = new Intent(MainActivity.this, MainActivity.class); + zimFile.setData(uri); + if (url != null) { + zimFile.putExtra(EXTRA_CHOSE_X_URL, url); + } else if (title != null) { + zimFile.putExtra(EXTRA_CHOSE_X_URL, ZimContentProvider.getPageUrlFromTitle(title)); + } + startActivity(zimFile); + finish(); return; } - Intent zimFile = new Intent(MainActivity.this, MainActivity.class); - zimFile.setData(uri); + newTab(); if (url != null) { - zimFile.putExtra(EXTRA_CHOSE_X_URL, url); + getCurrentWebView().loadUrl(url); } else if (title != null) { - zimFile.putExtra(EXTRA_CHOSE_X_URL, ZimContentProvider.getPageUrlFromTitle(title)); + getCurrentWebView().loadUrl(ZimContentProvider.getPageUrlFromTitle(title)); } - startActivity(zimFile); - finish(); - return; - } - newTab(); - if (url != null) { - getCurrentWebView().loadUrl(url); - } else if (title != null) { - getCurrentWebView().loadUrl(ZimContentProvider.getPageUrlFromTitle(title)); } } return;