From fe67281c0be569bc289022d9573c457be78e20fb Mon Sep 17 00:00:00 2001 From: James Fenn <18jafenn90@gmail.com> Date: Sat, 14 Apr 2018 17:17:30 -0400 Subject: [PATCH] fixed #12 --- .../java/james/metronome/MainActivity.java | 25 ++- .../james/metronome/WhileHeldListener.java | 46 +++++ wear/src/main/res/drawable/ic_less.xml | 9 + wear/src/main/res/drawable/ic_more.xml | 9 + wear/src/main/res/layout/activity_main.xml | 168 ++++++++++++++---- 5 files changed, 219 insertions(+), 38 deletions(-) create mode 100644 wear/src/main/java/james/metronome/WhileHeldListener.java create mode 100644 wear/src/main/res/drawable/ic_less.xml create mode 100644 wear/src/main/res/drawable/ic_more.xml diff --git a/wear/src/main/java/james/metronome/MainActivity.java b/wear/src/main/java/james/metronome/MainActivity.java index 287b98b..1ccfc7e 100644 --- a/wear/src/main/java/james/metronome/MainActivity.java +++ b/wear/src/main/java/james/metronome/MainActivity.java @@ -14,7 +14,6 @@ import android.os.VibrationEffect; import android.os.Vibrator; import android.preference.PreferenceManager; import android.support.wearable.activity.WearableActivity; -import android.support.wearable.view.BoxInsetLayout; import android.view.View; import android.widget.ImageView; import android.widget.SeekBar; @@ -27,7 +26,7 @@ public class MainActivity extends WearableActivity implements Runnable { public static final String PREF_VIBRATION = "vibration"; public static final String PREF_INTERVAL = "interval"; - private BoxInsetLayout container; + private View container; private ImageView vibrationView; private ImageView playView; private TextView bpmView; @@ -48,7 +47,7 @@ public class MainActivity extends WearableActivity implements Runnable { private Vibrator vibrator; @Override - protected void onCreate(Bundle savedInstanceState) { + protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setAmbientEnabled(); @@ -92,7 +91,7 @@ public class MainActivity extends WearableActivity implements Runnable { bpmView.setText(String.format(Locale.getDefault(), getString(R.string.bpm), String.valueOf(bpm))); seekBar.setProgress(bpm); - vibrationView.setOnClickListener(new View.OnClickListener() { + findViewById(R.id.vibrationButton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isVibration = !isVibration; @@ -106,7 +105,7 @@ public class MainActivity extends WearableActivity implements Runnable { } }); - playView.setOnClickListener(new View.OnClickListener() { + findViewById(R.id.playButton).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isPlaying = !isPlaying; @@ -120,6 +119,22 @@ public class MainActivity extends WearableActivity implements Runnable { } }); + findViewById(R.id.moreButton).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (seekBar.getProgress() < 300) + seekBar.setProgress(seekBar.getProgress() + 1); + } + }); + + findViewById(R.id.lessButton).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (seekBar.getProgress() > 1) + seekBar.setProgress(seekBar.getProgress() - 1); + } + }); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { diff --git a/wear/src/main/java/james/metronome/WhileHeldListener.java b/wear/src/main/java/james/metronome/WhileHeldListener.java new file mode 100644 index 0000000..23bf949 --- /dev/null +++ b/wear/src/main/java/james/metronome/WhileHeldListener.java @@ -0,0 +1,46 @@ +package james.metronome; + +import android.os.Handler; +import android.view.MotionEvent; +import android.view.View; + +public abstract class WhileHeldListener implements View.OnTouchListener, Runnable { + + private Handler handler; + private int interval; + + public WhileHeldListener() { + interval = 100; + } + + public WhileHeldListener(int interval) { + this.interval = interval; + } + + public abstract void onHeld(); + + @Override + public boolean onTouch(View v, MotionEvent event) { + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + if (handler != null) + return true; + handler = new Handler(); + handler.postDelayed(this, interval); + break; + case MotionEvent.ACTION_UP: + if (handler == null) + return true; + handler.removeCallbacks(this); + handler = null; + break; + } + return false; + } + + @Override + public void run() { + onHeld(); + handler.postDelayed(this, interval); + } +} diff --git a/wear/src/main/res/drawable/ic_less.xml b/wear/src/main/res/drawable/ic_less.xml new file mode 100644 index 0000000..ebf3ce3 --- /dev/null +++ b/wear/src/main/res/drawable/ic_less.xml @@ -0,0 +1,9 @@ + + + diff --git a/wear/src/main/res/drawable/ic_more.xml b/wear/src/main/res/drawable/ic_more.xml new file mode 100644 index 0000000..125885a --- /dev/null +++ b/wear/src/main/res/drawable/ic_more.xml @@ -0,0 +1,9 @@ + + + diff --git a/wear/src/main/res/layout/activity_main.xml b/wear/src/main/res/layout/activity_main.xml index 888001b..1403a4d 100644 --- a/wear/src/main/res/layout/activity_main.xml +++ b/wear/src/main/res/layout/activity_main.xml @@ -1,6 +1,7 @@ - @@ -8,42 +9,143 @@ + android:orientation="horizontal"> - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_height="1dip" + android:layout_gravity="bottom" + android:background="#8AFFFFFF" /> - + android:orientation="vertical" + app:layout_box="left|right|bottom"> - + + + + + + + - + -- GitLab