Skip to content

Commit da40757

Browse files
authored
Submodule for Vendored AudioPlayer & Updated example RN 0.59 with Hooks (doublesymmetry#615)
* Use submodule for vendored Audio player & update example * Remove vendored audioplayer * Add vendored audioplayer as submodule * Update audio player branch to fork
1 parent 1c373a1 commit da40757

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+463
-3081
lines changed

Diff for: .gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "ios/RNTrackPlayer/Vendor/AudioPlayer"]
2+
path = ios/RNTrackPlayer/Vendor/AudioPlayer
3+
url = https://github.com/dcvz/SwiftAudio.git

Diff for: example/.babelrc

-11
This file was deleted.

Diff for: example/App.js

+19-43
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,23 @@
1-
import React, { Component } from 'react';
2-
import TrackPlayer from 'react-native-track-player';
3-
import { StackNavigator } from 'react-navigation';
4-
5-
import PlayerStore from './react/stores/Player';
6-
import TrackStore from './react/stores/Track';
7-
8-
import LandingScreen from './react/screens/LandingScreen';
9-
import PlaylistScreen from './react/screens/PlaylistScreen';
10-
11-
const RootStack = StackNavigator({
12-
Landing: {
13-
screen: LandingScreen,
14-
},
15-
Playlist: {
16-
screen: PlaylistScreen,
1+
import React from "react";
2+
import { createStackNavigator, createAppContainer } from "react-navigation";
3+
4+
import LandingScreen from "./react/screens/LandingScreen";
5+
import PlaylistScreen from "./react/screens/PlaylistScreen";
6+
7+
const AppNavigator = createStackNavigator(
8+
{
9+
Landing: {
10+
screen: LandingScreen
11+
},
12+
Playlist: {
13+
screen: PlaylistScreen
14+
}
1715
},
18-
}, { initialRouteName: 'Landing' })
19-
20-
export default class App extends Component {
21-
22-
componentDidMount() {
23-
this._onTrackChanged = TrackPlayer.addEventListener('playback-track-changed', async (data) => {
24-
if (data.nextTrack) {
25-
const track = await TrackPlayer.getTrack(data.nextTrack);
26-
TrackStore.title = track.title;
27-
TrackStore.artist = track.artist;
28-
TrackStore.artwork = track.artwork;
29-
}
30-
})
31-
32-
this._onStateChanged = TrackPlayer.addEventListener('playback-state', (data) => {
33-
PlayerStore.playbackState = data.state;
34-
})
35-
}
16+
{ initialRouteName: "Landing" }
17+
);
3618

37-
componentWillUnmount() {
38-
this._onTrackChanged.remove()
39-
this._onStateChanged.remove()
40-
}
19+
const AppContainer = createAppContainer(AppNavigator);
4120

42-
render() {
43-
return (
44-
<RootStack />
45-
);
46-
}
21+
export default function App() {
22+
return <AppContainer />;
4723
}

Diff for: example/android/app/build.gradle

+11-9
Original file line numberDiff line numberDiff line change
@@ -94,18 +94,19 @@ def enableSeparateBuildPerCPUArchitecture = false
9494
def enableProguardInReleaseBuilds = false
9595

9696
android {
97-
compileSdkVersion 27
98-
buildToolsVersion "27.0.3"
97+
compileSdkVersion rootProject.ext.compileSdkVersion
98+
99+
compileOptions {
100+
sourceCompatibility JavaVersion.VERSION_1_8
101+
targetCompatibility JavaVersion.VERSION_1_8
102+
}
99103

100104
defaultConfig {
101105
applicationId "com.example"
102-
minSdkVersion 16
103-
targetSdkVersion 27
106+
minSdkVersion rootProject.ext.minSdkVersion
107+
targetSdkVersion rootProject.ext.targetSdkVersion
104108
versionCode 1
105109
versionName "1.0"
106-
ndk {
107-
abiFilters "armeabi-v7a", "x86"
108-
}
109110
}
110111
android {
111112
compileOptions {
@@ -118,7 +119,7 @@ android {
118119
reset()
119120
enable enableSeparateBuildPerCPUArchitecture
120121
universalApk false // If true, also generate a universal APK
121-
include "armeabi-v7a", "x86"
122+
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
122123
}
123124
}
124125
buildTypes {
@@ -132,7 +133,7 @@ android {
132133
variant.outputs.each { output ->
133134
// For each separate APK per architecture, set a unique version code as described here:
134135
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
135-
def versionCodes = ["armeabi-v7a":1, "x86":2]
136+
def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4]
136137
def abi = output.getFilter(OutputFile.ABI)
137138
if (abi != null) { // null for the universal-debug, universal-release variants
138139
output.versionCodeOverride =
@@ -143,6 +144,7 @@ android {
143144
}
144145

145146
dependencies {
147+
implementation project(':react-native-gesture-handler')
146148
implementation fileTree(dir: "libs", include: ["*.jar"])
147149
implementation "com.android.support:appcompat-v7:27.1.1"
148150
implementation "com.facebook.react:react-native:+" // From node_modules

Diff for: example/android/app/src/debug/AndroidManifest.xml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools">
4+
5+
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
6+
7+
<application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
8+
</manifest>

Diff for: example/android/app/src/main/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
<uses-permission android:name="android.permission.INTERNET" />
55
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
6-
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
76

87
<application
98
android:name=".MainApplication"
109
android:label="@string/app_name"
1110
android:icon="@mipmap/ic_launcher"
11+
android:roundIcon="@mipmap/ic_launcher_round"
1212
android:allowBackup="false"
1313
android:theme="@style/AppTheme">
1414
<activity

Diff for: example/android/app/src/main/java/com/example/MainActivity.java

+13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.example;
22

33
import com.facebook.react.ReactActivity;
4+
import com.facebook.react.ReactActivityDelegate;
5+
import com.facebook.react.ReactRootView;
6+
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
47

58
public class MainActivity extends ReactActivity {
69

@@ -12,4 +15,14 @@ public class MainActivity extends ReactActivity {
1215
protected String getMainComponentName() {
1316
return "example";
1417
}
18+
19+
@Override
20+
protected ReactActivityDelegate createReactActivityDelegate() {
21+
return new ReactActivityDelegate(this, getMainComponentName()) {
22+
@Override
23+
protected ReactRootView createRootView() {
24+
return new RNGestureHandlerEnabledRootView(MainActivity.this);
25+
}
26+
};
27+
}
1528
}

Diff for: example/android/app/src/main/java/com/example/MainApplication.java

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Application;
44

55
import com.facebook.react.ReactApplication;
6+
import com.swmansion.gesturehandler.react.RNGestureHandlerPackage;
67
import com.guichaguri.trackplayer.TrackPlayer;
78
import com.facebook.react.ReactNativeHost;
89
import com.facebook.react.ReactPackage;
@@ -24,6 +25,7 @@ public boolean getUseDeveloperSupport() {
2425
protected List<ReactPackage> getPackages() {
2526
return Arrays.<ReactPackage>asList(
2627
new MainReactPackage(),
28+
new RNGestureHandlerPackage(),
2729
new TrackPlayer()
2830
);
2931
}

Diff for: example/android/build.gradle

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
buildscript {
4+
ext {
5+
buildToolsVersion = "28.0.3"
6+
minSdkVersion = 16
7+
compileSdkVersion = 28
8+
targetSdkVersion = 28
9+
supportLibVersion = "28.0.0"
10+
}
411
repositories {
5-
jcenter()
612
google()
13+
jcenter()
714
}
815
dependencies {
9-
classpath 'com.android.tools.build:gradle:3.1.4'
16+
classpath 'com.android.tools.build:gradle:3.3.1'
1017

1118
// NOTE: Do not place your application dependencies here; they belong
1219
// in the individual module build.gradle files
@@ -15,8 +22,8 @@ buildscript {
1522

1623
allprojects {
1724
repositories {
18-
google()
1925
mavenLocal()
26+
google()
2027
jcenter()
2128
maven {
2229
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm

Diff for: example/android/gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip

Diff for: example/android/settings.gradle

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
rootProject.name = 'example'
22

3+
include ':react-native-gesture-handler'
4+
project(':react-native-gesture-handler').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-gesture-handler/android')
5+
36
include ':react-native-track-player'
47
project(':react-native-track-player').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-track-player/android')
58

Diff for: example/babel.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
module.exports = {
2+
presets: ['module:metro-react-native-babel-preset'],
3+
plugins: [
4+
[
5+
"@babel/plugin-proposal-decorators",
6+
{
7+
legacy: true
8+
}
9+
]
10+
]
11+
};

Diff for: example/index.js

-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import { AppRegistry } from 'react-native';
22
import TrackPlayer from 'react-native-track-player';
33

44
import App from './App';
5-
import PlayerStore, { playbackStates } from './react/stores/Player';
6-
import TrackStore from './react/stores/Track';
75

86
AppRegistry.registerComponent('example', () => App);
97
TrackPlayer.registerPlaybackService(() => require('./service'));

0 commit comments

Comments
 (0)