Merge pull request #1451 from kiwix/feature/macgills/#1031-clear-webview-history

#1031 Delete webview history when user clears History in HistoryActivity
This commit is contained in:
Kelson 2019-09-11 07:18:53 +02:00 committed by GitHub
commit 13c86ec0d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 25 deletions

View File

@ -36,6 +36,7 @@ public class HistoryActivity extends BaseActivity implements HistoryContract.Vie
private final List<HistoryListItem> fullHistory = new ArrayList<>();
private final List<HistoryListItem> 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;
}

View File

@ -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;