diff --git a/mobile/android/base/widget/AboutHomeContent.java b/mobile/android/base/widget/AboutHomeContent.java index ab3ce723615..1bb2047ca73 100644 --- a/mobile/android/base/widget/AboutHomeContent.java +++ b/mobile/android/base/widget/AboutHomeContent.java @@ -192,12 +192,11 @@ public class AboutHomeContent extends ScrollView * Reinflates and updates all components of this view. */ public void refresh() { - mTopSites.onDestroy(); - // We must remove the currently inflated view to allow for reinflation. removeAllViews(); inflate(); + mTopSites.refresh(); // Refresh all elements. update(AboutHomeContent.UpdateFlags.ALL); diff --git a/mobile/android/base/widget/TopSitesView.java b/mobile/android/base/widget/TopSitesView.java index 617402628e3..2dda137378c 100644 --- a/mobile/android/base/widget/TopSitesView.java +++ b/mobile/android/base/widget/TopSitesView.java @@ -141,15 +141,9 @@ public class TopSitesView extends GridView { public void onDestroy() { if (mTopSitesAdapter != null) { - final Cursor cursor = mTopSitesAdapter.getCursor(); - - ThreadUtils.postToBackgroundThread(new Runnable() { - @Override - public void run() { - if (cursor != null && !cursor.isClosed()) - cursor.close(); - } - }); + Cursor cursor = mTopSitesAdapter.getCursor(); + if (cursor != null && !cursor.isClosed()) + cursor.close(); } } @@ -192,9 +186,12 @@ public class TopSitesView extends GridView { public void loadTopSites() { final ContentResolver resolver = mContext.getContentResolver(); - + Cursor old = null; + if (mTopSitesAdapter != null) { + old = mTopSitesAdapter.getCursor(); + } // Swap in the new cursor. - final Cursor oldCursor = (mTopSitesAdapter != null) ? mTopSitesAdapter.getCursor() : null; + final Cursor oldCursor = old; final Cursor newCursor = BrowserDB.getTopSites(resolver, mNumberOfTopSites); post(new Runnable() { @@ -343,6 +340,13 @@ public class TopSitesView extends GridView { mLoadCompleteCallback = callback; } + public void refresh() { + if (mTopSitesAdapter != null) + mTopSitesAdapter.notifyDataSetChanged(); + + setAdapter(mTopSitesAdapter); + } + private class TopSitesViewHolder { public TextView titleView = null; public ImageView thumbnailView = null;