Skip to content

Commit cd6f18e

Browse files
committed
fix: refactoring and clean up or faster access
1 parent 45dd6cd commit cd6f18e

File tree

9 files changed

+109
-96
lines changed

9 files changed

+109
-96
lines changed

src/button/button.android.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ export class Button extends ButtonBase {
6868
// if (variant === 'outline') {
6969
// view.setStrokeWidth(1);
7070
// if (!grayColorStateList) {
71-
// grayColorStateList = android.content.res.ColorStateList.valueOf(new Color('gray').android);
71+
// grayColorStateList = getColorStateList(new Color('gray').android);
7272
// }
7373
// view.setStrokeColor(grayColorStateList);
7474
// }
@@ -223,6 +223,6 @@ export class Button extends ButtonBase {
223223
[colorProperty.setNative](value) {
224224
const color = value instanceof Color ? value.android : value;
225225
super[colorProperty.setNative](value);
226-
this.nativeViewProtected.setIconTint(android.content.res.ColorStateList.valueOf(color));
226+
this.nativeViewProtected.setIconTint(getColorStateList(color));
227227
}
228228
}

src/cardview/cardview.android.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { dynamicElevationOffsetProperty, elevationProperty, getRippleColor, rippleColorProperty, shapeProperty, themer } from '@nativescript-community/ui-material-core';
2-
import { createStateListAnimator, getAttrColor, isPostLollipop } from '@nativescript-community/ui-material-core/android/utils';
2+
import { createStateListAnimator, getAttrColor, getColorStateList, isPostLollipop } from '@nativescript-community/ui-material-core/android/utils';
33
import { Color, Length, backgroundInternalProperty } from '@nativescript/core';
44
import { CardViewBase } from './cardview-common';
55

@@ -363,10 +363,10 @@ export class CardView extends CardViewBase {
363363
[rippleColorProperty.setNative](color: Color) {
364364
const rippleColor = color ? color.android : -1;
365365
// if (isPostLollipopMR1()) {
366-
// (this.rippleDrawable as android.graphics.drawable.RippleDrawable).setColor(android.content.res.ColorStateList.valueOf(rippleColor));
366+
// (this.rippleDrawable as android.graphics.drawable.RippleDrawable).setColor(getColorStateList(rippleColor));
367367
// } else {
368368
// this.rippleShape.getPaint().setColor(rippleColor);
369369
// }
370-
(this.nativeViewProtected as any).setRippleColor(android.content.res.ColorStateList.valueOf(rippleColor));
370+
(this.nativeViewProtected as any).setRippleColor(getColorStateList(rippleColor));
371371
}
372372
}

src/core/android/utils.ts

Lines changed: 46 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { VerticalTextAlignment } from '@nativescript-community/text';
2-
import { Application, Color, Utils, ViewBase, profile, CoreTypes } from '@nativescript/core';
2+
import { Application, Color, CoreTypes, Utils, ViewBase, profile } from '@nativescript/core';
33

44
let isPostLollipopVar: boolean;
55
export function isPostLollipop() {
@@ -55,94 +55,94 @@ function createNativeArray(...args) {
5555
}
5656
export const stateSets = {
5757
get PRESSED_STATE_SET() {
58-
if (!this._PRESSED_STATE_SET) {
59-
this._PRESSED_STATE_SET = createNativeArray(state.pressed);
58+
if (!this.mPRESSED_STATE_SET) {
59+
this.mPRESSED_STATE_SET = createNativeArray(state.pressed);
6060
}
61-
return this._PRESSED_STATE_SET as Array<number>;
61+
return this.mPRESSED_STATE_SET as number[];
6262
},
6363
get HOVERED_FOCUSED_STATE_SET() {
64-
if (!this._HOVERED_FOCUSED_STATE_SET) {
65-
this._HOVERED_FOCUSED_STATE_SET = createNativeArray(state.hovered, state.focused);
64+
if (!this.mHOVERED_FOCUSED_STATE_SET) {
65+
this.mHOVERED_FOCUSED_STATE_SET = createNativeArray(state.hovered, state.focused);
6666
}
67-
return this._PRESSED_STATE_SET as Array<number>;
67+
return this.mPRESSED_STATE_SET as number[];
6868
},
6969
get FOCUSED_STATE_SET() {
70-
if (!this._FOCUSED_STATE_SET) {
71-
this._FOCUSED_STATE_SET = createNativeArray(state.focused);
70+
if (!this.mFOCUSED_STATE_SET) {
71+
this.mFOCUSED_STATE_SET = createNativeArray(state.focused);
7272
}
73-
return this._FOCUSED_STATE_SET as Array<number>;
73+
return this.mFOCUSED_STATE_SET as number[];
7474
},
7575
get HOVERED_STATE_SET() {
76-
if (!this._HOVERED_STATE_SET) {
77-
this._HOVERED_STATE_SET = createNativeArray(state.hovered);
76+
if (!this.mHOVERED_STATE_SET) {
77+
this.mHOVERED_STATE_SET = createNativeArray(state.hovered);
7878
}
79-
return this._HOVERED_STATE_SET as Array<number>;
79+
return this.mHOVERED_STATE_SET as number[];
8080
},
8181
get SELECTED_PRESSED_STATE_SET() {
82-
if (!this._SELECTED_PRESSED_STATE_SET) {
83-
this._SELECTED_PRESSED_STATE_SET = createNativeArray(state.enabled, state.pressed);
82+
if (!this.mSELECTED_PRESSED_STATE_SET) {
83+
this.mSELECTED_PRESSED_STATE_SET = createNativeArray(state.enabled, state.pressed);
8484
}
85-
return this._SELECTED_PRESSED_STATE_SET as Array<number>;
85+
return this.mSELECTED_PRESSED_STATE_SET as number[];
8686
},
8787
get SELECTED_HOVERED_FOCUSED_STATE_SET() {
88-
if (!this._SELECTED_HOVERED_FOCUSED_STATE_SET) {
89-
this._SELECTED_HOVERED_FOCUSED_STATE_SET = createNativeArray(state.selected, state.hovered, state.focused);
88+
if (!this.mSELECTED_HOVERED_FOCUSED_STATE_SET) {
89+
this.mSELECTED_HOVERED_FOCUSED_STATE_SET = createNativeArray(state.selected, state.hovered, state.focused);
9090
}
91-
return this._SELECTED_HOVERED_FOCUSED_STATE_SET as Array<number>;
91+
return this.mSELECTED_HOVERED_FOCUSED_STATE_SET as number[];
9292
},
9393
get SELECTED_FOCUSED_STATE_SET() {
94-
if (!this._SELECTED_FOCUSED_STATE_SET) {
95-
this._SELECTED_FOCUSED_STATE_SET = createNativeArray(state.selected, state.focused);
94+
if (!this.mSELECTED_FOCUSED_STATE_SET) {
95+
this.mSELECTED_FOCUSED_STATE_SET = createNativeArray(state.selected, state.focused);
9696
}
97-
return this._SELECTED_FOCUSED_STATE_SET as Array<number>;
97+
return this.mSELECTED_FOCUSED_STATE_SET as number[];
9898
},
9999
get SELECTED_HOVERED_STATE_SET() {
100-
if (!this._SELECTED_HOVERED_STATE_SET) {
101-
this._SELECTED_HOVERED_STATE_SET = createNativeArray(state.selected, state.hovered);
100+
if (!this.mSELECTED_HOVERED_STATE_SET) {
101+
this.mSELECTED_HOVERED_STATE_SET = createNativeArray(state.selected, state.hovered);
102102
}
103-
return this._SELECTED_HOVERED_STATE_SET as Array<number>;
103+
return this.mSELECTED_HOVERED_STATE_SET as number[];
104104
},
105105
get SELECTED_STATE_SET() {
106-
if (!this._SELECTED_STATE_SET) {
107-
this._SELECTED_STATE_SET = createNativeArray(state.selected);
106+
if (!this.mSELECTED_STATE_SET) {
107+
this.mSELECTED_STATE_SET = createNativeArray(state.selected);
108108
}
109-
return this._SELECTED_STATE_SET as Array<number>;
109+
return this.mSELECTED_STATE_SET as number[];
110110
},
111111
get BACKGROUND_DEFAULT_STATE_1() {
112-
if (!this._BACKGROUND_DEFAULT_STATE_1) {
113-
this._BACKGROUND_DEFAULT_STATE_1 = createNativeArray(state.window_focused, state.enabled);
112+
if (!this.mBACKGROUND_DEFAULT_STATE_1) {
113+
this.mBACKGROUND_DEFAULT_STATE_1 = createNativeArray(state.window_focused, state.enabled);
114114
}
115-
return this._BACKGROUND_DEFAULT_STATE_1 as number[];
115+
return this.mBACKGROUND_DEFAULT_STATE_1 as number[];
116116
},
117117
get BACKGROUND_DEFAULT_STATE_2() {
118-
if (!this._BACKGROUND_DEFAULT_STATE_1_SET) {
119-
this._BACKGROUND_DEFAULT_STATE_1_SET = createNativeArray(state.enabled);
118+
if (!this.mBACKGROUND_DEFAULT_STATE_1_SET) {
119+
this.mBACKGROUND_DEFAULT_STATE_1_SET = createNativeArray(state.enabled);
120120
}
121-
return this._BACKGROUND_DEFAULT_STATE_1_SET as Array<number>;
121+
return this.mBACKGROUND_DEFAULT_STATE_1_SET as number[];
122122
},
123123
get BACKGROUND_SELECTED_STATE() {
124-
if (!this._BACKGROUND_SELECTED_STATE) {
125-
this._BACKGROUND_SELECTED_STATE = createNativeArray(state.window_focused, state.enabled, state.pressed);
124+
if (!this.mBACKGROUND_SELECTED_STATE) {
125+
this.mBACKGROUND_SELECTED_STATE = createNativeArray(state.window_focused, state.enabled, state.pressed);
126126
}
127-
return this._BACKGROUND_SELECTED_STATE as Array<number>;
127+
return this.mBACKGROUND_SELECTED_STATE as number[];
128128
},
129129
get BACKGROUND_CHECKED_STATE() {
130-
if (!this._BACKGROUND_CHECKED_STATE) {
131-
this._BACKGROUND_CHECKED_STATE = createNativeArray(state.window_focused, state.enabled, state.checked);
130+
if (!this.mBACKGROUND_CHECKED_STATE) {
131+
this.mBACKGROUND_CHECKED_STATE = createNativeArray(state.window_focused, state.enabled, state.checked);
132132
}
133-
return this._BACKGROUND_CHECKED_STATE as Array<number>;
133+
return this.mBACKGROUND_CHECKED_STATE as number[];
134134
},
135135
get BACKGROUND_FOCUSED_STATE() {
136-
if (!this._BACKGROUND_FOCUSED_STATE) {
137-
this._BACKGROUND_FOCUSED_STATE = createNativeArray(state.focused, state.window_focused, state.enabled);
136+
if (!this.mBACKGROUND_FOCUSED_STATE) {
137+
this.mBACKGROUND_FOCUSED_STATE = createNativeArray(state.focused, state.window_focused, state.enabled);
138138
}
139-
return this._BACKGROUND_FOCUSED_STATE as Array<number>;
139+
return this.mBACKGROUND_FOCUSED_STATE as number[];
140140
},
141141
get BACKGROUND_DISABLED_STATE() {
142-
if (!this._BACKGROUND_DISABLED_STATE) {
143-
this._BACKGROUND_DISABLED_STATE = createNativeArray(-state.enabled);
142+
if (!this.mBACKGROUND_DISABLED_STATE) {
143+
this.mBACKGROUND_DISABLED_STATE = createNativeArray(-state.enabled);
144144
}
145-
return this._BACKGROUND_DISABLED_STATE as Array<number>;
145+
return this.mBACKGROUND_DISABLED_STATE as number[];
146146
}
147147
};
148148

src/core/index.android.ts

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { ShapeProperties } from '.';
1919
export * from './cssproperties';
2020
export { applyMixins };
2121

22-
function createCornerTreatment(cornerFamily: CornerFamily): com.google.android.material.shape.CornerTreatment {
22+
function cornerTreat(cornerFamily: CornerFamily): com.google.android.material.shape.CornerTreatment {
2323
switch (cornerFamily) {
2424
case CornerFamily.CUT:
2525
return new com.google.android.material.shape.CutCornerTreatment();
@@ -121,26 +121,27 @@ export class Themer {
121121
return this._shapes[key] || null;
122122
}
123123
createShape(key: string, options: ShapeProperties) {
124+
const RelativeCornerSize = com.google.android.material.shape.RelativeCornerSize;
124125
const builder = com.google.android.material.shape.ShapeAppearanceModel.builder();
125126
if (options.cornerFamily) {
126-
builder.setAllCorners(createCornerTreatment(options.cornerFamily));
127+
builder.setAllCorners(cornerTreat(options.cornerFamily));
127128
}
128129
if (options.cornerFamilyBottomRight) {
129-
builder.setBottomRightCorner(createCornerTreatment(options.cornerFamilyBottomRight));
130+
builder.setBottomRightCorner(cornerTreat(options.cornerFamilyBottomRight));
130131
}
131132
if (options.cornerFamilyBottomLeft) {
132-
builder.setBottomLeftCorner(createCornerTreatment(options.cornerFamilyBottomLeft));
133+
builder.setBottomLeftCorner(cornerTreat(options.cornerFamilyBottomLeft));
133134
}
134135
if (options.cornerFamilyTopLeft) {
135-
builder.setTopLeftCorner(createCornerTreatment(options.cornerFamilyTopLeft));
136+
builder.setTopLeftCorner(cornerTreat(options.cornerFamilyTopLeft));
136137
}
137138
if (options.cornerFamilyTopRight) {
138-
builder.setTopRightCorner(createCornerTreatment(options.cornerFamilyTopRight));
139+
builder.setTopRightCorner(cornerTreat(options.cornerFamilyTopRight));
139140
}
140141
if (options.cornerSize !== undefined) {
141142
if (typeof options.cornerSize === 'object') {
142143
if (options.cornerSize.unit === '%') {
143-
builder.setAllCornerSizes(new com.google.android.material.shape.RelativeCornerSize(options.cornerSize.value));
144+
builder.setAllCornerSizes(new RelativeCornerSize(options.cornerSize.value));
144145
} else {
145146
builder.setAllCornerSizes(PercentLength.toDevicePixels(options.cornerSize));
146147
}
@@ -151,7 +152,7 @@ export class Themer {
151152
if (options.cornerSizeBottomLeft !== undefined) {
152153
if (typeof options.cornerSizeBottomLeft === 'object') {
153154
if (options.cornerSizeBottomLeft.unit === '%') {
154-
builder.setBottomLeftCornerSize(new com.google.android.material.shape.RelativeCornerSize(options.cornerSizeBottomLeft.value));
155+
builder.setBottomLeftCornerSize(new RelativeCornerSize(options.cornerSizeBottomLeft.value));
155156
} else {
156157
builder.setBottomLeftCornerSize(PercentLength.toDevicePixels(options.cornerSizeBottomLeft));
157158
}
@@ -162,7 +163,7 @@ export class Themer {
162163
if (options.cornerSizeBottomRight !== undefined) {
163164
if (typeof options.cornerSizeBottomRight === 'object') {
164165
if (options.cornerSizeBottomRight.unit === '%') {
165-
builder.setBottomRightCornerSize(new com.google.android.material.shape.RelativeCornerSize(options.cornerSizeBottomRight.value));
166+
builder.setBottomRightCornerSize(new RelativeCornerSize(options.cornerSizeBottomRight.value));
166167
} else {
167168
builder.setBottomRightCornerSize(PercentLength.toDevicePixels(options.cornerSizeBottomRight));
168169
}
@@ -173,7 +174,7 @@ export class Themer {
173174
if (options.cornerSizeTopRight !== undefined) {
174175
if (typeof options.cornerSizeTopRight === 'object') {
175176
if (options.cornerSizeTopRight.unit === '%') {
176-
builder.setTopRightCornerSize(new com.google.android.material.shape.RelativeCornerSize(options.cornerSizeTopRight.value));
177+
builder.setTopRightCornerSize(new RelativeCornerSize(options.cornerSizeTopRight.value));
177178
} else {
178179
builder.setTopRightCornerSize(PercentLength.toDevicePixels(options.cornerSizeTopRight));
179180
}
@@ -184,7 +185,7 @@ export class Themer {
184185
if (options.cornerSizeTopLeft !== undefined) {
185186
if (typeof options.cornerSizeTopLeft === 'object') {
186187
if (options.cornerSizeTopLeft.unit === '%') {
187-
builder.setTopLeftCornerSize(new com.google.android.material.shape.RelativeCornerSize(options.cornerSizeTopLeft.value));
188+
builder.setTopLeftCornerSize(new RelativeCornerSize(options.cornerSizeTopLeft.value));
188189
} else {
189190
builder.setTopLeftCornerSize(PercentLength.toDevicePixels(options.cornerSizeTopLeft));
190191
}
@@ -234,14 +235,15 @@ export function overrideViewBase() {
234235
[rippleColorProperty.setNative](color: Color) {
235236
const rippleColor = getRippleColor(color);
236237
const nativeViewProtected = this.nativeViewProtected;
238+
const RippleDrawable = android.graphics.drawable.RippleDrawable;
237239
if (this instanceof Button && isPostMarshmallow()) {
238240
const foreground = (nativeViewProtected as android.widget.Button).getForeground();
239-
if (foreground instanceof android.graphics.drawable.RippleDrawable) {
241+
if (foreground instanceof RippleDrawable) {
240242
foreground.setColor(getColorStateList(rippleColor));
241243
return;
242244
}
243245
const background = (nativeViewProtected as android.widget.Button).getBackground();
244-
if (background instanceof android.graphics.drawable.RippleDrawable) {
246+
if (background instanceof RippleDrawable) {
245247
background.setColor(getColorStateList(rippleColor));
246248
return;
247249
}

0 commit comments

Comments
 (0)