Moved clear history to AsyncTask

 Bug: 2739696
 Clear history could cause an ANR. Moved it to an async task

Change-Id: I27cb4e0235f4c15d46fe06a0f705389952fd3e92
diff --git a/src/com/android/browser/BrowserHistoryPage.java b/src/com/android/browser/BrowserHistoryPage.java
index f99e7b5..2a095ad 100644
--- a/src/com/android/browser/BrowserHistoryPage.java
+++ b/src/com/android/browser/BrowserHistoryPage.java
@@ -34,6 +34,7 @@
 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 @@
         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 @@
                              @Override
                              public void onClick(DialogInterface dialog, int which) {
                                  if (which == DialogInterface.BUTTON_POSITIVE) {
-                                     Browser.clearHistory(resolver);
-                                     mCallbacks.onRemoveParentChildRelationships();
+                                     clear.execute();
                                  }
                              }
                         });
@@ -247,6 +248,27 @@
         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;