Browse Source

fix: native variant text color fix for Android 10 (sdk 29) (#367)

master
Henning Hall 4 years ago
committed by GitHub
parent
commit
c900f85f0c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 14 deletions
  1. +9
    -5
      android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java
  2. +9
    -0
      android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java
  3. +1
    -2
      android/src/main/java/com/henninghall/date_picker/pickers/Picker.java
  4. +1
    -4
      android/src/main/java/com/henninghall/date_picker/wheelFunctions/TextColor.java
  5. +1
    -1
      examples/detox/android/app/build.gradle
  6. +1
    -1
      examples/detox/android/build.gradle
  7. +1
    -1
      examples/detox/src/examples/Minimal.js

+ 9
- 5
android/src/main/java/com/henninghall/date_picker/pickers/AndroidNative.java View File

@ -1,7 +1,9 @@
package com.henninghall.date_picker.pickers;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Build;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
@ -48,12 +50,14 @@ public class AndroidNative extends NumberPicker implements Picker {
}
@Override
public void setNormalTextColor(int color) {
// Not needed for this picker. It auto fades the color
}
public void setTextColor(String stringColor) {
int color = Color.parseColor(stringColor);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
setTextColor(color);
return;
}
@Override
public void setSelectedTextColor(int color) {
try {
Field selectorWheelPaintField = getClass().getSuperclass()
.getDeclaredField("mSelectorWheelPaint");

+ 9
- 0
android/src/main/java/com/henninghall/date_picker/pickers/IosClone.java View File

@ -1,6 +1,7 @@
package com.henninghall.date_picker.pickers;
import android.content.Context;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
import cn.carbswang.android.numberpickerview.library.NumberPickerView;
@ -19,6 +20,14 @@ public class IosClone extends NumberPickerView implements Picker {
super(context, attrs, defStyleAttr);
}
@Override
public void setTextColor(String color) {
int fullColor= Color.parseColor(color);
int fadedColor = Color.parseColor("#70"+ color.substring(1));
setNormalTextColor(fadedColor);
setSelectedTextColor(fullColor);
}
@Override
public void setOnValueChangeListenerInScrolling(final Picker.OnValueChangeListenerInScrolling listener) {
final Picker self = this;

+ 1
- 2
android/src/main/java/com/henninghall/date_picker/pickers/Picker.java View File

@ -14,8 +14,7 @@ public interface Picker {
void setDisplayedValues(String[] value);
int getValue();
void setValue(int value);
void setNormalTextColor(int value);
void setSelectedTextColor(int value);
void setTextColor(String value);
void setOnValueChangeListenerInScrolling(Picker.OnValueChangeListenerInScrolling listener);
void setOnValueChangedListener(Picker.OnValueChangeListener onValueChangeListener);
void setShownCount(int count);

+ 1
- 4
android/src/main/java/com/henninghall/date_picker/wheelFunctions/TextColor.java View File

@ -14,10 +14,7 @@ public class TextColor implements WheelFunction {
@Override
public void apply(Wheel wheel) {
int fullColor= Color.parseColor(color);
int fadedColor = Color.parseColor("#70"+ color.substring(1));
wheel.picker.setNormalTextColor(fadedColor);
wheel.picker.setSelectedTextColor(fullColor);
wheel.picker.setTextColor(color);
}
}

+ 1
- 1
examples/detox/android/app/build.gradle View File

@ -11,7 +11,7 @@ android {
defaultConfig {
applicationId "com.detox.rn.example"
minSdkVersion 18
targetSdkVersion 28
targetSdkVersion 30
versionCode 1
versionName "1.0"
ndk {

+ 1
- 1
examples/detox/android/build.gradle View File

@ -1,6 +1,6 @@
buildscript {
ext.kotlinVersion = '1.3.10'
ext.compileSdkVersion = 28
ext.compileSdkVersion = 30
ext.buildToolsVersion = '28.0.3'
ext.detoxKotlinVersion = ext.kotlinVersion

+ 1
- 1
examples/detox/src/examples/Minimal.js View File

@ -7,7 +7,7 @@ export default class MinimalExample extends Component {
render = () => (
<DatePicker
date={this.state.date}
onDateChange={date => this.setState({ date })}
onDateChange={(date) => this.setState({ date })}
/>
)
}

Loading…
Cancel
Save