Skip to content

Commit

Permalink
styling changes, added image of dhamma wheel
Browse files Browse the repository at this point in the history
  • Loading branch information
puntubabu committed Dec 19, 2015
1 parent 697e020 commit 680709a
Show file tree
Hide file tree
Showing 4 changed files with 178 additions and 42 deletions.
Binary file added dharma_wheel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
133 changes: 105 additions & 28 deletions index.ios.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,18 @@
var React = require('react-native');
var TimerMixin = require('react-timer-mixin');
var moment = require('moment');
var AudioPlayer = require('react-native-audioplayer');

//Constants
var START_TEXT = 'Start';
var STOP_TEXT = 'Stop';
var RESET_TEXT = 'Reset';
var AUDIO_0 = '0.mp3';
var AUDIO_1 = '1.mp3';
var AUDIO_2 = '2.mp3';
var PLAY_AUDIO_1 = 2700000;
var PLAY_AUDIO_2 = 3540000;
var PADDING = 2000;

var {
AppRegistry,
Expand All @@ -26,6 +38,7 @@ var VipassanaTimerApp = React.createClass({
timeDiff: null,
startStopText: "Start",
hasStarted: false,
isPlayingAudio: false,
};
},

Expand All @@ -34,35 +47,63 @@ var VipassanaTimerApp = React.createClass({
},

handleTick: function() {
var that = this;
var timeDiff = new Date().getTime() - this.state.startTime;
this.setState({ timeDiff: timeDiff });

//If anechya or bhavatu
if (timeDiff >= PLAY_AUDIO_1 && timeDiff < (PLAY_AUDIO_1 + PADDING)) {
AudioPlayer.play(AUDIO_1);
} else if (timeDiff >= PLAY_AUDIO_2 && timeDiff < (PLAY_AUDIO_2 + PADDING)) {
AudioPlayer.play(AUDIO_2);
that.stop();
}
},

start: function() {
var that = this;

//Start Intro Audio
AudioPlayer.play(AUDIO_0);

this.setState({
startTime: new Date().getTime(),
startStopText: STOP_TEXT,
hasStarted: true,
});

this.intervalFunction = this.setInterval(
() => {
that.handleTick();
}, 1000
);
},

stop: function() {

this.setState({
hasStarted: false,
startStopText: START_TEXT
});

clearInterval(this.intervalFunction);
},

startOrStop: function() {

var that = this;
var startOrStopText;

if (this.state.hasStarted) {

startOrStopText = "Stop";
this.setState({ hasStarted: false, });

} else {
if (this.state.hasStarted)
this.stop();
else
this.start();

startOrStopText = "Start";
this.setState({
startTime: new Date().getTime(),
startStopText: startOrStopText,
hasStarted: true,
});
this.intervalFunction = this.setInterval(
() => {
that.handleTick();
}, 1000
);
}
},

reset: function() {
clearInterval(this.intervalFunction);
this.setState({ timeDiff: 0, startStopText: START_TEXT });
},

intervalFunction: function() { },
Expand All @@ -76,32 +117,68 @@ var VipassanaTimerApp = React.createClass({
var elapsedTime = this.state.timeDiff ? moment.utc(this.state.timeDiff).format("HH:mm:ss").toString() : "00:00:00";

return (
<View style={styles.container}>
<Text>{elapsedTime}</Text>
<View style={styles.container}>
<View style={styles.outerContainer}>
<View style={styles.centerItem}>
<Image style={styles.backgroundImage} source={require('./dharma_wheel.png')} />
</View>
<View style={styles.centerItem}>
<Text style={styles.elapsedTime}>{elapsedTime}</Text>
</View>
<View style={styles.innerContainer}>
<TouchableHighlight onPress={this.startOrStop} style={styles.btn}>
<Text>{this.state.startStopText}</Text>
<Text style={styles.startStopText}>{this.state.startStopText}</Text>
</TouchableHighlight>
<TouchableHighlight onPress={this.reset} style={styles.btn}>
<Text style={styles.startStopText}>Reset</Text>
</TouchableHighlight>
</View>
</View>


);
},

});

var styles = StyleSheet.create({
container: {
flex: 1,
outerContainer: {
backgroundColor: '#F2F2F2',
marginTop: 25,
flexDirection: 'column',
flex:1,
},
innerContainer: {
backgroundColor: '#F2F2F2',
flex:1,
flexDirection: 'row',
justifyContent: 'center',
justifyContent: 'space-between',
alignItems: 'center',
backgroundColor: '#F5FCFF',
marginLeft: 40,
marginRight: 40,
},
rightContainer: {
flex: 1,
centerItem: {
flex:1,
flexDirection: 'row',
justifyContent: 'center',
},
btn: {
backgroundColor: '#F00',
borderRadius: 3,
borderStyle: 'solid',
borderWidth: 2,
borderColor: '#000'
},
backgroundImage: {
height:180,
width:180,
},
startStopText: {
fontSize: 28,
alignItems: 'center',
},
elapsedTime: {
fontSize: 42,
marginTop: 50,
},
});

Expand Down
86 changes: 72 additions & 14 deletions ios/VipassanaTimerApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; };
714F79EB1C1F869E00B6BC95 /* libRNAudioPlayer.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 714F79E81C1F865D00B6BC95 /* libRNAudioPlayer.a */; };
714F79EF1C1F877C00B6BC95 /* 0.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 714F79EC1C1F877C00B6BC95 /* 0.mp3 */; };
714F79F01C1F877C00B6BC95 /* 1.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 714F79ED1C1F877C00B6BC95 /* 1.mp3 */; };
714F79F11C1F877C00B6BC95 /* 2.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 714F79EE1C1F877C00B6BC95 /* 2.mp3 */; };
832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; };
/* End PBXBuildFile section */

