UNPKG

2.27 kBJavaScriptView Raw
1import { ActivityIndicatorBase, busyProperty } from './activity-indicator-common';
2import { CoreTypes } from '../../core-types';
3import { Color } from '../../color';
4import { colorProperty, visibilityProperty } from '../styling/style-properties';
5export * from './activity-indicator-common';
6export class ActivityIndicator extends ActivityIndicatorBase {
7 createNativeView() {
8 const progressBar = new android.widget.ProgressBar(this._context);
9 progressBar.setVisibility(android.view.View.INVISIBLE);
10 progressBar.setIndeterminate(true);
11 return progressBar;
12 }
13 [busyProperty.getDefault]() {
14 return false;
15 }
16 [busyProperty.setNative](value) {
17 if (this.visibility === CoreTypes.Visibility.visible) {
18 this.nativeViewProtected.setVisibility(value ? android.view.View.VISIBLE : android.view.View.INVISIBLE);
19 }
20 }
21 [visibilityProperty.getDefault]() {
22 return CoreTypes.Visibility.hidden;
23 }
24 [visibilityProperty.setNative](value) {
25 switch (value) {
26 case CoreTypes.Visibility.visible:
27 this.nativeViewProtected.setVisibility(this.busy ? android.view.View.VISIBLE : android.view.View.INVISIBLE);
28 break;
29 case CoreTypes.Visibility.hidden:
30 this.nativeViewProtected.setVisibility(android.view.View.INVISIBLE);
31 break;
32 case CoreTypes.Visibility.collapse:
33 this.nativeViewProtected.setVisibility(android.view.View.GONE);
34 break;
35 default:
36 throw new Error(`Invalid visibility value: ${value}. Valid values are: "${CoreTypes.Visibility.visible}", "${CoreTypes.Visibility.hidden}", "${CoreTypes.Visibility.collapse}".`);
37 }
38 }
39 [colorProperty.getDefault]() {
40 return -1;
41 }
42 [colorProperty.setNative](value) {
43 const color = value instanceof Color ? value.android : value;
44 const drawable = this.nativeViewProtected.getIndeterminateDrawable().mutate();
45 if (color) {
46 drawable.setColorFilter(color, android.graphics.PorterDuff.Mode.SRC_IN);
47 }
48 else {
49 drawable.clearColorFilter();
50 }
51 }
52}
53//# sourceMappingURL=index.android.js.map
\No newline at end of file