OSDN Git Service

Importer date tiles reflect language change
authorBobby Georgescu <georgescu@google.com>
Wed, 16 Jan 2013 21:22:37 +0000 (13:22 -0800)
committerBobby Georgescu <georgescu@google.com>
Wed, 16 Jan 2013 21:22:37 +0000 (13:22 -0800)
Bug: 8020035
Change-Id: I1ac2a27ca7be088e6ad6f9b8c624c36e04ff03b0

src/com/android/gallery3d/ingest/IngestActivity.java
src/com/android/gallery3d/ingest/ui/DateTileView.java

index a21ccc2..feaf465 100644 (file)
@@ -40,6 +40,7 @@ import android.widget.GridView;
 
 import com.android.gallery3d.R;
 import com.android.gallery3d.ingest.adapter.MtpAdapter;
+import com.android.gallery3d.ingest.ui.DateTileView;
 
 import java.lang.ref.WeakReference;
 import java.util.Collection;
@@ -167,6 +168,7 @@ public class IngestActivity extends Activity implements
 
     @Override
     protected void onResume() {
+        DateTileView.refreshLocale();
         mActive = true;
         if (mHelperService != null) mHelperService.setClientActivity(this);
         super.onResume();
index 19b3c60..52fe9b8 100644 (file)
@@ -25,9 +25,26 @@ import com.android.gallery3d.R;
 import com.android.gallery3d.ingest.SimpleDate;
 
 import java.text.DateFormatSymbols;
+import java.util.Locale;
 
 public class DateTileView extends FrameLayout {
-    private static final String[] sMonthNames = DateFormatSymbols.getInstance().getShortMonths();
+    private static String[] sMonthNames = DateFormatSymbols.getInstance().getShortMonths();
+    private static Locale sLocale;
+
+    static {
+        refreshLocale();
+    }
+
+    public static boolean refreshLocale() {
+        Locale currentLocale = Locale.getDefault();
+        if (!currentLocale.equals(sLocale)) {
+            sLocale = currentLocale;
+            sMonthNames = DateFormatSymbols.getInstance(sLocale).getShortMonths();
+            return true;
+        } else {
+            return false;
+        }
+    }
 
     private TextView mDateTextView;
     private TextView mMonthTextView;
@@ -35,6 +52,7 @@ public class DateTileView extends FrameLayout {
     private int mMonth = -1;
     private int mYear = -1;
     private int mDate = -1;
+    private String[] mMonthNames = sMonthNames;
 
     public DateTileView(Context context) {
         super(context);
@@ -71,9 +89,15 @@ public class DateTileView extends FrameLayout {
             mDate = date;
             mDateTextView.setText(mDate > 9 ? Integer.toString(mDate) : "0" + mDate);
         }
+        if (mMonthNames != sMonthNames) {
+            mMonthNames = sMonthNames;
+            if (month == mMonth) {
+                mMonthTextView.setText(mMonthNames[mMonth]);
+            }
+        }
         if (month != mMonth) {
             mMonth = month;
-            mMonthTextView.setText(sMonthNames[mMonth]);
+            mMonthTextView.setText(mMonthNames[mMonth]);
         }
         if (year != mYear) {
             mYear = year;