rename "zerotime".
authorgitknilch <gitknilch@cwde.de>
Sat, 9 Mar 2013 19:26:02 +0000 (20:26 +0100)
committergitknilch <gitknilch@cwde.de>
Sat, 9 Mar 2013 19:38:58 +0000 (20:38 +0100)
Change-Id: Ia6a0172206e38f9ae598bfa90228b6c4657a8747
Signed-off-by: gitknilch <gitknilch@cwde.de>
res/layout/highscore.xml
res/values/strings.xml
src/de/cwde/freeshisen/ShisenShoView.java

index 02eaba0751e5963dcea7a8e4bad282dc0285aacc..783c98b305202f34a4f46949a98b73bd83e0a39a 100644 (file)
@@ -36,7 +36,7 @@
             android:id="@+id/textViewHL1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
@@ -49,7 +49,7 @@
             android:id="@+id/textViewHL2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
@@ -68,7 +68,7 @@
             android:id="@+id/textViewHM1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
@@ -81,7 +81,7 @@
             android:id="@+id/textViewHM2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
             android:id="@+id/textViewHS1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
             android:id="@+id/textViewHS2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
             android:id="@+id/textViewEL1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
             android:id="@+id/textViewEL2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
             android:id="@+id/textViewEM1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
             android:id="@+id/textViewEM2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
             android:id="@+id/textViewES1"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
 
         <TextView
             android:id="@+id/textViewES2"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zerotime"
+            android:text="@string/invalidtime"
             android:textIsSelectable="true" />
     </LinearLayout>
 
index 9510be02f3777fb5157728f6b83cd71379815f61..d9810cd7e3177fcca4140dedd6b81ec2729152f5 100644 (file)
@@ -33,7 +33,7 @@ Get the source code: https://code.google.com/p/freeshisen/</string>
     <string name="hiscore_2nd">", 2nd "</string>
     <string name="hiscore_medium1st">"Medium: 1st "</string>
     <string name="hiscore_small1">"Small: 1st "</string>
-    <string name="zerotime">00:00:00</string>
+    <string name="invalidtime">9:99:99</string>
     <string name="clearhiscore_confirm_title">Really clear best times?</string>
     <string name="clearhiscore_confirm_text">This will clear all saved times. Hit &quot;OK&quot; if you really want to do this.</string>
 
index 76d7fc65671cf8bc008e8e3b462c9cc4136526b7..28648114f90a734249991e0ff904f8418d262c28 100644 (file)
@@ -1,5 +1,6 @@
 package de.cwde.freeshisen;
 
+import java.lang.ref.WeakReference;
 import java.util.List;
 import java.util.Locale;
 import java.util.Timer;
@@ -45,17 +46,33 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback {
        private int tileWidth;
        private Bitmap bg;
        private Bitmap tile[];
-       private Point selection1 = new Point(0,0);
-       private Point selection2 = new Point(0,0);
-       private List<Point> path=null;
-       private List<Line> pairs=null;
+       private Point selection1 = new Point(0, 0);
+       private Point selection2 = new Point(0, 0);
+       private List<Point> path = null;
+       private List<Line> pairs = null;
        private long startTime;
        private long playTime;
        private long baseTime;
        private Timer timer;
-       private static Handler timerHandler;
 
-       private boolean timerRegistered=false;
+       static class hHandler extends Handler {
+               private final WeakReference<ShisenShoView> mTarget;
+
+               hHandler(ShisenShoView target) {
+                       mTarget = new WeakReference<ShisenShoView>(target);
+               }
+
+               @Override
+               public void handleMessage(Message msg) {
+                       ShisenShoView target = mTarget.get();
+                       if (target != null)
+                               target.onUpdateTime();
+               }
+       }
+
+       private Handler timerHandler = new hHandler(this);
+
+       private boolean timerRegistered = false;
        private ShisenSho app;
        private StatePlay cstate;
        private StatePaint pstate;
@@ -132,27 +149,23 @@ class ShisenShoView extends SurfaceView implements SurfaceHolder.Callback {
        }
 
        private void registerTimer() {
-               if (timer!=null) return; // Already registered
-               timerHandler = new Handler() {
-                       public void handleMessage(Message msg) {
-                               onUpdateTime();
-                       }
-               };
-               timer=new Timer();
+               if (timer != null)
+                       return; // Already registered
+               timer = new Timer();
                timer.scheduleAtFixedRate(new TimerTask() {
                        public void run() {
                                timerHandler.sendEmptyMessage(Activity.RESULT_OK);
                        }
                }, 0, 1000);
-               timerRegistered=true;
+               timerRegistered = true;
        }
 
        private void unregisterTimer() {
-               if (timer==null) return; // Already unregistered
+               if (timer == null)
+                       return; // Already unregistered
                timer.cancel();
                timer = null;
-               timerHandler = null;
-               timerRegistered=false;
+               timerRegistered = false;
        }
 
        public void pauseTime() {
Impressum, Datenschutz