@@ -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 ) {
0 commit comments