diff --git a/Examples/Movies/SearchBar.android.js b/Examples/Movies/SearchBar.android.js index d4110ef9de1..f54b1b894cf 100644 --- a/Examples/Movies/SearchBar.android.js +++ b/Examples/Movies/SearchBar.android.js @@ -21,7 +21,7 @@ var ReactNative = require('react-native'); var { Image, Platform, - ProgressBarAndroid, + ActivityIndicator, TextInput, StyleSheet, TouchableNativeFeedback, @@ -32,17 +32,6 @@ var IS_RIPPLE_EFFECT_SUPPORTED = Platform.Version >= 21; var SearchBar = React.createClass({ render: function() { - var loadingView; - if (this.props.isLoading) { - loadingView = ( - - ); - } else { - loadingView = ; - } var background = IS_RIPPLE_EFFECT_SUPPORTED ? TouchableNativeFeedback.SelectableBackgroundBorderless() : TouchableNativeFeedback.SelectableBackground(); @@ -69,7 +58,12 @@ var SearchBar = React.createClass({ onFocus={this.props.onFocus} style={styles.searchBarInput} /> - {loadingView} + ); } @@ -94,6 +88,7 @@ var styles = StyleSheet.create({ spinner: { width: 30, height: 30, + marginRight: 16, }, icon: { width: 24, diff --git a/Examples/Movies/SearchBar.ios.js b/Examples/Movies/SearchBar.ios.js index 754a10b0ab6..b4429f56f80 100644 --- a/Examples/Movies/SearchBar.ios.js +++ b/Examples/Movies/SearchBar.ios.js @@ -19,7 +19,7 @@ var React = require('react'); var ReactNative = require('react-native'); var { - ActivityIndicatorIOS, + ActivityIndicator, TextInput, StyleSheet, View, @@ -37,7 +37,7 @@ var SearchBar = React.createClass({ onFocus={this.props.onFocus} style={styles.searchBarInput} /> - diff --git a/Examples/Movies/SearchScreen.js b/Examples/Movies/SearchScreen.js index 88eabcdee33..e8400c39a3b 100644 --- a/Examples/Movies/SearchScreen.js +++ b/Examples/Movies/SearchScreen.js @@ -18,10 +18,9 @@ var React = require('react'); var ReactNative = require('react-native'); var { - ActivityIndicatorIOS, + ActivityIndicator, ListView, Platform, - ProgressBarAndroid, StyleSheet, Text, View, @@ -250,15 +249,8 @@ var SearchScreen = React.createClass({ if (!this.hasMore() || !this.state.isLoadingTail) { return ; } - if (Platform.OS === 'ios') { - return ; - } else { - return ( - - - - ); - } + + return ; }, renderSeparator: function( diff --git a/Examples/UIExplorer/CameraRollExample.js b/Examples/UIExplorer/CameraRollExample.js index f39b78f3987..0dcad8adba5 100644 --- a/Examples/UIExplorer/CameraRollExample.js +++ b/Examples/UIExplorer/CameraRollExample.js @@ -20,7 +20,7 @@ const ReactNative = require('react-native'); const { CameraRoll, Image, - SliderIOS, + Slider, StyleSheet, Switch, Text, @@ -51,7 +51,7 @@ const CameraRollExample = React.createClass({ onValueChange={this._onSwitchChange} value={this.state.bigImages} /> {(this.state.bigImages ? 'Big' : 'Small') + ' Images'} - diff --git a/Examples/UIExplorer/CameraRollView.js b/Examples/UIExplorer/CameraRollView.js index 3dca7867f71..f5f428f95a0 100644 --- a/Examples/UIExplorer/CameraRollView.js +++ b/Examples/UIExplorer/CameraRollView.js @@ -19,7 +19,7 @@ var React = require('react'); var ReactNative = require('react-native'); var { - ActivityIndicatorIOS, + ActivityIndicator, CameraRoll, Image, ListView, @@ -141,7 +141,7 @@ var CameraRollView = React.createClass({ groupTypes: this.props.groupTypes, assetType: this.props.assetType, }; - if (Platform.OS === "android") { + if (Platform.OS === 'android') { // not supported in android delete fetchParams.groupTypes; } @@ -191,7 +191,7 @@ var CameraRollView = React.createClass({ _renderFooterSpinner: function() { if (!this.state.noMore) { - return ; + return ; } return null; }, diff --git a/Examples/UIExplorer/ImageExample.js b/Examples/UIExplorer/ImageExample.js index 905c17f4cb9..50809906433 100644 --- a/Examples/UIExplorer/ImageExample.js +++ b/Examples/UIExplorer/ImageExample.js @@ -25,12 +25,12 @@ var React = require('react'); var ReactNative = require('react-native'); var { + ActivityIndicator, Image, Platform, StyleSheet, Text, View, - ActivityIndicatorIOS } = ReactNative; var base64Icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAQAAACSR7JhAAADtUlEQVR4Ac3YA2Bj6QLH0XPT1Fzbtm29tW3btm3bfLZtv7e2ObZnms7d8Uw098tuetPzrxv8wiISrtVudrG2JXQZ4VOv+qUfmqCGGl1mqLhoA52oZlb0mrjsnhKpgeUNEs91Z0pd1kvihA3ULGVHiQO2narKSHKkEMulm9VgUyE60s1aWoMQUbpZOWE+kaqs4eLEjdIlZTcFZB0ndc1+lhB1lZrIuk5P2aib1NBpZaL+JaOGIt0ls47SKzLC7CqrlGF6RZ09HGoNy1lYl2aRSWL5GuzqWU1KafRdoRp0iOQEiDzgZPnG6DbldcomadViflnl/cL93tOoVbsOLVM2jylvdWjXolWX1hmfZbGR/wjypDjFLSZIRov09BgYmtUqPQPlQrPapecLgTIy0jMgPKtTeob2zWtrGH3xvjUkPCtNg/tm1rjwrMa+mdUkPd3hWbH0jArPGiU9ufCsNNWFZ40wpwn+62/66R2RUtoso1OB34tnLOcy7YB1fUdc9e0q3yru8PGM773vXsuZ5YIZX+5xmHwHGVvlrGPN6ZSiP1smOsMMde40wKv2VmwPPVXNut4sVpUreZiLBHi0qln/VQeI/LTMYXpsJtFiclUN+5HVZazim+Ky+7sAvxWnvjXrJFneVtLWLyPJu9K3cXLWeOlbMTlrIelbMDlrLenrjEQOtIF+fuI9xRp9ZBFp6+b6WT8RrxEpdK64BuvHgDk+vUy+b5hYk6zfyfs051gRoNO1usU12WWRWL73/MMEy9pMi9qIrR4ZpV16Rrvduxazmy1FSvuFXRkqTnE7m2kdb5U8xGjLw/spRr1uTov4uOgQE+0N/DvFrG/Jt7i/FzwxbA9kDanhf2w+t4V97G8lrT7wc08aA2QNUkuTfW/KimT01wdlfK4yEw030VfT0RtZbzjeMprNq8m8tnSTASrTLti64oBNdpmMQm0eEwvfPwRbUBywG5TzjPCsdwk3IeAXjQblLCoXnDVeoAz6SfJNk5TTzytCNZk/POtTSV40NwOFWzw86wNJRpubpXsn60NJFlHeqlYRbslqZm2jnEZ3qcSKgm0kTli3zZVS7y/iivZTweYXJ26Y+RTbV1zh3hYkgyFGSTKPfRVbRqWWVReaxYeSLarYv1Qqsmh1s95S7G+eEWK0f3jYKTbV6bOwepjfhtafsvUsqrQvrGC8YhmnO9cSCk3yuY984F1vesdHYhWJ5FvASlacshUsajFt2mUM9pqzvKGcyNJW0arTKN1GGGzQlH0tXwLDgQTurS8eIQAAAABJRU5ErkJggg=='; @@ -108,7 +108,7 @@ var NetworkImageExample = React.createClass({ var loader = this.state.loading ? {this.state.progress}% - + : null; return this.state.error ? {this.state.error} : diff --git a/Examples/UIExplorer/UIExplorerExampleList.js b/Examples/UIExplorer/UIExplorerExampleList.js index e0331bde98e..ea06c05f10c 100644 --- a/Examples/UIExplorer/UIExplorerExampleList.js +++ b/Examples/UIExplorer/UIExplorerExampleList.js @@ -80,6 +80,7 @@ class UIExplorerExampleList extends React.Component { dataSource={dataSource} renderRow={this._renderExampleRow.bind(this)} renderSectionHeader={this._renderSectionHeader} + enableEmptySections={true} keyboardShouldPersistTaps={true} automaticallyAdjustContentInsets={false} keyboardDismissMode="on-drag" diff --git a/Libraries/Components/ActivityIndicator/ActivityIndicator.js b/Libraries/Components/ActivityIndicator/ActivityIndicator.js index 636f68327b3..f30fe79ace0 100644 --- a/Libraries/Components/ActivityIndicator/ActivityIndicator.js +++ b/Libraries/Components/ActivityIndicator/ActivityIndicator.js @@ -58,7 +58,7 @@ const ActivityIndicator = React.createClass({ getDefaultProps() { return { animating: true, - color: GRAY, + color: Platform.OS === 'ios' ? GRAY : undefined, hidesWhenStopped: true, size: 'small', }; diff --git a/Libraries/Components/WebView/WebView.android.js b/Libraries/Components/WebView/WebView.android.js index c9db749a8b9..d4eb7707908 100644 --- a/Libraries/Components/WebView/WebView.android.js +++ b/Libraries/Components/WebView/WebView.android.js @@ -11,7 +11,7 @@ 'use strict'; var EdgeInsetsPropType = require('EdgeInsetsPropType'); -var ProgressBarAndroid = require('ProgressBarAndroid'); +var ActivityIndicator = require('ActivityIndicator'); var React = require('React'); var ReactNative = require('ReactNative'); var ReactNativeViewAttributes = require('ReactNativeViewAttributes'); @@ -37,9 +37,8 @@ var WebViewState = keyMirror({ var defaultRenderLoading = () => ( - ); diff --git a/Libraries/Components/WebView/WebView.ios.js b/Libraries/Components/WebView/WebView.ios.js index 09eeee0c366..c3865963e57 100644 --- a/Libraries/Components/WebView/WebView.ios.js +++ b/Libraries/Components/WebView/WebView.ios.js @@ -11,7 +11,7 @@ */ 'use strict'; -var ActivityIndicatorIOS = require('ActivityIndicatorIOS'); +var ActivityIndicator = require('ActivityIndicator'); var EdgeInsetsPropType = require('EdgeInsetsPropType'); var React = require('React'); var ReactNative = require('ReactNative'); @@ -61,7 +61,7 @@ type Event = Object; var defaultRenderLoading = () => ( - + ); var defaultRenderError = (errorDomain, errorCode, errorDesc) => ( diff --git a/docs/KnownIssues.md b/docs/KnownIssues.md index 600eefb0a60..9a26760ce88 100644 --- a/docs/KnownIssues.md +++ b/docs/KnownIssues.md @@ -34,7 +34,6 @@ There are properties that work on one platform only, either because they can inh There are known cases where the APIs could be made more consistent across iOS and Android: - `` and `` on iOS do a similar thing. We might want to unify them to ``. -- `ActivityIndicator` could render a native spinning indicator on both platforms (currently this is done using `ActivityIndicatorIOS` on iOS and `ProgressBarAndroid` on Android). - `ProgressBar` could render a horizontal progress bar on both platforms (on iOS this is `ProgressViewIOS`, on Android it's `ProgressBarAndroid`). ### The `overflow` style property defaults to `hidden` and cannot be changed on Android