OSDN Git Service

ラップタイムリストをスクロールできるようにする。
[gokigen/JoggingTimer.git] / wear / src / main / java / net / osdn / gokigen / joggingtimer / stopwatch / WearableActivityController.java
index a20fc1c..a986bad 100644 (file)
@@ -6,8 +6,6 @@ import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
 import android.os.Vibrator;
-import android.preference.PreferenceManager;
-import android.support.wearable.activity.WearableActivity;
 import android.util.Log;
 import android.widget.ImageButton;
 import android.widget.ListView;
@@ -27,8 +25,13 @@ import java.util.ArrayList;
 
 import static android.content.Context.VIBRATOR_SERVICE;
 
+import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_DISPLAY_LAPGRAPHIC;
+import static net.osdn.gokigen.joggingtimer.utilities.SelectReferenceViewModeDialog.PREF_KEY_REFERENCE_TIME_SELECTION;
+
+import androidx.appcompat.app.AppCompatActivity;
 import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
+import androidx.preference.PreferenceManager;
 
 /**
  *
@@ -40,7 +43,6 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     private final String TAG = toString();
     private final String PREF_KEY_TIMER_STARTED = "TMR_START";
     private final String PREF_KEY_TIMER_INDEXID = "TMR_INDEX";
-    private final String PREF_KEY_DISPLAY_LAPGRAPHIC = "DISP_LAPGRPH";
 
     private SharedPreferences preferences = null;
     private final ButtonClickListener clickListener = new ButtonClickListener();
@@ -60,7 +62,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     }
 
     @Override
-    public void setup(WearableActivity activity, IClickCallback callback, IDatabaseReloadCallback dbCallback)
+    public void setup(AppCompatActivity activity, IClickCallback callback, IDatabaseReloadCallback dbCallback)
     {
         this.preferences = PreferenceManager.getDefaultSharedPreferences(activity);
         this.dbCallback = dbCallback;
@@ -75,7 +77,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupPermissions(WearableActivity activity)
+    private void setupPermissions(AppCompatActivity activity)
     {
         if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.VIBRATE) != PackageManager.PERMISSION_GRANTED) ||
                 (ContextCompat.checkSelfPermission(activity, Manifest.permission.WAKE_LOCK) != PackageManager.PERMISSION_GRANTED)) {
@@ -92,12 +94,12 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupHardwares(WearableActivity activity)
+    private void setupHardwares(AppCompatActivity activity)
     {
         // バイブレータをつかまえる
         vibrator = (Vibrator) activity.getSystemService(VIBRATOR_SERVICE);
 
-        //// パワーマネージャをつかまえる
+        // パワーマネージャをつかまえる
         //powerManager = (PowerManager) activity.getSystemService(POWER_SERVICE);
     }
 
@@ -105,7 +107,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      *
      */
-    private void setupScreen(WearableActivity activity)
+    private void setupScreen(AppCompatActivity activity)
     {
         TextView mTextView = activity.findViewById(R.id.text);
         if (mTextView != null)
@@ -124,7 +126,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      * データベースのセットアップ
      */
     @Override
-    public void setupDatabase(final WearableActivity activity, final boolean isInitialize)
+    public void setupDatabase(final AppCompatActivity activity, final boolean isInitialize)
     {
         database = new TimeEntryDatabaseFactory(activity, this).getEntryDatabase();
         Thread thread = new Thread(() -> {
@@ -148,7 +150,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     /**
      * リスナのセットアップ
      */
-    private void setupListeners(WearableActivity activity, IClickCallback callback)
+    private void setupListeners(AppCompatActivity activity, IClickCallback callback)
     {
         try
         {
@@ -176,11 +178,13 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
             ListView lap = activity.findViewById(R.id.laptime_list_area);
             //lap.setOnClickListener(clickListener);
             lap.setOnLongClickListener(clickListener);
+            //lap.setOnTouchListener(clickListener);
 
             LapTimeGraphView graphView = activity.findViewById(R.id.graph_area);
             graphView.setOnTouchListener(clickListener);
             graphView.setOnClickListener(clickListener);
             graphView.setOnLongClickListener(clickListener);
+
         }
         catch (Exception e)
         {
@@ -219,7 +223,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
      *
      */
     @Override
-    public void exitApplication(WearableActivity activity)
+    public void exitApplication(AppCompatActivity activity)
     {
         Log.v(TAG, "exitApplication()");
         closeDatabase();
@@ -293,7 +297,6 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         }
     }
 
-
     @Override
     public void addTimeStamp(long count, long lapTime, long diffTime)
     {
@@ -324,6 +327,35 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
     }
 
     @Override
+    public int getReferenceTimerSelection()
+    {
+        try
+        {
+            return (preferences.getInt(PREF_KEY_REFERENCE_TIME_SELECTION, 0));
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return (0);
+    }
+
+    @Override
+    public void setReferenceTimerSelection(int id)
+    {
+        try
+        {
+            SharedPreferences.Editor editor = preferences.edit();
+            editor.putInt(PREF_KEY_REFERENCE_TIME_SELECTION, id);
+            editor.apply();
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
     public void setupReferenceData()
     {
         try
@@ -389,8 +421,9 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         // load reference data
         try
         {
+            int id = getReferenceTimerSelection();
             ArrayList<Long> refList = null;
-            Cursor cursor = database.getAllReferenceDetailData();
+            Cursor cursor = database.getAllReferenceDetailData(id);
             if (cursor != null)
             {
                 refList = new ArrayList<>();
@@ -399,7 +432,7 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
                     refList.add(cursor.getLong(cursor.getColumnIndex(TimeEntryData.EntryData.COLUMN_NAME_TIME_ENTRY)));
                 }
             }
-            dbCallback.referenceDataIsReloaded(refList);
+            dbCallback.referenceDataIsReloaded(id, refList);
         }
         catch (Exception e)
         {
@@ -444,7 +477,6 @@ class WearableActivityController implements IWearableActivityControl, ITimeEntry
         }
     }
 
-
     @Override
     public void createIndex(final String title, final long startTime)
     {