OSDN Git Service

基準値データを読み込むようにしてみた。
authorMRSa <mrsa@myad.jp>
Wed, 21 Mar 2018 05:42:39 +0000 (14:42 +0900)
committerMRSa <mrsa@myad.jp>
Wed, 21 Mar 2018 05:42:39 +0000 (14:42 +0900)
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/ButtonClickListener.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IClickCallback.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IDataEntry.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IDatabaseReloadCallback.java [new file with mode: 0644]
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/ITimerCounter.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IWearableActivityControl.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/MainActivity.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/MyTimerCounter.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/WearableActivityController.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/ITimeEntryDatabase.java
wear/src/main/java/net/osdn/gokigen/joggingtimer/storage/TimeEntryDatabase.java

index 2973ec5..4da9f52 100644 (file)
@@ -7,8 +7,6 @@ import android.view.View;
 
 import net.osdn.gokigen.joggingtimer.R;
 
-import java.util.ArrayList;
-
 /**
  *
  *
@@ -76,15 +74,6 @@ public class ButtonClickListener implements View.OnClickListener, View.OnLongCli
         return (ret);
     }
 
-    /**
-     *   中継...格好悪い...
-     *
-     */
-    void dataIsReloaded(ArrayList<Long> list)
-    {
-        callback.dataIsReloaded(list);
-    }
-
     @Override
     public int describeContents()
     {
index 9776213..d44c397 100644 (file)
@@ -1,7 +1,5 @@
 package net.osdn.gokigen.joggingtimer.stopwatch;
 
-import java.util.ArrayList;
-
 public interface IClickCallback
 {
     void clickedCounter();
@@ -13,6 +11,4 @@ public interface IClickCallback
     boolean pushedBtn2();
     boolean pushedBtn3();
 
-    void dataIsReloaded(ArrayList<Long> list);
-
 }
index 195c2ee..55e4313 100644 (file)
@@ -4,7 +4,7 @@ interface IDataEntry
 {
     //void entryData(String title, String memo, int icon, long startTime, long endTime, List<Long> elapsedTime);
 
-    void createIndex(String title, String memo, int icon, long startTime);
+    void createIndex(String title, long startTime);
     void appendTimeData(long elapsedTime);
     void finishTimeData(long startTime, long endTime);
 
diff --git a/wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IDatabaseReloadCallback.java b/wear/src/main/java/net/osdn/gokigen/joggingtimer/stopwatch/IDatabaseReloadCallback.java
new file mode 100644 (file)
index 0000000..194605b
--- /dev/null
@@ -0,0 +1,13 @@
+package net.osdn.gokigen.joggingtimer.stopwatch;
+
+import java.util.ArrayList;
+
+/**
+ *
+ *
+ */
+public interface IDatabaseReloadCallback
+{
+    void dataIsReloaded(ArrayList<Long> list);
+    void referenceDataIsReloaded(ArrayList<Long> list);
+}
index 397f30a..8030990 100644 (file)
@@ -1,6 +1,5 @@
 package net.osdn.gokigen.joggingtimer.stopwatch;
 
-import java.util.ArrayList;
 import java.util.List;
 
 public interface ITimerCounter
@@ -13,6 +12,7 @@ public interface ITimerCounter
     void reset();
 
     List<Long> getTimerList();
+    List<Long> getReferenceTimeList();
     int getElapsedCount();
     long getPastTime();
     long getLastElapsedTime();
@@ -21,5 +21,5 @@ public interface ITimerCounter
     long getStartTime();
     long getStopTime();
 
-    void reloadTimerCounter(long startTime, ArrayList<Long> timelist);
+    void setCallback(MyTimerCounter.ICounterStatusNotify callback);
 }
index c26b270..31107f6 100644 (file)
@@ -9,7 +9,7 @@ import android.support.wearable.activity.WearableActivity;
  */
 public interface IWearableActivityControl
 {
-    void setup(WearableActivity activity, IClickCallback callback);
+    void setup(WearableActivity activity, IClickCallback callback, IDatabaseReloadCallback dbCallback);
     void setupDatabase(WearableActivity activity, boolean isReset);
     void exitApplication(WearableActivity activity);
 
@@ -18,4 +18,5 @@ public interface IWearableActivityControl
     IDataEntry getDataEntry();
 
     void timerStarted(boolean isStarted);
+    void setupReferenceData();
 }
index 538fd19..68c2bfa 100644 (file)
@@ -26,7 +26,7 @@ import java.util.Locale;
  *
  *
  */
-public class MainActivity extends WearableActivity implements IClickCallback, MyTimerTrigger.ITimeoutReceiver
+public class MainActivity extends WearableActivity implements IClickCallback, MyTimerTrigger.ITimeoutReceiver, MyTimerCounter.ICounterStatusNotify
 {
     private final String TAG = toString();
     private final IWearableActivityControl controller = new WearableActivityController();
@@ -44,7 +44,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
 
         setContentView(R.layout.activity_main);
 
-        controller.setup(this, this);
+        controller.setup(this, this, counter);
 
         // Enables Always-on
         setAmbientEnabled();
@@ -54,30 +54,6 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
      *
      */
     @Override
-    protected void onSaveInstanceState(Bundle outState)
-    {
-        super.onSaveInstanceState(outState);
-
-        /* ここで状態を保存 */
-        outState.putParcelable("timerCounter", counter);
-    }
-
-    /**
-     *
-     */
-    @Override
-    protected void onRestoreInstanceState(Bundle savedInstanceState)
-    {
-        super.onRestoreInstanceState(savedInstanceState);
-
-        /* ここで保存した状態を読み出して設定 */
-        counter = savedInstanceState.getParcelable("timerCounter");
-    }
-
-    /**
-     *
-     */
-    @Override
     protected void onResume()
     {
         super.onResume();
@@ -103,6 +79,8 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
                 }
             }
         }
