11import aiCommon = require( "./activity-indicator-common" ) ;
22import dependencyObservable = require( "ui/core/dependency-observable" ) ;
33import proxy = require( "ui/core/proxy" ) ;
4- import * as enumsModule from "ui/enums" ;
4+ import enums = require( "ui/enums" ) ;
5+ import styling = require( "ui/styling" ) ;
6+ import style = require( "ui/styling/style" ) ;
7+ import view = require( "ui/core/view" ) ;
58
69function onBusyPropertyChanged ( data : dependencyObservable . PropertyChangeData ) {
710 var indicator = < ActivityIndicator > data . object ;
811 if ( ! indicator . android ) {
912 return ;
1013 }
1114
12- var enums : typeof enumsModule = require ( "ui/enums" ) ;
13-
1415 if ( indicator . visibility === enums . Visibility . visible ) {
1516 indicator . android . setVisibility ( data . newValue ? android . view . View . VISIBLE : android . view . View . INVISIBLE ) ;
1617 }
@@ -34,3 +35,45 @@ export class ActivityIndicator extends aiCommon.ActivityIndicator {
3435 return this . _android ;
3536 }
3637}
38+
39+ export class ActivityIndicatorStyler implements style . Styler {
40+ private static setColorProperty ( view : view . View , newValue : any ) {
41+ var bar = < android . widget . ProgressBar > view . _nativeView ;
42+ bar . getIndeterminateDrawable ( ) . setColorFilter ( newValue , android . graphics . PorterDuff . Mode . SRC_IN ) ;
43+ }
44+
45+ private static resetColorProperty ( view : view . View , nativeValue : number ) {
46+ var bar = < android . widget . ProgressBar > view . _nativeView ;
47+ bar . getIndeterminateDrawable ( ) . clearColorFilter ( ) ;
48+ }
49+
50+ //Visibility methods
51+ public static setActivityIndicatorVisibilityProperty ( view : view . View , newValue : any ) {
52+ ActivityIndicatorStyler . setIndicatorVisibility ( ( < any > view ) . busy , newValue , view . _nativeView ) ;
53+ }
54+
55+ public static resetActivityIndicatorVisibilityProperty ( view : view . View , nativeValue : any ) {
56+ ActivityIndicatorStyler . setIndicatorVisibility ( ( < any > view ) . busy , enums . Visibility . visible , view . _nativeView ) ;
57+ }
58+
59+ public static setIndicatorVisibility ( isBusy : boolean , visibility : string , nativeView : android . view . View ) {
60+ if ( visibility === enums . Visibility . collapsed || visibility === enums . Visibility . collapse ) {
61+ nativeView . setVisibility ( android . view . View . GONE ) ;
62+ }
63+ else {
64+ nativeView . setVisibility ( isBusy ? android . view . View . VISIBLE : android . view . View . INVISIBLE ) ;
65+ }
66+ }
67+
68+ public static registerHandlers ( ) {
69+ style . registerHandler ( style . colorProperty , new style . StylePropertyChangedHandler (
70+ ActivityIndicatorStyler . setColorProperty ,
71+ ActivityIndicatorStyler . resetColorProperty ) , "ActivityIndicator" ) ;
72+
73+ style . registerHandler ( style . visibilityProperty , new style . StylePropertyChangedHandler (
74+ ActivityIndicatorStyler . setActivityIndicatorVisibilityProperty ,
75+ ActivityIndicatorStyler . resetActivityIndicatorVisibilityProperty ) , "ActivityIndicator" ) ;
76+ }
77+ }
78+
79+ ActivityIndicatorStyler . registerHandlers ( ) ;
0 commit comments