OSDN Git Service

Fix 5179825 Toast is created in a unprepared looper.
authorRay Chen <raychen@google.com>
Fri, 19 Aug 2011 02:48:49 +0000 (10:48 +0800)
committerRay Chen <raychen@google.com>
Fri, 19 Aug 2011 02:50:24 +0000 (10:50 +0800)
Change-Id: I80021755bc012340ed00fa52a20bf560369e9368

src/com/android/gallery3d/data/LocationClustering.java

index 3cb1399..788060c 100644 (file)
@@ -21,6 +21,8 @@ import com.android.gallery3d.util.ReverseGeocoder;
 import com.android.gallery3d.util.GalleryUtils;
 
 import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
 import android.widget.Toast;
 
 import java.util.ArrayList;
@@ -38,6 +40,7 @@ class LocationClustering extends Clustering {
     private ArrayList<ArrayList<SmallItem>> mClusters;
     private ArrayList<String> mNames;
     private String mNoLocationString;
+    private Handler mHandler;
 
     private static class Point {
         public Point(double lat, double lng) {
@@ -56,6 +59,7 @@ class LocationClustering extends Clustering {
     public LocationClustering(Context context) {
         mContext = context;
         mNoLocationString = mContext.getResources().getString(R.string.no_location);
+        mHandler = new Handler(Looper.getMainLooper());
     }
 
     @Override
@@ -131,8 +135,12 @@ class LocationClustering extends Clustering {
         }
 
         if (hasUnresolvedAddress) {
-            Toast.makeText(mContext, R.string.no_connectivity,
-                    Toast.LENGTH_LONG).show();
+            mHandler.post(new Runnable() {
+                public void run() {
+                    Toast.makeText(mContext, R.string.no_connectivity,
+                            Toast.LENGTH_LONG).show();
+                }
+            });
         }
     }