Skip to content

Commit 695f6c8

Browse files
Beppi MenozziBeppi Menozzi
authored andcommitted
Added integer toggle values - warning: Listener changed
1 parent f8805e0 commit 695f6c8

4 files changed

Lines changed: 38 additions & 15 deletions

File tree

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tristatetogglebutton_library/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ android {
77
defaultConfig {
88
minSdkVersion 9
99
targetSdkVersion 25
10-
versionCode 1
11-
versionName "1.0"
10+
versionCode 2
11+
versionName "1.0.3"
1212

1313
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1414

tristatetogglebutton_library/src/main/java/it/beppi/tristatetogglebutton_library/TriStateToggleButton.java

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,29 @@ private ToggleStatus attrToStatus(String attr) {
4141
else return on;
4242
}
4343

44-
// Beppi: static shortcut for handling boolean values with 2-state. mid = false.
45-
private boolean toggleStatusToBoolean(ToggleStatus toggleStatus) {
44+
// Beppi: static shortcuts for handling boolean values with 2-state. mid = false.
45+
public static boolean toggleStatusToBoolean(ToggleStatus toggleStatus) {
4646
if (toggleStatus == on) return true;
4747
else return false;
4848
}
49+
public static ToggleStatus booleanToToggleStatus(boolean toggleStatus) {
50+
if (toggleStatus) return on;
51+
else return off;
52+
}
53+
// Beppi: same with integers
54+
public static int toggleStatusToInt(ToggleStatus toggleStatus) {
55+
switch (toggleStatus) {
56+
case off: return 0;
57+
case mid: return 1;
58+
case on:
59+
default: return 2;
60+
}
61+
}
62+
public static ToggleStatus intToToggleStatus(int toggleIntValue) {
63+
if (toggleIntValue == 0) return off;
64+
else if (toggleIntValue == 1) return mid;
65+
else return on;
66+
}
4967

5068

5169
private SpringSystem springSystem;
@@ -203,29 +221,29 @@ public void toggle(boolean animate) {
203221
takeEffect(animate);
204222

205223
if(listener != null){
206-
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus));
224+
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus), toggleStatusToInt(toggleStatus));
207225
}
208226
}
209227

210228
public void toggleOn() {
211229
setToggleOn();
212230
if(listener != null){
213-
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus));
231+
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus), toggleStatusToInt(toggleStatus));
214232
}
215233
}
216234

217235
public void toggleOff() {
218236
setToggleOff();
219237
if(listener != null){
220-
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus));
238+
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus), toggleStatusToInt(toggleStatus));
221239
}
222240
}
223241

224242
// Beppi: added method to handle the mid value
225243
public void toggleMid() {
226244
setToggleMid();
227245
if(listener != null){
228-
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus));
246+
listener.onToggle(toggleStatus, toggleStatusToBoolean(toggleStatus), toggleStatusToInt(toggleStatus));
229247
}
230248
}
231249

@@ -292,6 +310,12 @@ public void setToggleStatus(boolean toggleStatus, boolean animate) {
292310
else putValueInToggleStatus(off);
293311
takeEffect(animate);
294312
}
313+
public void setToggleStatus(int toggleIntValue) {
314+
setToggleStatus(toggleIntValue, true);
315+
}
316+
public void setToggleStatus(int toggleIntValue, boolean animate) {
317+
setToggleStatus(intToToggleStatus(toggleIntValue), animate);
318+
}
295319

296320
// Beppi: rewritten takeEffect() method to manage 3 states
297321
/*
@@ -384,7 +408,6 @@ private int clamp(int value, int low, int high) {
384408

385409
@Override
386410
public void draw(Canvas canvas) {
387-
// Beppi: added enabled management
388411
rect.set(0, 0, getWidth(), getHeight());
389412
paint.setColor(borderColor);
390413
canvas.drawRoundRect(rect, radius, radius, paint);
@@ -502,7 +525,7 @@ public interface OnToggleChanged{
502525
*/
503526
// Beppi: changed according to 3 states value
504527
// public void onToggle(boolean on);
505-
public void onToggle(ToggleStatus toggleStatus, boolean booleanToggleStatus);
528+
public void onToggle(ToggleStatus toggleStatus, boolean booleanToggleStatus, int toggleIntValue);
506529
}
507530

508531
public void setOnToggleChanged(OnToggleChanged onToggleChanged) {

tristatetogglebutton_sample/src/main/java/it/beppi/tristatetogglebuttonsample/SampleActivity.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ protected void onCreate(Bundle savedInstanceState) {
3434
tstb_1_text.setText("Off");
3535
tstb_1.setOnToggleChanged(new TriStateToggleButton.OnToggleChanged() {
3636
@Override
37-
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus) {
37+
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus, int toggleIntValue) {
3838
switch (toggleStatus) {
3939
case off: tstb_1_text.setText("Off"); break;
4040
case mid: tstb_1_text.setText("Half way"); break;
@@ -48,7 +48,7 @@ public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean boo
4848
tstb_2_text.setText("Almost...");
4949
tstb_2.setOnToggleChanged(new TriStateToggleButton.OnToggleChanged() {
5050
@Override
51-
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus) {
51+
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus, int toggleIntValue) {
5252
switch (toggleStatus) {
5353
case off: tstb_2_text.setText("Off"); break;
5454
case mid: tstb_2_text.setText("Almost..."); break;
@@ -62,7 +62,7 @@ public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean boo
6262
tstb_3_text.setText("undefined");
6363
tstb_3.setOnToggleChanged(new TriStateToggleButton.OnToggleChanged() {
6464
@Override
65-
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus) {
65+
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus, int toggleIntValue) {
6666
switch (toggleStatus) {
6767
case off: tstb_3_text.setText("False"); break;
6868
case mid: tstb_3_text.setText("undefined"); break;
@@ -75,7 +75,7 @@ public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean boo
7575

7676
tstb_4.setOnToggleChanged(new TriStateToggleButton.OnToggleChanged() {
7777
@Override
78-
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus) {
78+
public void onToggle(TriStateToggleButton.ToggleStatus toggleStatus, boolean booleanToggleStatus, int toggleIntValue) {
7979
tstb_3.setEnabled(booleanToggleStatus);
8080
}
8181
});

0 commit comments

Comments
 (0)