Expand Down Expand Up @@ -88,6 +92,20 @@
remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192;
remoteInfo = React;
};
714F79E71C1F865D00B6BC95 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 714F79D81C1F865D00B6BC95 /* RNAudioPlayer.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = EBE79C421B01EB5A00446766;
remoteInfo = RNAudioPlayer;
};
714F79E91C1F865D00B6BC95 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 714F79D81C1F865D00B6BC95 /* RNAudioPlayer.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = EBE79C4D1B01EB5B00446766;
remoteInfo = RNAudioPlayerTests;
};
78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */;
Expand All @@ -105,27 +123,31 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = main.jsbundle; path = main.jsbundle; sourceTree = "<group>"; };
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = ../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj; sourceTree = "<group>"; };
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = ../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj; sourceTree = "<group>"; };
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = ../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj; sourceTree = "<group>"; };
00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = ../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj; sourceTree = "<group>"; };
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = ../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj; sourceTree = "<group>"; };
008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; };
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; };
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; };
00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; };
00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; };
00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; };
00E356EE1AD99517003FC87E /* VipassanaTimerAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = VipassanaTimerAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
00E356F21AD99517003FC87E /* VipassanaTimerAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VipassanaTimerAppTests.m; sourceTree = "<group>"; };
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = ../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj; sourceTree = "<group>"; };
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = ../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj; sourceTree = "<group>"; };
139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; };
139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; };
13B07F961A680F5B00A75B9A /* VipassanaTimerApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = VipassanaTimerApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = VipassanaTimerApp/AppDelegate.h; sourceTree = "<group>"; };
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = VipassanaTimerApp/AppDelegate.m; sourceTree = "<group>"; };
13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = VipassanaTimerApp/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = VipassanaTimerApp/Info.plist; sourceTree = "<group>"; };
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = VipassanaTimerApp/main.m; sourceTree = "<group>"; };
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = ../node_modules/react-native/React/React.xcodeproj; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = ../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = ../node_modules/react-native/Libraries/Text/RCTText.xcodeproj; sourceTree = "<group>"; };
146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; };
714F79D81C1F865D00B6BC95 /* RNAudioPlayer.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RNAudioPlayer.xcodeproj; path = "../node_modules/react-native-audioplayer/RNAudioPlayer.xcodeproj"; sourceTree = "<group>"; };
714F79EC1C1F877C00B6BC95 /* 0.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = 0.mp3; path = ../../../0.mp3; sourceTree = "<group>"; };
714F79ED1C1F877C00B6BC95 /* 1.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = 1.mp3; path = ../../../1.mp3; sourceTree = "<group>"; };
714F79EE1C1F877C00B6BC95 /* 2.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = 2.mp3; path = ../../../2.mp3; sourceTree = "<group>"; };
78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; };
832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand All @@ -140,6 +162,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
714F79EB1C1F869E00B6BC95 /* libRNAudioPlayer.a in Frameworks */,
146834051AC3E58100842450 /* libReact.a in Frameworks */,
00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */,
00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */,
Expand Down Expand Up @@ -251,6 +274,15 @@
name = Products;
sourceTree = "<group>";
};
714F79D91C1F865D00B6BC95 /* Products */ = {
isa = PBXGroup;
children = (
714F79E81C1F865D00B6BC95 /* libRNAudioPlayer.a */,
714F79EA1C1F865D00B6BC95 /* RNAudioPlayerTests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
78C398B11ACF4ADC00677621 /* Products */ = {
isa = PBXGroup;
children = (
Expand All @@ -262,6 +294,7 @@
832341AE1AAA6A7D00B99B32 /* Libraries */ = {
isa = PBXGroup;
children = (
714F79D81C1F865D00B6BC95 /* RNAudioPlayer.xcodeproj */,
146833FF1AC3E56700842450 /* React.xcodeproj */,
00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */,
00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */,
Expand All @@ -287,6 +320,9 @@
83CBB9F61A601CBA00E9B192 = {
isa = PBXGroup;
children = (
714F79EC1C1F877C00B6BC95 /* 0.mp3 */,
714F79ED1C1F877C00B6BC95 /* 1.mp3 */,
714F79EE1C1F877C00B6BC95 /* 2.mp3 */,
13B07FAE1A68108700A75B9A /* VipassanaTimerApp */,
832341AE1AAA6A7D00B99B32 /* Libraries */,
00E356EF1AD99517003FC87E /* VipassanaTimerAppTests */,
Expand Down Expand Up @@ -411,6 +447,10 @@
ProductGroup = 146834001AC3E56700842450 /* Products */;
ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */;
},
{
ProductGroup = 714F79D91C1F865D00B6BC95 /* Products */;
ProjectRef = 714F79D81C1F865D00B6BC95 /* RNAudioPlayer.xcodeproj */;
},
);
projectRoot = "";
targets = (
Expand Down Expand Up @@ -477,6 +517,20 @@
remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
714F79E81C1F865D00B6BC95 /* libRNAudioPlayer.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
path = libRNAudioPlayer.a;
remoteRef = 714F79E71C1F865D00B6BC95 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
714F79EA1C1F865D00B6BC95 /* RNAudioPlayerTests.xctest */ = {
isa = PBXReferenceProxy;
fileType = wrapper.cfbundle;
path = RNAudioPlayerTests.xctest;
remoteRef = 714F79E91C1F865D00B6BC95 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = {
isa = PBXReferenceProxy;
fileType = archive.ar;
Expand Down Expand Up @@ -505,6 +559,9 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
714F79F01C1F877C00B6BC95 /* 1.mp3 in Resources */,
714F79EF1C1F877C00B6BC95 /* 0.mp3 in Resources */,
714F79F11C1F877C00B6BC95 /* 2.mp3 in Resources */,
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */,
);
Expand All @@ -526,7 +583,6 @@
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "../node_modules/react-native/packager/react-native-xcode.sh";
showEnvVarsInLog = 1;
};
/* End PBXShellScriptBuildPhase section */

Expand Down Expand Up @@ -617,8 +673,9 @@
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../node_modules/react-native/React/**",
"$(SRCROOT)/../../React/**",
);
INFOPLIST_FILE = "VipassanaTimerApp/Info.plist";
INFOPLIST_FILE = VipassanaTimerApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = VipassanaTimerApp;
Expand All @@ -633,8 +690,9 @@
"$(inherited)",
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(SRCROOT)/../node_modules/react-native/React/**",
"$(SRCROOT)/../../React/**",
);
INFOPLIST_FILE = "VipassanaTimerApp/Info.plist";
INFOPLIST_FILE = VipassanaTimerApp/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = VipassanaTimerApp;
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"dependencies": {
"moment": "^2.10.6",
"react-native": "^0.16.0",
"react-native-audioplayer": "^0.2.0",
"react-timer-mixin": "^0.13.3"
}
}

0 comments on commit 680709a

Please sign in to comment.