OSDN Git Service

ロックアップする不具合を改修。
[gokigen/JoggingTimer.git] / wear / src / main / java / net / osdn / gokigen / joggingtimer / stopwatch / MainActivity.java
index 8c52e52..538fd19 100644 (file)
@@ -6,6 +6,7 @@ import android.os.Bundle;
 import android.support.wear.widget.BoxInsetLayout;
 import android.support.wearable.activity.WearableActivity;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.View;
 import android.widget.ImageButton;
 import android.widget.RelativeLayout;
@@ -15,8 +16,8 @@ import net.osdn.gokigen.joggingtimer.R;
 import net.osdn.gokigen.joggingtimer.recordlist.ListActivity;
 import net.osdn.gokigen.joggingtimer.utilities.TimeStringConvert;
 
-
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
@@ -128,6 +129,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
     {
         super.onStart();
         Log.v(TAG, "onStart()");
+        controller.setupDatabase(this, false);
     }
 
     /**
@@ -162,7 +164,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
     {
         super.onExitAmbient();
         Log.v(TAG, "onExitAmbient()");
-        updateTimerLabel();
+        //updateTimerLabel();
     }
 
     /**
@@ -319,6 +321,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
                     timerCounter.start();
                     MyTimerTrigger trigger = new MyTimerTrigger(this, 100, timerCounter);
                     trigger.startTimer();
+                    controller.timerStarted(true);
                     controller.vibrate(120);
 
                     Date date = new Date();
@@ -350,6 +353,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
                 if (timerCounter.isStarted())
                 {
                     timerCounter.stop();
+                    controller.timerStarted(false);
                     controller.vibrate(120);
                     controller.getDataEntry().finishTimeData(timerCounter.getStartTime(), timerCounter.getStopTime());
                     ret = true;
@@ -421,6 +425,35 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
         return (false);
     }
 
+    @Override
+    public void dataIsReloaded(ArrayList<Long> list)
+    {
+        ITimerCounter timerCounter = counter;
+        if ((timerCounter != null)&&(list != null))
+        {
+            try
+            {
+                timerCounter.reloadTimerCounter(list.get(0), list);
+
+                MyTimerTrigger trigger = new MyTimerTrigger(this, 100, timerCounter);
+                trigger.startTimer();
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+            }
+        }
+
+        runOnUiThread(new Runnable()
+        {
+            @Override
+            public void run()
+            {
+                updateTimerLabel();
+            }
+        });
+    }
+
     /**
      *
      *
@@ -579,6 +612,58 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
      *
      *
      */
+    @Override
+    protected void onUserLeaveHint ()
+    {
+        Log.v(TAG, "onUserLeaveHint() " );
+        // ハードキー(ホームボタン)が押されたとき、これがひろえるが...
+    }
+
+    /*
+     *
+     *
+     */
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event)
+    {
+        Log.v(TAG, "dispatchKeyEvent() : " + event.getAction() + " (" + event.getKeyCode() + ")");
+
+        return (super.dispatchKeyEvent(event));
+    }
+
+    /*
+     *
+     *
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event)
+    {
+        Log.v(TAG, "onKeyDown() : " + event.getAction() + " (" + event.getKeyCode() + ")" + keyCode);
+        if (event.getRepeatCount() == 0)
+        {
+            if (keyCode == KeyEvent.KEYCODE_STEM_1)
+            {
+                startTimer();
+                return (true);
+            }
+            else if (keyCode == KeyEvent.KEYCODE_STEM_2)
+            {
+                startTimer();
+                return (true);
+            }
+            else if (keyCode == KeyEvent.KEYCODE_STEM_3)
+            {
+                startTimer();
+                return (true);
+            }
+        }
+        return (super.onKeyDown(keyCode, event));
+    }
+
+    /*
+     *
+     *
+     */
 /*
     private String getElapsedTime()
     {