diff options
author | John Reck <jreck@google.com> | 2010-12-06 13:48:56 -0800 |
---|---|---|
committer | John Reck <jreck@google.com> | 2010-12-06 14:21:18 -0800 |
commit | 5eb850d10e4d5109f3a65cabc2b17675f2828e04 (patch) | |
tree | 429d434892af05883afd78f57e80e7f37002fc45 /src/com/android/browser/BrowserHistoryPage.java | |
parent | 59280307b381a247a2f6a5299a5893f5f5337306 (diff) | |
download | android_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.java | 26 |
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; |