+        controller.setupReferenceData();
+
         if (isStartTimer)
         {
             // start a timer!
@@ -129,6 +107,9 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
     {
         super.onStart();
         Log.v(TAG, "onStart()");
+
+        // データベースのセットアップ
+        counter.setCallback(this);
         controller.setupDatabase(this, false);
     }
 
@@ -327,7 +308,7 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
                     Date date = new Date();
                     SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
                     String title = sdf1.format(date);
-                    controller.getDataEntry().createIndex(title, "", 0, timerCounter.getStartTime());
+                    controller.getDataEntry().createIndex(title, timerCounter.getStartTime());
                 }
                 updateTimerLabel();
             }
@@ -425,35 +406,6 @@ 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();
-            }
-        });
-    }
-
     /**
      *
      *
@@ -660,6 +612,36 @@ public class MainActivity extends WearableActivity implements IClickCallback, My
         return (super.onKeyDown(keyCode, event));
     }
 
+    @Override
+    public void counterStatusChanged(boolean forceStartTimer)
+    {
+        if (forceStartTimer)
+        {
+            try
+            {
+                ITimerCounter timerCounter = counter;
+                if (timerCounter != null)
+                {
+                    MyTimerTrigger trigger = new MyTimerTrigger(this, 100, timerCounter);
+                    trigger.startTimer();
+                }
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+            }
+        }
+
+        runOnUiThread(new Runnable()
+        {
+            @Override
+            public void run()
+            {
+                updateTimerLabel();
+            }
+        });
+    }
+
     /*
      *
      *
index d4e4f3d..b7f8131 100644 (file)
@@ -3,20 +3,23 @@ package net.osdn.gokigen.joggingtimer.stopwatch;
 import java.util.ArrayList;
 import java.util.List;
 
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.SystemClock;
+import android.support.annotation.NonNull;
+import android.util.Log;
 
 /**
  *    My Timer counter
  *
  */
