From fd5b1826de6056449882ab08ea902a5336a6cf6b Mon Sep 17 00:00:00 2001 From: Dan Ballard Date: Wed, 20 Sep 2017 08:27:11 -0700 Subject: [PATCH] wired up all basic OD client functionality (except disconnect) --- .../im/ricochet/androidod/RemoteActivity.java | 90 ++++++++++++++++++- app/src/main/res/layout/activity_remote.xml | 2 +- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/im/ricochet/androidod/RemoteActivity.java b/app/src/main/java/im/ricochet/androidod/RemoteActivity.java index 1606dd2..83be63d 100644 --- a/app/src/main/java/im/ricochet/androidod/RemoteActivity.java +++ b/app/src/main/java/im/ricochet/androidod/RemoteActivity.java @@ -3,6 +3,7 @@ package im.ricochet.androidod; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.view.View; import android.widget.Button; import android.widget.TextView; @@ -19,6 +20,8 @@ public class RemoteActivity extends AppCompatActivity { Button highButton; Button disconnectButton; + int vibeLevel = 0; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -34,13 +37,58 @@ public class RemoteActivity extends AppCompatActivity { highButton = (Button)findViewById(R.id.highButton); disconnectButton = (Button)findViewById(R.id.disconnetButton); + offButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + SetLevelTask setLevelTask = new SetLevelTask(); + setLevelTask.execute(0); + } + }); + lowButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + SetLevelTask setLevelTask = new SetLevelTask(); + setLevelTask.execute(2); + } + }); + medButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + SetLevelTask setLevelTask = new SetLevelTask(); + setLevelTask.execute(4); + } + }); + highButton.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + SetLevelTask setLevelTask = new SetLevelTask(); + setLevelTask.execute(6); + } + }); + GetDeviceNameTask getDeviceNameTask = new GetDeviceNameTask(); getDeviceNameTask.execute(); + GetBatteryTask getBatteryTask = new GetBatteryTask(); + getBatteryTask.execute(); + + GetLevelTask getLevelTask = new GetLevelTask(); + getLevelTask.execute(); + } + + // current impelementation of OD server can return 0 to 6 (potentially downsampled from 12?) + // The go API respects that, further downsample to [off low med high] here + // Assuming 1 means off and 2-6 are active states... + private void setVibeLevel(int newVibeLevel) { + vibeLevel = newVibeLevel; + if (vibeLevel == 1) { + statusText.setText("Off"); + } else if (vibeLevel == 2) { + statusText.setText("Low"); + } else if (vibeLevel == 3 || vibeLevel == 4) { + statusText.setText("Medium"); + } else if (vibeLevel == 5 || vibeLevel == 6) { + statusText.setText("High"); + } } private class GetDeviceNameTask extends AsyncTask { - @Override protected String doInBackground(Void... params) { String name = GoRicochetMobile.getDeviceName(); @@ -52,4 +100,44 @@ public class RemoteActivity extends AppCompatActivity { deviceText.setText(deviceName); } } + + private class GetBatteryTask extends AsyncTask { + @Override + protected String doInBackground(Void... params) { + String batteryLevel = GoRicochetMobile.getBatteryLevel(); + return batteryLevel; + } + + @Override + protected void onPostExecute(String batteryLevel) { + batteryText.setText(batteryLevel + "%"); + } + } + + private class GetLevelTask extends AsyncTask { + @Override + protected Integer doInBackground(Void... params) { + Integer vibeLevel = (int) GoRicochetMobile.getVibeLevel(); + return vibeLevel; + } + + @Override + protected void onPostExecute(Integer newVibeLevel) { + setVibeLevel(newVibeLevel); + } + } + + private class SetLevelTask extends AsyncTask { + @Override + protected Integer doInBackground(Integer... params) { + Integer newVibeLevel = params[0]; + GoRicochetMobile.setVibeLevel(newVibeLevel); + return newVibeLevel; + } + + @Override + protected void onPostExecute(Integer newVibeLevel) { + setVibeLevel(newVibeLevel); + } + } } diff --git a/app/src/main/res/layout/activity_remote.xml b/app/src/main/res/layout/activity_remote.xml index 2dae224..7ee0dcb 100644 --- a/app/src/main/res/layout/activity_remote.xml +++ b/app/src/main/res/layout/activity_remote.xml @@ -23,7 +23,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintLeft_toRightOf="@+id/textView7" - android:layout_marginLeft="0dp" + android:layout_marginLeft="8dp" app:layout_constraintTop_toTopOf="@+id/textView7" android:layout_marginTop="0dp" />