Merge branch 'release/4.4.3' into bugfix/android-disablefocus-audio
This commit is contained in:
commit
9dec6aec4d
@ -1,7 +1,10 @@
|
||||
## Changelog
|
||||
|
||||
### next
|
||||
### Version 4.4.3
|
||||
* Fix Android videos being able to play with background music/audio from other apps.
|
||||
* Fixed memory leak on iOS when using `controls` [#1647](https://github.com/react-native-community/react-native-video/pull/1647)
|
||||
* (Android) Update gradle and target SDK [#1629](https://github.com/react-native-community/react-native-video/pull/1629)
|
||||
* Fix iOS stressed mount/unmount crash [#1646](https://github.com/react-native-community/react-native-video/pull/1646)
|
||||
|
||||
### Version 4.4.2
|
||||
* Change compileOnly to implementation on gradle (for newer gradle versions and react-native 0.59 support) [#1592](https://github.com/react-native-community/react-native-video/pull/1592)
|
||||
|
@ -124,7 +124,9 @@ project(':react-native-video').projectDir = new File(rootProject.projectDir, '..
|
||||
```gradle
|
||||
dependencies {
|
||||
...
|
||||
compile project(':react-native-video')
|
||||
compile project(':react-native-video')
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -5,8 +5,8 @@ def safeExtGet(prop, fallback) {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion safeExtGet('compileSdkVersion', 27)
|
||||
buildToolsVersion safeExtGet('buildToolsVersion', '27.0.3')
|
||||
compileSdkVersion safeExtGet('compileSdkVersion', 28)
|
||||
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
|
||||
|
||||
compileOptions {
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
@ -15,7 +15,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion safeExtGet('minSdkVersion', 16)
|
||||
targetSdkVersion safeExtGet('targetSdkVersion', 27)
|
||||
targetSdkVersion safeExtGet('targetSdkVersion', 28)
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
}
|
||||
@ -28,9 +28,9 @@ dependencies {
|
||||
}
|
||||
|
||||
// All support libs must use the same version
|
||||
implementation "com.android.support:support-annotations:${safeExtGet('supportLibVersion', '+')}"
|
||||
implementation "com.android.support:support-compat:${safeExtGet('supportLibVersion', '+')}"
|
||||
implementation "com.android.support:support-media-compat:${safeExtGet('supportLibVersion', '+')}"
|
||||
implementation "com.android.support:support-annotations:${safeExtGet('supportLibVersion', '28.0.0')}"
|
||||
implementation "com.android.support:support-compat:${safeExtGet('supportLibVersion', '28.0.0')}"
|
||||
implementation "com.android.support:support-media-compat:${safeExtGet('supportLibVersion', '28.0.0')}"
|
||||
|
||||
implementation('com.google.android.exoplayer:extension-okhttp:2.9.3') {
|
||||
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
|
||||
|
@ -5,12 +5,12 @@ def safeExtGet(prop, fallback) {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion safeExtGet('compileSdkVersion', 27)
|
||||
buildToolsVersion safeExtGet('buildToolsVersion', '27.0.3')
|
||||
compileSdkVersion safeExtGet('compileSdkVersion', 28)
|
||||
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion safeExtGet('minSdkVersion', 16)
|
||||
targetSdkVersion safeExtGet('targetSdkVersion', 27)
|
||||
targetSdkVersion safeExtGet('targetSdkVersion', 28)
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
ndk {
|
||||
|
@ -83,13 +83,16 @@ def enableSeparateBuildPerCPUArchitecture = false
|
||||
def enableProguardInReleaseBuilds = false
|
||||
|
||||
android {
|
||||
compileSdkVersion 25
|
||||
buildToolsVersion '25.0.2'
|
||||
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
buildToolsVersion rootProject.ext.buildToolsVersion
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId "com.videoplayer"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 25
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
ndk {
|
||||
@ -108,6 +111,7 @@ android {
|
||||
release {
|
||||
signingConfig signingConfigs.debug
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
matchingFallbacks = ['release', 'debug']
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
}
|
||||
}
|
||||
@ -127,9 +131,10 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile "com.android.support:appcompat-v7:25.2.0"
|
||||
compile "com.facebook.react:react-native:+" // From node_modules
|
||||
compile project(':react-native-video')
|
||||
implementation project(':react-native-video')
|
||||
compile "com.android.support:appcompat-v7:28.0.0"
|
||||
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
// compile project(':react-native-video-exoplayer') // uncomment to use exoplayer
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="16"
|
||||
android:targetSdkVersion="22" />
|
||||
android:targetSdkVersion="28" />
|
||||
|
||||
<application
|
||||
android:name=".MainApplication"
|
||||
|
@ -2,8 +2,8 @@ package com.videoplayer;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import com.brentvatne.react.ReactVideoPackage;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.brentvatne.react.ReactVideoPackage;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
@ -24,8 +24,8 @@ public class MainApplication extends Application implements ReactApplication {
|
||||
protected List<ReactPackage> getPackages() {
|
||||
return Arrays.asList(
|
||||
new MainReactPackage(),
|
||||
new ReactVideoPackage()
|
||||
);
|
||||
new ReactVideoPackage()
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1,11 +1,20 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext {
|
||||
buildToolsVersion = "28.0.3"
|
||||
minSdkVersion = 16
|
||||
compileSdkVersion = 28
|
||||
targetSdkVersion = 28
|
||||
supportLibVersion = "28.0.0"
|
||||
|
||||
}
|
||||
repositories {
|
||||
jcenter()
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.3.0'
|
||||
classpath 'com.android.tools.build:gradle:3.4.1'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
@ -15,6 +24,12 @@ buildscript {
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven {
|
||||
url 'https://maven.google.com'
|
||||
}
|
||||
maven {
|
||||
url "https://jitpack.io"
|
||||
}
|
||||
jcenter()
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
|
||||
|
@ -1,12 +1,10 @@
|
||||
rootProject.name = 'VideoPlayer'
|
||||
|
||||
include ':app',
|
||||
':react-native-video',
|
||||
':react-native-video-exoplayer'
|
||||
include ':react-native-video'
|
||||
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-video/android-exoplayer')
|
||||
|
||||
// Quick Local Development
|
||||
//project(':react-native-video').projectDir = new File(rootProject.projectDir, '../../android')
|
||||
//project(':react-native-video-exoplayer').projectDir = new File(rootProject.projectDir, '../../android-exoplayer')
|
||||
|
||||
project(':react-native-video').projectDir = new File(rootProject.projectDir, '../../android')
|
||||
project(':react-native-video-exoplayer').projectDir = new File(rootProject.projectDir, '../../android-exoplayer')
|
||||
include ':app'
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -578,26 +578,7 @@ static int const RCTVideoUnset = -1;
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
||||
{
|
||||
// when controls==true, this is a hack to reset the rootview when rotation happens in fullscreen
|
||||
if (object == _playerViewController.contentOverlayView) {
|
||||
if ([keyPath isEqualToString:@"frame"]) {
|
||||
|
||||
CGRect oldRect = [change[NSKeyValueChangeOldKey] CGRectValue];
|
||||
CGRect newRect = [change[NSKeyValueChangeNewKey] CGRectValue];
|
||||
|
||||
if (!CGRectEqualToRect(oldRect, newRect)) {
|
||||
if (CGRectEqualToRect(newRect, [UIScreen mainScreen].bounds)) {
|
||||
NSLog(@"in fullscreen");
|
||||
} else NSLog(@"not fullscreen");
|
||||
|
||||
[self.reactViewController.view setFrame:[UIScreen mainScreen].bounds];
|
||||
[self.reactViewController.view setNeedsLayout];
|
||||
}
|
||||
|
||||
return;
|
||||
} else
|
||||
return [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
|
||||
}
|
||||
|
||||
if([keyPath isEqualToString:readyForDisplayKeyPath] && [change objectForKey:NSKeyValueChangeNewKey] && self.onReadyForDisplay) {
|
||||
self.onReadyForDisplay(@{@"target": self.reactTag});
|
||||
return;
|
||||
@ -713,7 +694,25 @@ static int const RCTVideoUnset = -1;
|
||||
@"target": self.reactTag});
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else if (object == _playerViewController.contentOverlayView) {
|
||||
// when controls==true, this is a hack to reset the rootview when rotation happens in fullscreen
|
||||
if ([keyPath isEqualToString:@"frame"]) {
|
||||
|
||||
CGRect oldRect = [change[NSKeyValueChangeOldKey] CGRectValue];
|
||||
CGRect newRect = [change[NSKeyValueChangeNewKey] CGRectValue];
|
||||
|
||||
if (!CGRectEqualToRect(oldRect, newRect)) {
|
||||
if (CGRectEqualToRect(newRect, [UIScreen mainScreen].bounds)) {
|
||||
NSLog(@"in fullscreen");
|
||||
} else NSLog(@"not fullscreen");
|
||||
|
||||
[self.reactViewController.view setFrame:[UIScreen mainScreen].bounds];
|
||||
[self.reactViewController.view setNeedsLayout];
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
} else if ([super respondsToSelector:@selector(observeValueForKeyPath:ofObject:change:context:)]) {
|
||||
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
|
||||
}
|
||||
}
|
||||
@ -1491,6 +1490,8 @@ static int const RCTVideoUnset = -1;
|
||||
[_playerViewController.contentOverlayView removeObserver:self forKeyPath:@"frame"];
|
||||
[_playerViewController removeObserver:self forKeyPath:readyForDisplayKeyPath];
|
||||
[_playerViewController.view removeFromSuperview];
|
||||
_playerViewController.rctDelegate = nil;
|
||||
_playerViewController.player = nil;
|
||||
_playerViewController = nil;
|
||||
|
||||
[self removePlayerTimeObserver];
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "react-native-video",
|
||||
"version": "4.4.2",
|
||||
"version": "4.4.3",
|
||||
"description": "A <Video /> element for react-native",
|
||||
"main": "Video.js",
|
||||
"license": "MIT",
|
||||
|
Loading…
Reference in New Issue
Block a user