Skip to content

Commit c900f85

Browse files
authored
fix: native variant text color fix for Android 10 (sdk 29) (#367)
1 parent f2aa557 commit c900f85

File tree

7 files changed

+23
-14
lines changed

7 files changed

+23
-14
lines changed

android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package com.henninghall.date_picker.pickers;
22

33
import android.content.Context;
4+
import android.graphics.Color;
45
import android.graphics.Paint;
6+
import android.os.Build;
57
import android.os.Handler;
68
import android.util.AttributeSet;
79
import android.util.Log;
@@ -48,12 +50,14 @@ public void smoothScrollToValue(int value, boolean needRespond) {
4850
}
4951

5052
@Override
51-
public void setNormalTextColor(int color) {
52-
// Not needed for this picker. It auto fades the color
53-
}
53+
public void setTextColor(String stringColor) {
54+
int color = Color.parseColor(stringColor);
55+
56+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
57+
setTextColor(color);
58+
return;
59+
}
5460

55-
@Override
56-
public void setSelectedTextColor(int color) {
5761
try {
5862
Field selectorWheelPaintField = getClass().getSuperclass()
5963
.getDeclaredField("mSelectorWheelPaint");

android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.henninghall.date_picker.pickers;
22

33
import android.content.Context;
4+
import android.graphics.Color;
45
import android.util.AttributeSet;
56
import android.view.View;
67
import cn.carbswang.android.numberpickerview.library.NumberPickerView;
@@ -19,6 +20,14 @@ public IosClone(Context context, AttributeSet attrs, int defStyleAttr) {
1920
super(context, attrs, defStyleAttr);
2021
}
2122

23+
@Override
24+
public void setTextColor(String color) {
25+
int fullColor= Color.parseColor(color);
26+
int fadedColor = Color.parseColor("#70"+ color.substring(1));
27+
setNormalTextColor(fadedColor);
28+
setSelectedTextColor(fullColor);
29+
}
30+
2231
@Override
2332
public void setOnValueChangeListenerInScrolling(final Picker.OnValueChangeListenerInScrolling listener) {
2433
final Picker self = this;

android/src/main/java/com/henninghall/date_picker/pickers/Picker.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@ public interface Picker {
1414
void setDisplayedValues(String[] value);
1515
int getValue();
1616
void setValue(int value);
17-
void setNormalTextColor(int value);
18-
void setSelectedTextColor(int value);
17+
void setTextColor(String value);
1918
void setOnValueChangeListenerInScrolling(Picker.OnValueChangeListenerInScrolling listener);
2019
void setOnValueChangedListener(Picker.OnValueChangeListener onValueChangeListener);
2120
void setShownCount(int count);

android/src/main/java/com/henninghall/date_picker/wheelFunctions/TextColor.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,7 @@ public TextColor(String color) {
1414

1515
@Override
1616
public void apply(Wheel wheel) {
17-
int fullColor= Color.parseColor(color);
18-
int fadedColor = Color.parseColor("#70"+ color.substring(1));
19-
wheel.picker.setNormalTextColor(fadedColor);
20-
wheel.picker.setSelectedTextColor(fullColor);
17+
wheel.picker.setTextColor(color);
2118
}
2219
}
2320

examples/detox/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ android {
1111
defaultConfig {
1212
applicationId "com.detox.rn.example"
1313
minSdkVersion 18
14-
targetSdkVersion 28
14+
targetSdkVersion 30
1515
versionCode 1
1616
versionName "1.0"
1717
ndk {

examples/detox/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
buildscript {
22
ext.kotlinVersion = '1.3.10'
3-
ext.compileSdkVersion = 28
3+
ext.compileSdkVersion = 30
44
ext.buildToolsVersion = '28.0.3'
55

66
ext.detoxKotlinVersion = ext.kotlinVersion

examples/detox/src/examples/Minimal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export default class MinimalExample extends Component {
77
render = () => (
88
<DatePicker
99
date={this.state.date}
10-
onDateChange={date => this.setState({ date })}
10+
onDateChange={(date) => this.setState({ date })}
1111
/>
1212
)
1313
}

0 commit comments

Comments
 (0)