summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/BrowserHistoryPage.java
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2010-12-06 13:48:56 -0800
committerJohn Reck <jreck@google.com>2010-12-06 14:21:18 -0800
commit5eb850d10e4d5109f3a65cabc2b17675f2828e04 (patch)
tree429d434892af05883afd78f57e80e7f37002fc45 /src/com/android/browser/BrowserHistoryPage.java
parent59280307b381a247a2f6a5299a5893f5f5337306 (diff)
downloadandroid_packages_apps_Gello-5eb850d10e4d5109f3a65cabc2b17675f2828e04.tar.gz
android_packages_apps_Gello-5eb850d10e4d5109f3a65cabc2b17675f2828e04.tar.bz2
android_packages_apps_Gello-5eb850d10e4d5109f3a65cabc2b17675f2828e04.zip
Moved clear history to AsyncTask
Bug: 2739696 Clear history could cause an ANR. Moved it to an async task Change-Id: I27cb4e0235f4c15d46fe06a0f705389952fd3e92
Diffstat (limited to 'src/com/android/browser/BrowserHistoryPage.java')
-rw-r--r--src/com/android/browser/BrowserHistoryPage.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index f99e7b54..2a095ad9 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -34,6 +34,7 @@ import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Browser;
import android.provider.BrowserContract;
@@ -223,6 +224,7 @@ public class BrowserHistoryPage extends Fragment
switch (item.getItemId()) {
case R.id.clear_history_menu_id:
final ContentResolver resolver = getActivity().getContentResolver();
+ final ClearHistoryTask clear = new ClearHistoryTask(resolver, mCallbacks);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(R.string.clear)
.setMessage(R.string.pref_privacy_clear_history_dlg)
@@ -232,8 +234,7 @@ public class BrowserHistoryPage extends Fragment
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
- Browser.clearHistory(resolver);
- mCallbacks.onRemoveParentChildRelationships();
+ clear.execute();
}
}
});
@@ -247,6 +248,27 @@ public class BrowserHistoryPage extends Fragment
return super.onOptionsItemSelected(item);
}
+ static class ClearHistoryTask extends AsyncTask<Void, Void, Void> {
+ ContentResolver mResolver;
+ BookmarksHistoryCallbacks mCallbacks;
+
+ public ClearHistoryTask(ContentResolver resolver,
+ BookmarksHistoryCallbacks callbacks) {
+ mResolver = resolver;
+ mCallbacks = callbacks;
+ }
+ @Override
+ protected Void doInBackground(Void... params) {
+ Browser.clearHistory(mResolver);
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(Void result) {
+ mCallbacks.onRemoveParentChildRelationships();
+ }
+ }
+
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
ExpandableListContextMenuInfo i = (ExpandableListContextMenuInfo) menuInfo;