1 | import { ActivityIndicatorBase, busyProperty } from './activity-indicator-common';
|
2 | import { CoreTypes } from '../../core-types';
|
3 | import { Color } from '../../color';
|
4 | import { colorProperty, visibilityProperty } from '../styling/style-properties';
|
5 | export * from './activity-indicator-common';
|
6 | export 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 |
|
\ | No newline at end of file |