From ecc07420f5a0b77c0c199efe8e71d19a6e402a3a Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Mon, 5 Aug 2019 16:41:14 -0300 Subject: [PATCH 1/9] android build changes --- android/build.gradle | 40 ++++++++++++++++++++++++++++++++-------- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index f0a74ba..7decaf0 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,21 +1,45 @@ +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.1.4' + } +} + apply plugin: 'com.android.library' +def safeExtGet(prop, fallback) { + rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback +} + android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" + compileSdkVersion safeExtGet('compileSdkVersion', 23) + buildToolsVersion safeExtGet('buildToolsVersion', '27.0.3') + defaultConfig { - minSdkVersion 16 - targetSdkVersion 22 + minSdkVersion safeExtGet('minSdkVersion', 16) + targetSdkVersion safeExtGet('targetSdkVersion', 22) versionCode 1 versionName "1.0" - ndk { - abiFilters "armeabi-v7a", "x86" - } } + lintOptions { + abortOnError false + } + sourceSets.main { + jni.srcDirs = [] // This prevents the auto generation of Android.mk + jniLibs.srcDir 'libs' + } +} + +repositories { + mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "cn.aigestudio.wheelpicker:WheelPicker:1.0.3" - compile 'com.facebook.react:react-native:+' + implementation 'com.facebook.react:react-native:0.14.+' } From 3f6a0e6d0caad6432db71d6f74a2642cf63df0f9 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri <33160297+WesleyFaveri@users.noreply.github.com> Date: Mon, 5 Aug 2019 16:50:27 -0300 Subject: [PATCH 2/9] Update README.md --- README.md | 133 +----------------------------------------------------- 1 file changed, 1 insertion(+), 132 deletions(-) diff --git a/README.md b/README.md index 7ab9eff..6af3a8f 100644 --- a/README.md +++ b/README.md @@ -1,137 +1,6 @@ # react-native-wheel-picker -[![npm version](http://img.shields.io/npm/v/react-native-wheel-picker.svg?style=flat-square)](https://npmjs.org/package/react-native-wheel-picker "View this project on npm") -[![npm version](http://img.shields.io/npm/dm/react-native-wheel-picker.svg?style=flat-square)](https://npmjs.org/package/react-native-wheel-picker "View this project on npm") ## Introduction Cross platform Picker component based on React-native. -Since picker is originally supported by ios while Android only supports a ugly Spinner component. If you want to have the same user behaviour, you can use this. - -The android component is based on https://github.com/AigeStudio/WheelPicker which runs super fast and smoothly. It also supports curved effect which make it exactly the same looking and feel as the ios picker. -![](https://raw.githubusercontent.com/lesliesam/react-native-wheel-picker/master/demo.gif) -![](https://raw.githubusercontent.com/lesliesam/react-native-wheel-picker/master/demo_android.gif) - -## How to use - -Run command - -For apps using RN 0.40 or higher, please run -``` -npm i react-native-wheel-picker --save -``` -For apps using RN 0.39 or less, please run -``` -npm install --save --save-exact react-native-wheel-picker@1.1.2 -``` -Add in settings.gradle -``` -include ':react-native-wheel-picker' -project(':react-native-wheel-picker').projectDir = new File(settingsDir, '../node_modules/react-native-wheel-picker/android') -``` -Add in app/build.gradle -``` -compile project(':react-native-wheel-picker') -``` -Modify MainApplication -``` - import com.zyu.ReactNativeWheelPickerPackage; - ...... - - protected List getPackages() { - return Arrays.asList( - new MainReactPackage(), new ReactNativeWheelPickerPackage() - ); - } -``` - -## Example code -``` -import React, { Component } from 'react'; -import { - Platform, - StyleSheet, - Text, - View, -} from 'react-native'; - - -import Picker from 'react-native-wheel-picker' -var PickerItem = Picker.Item; - -export default class App extends Component<{}> { - - constructor(props) { - super(props); - this.state = { - selectedItem : 2, - itemList: ['刘备', '张飞', '关羽', '赵云', '黄忠', '马超', '魏延', '诸葛亮'] - }; - } - - onPickerSelect (index) { - this.setState({ - selectedItem: index, - }) - } - - onAddItem = () => { - var name = '司马懿' - if (this.state.itemList.indexOf(name) == -1) { - this.state.itemList.push(name) - } - this.setState({ - selectedItem: this.state.itemList.indexOf(name), - }) - } - - render () { - return ( - - - Welcome to React Native! - - - this.onPickerSelect(index)}> - {this.state.itemList.map((value, i) => ( - - ))} - - - 你最喜欢的是:{this.state.itemList[this.state.selectedItem]} - - - - 怎么没有司马懿? - - - ); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#1962dd', - }, - welcome: { - fontSize: 20, - textAlign: 'center', - margin: 10, - color: '#ffffff', - }, - instructions: { - textAlign: 'center', - color: '#333333', - marginBottom: 5, - }, -}); -``` +Forked from https://github.com/m3rlin94/react-native-wheel-picker From eddd932863e6c98d8d7e00e0de003f56738b3a78 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Mon, 5 Aug 2019 17:15:35 -0300 Subject: [PATCH 3/9] changes build android --- android/build.gradle | 39 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 7decaf0..c6d5e8a 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,45 +1,26 @@ -buildscript { - repositories { - google() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:3.1.4' - } -} - apply plugin: 'com.android.library' def safeExtGet(prop, fallback) { rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback } -android { - compileSdkVersion safeExtGet('compileSdkVersion', 23) - buildToolsVersion safeExtGet('buildToolsVersion', '27.0.3') +android { + compileSdkVersion safeExtGet('compileSdkVersion', 26) + buildToolsVersion safeExtGet('buildToolsVersion', '26.0.3') defaultConfig { minSdkVersion safeExtGet('minSdkVersion', 16) - targetSdkVersion safeExtGet('targetSdkVersion', 22) + targetSdkVersion safeExtGet('targetSdkVersion', 26) versionCode 1 versionName "1.0" + ndk { + abiFilters "armeabi-v7a", "x86" + } } - lintOptions { - abortOnError false - } - sourceSets.main { - jni.srcDirs = [] // This prevents the auto generation of Android.mk - jniLibs.srcDir 'libs' - } -} - -repositories { - mavenCentral() } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - compile "cn.aigestudio.wheelpicker:WheelPicker:1.0.3" - implementation 'com.facebook.react:react-native:0.14.+' + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "cn.aigestudio.wheelpicker:WheelPicker:1.0.3" + implementation 'com.facebook.react:react-native:+' } From d16c8dca3845d00f2b570894d5c5b102c53a9296 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Mon, 5 Aug 2019 17:22:53 -0300 Subject: [PATCH 4/9] package config changes --- package.json | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 6f285dc..a5200eb 100644 --- a/package.json +++ b/package.json @@ -1,25 +1,18 @@ { - "name": "react-native-wheel-picker", - "version": "1.2.0", - "description": "React native cross platform picker.", + "name": "react-native-wheel-picker-cross-platform", + "version": "1.0.0", + "description": "React native cross platform picker. Forked https://github.com/lesliesam/react-native-wheel-picker.", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, - "repository": { - "type": "git", - "url": "git+https://github.com/lesliesam/react-native-wheel-picker.git" - }, "keywords": [ "react-native", "picker", - "wheel" + "wheel" ], "author": "Yu Zheng", "license": "ISC", - "bugs": { - "url": "https://github.com/lesliesam/react-native-wheel-picker/issues" - }, - "homepage": "https://github.com/lesliesam/react-native-wheel-picker#readme", + "homepage": "https://github.com/WesleyFaveri/react-native-wheel-picker/blob/master/README.md", "dependencies": {} } From 45c9bdfa1d314e22cea235fee1ffc6fb64061ee7 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Mon, 5 Aug 2019 17:25:32 -0300 Subject: [PATCH 5/9] changes package --- package.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index a5200eb..8a74058 100644 --- a/package.json +++ b/package.json @@ -14,5 +14,12 @@ "author": "Yu Zheng", "license": "ISC", "homepage": "https://github.com/WesleyFaveri/react-native-wheel-picker/blob/master/README.md", - "dependencies": {} + "dependencies": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/WesleyFaveri/react-native-wheel-picker.git" + }, + "bugs": { + "url": "https://github.com/WesleyFaveri/react-native-wheel-picker/issues" + } } From 47733028ba251a62cdad27f65f13d2e5bae1148c Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Thu, 28 Nov 2019 09:55:33 -0300 Subject: [PATCH 6/9] remove deprecated --- WheelCurvedPicker.android.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/WheelCurvedPicker.android.js b/WheelCurvedPicker.android.js index b1d9911..611f270 100644 --- a/WheelCurvedPicker.android.js +++ b/WheelCurvedPicker.android.js @@ -4,7 +4,6 @@ import React from 'react'; import PropTypes from 'prop-types' import { View, - ColorPropType, requireNativeComponent, } from 'react-native'; @@ -14,8 +13,8 @@ const WheelCurvedPickerNativeInterface = { name: 'WheelCurvedPicker', propTypes: { ...View.propTypes, - data:PropTypes.array, - textColor: ColorPropType, + data: PropTypes.array, + textColor: PropTypes.string, textSize: PropTypes.number, itemStyle: PropTypes.object, itemSpace: PropTypes.number, @@ -37,7 +36,7 @@ class WheelCurvedPicker extends React.Component { data: PropTypes.array, - textColor: ColorPropType, + textColor: PropTypes.string, textSize: PropTypes.number, @@ -50,11 +49,11 @@ class WheelCurvedPicker extends React.Component { selectedValue: PropTypes.any, selectedIndex: PropTypes.number, - + lineColor: PropTypes.string, - + lineGradientColorFrom: PropTypes.string, - + lineGradientColorTo: PropTypes.string, } From cab2588a023b10ea6505c8bc25d0971ad32e36c2 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Thu, 28 Nov 2019 09:55:48 -0300 Subject: [PATCH 7/9] version update --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8a74058..fa94c47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-wheel-picker-cross-platform", - "version": "1.0.0", + "version": "1.0.1", "description": "React native cross platform picker. Forked https://github.com/lesliesam/react-native-wheel-picker.", "main": "index.js", "scripts": { From b5baa1fbe0a002100b6a7409c819cf649cb803d9 Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Thu, 5 Dec 2019 08:32:08 -0300 Subject: [PATCH 8/9] removed proptypes --- WheelCurvedPicker.android.js | 47 ------------------------------------ 1 file changed, 47 deletions(-) diff --git a/WheelCurvedPicker.android.js b/WheelCurvedPicker.android.js index 611f270..f69bbac 100644 --- a/WheelCurvedPicker.android.js +++ b/WheelCurvedPicker.android.js @@ -1,7 +1,6 @@ 'use strict'; import React from 'react'; -import PropTypes from 'prop-types' import { View, requireNativeComponent, @@ -11,52 +10,11 @@ const defaultItemStyle = { color: 'white', fontSize: 26 }; const WheelCurvedPickerNativeInterface = { name: 'WheelCurvedPicker', - propTypes: { - ...View.propTypes, - data: PropTypes.array, - textColor: PropTypes.string, - textSize: PropTypes.number, - itemStyle: PropTypes.object, - itemSpace: PropTypes.number, - lineColor: PropTypes.string, - lineGradientColorFrom: PropTypes.string, - lineGradientColorTo: PropTypes.string, - onValueChange: PropTypes.func, - selectedValue: PropTypes.any, - selectedIndex: PropTypes.number, - } } const WheelCurvedPickerNative = requireNativeComponent('WheelCurvedPicker', WheelCurvedPickerNativeInterface); class WheelCurvedPicker extends React.Component { - - propTypes: { - ...View.propTypes, - - data: PropTypes.array, - - textColor: PropTypes.string, - - textSize: PropTypes.number, - - itemStyle: PropTypes.object, - - itemSpace: PropTypes.number, - - onValueChange: PropTypes.func, - - selectedValue: PropTypes.any, - - selectedIndex: PropTypes.number, - - lineColor: PropTypes.string, - - lineGradientColorFrom: PropTypes.string, - - lineGradientColorTo: PropTypes.string, - } - constructor(props){ super(props) this.state = this._stateFromProps(props) @@ -105,11 +63,6 @@ class WheelCurvedPicker extends React.Component { } class Item extends React.Component { - propTypes: { - value: React.PropTypes.any, // string or integer basically - label: React.PropTypes.string, - } - render () { // These items don't get rendered directly. return null; From 7720464162522938954a0d54ada7345cc96c2dde Mon Sep 17 00:00:00 2001 From: Wesley de Faveri Date: Thu, 5 Dec 2019 08:32:19 -0300 Subject: [PATCH 9/9] version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index fa94c47..1e231c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-wheel-picker-cross-platform", - "version": "1.0.1", + "version": "1.0.2", "description": "React native cross platform picker. Forked https://github.com/lesliesam/react-native-wheel-picker.", "main": "index.js", "scripts": {