@@ -6,66 +6,70 @@ import {
66
77export * from "./slider-common" ;
88
9- interface SeekBarChangeListener {
10- new ( owner : Slider ) : android . widget . SeekBar . OnSeekBarChangeListener ;
9+ interface OwnerSeekBar extends android . widget . SeekBar {
10+ owner : Slider ;
1111}
1212
13- let SeekBarChangeListener : SeekBarChangeListener ;
13+ let SeekBar : typeof android . widget . SeekBar ;
14+ let SeekBarChangeListener : android . widget . SeekBar . OnSeekBarChangeListener ;
1415
15- function initializeSeekBarChangeListener ( ) : void {
16- if ( SeekBarChangeListener ) {
17- return ;
16+ function initializeModule ( ) : void {
17+ if ( ! SeekBar ) {
18+ SeekBar = android . widget . SeekBar ;
1819 }
1920
20- @Interfaces ( [ android . widget . SeekBar . OnSeekBarChangeListener ] )
21- class SeekBarChangeListenerImpl extends java . lang . Object implements android . widget . SeekBar . OnSeekBarChangeListener {
22- constructor ( public owner : Slider ) {
23- super ( ) ;
24- return global . __native ( this ) ;
25- }
21+ if ( ! SeekBarChangeListener ) {
22+ @Interfaces ( [ android . widget . SeekBar . OnSeekBarChangeListener ] )
23+ class SeekBarChangeListenerImpl extends java . lang . Object implements android . widget . SeekBar . OnSeekBarChangeListener {
24+ constructor ( ) {
25+ super ( ) ;
26+ return global . __native ( this ) ;
27+ }
2628
27- onProgressChanged ( seekBar : android . widget . SeekBar , progress : number , fromUser : boolean ) : void {
28- const owner = this . owner ;
29- if ( ! owner . _supressNativeValue ) {
30- let newValue : number = seekBar . getProgress ( ) + owner . minValue ;
31- valueProperty . nativeValueChange ( owner , newValue ) ;
29+ onProgressChanged ( seekBar : OwnerSeekBar , progress : number , fromUser : boolean ) : void {
30+ const owner = seekBar . owner ;
31+ if ( ! owner . _supressNativeValue ) {
32+ const newValue = progress + owner . minValue ;
33+ valueProperty . nativeValueChange ( owner , newValue ) ;
34+ }
3235 }
33- }
3436
35- onStartTrackingTouch ( seekBar : android . widget . SeekBar ) : void {
36- //
37- }
37+ onStartTrackingTouch ( seekBar : OwnerSeekBar ) : void {
38+ //
39+ }
3840
39- onStopTrackingTouch ( seekBar : android . widget . SeekBar ) : void {
40- //
41+ onStopTrackingTouch ( seekBar : OwnerSeekBar ) : void {
42+ //
43+ }
4144 }
45+
46+ SeekBarChangeListener = new SeekBarChangeListenerImpl ( ) ;
4247 }
48+ }
4349
44- SeekBarChangeListener = SeekBarChangeListenerImpl ;
50+ function getListener ( ) : android . widget . SeekBar . OnSeekBarChangeListener {
51+ return SeekBarChangeListener ;
4552}
4653
4754export class Slider extends SliderBase {
4855 _supressNativeValue : boolean ;
49- nativeViewProtected : android . widget . SeekBar ;
56+ nativeViewProtected : OwnerSeekBar ;
5057
5158 public createNativeView ( ) {
52- initializeSeekBarChangeListener ( ) ;
53- const listener = new SeekBarChangeListener ( this ) ;
54- const nativeView = new android . widget . SeekBar ( this . _context ) ;
59+ initializeModule ( ) ;
60+ const nativeView = new SeekBar ( this . _context ) ;
61+ const listener = getListener ( ) ;
5562 nativeView . setOnSeekBarChangeListener ( listener ) ;
56- ( < any > nativeView ) . listener = listener ;
5763 return nativeView ;
5864 }
5965
6066 public initNativeView ( ) : void {
6167 super . initNativeView ( ) ;
62- const nativeView : any = this . nativeViewProtected ;
63- nativeView . listener . owner = this ;
68+ this . nativeViewProtected . owner = this ;
6469 }
6570
6671 public disposeNativeView ( ) {
67- const nativeView : any = this . nativeViewProtected ;
68- nativeView . listener . owner = null ;
72+ this . nativeViewProtected . owner = null ;
6973 super . disposeNativeView ( ) ;
7074 }
7175
@@ -82,34 +86,30 @@ export class Slider extends SliderBase {
8286 * We need this method to call native setMax and setProgress methods when minValue property is changed,
8387 * without handling the native value changed callback.
8488 */
85- private setNativeValuesSilently ( newValue : number , newMaxValue : number ) {
89+ private setNativeValuesSilently ( ) {
8690 this . _supressNativeValue = true ;
8791 const nativeView = this . nativeViewProtected ;
8892 try {
89- nativeView . setMax ( newMaxValue ) ;
90- nativeView . setProgress ( newValue ) ;
93+ nativeView . setMax ( this . maxValue - this . minValue ) ;
94+ nativeView . setProgress ( this . value - this . minValue ) ;
9195 } finally {
9296 this . _supressNativeValue = false ;
9397 }
9498 }
9599
96- [ valueProperty . getDefault ] ( ) : number {
97- return 0 ;
98- }
99100 [ valueProperty . setNative ] ( value : number ) {
100- this . setNativeValuesSilently ( value - this . minValue , this . maxValue - this . minValue ) ;
101- }
102- [ minValueProperty . getDefault ] ( ) : number {
103- return 0 ;
101+ this . setNativeValuesSilently ( ) ;
104102 }
103+
105104 [ minValueProperty . setNative ] ( value : number ) {
106- this . setNativeValuesSilently ( this . value - value , this . maxValue - value ) ;
105+ this . setNativeValuesSilently ( ) ;
107106 }
107+
108108 [ maxValueProperty . getDefault ] ( ) : number {
109109 return 100 ;
110110 }
111111 [ maxValueProperty . setNative ] ( value : number ) {
112- this . setNativeValuesSilently ( value - this . minValue , value ) ;
112+ this . setNativeValuesSilently ( ) ;
113113 }
114114
115115 [ colorProperty . getDefault ] ( ) : number {
0 commit comments