mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00

recycleNativeView filed now accepts: "always" | "never" | "auto". Always will recycle the nativeView no matter if its nativeView or android proprties are accessed. Never will disable recycling. Auto will recycle it only if nativeView and android properties are not accessed.
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
import {
|
|
Color, ProgressBase, valueProperty, maxValueProperty,
|
|
colorProperty, backgroundColorProperty, backgroundInternalProperty
|
|
} from "./progress-common";
|
|
|
|
export * from "./progress-common";
|
|
|
|
const R_ATTR_PROGRESS_BAR_STYLE_HORIZONTAL = 0x01010078;
|
|
|
|
export class Progress extends ProgressBase {
|
|
nativeViewProtected: android.widget.ProgressBar;
|
|
|
|
public createNativeView() {
|
|
return new android.widget.ProgressBar(this._context, null, R_ATTR_PROGRESS_BAR_STYLE_HORIZONTAL);
|
|
}
|
|
|
|
[valueProperty.getDefault](): number {
|
|
return 0;
|
|
}
|
|
[valueProperty.setNative](value: number) {
|
|
this.nativeViewProtected.setProgress(value);
|
|
}
|
|
|
|
[maxValueProperty.getDefault](): number {
|
|
return 100;
|
|
}
|
|
[maxValueProperty.setNative](value: number) {
|
|
this.nativeViewProtected.setMax(value);
|
|
}
|
|
|
|
[colorProperty.getDefault](): android.graphics.drawable.Drawable {
|
|
return null;
|
|
}
|
|
[colorProperty.setNative](value: Color) {
|
|
let progressDrawable = this.nativeViewProtected.getProgressDrawable();
|
|
if (!progressDrawable) {
|
|
return;
|
|
}
|
|
|
|
if (value instanceof Color) {
|
|
progressDrawable.setColorFilter(value.android, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
} else {
|
|
progressDrawable.clearColorFilter();
|
|
}
|
|
}
|
|
|
|
[backgroundColorProperty.getDefault](): number {
|
|
return null;
|
|
}
|
|
[backgroundColorProperty.setNative](value: Color) {
|
|
let progressDrawable = this.nativeViewProtected.getProgressDrawable();
|
|
if (!progressDrawable) {
|
|
return;
|
|
}
|
|
|
|
if (progressDrawable instanceof android.graphics.drawable.LayerDrawable && progressDrawable.getNumberOfLayers() > 0) {
|
|
let backgroundDrawable = progressDrawable.getDrawable(0);
|
|
if (backgroundDrawable) {
|
|
if (value instanceof Color) {
|
|
backgroundDrawable.setColorFilter(value.android, android.graphics.PorterDuff.Mode.SRC_IN);
|
|
} else {
|
|
backgroundDrawable.clearColorFilter();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
[backgroundInternalProperty.getDefault](): number {
|
|
return null;
|
|
}
|
|
[backgroundInternalProperty.setNative](value: Color) {
|
|
//
|
|
}
|
|
}
|