-public class MyTimerCounter implements Parcelable, ITimerCounter
+public class MyTimerCounter implements ITimerCounter, IDatabaseReloadCallback
 {
+    private final String TAG = toString();
+    //private static final long COUNTER_UPPERLIMIT = (80 / (1000 * 60 * 60));  // 80h
     private boolean isTimerStopped = true;
+    private ICounterStatusNotify callback = null;
     private long startTime = 0;
     private long stopTime = 0;
     private List<Long> elapsedTime = null;
+    private List<Long> referenceTime = null;
 
     MyTimerCounter()
     {
@@ -50,11 +53,12 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     {
         if (isTimerStopped)
         {
-            startTime = SystemClock.elapsedRealtime();
+            startTime = System.currentTimeMillis();
             stopTime = 0;
             elapsedTime.clear();
             elapsedTime.add(startTime);
             isTimerStopped = false;
+            Log.v(TAG, "start() startTime : " + startTime);
         }
     }
 
@@ -64,7 +68,7 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
         long timeToSet = 0;
         if (!isTimerStopped)
         {
-            timeToSet = SystemClock.elapsedRealtime();
+            timeToSet = System.currentTimeMillis();
             elapsedTime.add(timeToSet);
         }
         return (timeToSet);
@@ -75,7 +79,7 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     {
         if (!isTimerStopped)
         {
-            stopTime = SystemClock.elapsedRealtime();
+            stopTime = System.currentTimeMillis();
             elapsedTime.add(stopTime);
             isTimerStopped = true;
         }
@@ -99,6 +103,12 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     }
 
     @Override
+    public List<Long> getReferenceTimeList()
+    {
+        return (referenceTime);
+    }
+
+    @Override
     public int getElapsedCount()
     {
         return (elapsedTime.size());
@@ -107,7 +117,7 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     @Override
     public long getPastTime()
     {
-        long currentTime = SystemClock.elapsedRealtime();
+        long currentTime = System.currentTimeMillis();
         if (isTimerStopped)
         {
             if (elapsedTime.size() == 0)
@@ -137,7 +147,7 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     @Override
     public long getCurrentElapsedTime()
     {
-        long currentTime = SystemClock.elapsedRealtime();
+        long currentTime = System.currentTimeMillis();
         try
         {
             return (currentTime - (elapsedTime.get(elapsedTime.size() - 1)));
@@ -162,41 +172,50 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
     }
 
     @Override
-    public int describeContents()
+    public void setCallback(ICounterStatusNotify callback)
     {
-        return 0;
+        this.callback = callback;
     }
 
     @Override
-    public void writeToParcel(Parcel dest, int flags)
-    {
-        dest.writeInt(isTimerStopped ? 1 : 0);
-        dest.writeLong(startTime);
-        dest.writeLong(stopTime);
-        dest.writeList(elapsedTime);
-    }
-
-    public static final Parcelable.Creator<MyTimerCounter> CREATOR = new Parcelable.Creator<MyTimerCounter>()
+    public void dataIsReloaded(@NonNull  ArrayList<Long> timelist)
     {
-        public MyTimerCounter createFromParcel(Parcel in)
+        try
         {
-            return (new MyTimerCounter(in));
+            long startTime = timelist.get(0);
+            long pastTime = System.currentTimeMillis() - startTime;
+            Log.v(TAG, "pastTime : " + pastTime);
+            this.startTime = startTime;
+            elapsedTime = null;
+            elapsedTime = new ArrayList<>(timelist);
+            stopTime = 0;
+            isTimerStopped = false;
+            if (callback != null)
+            {
+                callback.counterStatusChanged(true);
+            }
         }
-
-        public MyTimerCounter[] newArray(int size)
+        catch (Exception e)
         {
-            return (new MyTimerCounter[size]);
+            e.printStackTrace();
         }
-    };
+    }
 
-    private MyTimerCounter(Parcel in)
+    @Override
+    public void referenceDataIsReloaded(ArrayList<Long> timelist)
     {
         try
         {
-            isTimerStopped = (in.readInt() == 1);
-            startTime = in.readLong();
-            stopTime = in.readLong();
-            in.readList(elapsedTime, Long.class.getClassLoader());
+            referenceTime = null;
+            if (timelist != null)
+            {
+                referenceTime = new ArrayList<>(timelist);
+                if (callback != null)
+                {
+                    callback.counterStatusChanged(false);
+                }
+                Log.v(TAG, "reference lap time : " + referenceTime.size());
+            }
         }
         catch (Exception e)
         {
@@ -204,16 +223,8 @@ public class MyTimerCounter implements Parcelable, ITimerCounter
         }
     }
 
-    /**
-     *
-     *
-     */
-    public void reloadTimerCounter(long startTime, ArrayList<Long> timelist)
+    public interface ICounterStatusNotify
     {
-        this.startTime = startTime;
-        elapsedTime = null;
-        elapsedTime = new ArrayList<>(timelist);
-        stopTime = 0;
-        isTimerStopped = false;
+        void counterStatusChanged(boolean forceStartTimer);
     }
 }
index 913eebc..a3987d6 100644 (file)
@@ -37,22 +37,23 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     private SharedPreferences preferences = null;
     private final ButtonClickListener clickListener = new ButtonClickListener();
     private ITimeEntryDatabase database = null;
+    private IDatabaseReloadCallback dbCallback = null;
     private boolean isReadyDatabase = false;
+    private boolean pendingLoadReference = false;
     private long recordingIndexId = -1;
 
     private Vibrator vibrator = null;
     //private PowerManager powerManager = null;
 
 
-    WearableActivityController()
-    {
+    WearableActivityController() {
         Log.v(TAG, "WearableActivityController()");
     }
 
     @Override
-    public void setup(WearableActivity activity, IClickCallback callback)
-    {
+    public void setup(WearableActivity activity, IClickCallback callback, IDatabaseReloadCallback dbCallback) {
         this.preferences = PreferenceManager.getDefaultSharedPreferences(activity);
+        this.dbCallback = dbCallback;
         setupPermissions(activity);
         setupHardwares(activity);
         setupScreen(activity);
@@ -64,11 +65,9 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupPermissions(WearableActivity activity)
-    {
-        if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED)||
-                (ContextCompat.checkSelfPermission(activity, Manifest.permission.WAKE_LOCK) != PackageManager.PERMISSION_GRANTED))
-        {
+    private void setupPermissions(WearableActivity activity) {
+        if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) ||
+                (ContextCompat.checkSelfPermission(activity, Manifest.permission.WAKE_LOCK) != PackageManager.PERMISSION_GRANTED)) {
             ActivityCompat.requestPermissions(activity,
                     new String[]{
                             Manifest.permission.VIBRATE,
@@ -82,8 +81,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupHardwares(WearableActivity activity)
-    {
+    private void setupHardwares(WearableActivity activity) {
         // バイブレータをつかまえる
         vibrator = (Vibrator) activity.getSystemService(VIBRATOR_SERVICE);
 
@@ -95,38 +93,29 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupScreen(WearableActivity activity)
-    {
+    private void setupScreen(WearableActivity activity) {
         TextView mTextView = activity.findViewById(R.id.text);
-        if (mTextView != null)
-        {
+        if (mTextView != null) {
             mTextView.setText(R.string.app_name);
         }
     }
 
     /**
-     *   データベースのセットアップ
-     *
+     * データベースのセットアップ
      */
     @Override
-    public void setupDatabase(final WearableActivity activity, final boolean isInitialize)
-    {
+    public void setupDatabase(final WearableActivity activity, final boolean isInitialize) {
         database = new TimeEntryDatabaseFactory(activity, this).getEntryDatabase();
         Thread thread = new Thread(new Runnable() {
             @Override
-            public void run()
-            {
-                try
-                {
-                    if (isInitialize)
-                    {
+            public void run() {
+                try {
+                    if (isInitialize) {
                         // 既存のデータベースを消去する場合、、、
                         TimeEntryDatabaseFactory.deleteDatabase(activity);
                     }
                     database.prepare();
-                }
-                catch (Exception e)
-                {
+                } catch (Exception e) {
                     e.printStackTrace();
                 }
             }
@@ -135,13 +124,10 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     }
 
     /**
-     *   リスナのセットアップ
-     *
+     * リスナのセットアップ
      */
-    private void setupListeners(WearableActivity activity, IClickCallback callback)
-    {
-        try
-        {
+    private void setupListeners(WearableActivity activity, IClickCallback callback) {
+        try {
             clickListener.setCallback(callback);
             ImageButton btn1 = activity.findViewById(R.id.btn1);
             btn1.setOnClickListener(clickListener);
@@ -158,9 +144,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
             TextView main = activity.findViewById(R.id.main_counter);
             main.setOnClickListener(clickListener);
             main.setOnLongClickListener(clickListener);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
@@ -169,24 +153,18 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void closeDatabase()
-    {
+    private void closeDatabase() {
         Log.v(TAG, "closeDatabase()");
         Thread thread = new Thread(new Runnable() {
             @Override
-            public void run()
-            {
+            public void run() {
                 // DBのクローズ実行
-                if (isReadyDatabase)
-                {
+                if (isReadyDatabase) {
                     isReadyDatabase = false;
-                    try
-                    {
+                    try {
                         Log.v(TAG, "closeDatabase() EXECUTE...");
                         database.close();
-                    }
-                    catch (Exception e)
-                    {
+                    } catch (Exception e) {
                         e.printStackTrace();
                     }
                 }
@@ -195,29 +173,20 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         thread.start();
     }
 
-    private int convertIconId(int iconId)
-    {
-        return (iconId);
-    }
-
     /**
      *
      *
      */
     @Override
-    public void exitApplication(WearableActivity activity)
-    {
+    public void exitApplication(WearableActivity activity) {
         Log.v(TAG, "exitApplication()");
         closeDatabase();
     }
 
     @Override
-    public void vibrate(final int duration)
-    {
-        try
-        {
-            if ((vibrator == null)||(!vibrator.hasVibrator()))
-            {
+    public void vibrate(final int duration) {
+        try {
+            if ((vibrator == null) || (!vibrator.hasVibrator())) {
                 return;
             }
 
@@ -228,27 +197,41 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
                 }
             });
             thread.start();
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             e.printStackTrace();
         }
     }
 
     @Override
-    public IDataEntry getDataEntry()
-    {
+    public IDataEntry getDataEntry() {
         return (this);
     }
 
     @Override
-    public void timerStarted(boolean isStarted)
-    {
-        try
-        {
+    public void timerStarted(boolean isStarted) {
+        try {
             SharedPreferences.Editor editor = preferences.edit();
             editor.putBoolean(PREF_KEY_TIMER_STARTED, isStarted);
             editor.apply();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
+    public void setupReferenceData()
+    {
+        try
+        {
+            if (isReadyDatabase)
+            {
+                loadReferenceData();
+                pendingLoadReference = false;
+            }
+            else
+            {
+                pendingLoadReference = true;
+            }
         }
         catch (Exception e)
         {
@@ -262,11 +245,21 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         Log.v(TAG, "database prepareFinished() : " + isReady);
         isReadyDatabase = isReady;
 
-        try
-        {
+        try {
             boolean isStarted = preferences.getBoolean(PREF_KEY_TIMER_STARTED, false);
             recordingIndexId = preferences.getLong(PREF_KEY_TIMER_INDEXID, -1);
-            if ((isStarted)&&(recordingIndexId >= 0)&&(isReadyDatabase))
+
+            Log.v(TAG, "isStarted : " + isStarted + "  indexId : " + recordingIndexId);
+
+            // load reference data
+            if (pendingLoadReference)
+            {
+                loadReferenceData();
+                pendingLoadReference = false;
+            }
+
+            // load current lap time list
+            if ((isStarted) && (recordingIndexId >= 0) && (isReadyDatabase))
             {
                 ArrayList<Long> list = new ArrayList<>();
                 Cursor cursor = database.getAllDetailData(recordingIndexId);
@@ -274,7 +267,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
                 {
                     list.add(cursor.getLong(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY)));
                 }
-                clickListener.dataIsReloaded(list);
+                dbCallback.dataIsReloaded(list);
             }
         }
         catch (Exception e)
@@ -283,6 +276,27 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         }
     }
 
+    private void loadReferenceData()
+    {
+        // load reference data
+        try
+        {
+            ArrayList<Long> refList = null;
+            Cursor cursor = database.getAllReferenceDetailData();
+            if (cursor != null) {
+                refList = new ArrayList<>();
+                while (cursor.moveToNext())
+                {
+                    refList.add(cursor.getLong(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY)));
+                }
+            }
+            dbCallback.referenceDataIsReloaded(refList);
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
 
     @Override
     public void timeEntryFinished(OperationType operationType, boolean result, long indexId, long dataId)
@@ -317,8 +331,10 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
 
 
     @Override
-    public void createIndex(final String title, final String memo, final int icon, final long startTime)
+    public void createIndex(final String title, final long startTime)
     {
+        final String memo = "";
+        final int icon = 0;
         Log.v(TAG, "createIndex() " + title + " " + startTime);
         Thread thread = new Thread(new Runnable() {
             @Override
@@ -328,7 +344,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
                 {
                     try
                     {
-                        database.createIndexData(title, memo, convertIconId(icon), startTime);
+                        database.createIndexData(title, memo, icon, startTime);
                     }
                     catch (Exception e)
                     {
index 184876a..91a6bae 100644 (file)
@@ -13,6 +13,7 @@ public interface ITimeEntryDatabase
 
     Cursor getAllIndexData();
     Cursor getAllDetailData(long indexId);
+    Cursor getAllReferenceDetailData();
 
     void deleteTimeEntryData(long indexId);
 
index f6c4972..2986f09 100644 (file)
@@ -72,7 +72,7 @@ class TimeEntryDatabase implements ITimeEntryDatabase
     @Override
     public Cursor getAllIndexData()
     {
-        return (db.rawQuery("SELECT * FROM " + TimeEntryIndex.EntryIndex.TABLE_NAME + " ORDER BY " + TimeEntryIndex.EntryIndex.COLUMN_NAME_START_TIME, null));
+        return (db.rawQuery("SELECT * FROM " + TimeEntryIndex.EntryIndex.TABLE_NAME + " ORDER BY " + TimeEntryIndex.EntryIndex.COLUMN_NAME_START_TIME + " DESC", null));
     }
 
     @Override
@@ -82,6 +82,17 @@ class TimeEntryDatabase implements ITimeEntryDatabase
     }
 
     @Override
+    public Cursor getAllReferenceDetailData()
+    {
+        String queryString = "SELECT * FROM " + TimeEntryIndex.EntryIndex.TABLE_NAME + " INNER JOIN " + TimeEntryData.EntryData.TABLE_NAME +
+                " ON " + TimeEntryIndex.EntryIndex.TABLE_NAME + "." + TimeEntryIndex.EntryIndex._ID + " = " + TimeEntryData.EntryData.TABLE_NAME+ "." + TimeEntryData.EntryData.COLUMN_NAME_INDEX_ID +
+                " WHERE " + TimeEntryIndex.EntryIndex.TABLE_NAME+ "." + TimeEntryIndex.EntryIndex.COLUMN_NAME_ICON_ID + " = " + REFERENCE_ICON_ID +
+                " ORDER BY " + TimeEntryData.EntryData.TABLE_NAME+ "." + TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY;
+        //Log.v(TAG, "Query : " + queryString);
+        return (db.rawQuery(queryString, null));
+    }
+
+    @Override
     public void deleteTimeEntryData(long indexId)
     {
         int delRecord = db.delete(TimeEntryData.EntryData.TABLE_NAME, TimeEntryData.EntryData.COLUMN_NAME_INDEX_ID + " = " + indexId, null);