diff --git a/app/build.gradle b/app/build.gradle index cc479c4..feb6c88 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,6 +20,10 @@ buildscript { repositories { mavenCentral() jcenter() + + flatDir { + dirs 'libs' + } } dependencies { @@ -60,7 +64,7 @@ dependencies { compile 'com.jakewharton:butterknife:7.0.1' compile 'com.koushikdutta.async:androidasync:2.1.6' compile 'com.android.support:design:23.0.1' - compile 'com.larswerkman:HoloColorPicker:1.5' + compile 'com.larswerkman:HoloColorPicker:1.5@aar' compile 'com.google.guava:guava:19.0-rc1' provided 'org.projectlombok:lombok:1.16.6' } diff --git a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java index 5554381..4d20ea3 100644 --- a/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java +++ b/app/src/main/java/com/idlegandalf/ledd/ColorActivity.java @@ -40,6 +40,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.SubMenu; import android.view.View; +import android.widget.Switch; import com.idlegandalf.ledd.callbacks.RecieveColorCallback; import com.idlegandalf.ledd.callbacks.StripesCallback; @@ -49,12 +50,14 @@ import com.idlegandalf.ledd.components.LedStripe; import com.idlegandalf.ledd.fragments.AddStripeDialog; import com.idlegandalf.ledd.helper.LedDHelper; import com.larswerkman.holocolorpicker.ColorPicker; -import com.larswerkman.holocolorpicker.SVBar; +import com.larswerkman.holocolorpicker.SaturationBar; +import com.larswerkman.holocolorpicker.ValueBar; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; +import butterknife.OnCheckedChanged; public class ColorActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { @@ -66,8 +69,12 @@ public class ColorActivity extends AppCompatActivity implements NavigationView.O NavigationView navigationView; @Bind(R.id.picker) ColorPicker colorPicker; - @Bind(R.id.svbar) - SVBar svBar; + @Bind(R.id.saturationbar) + SaturationBar saturationBar; + @Bind(R.id.valuebar) + ValueBar valueBar; + @Bind(R.id.switch_onoff) + Switch aSwitch; private ActionBarDrawerToggle mDrawerToggle; private refreshDaemonsListener daemonsListener; private List ledStripes; @@ -78,6 +85,7 @@ public class ColorActivity extends AppCompatActivity implements NavigationView.O private double per = 100.0; private double allowance = rate; private long last_check = System.currentTimeMillis(); + private boolean isDisabled = false; @Override protected void onCreate(Bundle savedInstanceState) { @@ -97,13 +105,14 @@ public class ColorActivity extends AppCompatActivity implements NavigationView.O }).show(); } - colorPicker.addSVBar(svBar); + colorPicker.addSaturationBar(saturationBar); + colorPicker.addValueBar(valueBar); colorPicker.setShowOldCenterColor(false); colorPicker.setOnColorChangedListener(new ColorPicker.OnColorChangedListener() { @Override public void onColorChanged(int i) { - if (mCurrentStripe != null && mCurrentHelper != null && isRateAcceptable()) { + if (mCurrentStripe != null && mCurrentHelper != null && isRateAcceptable() && !isDisabled) { float[] hsv = new float[3]; Color.colorToHSV(i, hsv); mCurrentStripe.setColor(new HSV(hsv[0], hsv[1], hsv[2])); @@ -176,6 +185,22 @@ public class ColorActivity extends AppCompatActivity implements NavigationView.O return super.onOptionsItemSelected(item); } + @OnCheckedChanged(R.id.switch_onoff) + public void onOffToggle(boolean checked) { + if (mCurrentStripe != null && mCurrentHelper != null) { + if (!checked) { + HSV nHSV = mCurrentStripe.getColor(); + nHSV.setValue(0.0); + mCurrentStripe.setColor(nHSV); + mCurrentHelper.setColor(mCurrentStripe); + colorPicker.setColor(Color.HSVToColor(new float[]{(float) nHSV.getHue(), (float) nHSV.getSaturation(), (float) nHSV.getValue()})); + isDisabled = true; + } else { + isDisabled = false; + } + } + } + @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_MENU) { @@ -330,12 +355,19 @@ public class ColorActivity extends AppCompatActivity implements NavigationView.O @Override public void onColorRecieved(LedStripe stripe) { final HSV cColor = stripe.getColor(); + final int color = Color.HSVToColor(new float[]{(float) cColor.getHue(), (float) cColor.getSaturation(), (float) cColor.getValue()}); runOnUiThread(new Runnable() { @Override public void run() { - colorPicker.setColor(Color.HSVToColor(new float[]{(float) cColor.getHue(), (float) cColor.getSaturation(), (float) cColor - .getValue()})); + colorPicker.setColor(color); + if (cColor.getValue() == 0.0) { + aSwitch.setChecked(false); + isDisabled = true; + } else { + aSwitch.setChecked(true); + isDisabled = false; + } } }); } diff --git a/app/src/main/java/com/idlegandalf/ledd/fragments/AddControllerDialog.java b/app/src/main/java/com/idlegandalf/ledd/fragments/AddControllerDialog.java index 700ab5c..eee524a 100644 --- a/app/src/main/java/com/idlegandalf/ledd/fragments/AddControllerDialog.java +++ b/app/src/main/java/com/idlegandalf/ledd/fragments/AddControllerDialog.java @@ -181,8 +181,7 @@ public class AddControllerDialog extends DialogFragment implements DialogInterfa getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)) - .getChildAt(0), "Added Controller (" + controller.getId() + ")", Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), String.format(getActivity().getString(R.string.snachbar_added_controller), controller.getId()), Snackbar.LENGTH_LONG).show(); } }); @@ -195,8 +194,7 @@ public class AddControllerDialog extends DialogFragment implements DialogInterfa getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)) - .getChildAt(0), "Error: " + msg, Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), getActivity().getString(R.string.snackbar_error) + msg, Snackbar.LENGTH_LONG).show(); } }); AddStripeDialog.instance.onResume(); @@ -208,9 +206,7 @@ public class AddControllerDialog extends DialogFragment implements DialogInterfa getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)) - .getChildAt(0), "Coudn't connect to" + - " daemon at " + dDaemon + ": " + message, Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), String.format(getActivity().getString(R.string.snackbar_daemon_connection_failed), dDaemon, message), Snackbar.LENGTH_LONG).show(); } }); AddStripeDialog.instance.onResume(); diff --git a/app/src/main/java/com/idlegandalf/ledd/fragments/AddDaemonDialog.java b/app/src/main/java/com/idlegandalf/ledd/fragments/AddDaemonDialog.java index 7f8802d..b8752f3 100644 --- a/app/src/main/java/com/idlegandalf/ledd/fragments/AddDaemonDialog.java +++ b/app/src/main/java/com/idlegandalf/ledd/fragments/AddDaemonDialog.java @@ -289,9 +289,7 @@ public class AddDaemonDialog extends DialogFragment implements DialogInterface.O getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), - "Coudn't connect to" + - " daemon at " + ledDDaemon + ": " + message, Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), String.format(getActivity().getString(R.string.snackbar_daemon_connection_failed), ledDDaemon, message), Snackbar.LENGTH_LONG).show(); } }); AddStripeDialog.instance.onResume(); @@ -303,8 +301,7 @@ public class AddDaemonDialog extends DialogFragment implements DialogInterface.O getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), - "Added LedD Daemon version: " + version, Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), getActivity().getString(R.string.snackbar_added_daemon_version) + version, Snackbar.LENGTH_LONG).show(); } }); diff --git a/app/src/main/java/com/idlegandalf/ledd/fragments/AddStripeDialog.java b/app/src/main/java/com/idlegandalf/ledd/fragments/AddStripeDialog.java index deb3c8b..5b81531 100644 --- a/app/src/main/java/com/idlegandalf/ledd/fragments/AddStripeDialog.java +++ b/app/src/main/java/com/idlegandalf/ledd/fragments/AddStripeDialog.java @@ -269,8 +269,7 @@ public class AddStripeDialog extends DialogFragment implements DialogInterface.O getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)) - .getChildAt(0), "Added stripe (" + stripe.getId() + ")", Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), String.format(getActivity().getString(R.string.snackbar_added_stripe_id), stripe.getId()), Snackbar.LENGTH_LONG).show(); } }); dismiss(); @@ -281,8 +280,7 @@ public class AddStripeDialog extends DialogFragment implements DialogInterface.O getActivity().runOnUiThread(new Runnable() { @Override public void run() { - Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)) - .getChildAt(0), "Failed to add stripe: " + message, Snackbar.LENGTH_LONG).show(); + Snackbar.make(((ViewGroup) getActivity().getWindow().getDecorView().findViewById(android.R.id.content)).getChildAt(0), getActivity().getString(R.string.snackbar_failed_add_stripe) + message, Snackbar.LENGTH_LONG).show(); } }); dismiss(); diff --git a/app/src/main/res/layout/activity_color.xml b/app/src/main/res/layout/activity_color.xml index 758b7e6..e636bc1 100644 --- a/app/src/main/res/layout/activity_color.xml +++ b/app/src/main/res/layout/activity_color.xml @@ -37,20 +37,39 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/colorPrimary" - android:minHeight="?android:attr/actionBarSize"/> + android:minHeight="?android:attr/actionBarSize"> + + + + + android:layout_marginTop="25dp" + app:color_center_radius="140dp" + app:color_wheel_radius="180dp" + app:color_wheel_thickness="30dp"/> - + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="15dp"/> + + diff --git a/app/src/main/res/layout/navigation_header.xml b/app/src/main/res/layout/navigation_header.xml index 7d4688a..8454339 100644 --- a/app/src/main/res/layout/navigation_header.xml +++ b/app/src/main/res/layout/navigation_header.xml @@ -17,12 +17,11 @@ ~ along with this program. If not, see . --> - @@ -32,4 +31,13 @@ android:text="-- stripes infos go here --" android:textAppearance="@style/TextAppearance.AppCompat.Body1"/> - \ No newline at end of file + + + \ No newline at end of file diff --git a/app/src/main/res/menu/color.xml b/app/src/main/res/menu/color.xml index ad62b6b..1287a12 100644 --- a/app/src/main/res/menu/color.xml +++ b/app/src/main/res/menu/color.xml @@ -17,6 +17,4 @@ --> - - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9b27216..37d32bd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,7 +38,13 @@ Settings We currently only support WLAN, please connect to one LED stripes reloaded - "Coudn't get stripes from daemon: " - "Coudn't connect to daemon: " + Couldn\'t get stripes from daemon: + Couldn\'t connect to daemon: + Added Controller (Id=%1$d) + Error: + Couldn\'t connect to daemon at %1$s: %2$s + Added LedD Daemon version: + Added Stripe (Id=%1$d) + Failed to add Stripe: