Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ buildscript {
apply plugin: 'com.android.library'

android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
compileSdkVersion 30
buildToolsVersion "29.0.3"

defaultConfig {
minSdkVersion 16
targetSdkVersion 28
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.reactnativecommunity.progressview;

import android.content.res.ColorStateList;
import android.widget.ProgressBar;

import androidx.annotation.NonNull;

import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;

public class RNCProgressViewManager extends SimpleViewManager<ProgressBar> {
private static final int MAX_PROGRESS_VALUE = 1000;

@NonNull
@Override
public String getName() {
return "RNCProgressView";
}

@NonNull
@Override
protected ProgressBar createViewInstance(@NonNull ThemedReactContext reactContext) {
ProgressBar bar = new ProgressBar(
reactContext,
null,
android.R.attr.progressBarStyleHorizontal
);
bar.setMax(MAX_PROGRESS_VALUE);
return bar;
}

@ReactProp(name = "progress")
public void setProgress(ProgressBar bar, double progress) {
bar.setProgress((int) (MAX_PROGRESS_VALUE * progress));
}

@ReactProp(name = "progressTintColor", customType = "Color")
public void setProgressTintColor(ProgressBar bar, int color) {
bar.setIndeterminateTintList(ColorStateList.valueOf(color));
bar.setProgressTintList(ColorStateList.valueOf(color));
}

@ReactProp(name = "trackTintColor", customType = "Color")
public void setTrackTintColor(ProgressBar bar, int color) {
bar.setProgressBackgroundTintList(ColorStateList.valueOf(color));
}

@ReactProp(name = "isIndeterminate")
public void setIsIndeterminate(ProgressBar bar, boolean isIndeterminate) {
bar.setIndeterminate(isIndeterminate);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,28 +1,25 @@

package com.reactnativecommunity.progressview;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import androidx.annotation.NonNull;

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import com.facebook.react.bridge.JavaScriptModule;

import java.util.Collections;
import java.util.List;

public class RNCProgressViewPackage implements ReactPackage {
@NonNull
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
return Arrays.<NativeModule>asList(new RNCProgressViewModule(reactContext));
}

// Deprecated from RN 0.47
public List<Class<? extends JavaScriptModule>> createJSModules() {
return Collections.emptyList();
public List<NativeModule> createNativeModules(@NonNull ReactApplicationContext reactContext) {
return Collections.emptyList();
}

@NonNull
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
public List<ViewManager> createViewManagers(@NonNull ReactApplicationContext reactContext) {
return Collections.<ViewManager>singletonList(new RNCProgressViewManager());
}
}
}
4 changes: 3 additions & 1 deletion example/android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ dependencies {
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"


debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
Expand All @@ -206,6 +206,8 @@ dependencies {
} else {
implementation jscFlavor
}

implementation project(':progressview')
}

// Run this once to be able to run the application with BUCK
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import com.reactnativecommunity.progressview.RNCProgressViewPackage;

import java.lang.reflect.InvocationTargetException;
import java.util.List;

Expand All @@ -26,6 +28,7 @@ protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
packages.add(new RNCProgressViewPackage());
return packages;
}

Expand Down
8 changes: 4 additions & 4 deletions example/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

buildscript {
ext {
buildToolsVersion = "29.0.2"
minSdkVersion = 16
compileSdkVersion = 29
targetSdkVersion = 29
buildToolsVersion = "29.0.3"
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 30
}
repositories {
google()
Expand Down
3 changes: 3 additions & 0 deletions example/android/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
rootProject.name = 'ProgressViewExample'

include ':app'

include ':progressview'
project(':progressview').projectDir = new File(rootProject.projectDir, '../../android')
42 changes: 13 additions & 29 deletions js/ProgressView.android.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,35 +9,19 @@
'use strict';

import * as React from 'react';
import {Text, View, StyleSheet} from 'react-native';
import {requireNativeComponent} from 'react-native';

class DummyProgressViewIOS extends React.Component {
render() {
return (
<View style={[styles.dummy, this.props.style]}>
<Text style={styles.text}>
ProgressViewIOS is not supported on this platform!
</Text>
</View>
);
}
}
const RNCProgressView = requireNativeComponent('RNCProgressView');

const styles = StyleSheet.create({
dummy: {
width: 120,
height: 20,
backgroundColor: '#ffbcbc',
borderWidth: 1,
borderColor: 'red',
alignItems: 'center',
justifyContent: 'center',
},
text: {
color: '#333333',
margin: 5,
fontSize: 10,
},
});
export default function ProgressView(props) {
const nativeProps = {
testID: props.testID,
progress: props.progress,
progressTintColor: props.progressTintColor,
trackTintColor: props.trackTintColor,
isIndeterminate: props.isIndeterminate,
style: [{height: 20}, props.style],
};

export default DummyProgressViewIOS;
return <RNCProgressView {...nativeProps} />;
}