diff --git a/CHANGELOG.md b/CHANGELOG.md index 86864b975..9ba8d3454 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ +## 0.0.84 +* [BREAKING_CHANGE] Updated min. Flutter version to 3.3.0 and min. Dart version to 3.0.0. +* Recreated example project. +* Replaced wakelock with wakelock plus. +* Updated other dependencies. +* Updated metadata. + ## 0.0.83 -* Updated dependencies -* Fixed Flutter 3.0 issues +* Updated dependencies. +* Fixed Flutter 3.0 issues. ## 0.0.82 * Updated ExoPlayer version to 2.17.1. @@ -563,7 +570,7 @@ setBetterPlayerGlobalKey. * Updated documentation. ## 0.0.2 -* Moved example project from better_player_example to example. +* Moved example project from example to example. ## 0.0.1 * Initial release. diff --git a/README.md b/README.md index 5037270a2..8d0a49595 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![pub package](https://img.shields.io/github/license/jhomlala/betterplayer.svg?style=flat)](https://github.com/jhomlala/betterplayer) [![pub package](https://img.shields.io/badge/platform-flutter-blue.svg)](https://github.com/jhomlala/betterplayer) -Advanced video player based on video_player and Chewie. It's solves many typical use cases and it's easy to run. +Advanced video player. It solves many typical use cases and it's easy to run. diff --git a/docs/install.md b/docs/install.md index cfe123190..84d72acaf 100644 --- a/docs/install.md +++ b/docs/install.md @@ -4,7 +4,7 @@ ```yaml dependencies: - better_player: ^0.0.83 + better_player: ^0.0.84 ``` 2. Install it diff --git a/docs/notificationconfiguration.md b/docs/notificationconfiguration.md index dfbcf2cb0..6e87bf4f7 100644 --- a/docs/notificationconfiguration.md +++ b/docs/notificationconfiguration.md @@ -46,6 +46,6 @@ Important note for android: You need to add special service in android native code. Service will simply destroy all remaining notifications. This service need to be used to handle situation when app is killed without proper player destroying. Check `BetterPlayerService` in example project to see how to add this service to your app. -https://github.com/jhomlala/betterplayer/blob/feature/player_notifications/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/BetterPlayerService.kt +https://github.com/jhomlala/betterplayer/blob/feature/player_notifications/example/android/app/src/main/kotlin/com/jhomlala/example/BetterPlayerService.kt Here is an example of player with notification: https://github.com/jhomlala/betterplayer/blob/feature/player_notifications/example/lib/pages/notification_player_page.dart \ No newline at end of file diff --git a/example/.gitignore b/example/.gitignore index 951202ed6..29a3a5017 100644 --- a/example/.gitignore +++ b/example/.gitignore @@ -8,13 +8,13 @@ .buildlog/ .history .svn/ +migrate_working_dir/ # IntelliJ related *.iml *.ipr *.iws .idea/ -.vscode/ # The .vscode folder contains launch configuration and tasks you configure in # VS Code which you may wish to be included in version control, so this line @@ -22,19 +22,22 @@ #.vscode/ # Flutter/Dart/Pub related -pubspec.lock **/doc/api/ +**/ios/Flutter/.last_build_id .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ -# Web related -lib/generated_plugin_registrant.dart +# Symbolication related +app.*.symbols -# Exceptions to above rules. -!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +# Obfuscation related +app.*.map.json +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/example/.metadata b/example/.metadata index 5d1241efe..cbf1dc0e0 100644 --- a/example/.metadata +++ b/example/.metadata @@ -4,7 +4,42 @@ # This file should be version controlled and should not be manually edited. version: - revision: 9f5ff2306bb3e30b2b98eee79cd231b1336f41f4 - channel: stable + revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: android + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: ios + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: linux + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: macos + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: web + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: windows + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/example/.vscode/launch.json b/example/.vscode/launch.json deleted file mode 100644 index f7354668c..000000000 --- a/example/.vscode/launch.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "example", - "request": "launch", - "type": "dart" - } - ] -} \ No newline at end of file diff --git a/example/README.md b/example/README.md index 258afa653..e774494f8 100644 --- a/example/README.md +++ b/example/README.md @@ -1,6 +1,6 @@ -# better_player_example +# example -A new Flutter application. +Example to showcase use cases of Better Player. ## Getting Started @@ -8,9 +8,9 @@ This project is a starting point for a Flutter application. A few resources to get you started if this is your first Flutter project: -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) -For help getting started with Flutter, view our -[online documentation](https://flutter.dev/docs), which offers tutorials, +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, samples, guidance on mobile development, and a full API reference. diff --git a/example/analysis_options.yaml b/example/analysis_options.yaml new file mode 100644 index 000000000..0d2902135 --- /dev/null +++ b/example/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/example/android/.gitignore b/example/android/.gitignore index bc2100d8f..6f568019d 100644 --- a/example/android/.gitignore +++ b/example/android/.gitignore @@ -5,3 +5,9 @@ gradle-wrapper.jar /gradlew.bat /local.properties GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index d243520f8..eee597310 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -1,63 +1,58 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') +def localPropertiesFile = rootProject.file("local.properties") if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> + localPropertiesFile.withReader("UTF-8") { reader -> localProperties.load(reader) } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") if (flutterVersionCode == null) { - flutterVersionCode = '1' + flutterVersionCode = "1" } -def flutterVersionName = localProperties.getProperty('flutter.versionName') +def flutterVersionName = localProperties.getProperty("flutter.versionName") if (flutterVersionName == null) { - flutterVersionName = '1.0' + flutterVersionName = "1.0" } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 31 + namespace = "pl.hasoft.example" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - lintOptions { - disable 'InvalidPackage' + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 } defaultConfig { - applicationId "com.jhomlala.better_player_example" - minSdkVersion 16 - targetSdkVersion 31 - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "pl.hasoft.example" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName } buildTypes { release { - signingConfig signingConfigs.debug + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug } } } flutter { - source '../..' -} - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" - implementation "androidx.multidex:multidex:$multidexVersion" + source = "../.." } diff --git a/example/android/app/src/debug/AndroidManifest.xml b/example/android/app/src/debug/AndroidManifest.xml index da65608a2..399f6981d 100644 --- a/example/android/app/src/debug/AndroidManifest.xml +++ b/example/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 0765fd737..cc6967bd9 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,34 +1,46 @@ - - + + + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" + android:hardwareAccelerated="true" + android:windowSoftInputMode="adjustResize"> + + - - + + + - - + + + + + + + diff --git a/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/BetterPlayerService.kt b/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/BetterPlayerService.kt deleted file mode 100644 index 17c43945f..000000000 --- a/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/BetterPlayerService.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.jhomlala.better_player_example - -import android.app.* -import android.content.Context -import android.content.Intent -import android.os.Build -import android.os.IBinder -import androidx.annotation.RequiresApi -import androidx.core.app.NotificationCompat -import androidx.core.app.NotificationCompat.PRIORITY_MIN - -class BetterPlayerService : Service() { - - companion object { - const val notificationId = 20772077 - const val foregroundNotificationId = 20772078 - const val channelId = "VideoPlayer" - } - - override fun onBind(intent: Intent?): IBinder? { - return null - } - - override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - val channelId = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - createNotificationChannel(channelId, "Channel") - } else { - "" - } - val notificationIntent = Intent(this, MainActivity::class.java) - val pendingIntent = - PendingIntent.getActivity( - this, 0, notificationIntent, - PendingIntent.FLAG_IMMUTABLE - ) - - - val notificationBuilder = NotificationCompat.Builder(this, channelId) - .setContentTitle("Better Player Notification") - .setContentText("Better Player is running") - .setSmallIcon(R.mipmap.ic_launcher) - .setPriority(PRIORITY_MIN) - .setOngoing(true) - .setContentIntent(pendingIntent) - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - notificationBuilder.setCategory(Notification.CATEGORY_SERVICE); - } - startForeground(foregroundNotificationId, notificationBuilder.build()) - return START_NOT_STICKY - } - - @RequiresApi(Build.VERSION_CODES.O) - private fun createNotificationChannel(channelId: String, channelName: String): String { - val chan = NotificationChannel( - channelId, - channelName, NotificationManager.IMPORTANCE_NONE - ) - val service = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager - service.createNotificationChannel(chan) - return channelId - } - - override fun onTaskRemoved(rootIntent: Intent?) { - try { - val notificationManager = - getSystemService( - Context.NOTIFICATION_SERVICE - ) as NotificationManager - notificationManager.cancel(notificationId) - } catch (exception: Exception) { - - } finally { - stopSelf() - } - } - -} \ No newline at end of file diff --git a/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/MainActivity.kt b/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/MainActivity.kt deleted file mode 100644 index 2cb78d873..000000000 --- a/example/android/app/src/main/kotlin/com/jhomlala/better_player_example/MainActivity.kt +++ /dev/null @@ -1,42 +0,0 @@ -package com.jhomlala.better_player_example - -import android.content.Intent -import android.os.Build -import android.os.Bundle -import io.flutter.embedding.android.FlutterActivity - -class MainActivity : FlutterActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - startNotificationService() - } - - override fun onDestroy() { - super.onDestroy() - stopNotificationService() - } - - ///TODO: Call this method via channel after remote notification start - private fun startNotificationService() { - try { - val intent = Intent(this, BetterPlayerService::class.java) - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) { - startForegroundService(intent) - } else { - startService(intent) - } - } catch (exception: Exception) { - } - } - - ///TODO: Call this method via channel after remote notification stop - private fun stopNotificationService() { - try { - val intent = Intent(this, BetterPlayerService::class.java) - stopService(intent) - } catch (exception: Exception) { - - } - } -} diff --git a/example/android/app/src/main/res/values/styles.xml b/example/android/app/src/main/res/values/styles.xml index 00fa4417c..cb1ef8805 100644 --- a/example/android/app/src/main/res/values/styles.xml +++ b/example/android/app/src/main/res/values/styles.xml @@ -1,8 +1,18 @@ - + + diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml index da65608a2..399f6981d 100644 --- a/example/android/app/src/profile/AndroidManifest.xml +++ b/example/android/app/src/profile/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/example/android/build.gradle b/example/android/build.gradle index 7c1aad732..d2ffbffa4 100644 --- a/example/android/build.gradle +++ b/example/android/build.gradle @@ -1,18 +1,3 @@ -buildscript { - ext.kotlinVersion = "1.5.31" - ext.gradleVersion = "7.0.2" - ext.multidexVersion = "2.0.1" - repositories { - google() - mavenCentral() - } - - dependencies { - classpath "com.android.tools.build:gradle:$gradleVersion" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" - } -} - allprojects { repositories { google() @@ -20,14 +5,14 @@ allprojects { } } -rootProject.buildDir = '../build' +rootProject.buildDir = "../build" subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { - project.evaluationDependsOn(':app') + project.evaluationDependsOn(":app") } -task clean(type: Delete) { +tasks.register("clean", Delete) { delete rootProject.buildDir } diff --git a/example/android/gradle.properties b/example/android/gradle.properties index 38c8d4544..3b5b324f6 100644 --- a/example/android/gradle.properties +++ b/example/android/gradle.properties @@ -1,4 +1,3 @@ -org.gradle.jvmargs=-Xmx1536M -android.enableR8=true +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError android.useAndroidX=true android.enableJetifier=true diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/example/android/gradle/wrapper/gradle-wrapper.properties index c3c8c1027..e1ca574ef 100644 --- a/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,5 @@ -#Fri Jun 23 08:50:38 CEST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip - +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/example/android/settings.gradle b/example/android/settings.gradle index 44e62bcf0..536165d35 100644 --- a/example/android/settings.gradle +++ b/example/android/settings.gradle @@ -1,11 +1,25 @@ -include ':app' +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/example/ios/.gitignore b/example/ios/.gitignore index e96ef602b..7a7f9873a 100644 --- a/example/ios/.gitignore +++ b/example/ios/.gitignore @@ -1,3 +1,4 @@ +**/dgph *.mode1v3 *.mode2v3 *.moved-aside @@ -18,6 +19,7 @@ Flutter/App.framework Flutter/Flutter.framework Flutter/Flutter.podspec Flutter/Generated.xcconfig +Flutter/ephemeral/ Flutter/app.flx Flutter/app.zip Flutter/flutter_assets/ diff --git a/example/ios/Flutter/.last_build_id b/example/ios/Flutter/.last_build_id deleted file mode 100644 index ca159df7b..000000000 --- a/example/ios/Flutter/.last_build_id +++ /dev/null @@ -1 +0,0 @@ -8e6464cea6c435e0bda1154a079fe36f \ No newline at end of file diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/example/ios/Flutter/AppFrameworkInfo.plist index f2872cf47..7c5696400 100644 --- a/example/ios/Flutter/AppFrameworkInfo.plist +++ b/example/ios/Flutter/AppFrameworkInfo.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en CFBundleExecutable App CFBundleIdentifier @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 9.0 + 12.0 diff --git a/example/ios/Flutter/Debug.xcconfig b/example/ios/Flutter/Debug.xcconfig index e8efba114..592ceee85 100644 --- a/example/ios/Flutter/Debug.xcconfig +++ b/example/ios/Flutter/Debug.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Flutter/Release.xcconfig b/example/ios/Flutter/Release.xcconfig index 399e9340e..592ceee85 100644 --- a/example/ios/Flutter/Release.xcconfig +++ b/example/ios/Flutter/Release.xcconfig @@ -1,2 +1 @@ -#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" #include "Generated.xcconfig" diff --git a/example/ios/Podfile b/example/ios/Podfile deleted file mode 100644 index 1e8c3c90a..000000000 --- a/example/ios/Podfile +++ /dev/null @@ -1,41 +0,0 @@ -# Uncomment this line to define a global platform for your project -# platform :ios, '9.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/example/ios/Runner.xcodeproj/project.pbxproj index 6e6bf2d5a..1b5b96dba 100644 --- a/example/ios/Runner.xcodeproj/project.pbxproj +++ b/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,19 +3,29 @@ archiveVersion = 1; classes = { }; - objectVersion = 50; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 65692E23C6CEBF35C9AAF97A /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13524A412B92FC9A156F1D76 /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXCopyFilesBuildPhase section */ 9705A1C41CF9048500538489 /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; @@ -30,16 +40,14 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 13524A412B92FC9A156F1D76 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 94D48ECD52FED99E280E944F /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - 9514B23B3AAD536E5404D300 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - 95921B1DFA71AF64A5BE87F5 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -54,21 +62,18 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 65692E23C6CEBF35C9AAF97A /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5EA2523037AF72EA3CE9144F /* Pods */ = { + 331C8082294A63A400263BE5 /* RunnerTests */ = { isa = PBXGroup; children = ( - 94D48ECD52FED99E280E944F /* Pods-Runner.debug.xcconfig */, - 9514B23B3AAD536E5404D300 /* Pods-Runner.release.xcconfig */, - 95921B1DFA71AF64A5BE87F5 /* Pods-Runner.profile.xcconfig */, + 331C807B294A618700263BE5 /* RunnerTests.swift */, ); - path = Pods; + path = RunnerTests; sourceTree = ""; }; 9740EEB11CF90186004384FC /* Flutter */ = { @@ -88,8 +93,7 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - 5EA2523037AF72EA3CE9144F /* Pods */, - C84D817BDFAC0EC6C6854563 /* Frameworks */, + 331C8082294A63A400263BE5 /* RunnerTests */, ); sourceTree = ""; }; @@ -97,6 +101,7 @@ isa = PBXGroup; children = ( 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, ); name = Products; sourceTree = ""; @@ -108,7 +113,6 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */, 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 97C147021CF9000F007C117D /* Info.plist */, - 97C146F11CF9000F007C117D /* Supporting Files */, 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, @@ -117,36 +121,36 @@ path = Runner; sourceTree = ""; }; - 97C146F11CF9000F007C117D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - ); - name = "Supporting Files"; - sourceTree = ""; - }; - C84D817BDFAC0EC6C6854563 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 13524A412B92FC9A156F1D76 /* Pods_Runner.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 97C146ED1CF9000F007C117D /* Runner */ = { isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( - AC6F872D8ADFFB2864927A14 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - F39D7370141E36EB0BE6A559 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -163,19 +167,22 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1300; - ORGANIZATIONNAME = "The Chromium Authors"; + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; - DevelopmentTeam = VY37M3U26Y; LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -188,11 +195,19 @@ projectRoot = ""; targets = ( 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 97C146EC1CF9000F007C117D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -209,10 +224,12 @@ /* Begin PBXShellScriptBuildPhase section */ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", ); name = "Thin Binary"; outputPaths = ( @@ -223,6 +240,7 @@ }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -235,63 +253,17 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; - AC6F872D8ADFFB2864927A14 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; }; - F39D7370141E36EB0BE6A559 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/Cache/Cache.framework", - "${BUILT_PRODUCTS_DIR}/GCDWebServer/GCDWebServer.framework", - "${BUILT_PRODUCTS_DIR}/HLSCachingReverseProxyServer/HLSCachingReverseProxyServer.framework", - "${BUILT_PRODUCTS_DIR}/PINCache/PINCache.framework", - "${BUILT_PRODUCTS_DIR}/PINOperation/PINOperation.framework", - "${BUILT_PRODUCTS_DIR}/better_player/better_player.framework", - "${BUILT_PRODUCTS_DIR}/path_provider_ios/path_provider_ios.framework", - "${BUILT_PRODUCTS_DIR}/wakelock/wakelock.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Cache.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GCDWebServer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HLSCachingReverseProxyServer.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PINCache.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PINOperation.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/better_player.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider_ios.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wakelock.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ 97C146EA1CF9000F007C117D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -303,6 +275,14 @@ }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin PBXVariantGroup section */ 97C146FA1CF9000F007C117D /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -327,6 +307,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -356,6 +337,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -364,7 +346,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -379,35 +361,73 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VY37M3U26Y; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jhomlala.betterplayer2; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; name = Profile; }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -437,6 +457,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -451,7 +472,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -463,6 +484,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; @@ -492,6 +514,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -500,11 +523,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -516,25 +540,15 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VY37M3U26Y; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jhomlala.betterplayer2; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -548,25 +562,15 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = VY37M3U26Y; ENABLE_BITCODE = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Flutter", - ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - LIBRARY_SEARCH_PATHS = ( + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Flutter", + "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.jhomlala.betterplayer2; + PRODUCT_BUNDLE_IDENTIFIER = pl.hasoft.example; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -576,6 +580,16 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 3db53b6e1..8e3ca5dfe 100644 --- a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ - - - - + + + + + + - - - - diff --git a/example/ios/Runner/AppDelegate.swift b/example/ios/Runner/AppDelegate.swift index 70693e4a8..9074fee92 100644 --- a/example/ios/Runner/AppDelegate.swift +++ b/example/ios/Runner/AppDelegate.swift @@ -1,5 +1,5 @@ -import UIKit import Flutter +import UIKit @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png index 28c6bf030..7353c41ec 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png index 2ccbfd967..797d452e4 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png index f091b6b0b..6ed2d933e 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png index 4cde12118..4cd7b0099 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png index d0ef06e7e..fe730945a 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png index dcdc2306c..321773cd8 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png index 2ccbfd967..797d452e4 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png index c8f9ed8f5..502f463a9 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png index a6d6b8609..0ec303439 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png index a6d6b8609..0ec303439 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png index 75b2d164a..e9f5fea27 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png index c4df70d39..84ac32ae7 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png index 6a84f41e1..8953cba09 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png differ diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png index d0e1f5853..0467bf12a 100644 Binary files a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and b/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png differ diff --git a/example/ios/Runner/Info.plist b/example/ios/Runner/Info.plist index 937b7e918..5458fc418 100644 --- a/example/ios/Runner/Info.plist +++ b/example/ios/Runner/Info.plist @@ -2,10 +2,10 @@ - CADisableMinimumFrameDurationOnPhone - CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Example CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,7 +13,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - better_player_example + example CFBundlePackageType APPL CFBundleShortVersionString @@ -24,21 +24,6 @@ $(FLUTTER_BUILD_NUMBER) LSRequiresIPhoneOS - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - NSBonjourServices - - _dartobservatory._tcp - - UIBackgroundModes - - audio - processing - remote-notification - UILaunchStoryboardName LaunchScreen UIMainStoryboardFile @@ -56,7 +41,9 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight - UIViewControllerBasedStatusBarAppearance - + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + diff --git a/example/ios/Runner/Runner-Bridging-Header.h b/example/ios/Runner/Runner-Bridging-Header.h index 7335fdf90..308a2a560 100644 --- a/example/ios/Runner/Runner-Bridging-Header.h +++ b/example/ios/Runner/Runner-Bridging-Header.h @@ -1 +1 @@ -#import "GeneratedPluginRegistrant.h" \ No newline at end of file +#import "GeneratedPluginRegistrant.h" diff --git a/example/lib/main.dart b/example/lib/main.dart index 5cd5edd1f..5a09d4656 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -1,4 +1,4 @@ -import 'package:better_player_example/pages/welcome_page.dart'; +import 'package:example/pages/welcome_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; diff --git a/example/lib/pages/auto_fullscreen_orientation_page.dart b/example/lib/pages/auto_fullscreen_orientation_page.dart index eed036887..ed083e60b 100644 --- a/example/lib/pages/auto_fullscreen_orientation_page.dart +++ b/example/lib/pages/auto_fullscreen_orientation_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class AutoFullscreenOrientationPage extends StatefulWidget { diff --git a/example/lib/pages/basic_player_page.dart b/example/lib/pages/basic_player_page.dart index b7d96b17c..f8c969a4e 100644 --- a/example/lib/pages/basic_player_page.dart +++ b/example/lib/pages/basic_player_page.dart @@ -1,6 +1,6 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/utils.dart'; +import 'package:example/constants.dart'; +import 'package:example/utils.dart'; import 'package:flutter/material.dart'; class BasicPlayerPage extends StatefulWidget { diff --git a/example/lib/pages/cache_page.dart b/example/lib/pages/cache_page.dart index 2100d0891..64a6a6e60 100644 --- a/example/lib/pages/cache_page.dart +++ b/example/lib/pages/cache_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class CachePage extends StatefulWidget { diff --git a/example/lib/pages/clearkey_page.dart b/example/lib/pages/clearkey_page.dart index 8e82721a2..9074e7f6a 100644 --- a/example/lib/pages/clearkey_page.dart +++ b/example/lib/pages/clearkey_page.dart @@ -3,8 +3,8 @@ import 'dart:io'; import 'package:better_player/better_player.dart'; import 'package:flutter/material.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/utils.dart'; +import 'package:example/constants.dart'; +import 'package:example/utils.dart'; class ClearKeyPage extends StatefulWidget { @override diff --git a/example/lib/pages/controller_controls_page.dart b/example/lib/pages/controller_controls_page.dart index fe7e36c89..74c57a9da 100644 --- a/example/lib/pages/controller_controls_page.dart +++ b/example/lib/pages/controller_controls_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class ControllerControlsPage extends StatefulWidget { diff --git a/example/lib/pages/controls_always_visible_page.dart b/example/lib/pages/controls_always_visible_page.dart index b9aca8eff..937aa00b8 100644 --- a/example/lib/pages/controls_always_visible_page.dart +++ b/example/lib/pages/controls_always_visible_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class ControlsAlwaysVisiblePage extends StatefulWidget { diff --git a/example/lib/pages/controls_configuration_page.dart b/example/lib/pages/controls_configuration_page.dart index c3d650010..584b02bfb 100644 --- a/example/lib/pages/controls_configuration_page.dart +++ b/example/lib/pages/controls_configuration_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class ControlsConfigurationPage extends StatefulWidget { diff --git a/example/lib/pages/custom_controls/change_player_theme_page.dart b/example/lib/pages/custom_controls/change_player_theme_page.dart index 3bb7b4358..5a3e7be6b 100644 --- a/example/lib/pages/custom_controls/change_player_theme_page.dart +++ b/example/lib/pages/custom_controls/change_player_theme_page.dart @@ -1,6 +1,6 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/pages/custom_controls/custom_controls_widget.dart'; +import 'package:example/constants.dart'; +import 'package:example/pages/custom_controls/custom_controls_widget.dart'; import 'package:flutter/material.dart'; class ChangePlayerThemePage extends StatefulWidget { diff --git a/example/lib/pages/dash_page.dart b/example/lib/pages/dash_page.dart index 1b1fbcf2c..ce967028e 100644 --- a/example/lib/pages/dash_page.dart +++ b/example/lib/pages/dash_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class DashPage extends StatefulWidget { diff --git a/example/lib/pages/drm_page.dart b/example/lib/pages/drm_page.dart index b8fbe1fec..0aa74d959 100644 --- a/example/lib/pages/drm_page.dart +++ b/example/lib/pages/drm_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class DrmPage extends StatefulWidget { diff --git a/example/lib/pages/event_listener_page.dart b/example/lib/pages/event_listener_page.dart index 3043531c4..f6b39626a 100644 --- a/example/lib/pages/event_listener_page.dart +++ b/example/lib/pages/event_listener_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class EventListenerPage extends StatefulWidget { diff --git a/example/lib/pages/fade_placeholder_page.dart b/example/lib/pages/fade_placeholder_page.dart index 43976c743..467a284a2 100644 --- a/example/lib/pages/fade_placeholder_page.dart +++ b/example/lib/pages/fade_placeholder_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class FadePlaceholderPage extends StatefulWidget { diff --git a/example/lib/pages/hls_audio_page.dart b/example/lib/pages/hls_audio_page.dart index 116223d04..a766e9030 100644 --- a/example/lib/pages/hls_audio_page.dart +++ b/example/lib/pages/hls_audio_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class HlsAudioPage extends StatefulWidget { diff --git a/example/lib/pages/hls_subtitles_page.dart b/example/lib/pages/hls_subtitles_page.dart index 464dc74a6..3c1a1c0e6 100644 --- a/example/lib/pages/hls_subtitles_page.dart +++ b/example/lib/pages/hls_subtitles_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class HlsSubtitlesPage extends StatefulWidget { diff --git a/example/lib/pages/hls_tracks_page.dart b/example/lib/pages/hls_tracks_page.dart index 757b58901..12e93be29 100644 --- a/example/lib/pages/hls_tracks_page.dart +++ b/example/lib/pages/hls_tracks_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class HlsTracksPage extends StatefulWidget { diff --git a/example/lib/pages/memory_player_page.dart b/example/lib/pages/memory_player_page.dart index 702f772de..8ce1adca6 100644 --- a/example/lib/pages/memory_player_page.dart +++ b/example/lib/pages/memory_player_page.dart @@ -1,8 +1,8 @@ import 'dart:io'; import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/utils.dart'; +import 'package:example/constants.dart'; +import 'package:example/utils.dart'; import 'package:flutter/material.dart'; class MemoryPlayerPage extends StatefulWidget { diff --git a/example/lib/pages/normal_player_page.dart b/example/lib/pages/normal_player_page.dart index 076107f0d..61549f3c7 100644 --- a/example/lib/pages/normal_player_page.dart +++ b/example/lib/pages/normal_player_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/example/lib/pages/notification_player_page.dart b/example/lib/pages/notification_player_page.dart index e5cd3365a..9d772c80f 100644 --- a/example/lib/pages/notification_player_page.dart +++ b/example/lib/pages/notification_player_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class NotificationPlayerPage extends StatefulWidget { diff --git a/example/lib/pages/overridden_aspect_ratio_page.dart b/example/lib/pages/overridden_aspect_ratio_page.dart index 52203a85b..2dba62e7b 100644 --- a/example/lib/pages/overridden_aspect_ratio_page.dart +++ b/example/lib/pages/overridden_aspect_ratio_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class OverriddenAspectRatioPage extends StatefulWidget { diff --git a/example/lib/pages/overriden_duration_page.dart b/example/lib/pages/overriden_duration_page.dart index f4af01a47..8a9b308a4 100644 --- a/example/lib/pages/overriden_duration_page.dart +++ b/example/lib/pages/overriden_duration_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class OverriddenDurationPage extends StatefulWidget { diff --git a/example/lib/pages/picture_in_picture_page.dart b/example/lib/pages/picture_in_picture_page.dart index 6ff4c3308..9c58dc09b 100644 --- a/example/lib/pages/picture_in_picture_page.dart +++ b/example/lib/pages/picture_in_picture_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class PictureInPicturePage extends StatefulWidget { diff --git a/example/lib/pages/placeholder_until_play_page.dart b/example/lib/pages/placeholder_until_play_page.dart index 4f857213c..533c567a4 100644 --- a/example/lib/pages/placeholder_until_play_page.dart +++ b/example/lib/pages/placeholder_until_play_page.dart @@ -1,7 +1,7 @@ import 'dart:async'; import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class PlaceholderUntilPlayPage extends StatefulWidget { diff --git a/example/lib/pages/playlist_page.dart b/example/lib/pages/playlist_page.dart index df79c2194..54487cc49 100644 --- a/example/lib/pages/playlist_page.dart +++ b/example/lib/pages/playlist_page.dart @@ -1,6 +1,6 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/utils.dart'; +import 'package:example/constants.dart'; +import 'package:example/utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; diff --git a/example/lib/pages/resolutions_page.dart b/example/lib/pages/resolutions_page.dart index f89dcf7a6..a5e6899c1 100644 --- a/example/lib/pages/resolutions_page.dart +++ b/example/lib/pages/resolutions_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class ResolutionsPage extends StatefulWidget { diff --git a/example/lib/pages/reusable_video_list/reusable_video_list_page.dart b/example/lib/pages/reusable_video_list/reusable_video_list_page.dart index 6e826bfe0..c6f44992c 100644 --- a/example/lib/pages/reusable_video_list/reusable_video_list_page.dart +++ b/example/lib/pages/reusable_video_list/reusable_video_list_page.dart @@ -1,9 +1,9 @@ import 'dart:math'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/model/video_list_data.dart'; -import 'package:better_player_example/pages/reusable_video_list/reusable_video_list_controller.dart'; -import 'package:better_player_example/pages/reusable_video_list/reusable_video_list_widget.dart'; +import 'package:example/constants.dart'; +import 'package:example/model/video_list_data.dart'; +import 'package:example/pages/reusable_video_list/reusable_video_list_controller.dart'; +import 'package:example/pages/reusable_video_list/reusable_video_list_widget.dart'; import 'package:flutter/material.dart'; class ReusableVideoListPage extends StatefulWidget { diff --git a/example/lib/pages/reusable_video_list/reusable_video_list_widget.dart b/example/lib/pages/reusable_video_list/reusable_video_list_widget.dart index 5eb7fcff9..dbc93d5c3 100644 --- a/example/lib/pages/reusable_video_list/reusable_video_list_widget.dart +++ b/example/lib/pages/reusable_video_list/reusable_video_list_widget.dart @@ -1,8 +1,8 @@ import 'dart:async'; import 'package:better_player/better_player.dart'; -import 'package:better_player_example/model/video_list_data.dart'; -import 'package:better_player_example/pages/reusable_video_list/reusable_video_list_controller.dart'; +import 'package:example/model/video_list_data.dart'; +import 'package:example/pages/reusable_video_list/reusable_video_list_controller.dart'; import 'package:flutter/material.dart'; import 'package:visibility_detector/visibility_detector.dart'; diff --git a/example/lib/pages/rotation_and_fit_page.dart b/example/lib/pages/rotation_and_fit_page.dart index c90d7bb59..d68b650ae 100644 --- a/example/lib/pages/rotation_and_fit_page.dart +++ b/example/lib/pages/rotation_and_fit_page.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; +import 'package:example/constants.dart'; import 'package:flutter/material.dart'; class RotationAndFitPage extends StatefulWidget { diff --git a/example/lib/pages/subtitles_page.dart b/example/lib/pages/subtitles_page.dart index 2459e8b55..9f68ae3d2 100644 --- a/example/lib/pages/subtitles_page.dart +++ b/example/lib/pages/subtitles_page.dart @@ -1,6 +1,6 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/utils.dart'; +import 'package:example/constants.dart'; +import 'package:example/utils.dart'; import 'package:flutter/material.dart'; class SubtitlesPage extends StatefulWidget { diff --git a/example/lib/pages/video_list/video_list_page.dart b/example/lib/pages/video_list/video_list_page.dart index 7a8ad829d..da4fa89fd 100644 --- a/example/lib/pages/video_list/video_list_page.dart +++ b/example/lib/pages/video_list/video_list_page.dart @@ -1,7 +1,7 @@ import 'dart:math'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/model/video_list_data.dart'; +import 'package:example/constants.dart'; +import 'package:example/model/video_list_data.dart'; import 'package:flutter/material.dart'; import 'video_list_widget.dart'; diff --git a/example/lib/pages/video_list/video_list_widget.dart b/example/lib/pages/video_list/video_list_widget.dart index 82b682712..014a3c5d0 100644 --- a/example/lib/pages/video_list/video_list_widget.dart +++ b/example/lib/pages/video_list/video_list_widget.dart @@ -1,5 +1,5 @@ import 'package:better_player/better_player.dart'; -import 'package:better_player_example/model/video_list_data.dart'; +import 'package:example/model/video_list_data.dart'; import 'package:flutter/material.dart'; class VideoListWidget extends StatefulWidget { diff --git a/example/lib/pages/welcome_page.dart b/example/lib/pages/welcome_page.dart index bad138ec2..d456b2c2e 100644 --- a/example/lib/pages/welcome_page.dart +++ b/example/lib/pages/welcome_page.dart @@ -1,34 +1,34 @@ import 'dart:io'; -import 'package:better_player_example/constants.dart'; -import 'package:better_player_example/pages/auto_fullscreen_orientation_page.dart'; -import 'package:better_player_example/pages/basic_player_page.dart'; -import 'package:better_player_example/pages/cache_page.dart'; -import 'package:better_player_example/pages/clearkey_page.dart'; -import 'package:better_player_example/pages/controller_controls_page.dart'; -import 'package:better_player_example/pages/controls_always_visible_page.dart'; -import 'package:better_player_example/pages/controls_configuration_page.dart'; -import 'package:better_player_example/pages/custom_controls/change_player_theme_page.dart'; -import 'package:better_player_example/pages/dash_page.dart'; -import 'package:better_player_example/pages/drm_page.dart'; -import 'package:better_player_example/pages/event_listener_page.dart'; -import 'package:better_player_example/pages/fade_placeholder_page.dart'; -import 'package:better_player_example/pages/hls_audio_page.dart'; -import 'package:better_player_example/pages/hls_subtitles_page.dart'; -import 'package:better_player_example/pages/hls_tracks_page.dart'; -import 'package:better_player_example/pages/memory_player_page.dart'; -import 'package:better_player_example/pages/normal_player_page.dart'; -import 'package:better_player_example/pages/notification_player_page.dart'; -import 'package:better_player_example/pages/overridden_aspect_ratio_page.dart'; -import 'package:better_player_example/pages/overriden_duration_page.dart'; -import 'package:better_player_example/pages/placeholder_until_play_page.dart'; -import 'package:better_player_example/pages/playlist_page.dart'; -import 'package:better_player_example/pages/resolutions_page.dart'; -import 'package:better_player_example/pages/reusable_video_list/reusable_video_list_page.dart'; -import 'package:better_player_example/pages/rotation_and_fit_page.dart'; -import 'package:better_player_example/pages/subtitles_page.dart'; -import 'package:better_player_example/pages/video_list/video_list_page.dart'; -import 'package:better_player_example/pages/picture_in_picture_page.dart'; +import 'package:example/constants.dart'; +import 'package:example/pages/auto_fullscreen_orientation_page.dart'; +import 'package:example/pages/basic_player_page.dart'; +import 'package:example/pages/cache_page.dart'; +import 'package:example/pages/clearkey_page.dart'; +import 'package:example/pages/controller_controls_page.dart'; +import 'package:example/pages/controls_always_visible_page.dart'; +import 'package:example/pages/controls_configuration_page.dart'; +import 'package:example/pages/custom_controls/change_player_theme_page.dart'; +import 'package:example/pages/dash_page.dart'; +import 'package:example/pages/drm_page.dart'; +import 'package:example/pages/event_listener_page.dart'; +import 'package:example/pages/fade_placeholder_page.dart'; +import 'package:example/pages/hls_audio_page.dart'; +import 'package:example/pages/hls_subtitles_page.dart'; +import 'package:example/pages/hls_tracks_page.dart'; +import 'package:example/pages/memory_player_page.dart'; +import 'package:example/pages/normal_player_page.dart'; +import 'package:example/pages/notification_player_page.dart'; +import 'package:example/pages/overridden_aspect_ratio_page.dart'; +import 'package:example/pages/overriden_duration_page.dart'; +import 'package:example/pages/placeholder_until_play_page.dart'; +import 'package:example/pages/playlist_page.dart'; +import 'package:example/pages/resolutions_page.dart'; +import 'package:example/pages/reusable_video_list/reusable_video_list_page.dart'; +import 'package:example/pages/rotation_and_fit_page.dart'; +import 'package:example/pages/subtitles_page.dart'; +import 'package:example/pages/video_list/video_list_page.dart'; +import 'package:example/pages/picture_in_picture_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:path_provider/path_provider.dart'; diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 6bd4dcdf8..7c92b5258 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -1,10 +1,9 @@ -name: better_player_example -description: Better Player example usage app. +name: example +description: "Example to showcase use cases of Better Player." +publish_to: 'none' version: 1.0.0+1 -publish_to: none - environment: - sdk: '>=2.12.0 <3.0.0' + sdk: '>=3.4.1 <4.0.0' dependencies: better_player: @@ -13,9 +12,9 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - path_provider: ^2.0.10 - visibility_detector: ^0.3.3 - collection: ^1.16.0 + path_provider: ^2.1.3 + visibility_detector: ^0.4.0+2 + collection: ^1.18.0 dev_dependencies: flutter_test: diff --git a/lib/src/configuration/better_player_controls_configuration.dart b/lib/src/configuration/better_player_controls_configuration.dart index d40bcf5e5..104d1b7ab 100644 --- a/lib/src/configuration/better_player_controls_configuration.dart +++ b/lib/src/configuration/better_player_controls_configuration.dart @@ -240,8 +240,8 @@ class BetterPlayerControlsConfiguration { ///Setup BetterPlayerControlsConfiguration based on Theme options. factory BetterPlayerControlsConfiguration.theme(ThemeData theme) { return BetterPlayerControlsConfiguration( - textColor: theme.textTheme.bodyText1?.color ?? Colors.white, - iconsColor: theme.textTheme.button?.color ?? Colors.white, + textColor: theme.textTheme.bodySmall?.color ?? Colors.white, + iconsColor: theme.buttonTheme.colorScheme?.primary ?? Colors.white, ); } } diff --git a/lib/src/core/better_player.dart b/lib/src/core/better_player.dart index 5396a9568..7160e9314 100644 --- a/lib/src/core/better_player.dart +++ b/lib/src/core/better_player.dart @@ -6,7 +6,7 @@ import 'package:better_player/src/core/better_player_with_controls.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:visibility_detector/visibility_detector.dart'; -import 'package:wakelock/wakelock.dart'; +import 'package:wakelock_plus/wakelock_plus.dart'; ///Widget which uses provided controller to render video player. class BetterPlayer extends StatefulWidget { @@ -102,7 +102,7 @@ class _BetterPlayerState extends State ///full screen is on, then full screen route must be pop and return to normal ///state. if (_isFullScreen) { - Wakelock.disable(); + WakelockPlus.disable(); _navigatorState.maybePop(); SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: _betterPlayerConfiguration.systemOverlaysAfterFullScreen); @@ -244,7 +244,7 @@ class _BetterPlayerState extends State } if (!_betterPlayerConfiguration.allowedScreenSleep) { - Wakelock.enable(); + WakelockPlus.enable(); } await Navigator.of(context, rootNavigator: true).push(route); @@ -253,7 +253,7 @@ class _BetterPlayerState extends State // The wakelock plugins checks whether it needs to perform an action internally, // so we do not need to check Wakelock.isEnabled. - Wakelock.disable(); + WakelockPlus.disable(); await SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: _betterPlayerConfiguration.systemOverlaysAfterFullScreen); diff --git a/pubspec.lock b/pubspec.lock index 7d19ee3d7..11837d5a6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,81 +1,100 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" async: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.8.2" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" characters: dependency: transitive description: name: characters - url: "https://pub.dartlang.org" - source: hosted - version: "1.2.0" - charcode: - dependency: transitive - description: - name: charcode - url: "https://pub.dartlang.org" + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" collection: dependency: "direct main" description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.18.0" csslib: dependency: transitive description: name: csslib - url: "https://pub.dartlang.org" + sha256: f857285c8dc0b4f2f77b49a1c083ff8c75223a7549de20f3e607df58cf497a43 + url: "https://pub.dev" source: hosted version: "0.17.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dbus: + dependency: transitive + description: + name: dbus + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" + url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "0.7.10" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.3.1" ffi: dependency: transitive description: name: ffi - url: "https://pub.dartlang.org" + sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "2.1.2" file: dependency: transitive description: name: file - url: "https://pub.dartlang.org" + sha256: "9fd2163d866769f60f4df8ac1dc59f52498d810c356fe78022e383dd3c57c0e1" + url: "https://pub.dev" source: hosted version: "6.1.0" flutter: @@ -102,147 +121,208 @@ packages: dependency: "direct main" description: name: flutter_widget_from_html_core - url: "https://pub.dartlang.org" - source: hosted - version: "0.8.5+3" - fwfh_text_style: - dependency: transitive - description: - name: fwfh_text_style - url: "https://pub.dartlang.org" + sha256: df7c7c9e5ea144f7ab0adfbad733b4d4f7d408ab733c94e6e9fdcb327af92aa1 + url: "https://pub.dev" source: hosted - version: "2.7.2" + version: "0.15.1" html: dependency: transitive description: name: html - url: "https://pub.dartlang.org" + sha256: bfef906cbd4e78ef49ae511d9074aebd1d2251482ef601a280973e8b58b51bbf + url: "https://pub.dev" source: hosted version: "0.15.0" + http: + dependency: transitive + description: + name: http + sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" intl: dependency: transitive description: name: intl - url: "https://pub.dartlang.org" + sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf + url: "https://pub.dev" source: hosted - version: "0.17.0" - js: + version: "0.19.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + url: "https://pub.dev" + source: hosted + version: "10.0.4" + leak_tracker_flutter_testing: dependency: transitive description: - name: js - url: "https://pub.dartlang.org" + name: leak_tracker_flutter_testing + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + url: "https://pub.dev" source: hosted - version: "0.6.4" + version: "3.0.3" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" lint: dependency: "direct dev" description: name: lint - url: "https://pub.dartlang.org" + sha256: d758a5211fce7fd3f5e316f804daefecdc34c7e53559716125e6da7388ae8565 + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "2.3.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" source: hosted - version: "0.12.11" + version: "0.12.16+1" material_color_utilities: dependency: transitive description: name: material_color_utilities - url: "https://pub.dartlang.org" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" source: hosted - version: "0.1.4" + version: "0.8.0" meta: dependency: "direct main" description: name: meta - url: "https://pub.dartlang.org" + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + package_info_plus: + dependency: transitive + description: + name: package_info_plus + sha256: b93d8b4d624b4ea19b0a5a208b2d6eff06004bc3ce74c06040b120eeadd00ce0 + url: "https://pub.dev" + source: hosted + version: "8.0.0" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "3.0.0" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.8.1" + version: "1.9.0" path_provider: dependency: "direct main" description: name: path_provider - url: "https://pub.dartlang.org" + sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.1.3" path_provider_android: dependency: transitive description: name: path_provider_android - url: "https://pub.dartlang.org" + sha256: "9c96da072b421e98183f9ea7464898428e764bc0ce5567f27ec8693442e72514" + url: "https://pub.dev" source: hosted - version: "2.0.11" - path_provider_ios: + version: "2.2.5" + path_provider_foundation: dependency: transitive description: - name: path_provider_ios - url: "https://pub.dartlang.org" + name: path_provider_foundation + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.4.0" path_provider_linux: dependency: transitive description: name: path_provider_linux - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.2" - path_provider_macos: - dependency: transitive - description: - name: path_provider_macos - url: "https://pub.dartlang.org" + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.2.1" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - url: "https://pub.dartlang.org" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: name: path_provider_windows - url: "https://pub.dartlang.org" + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.2.1" petitparser: dependency: transitive description: name: petitparser - url: "https://pub.dartlang.org" + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 + url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.0.2" platform: dependency: transitive description: name: platform - url: "https://pub.dartlang.org" + sha256: ebc79f16b5f6b609aad4a5e63447d4795d16f7adee46e93ed03200848c006735 + url: "https://pub.dev" source: hosted version: "3.0.0" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - url: "https://pub.dartlang.org" + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.8" process: dependency: transitive description: name: process - url: "https://pub.dartlang.org" + sha256: c7b9f7d8a6ee4407ab4f8a7d4a951f8f5659c40df14c0924e2e97c32372e9b14 + url: "https://pub.dev" source: hosted version: "4.1.0" sky_engine: @@ -254,114 +334,130 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + url: "https://pub.dev" source: hosted - version: "0.4.9" + version: "0.7.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" vector_math: dependency: transitive description: name: vector_math - url: "https://pub.dartlang.org" + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.4" visibility_detector: dependency: "direct main" description: name: visibility_detector - url: "https://pub.dartlang.org" + sha256: dd5cc11e13494f432d15939c3aa8ae76844c42b723398643ce9addb88a5ed420 + url: "https://pub.dev" source: hosted - version: "0.3.3" - wakelock: - dependency: "direct main" - description: - name: wakelock - url: "https://pub.dartlang.org" - source: hosted - version: "0.6.1+2" - wakelock_macos: + version: "0.4.0+2" + vm_service: dependency: transitive description: - name: wakelock_macos - url: "https://pub.dartlang.org" + name: vm_service + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + url: "https://pub.dev" source: hosted - version: "0.4.0" - wakelock_platform_interface: - dependency: transitive + version: "14.2.1" + wakelock_plus: + dependency: "direct main" description: - name: wakelock_platform_interface - url: "https://pub.dartlang.org" + name: wakelock_plus + sha256: "14758533319a462ffb5aa3b7ddb198e59b29ac3b02da14173a1715d65d4e6e68" + url: "https://pub.dev" source: hosted - version: "0.3.0" - wakelock_web: + version: "1.2.5" + wakelock_plus_platform_interface: dependency: transitive description: - name: wakelock_web - url: "https://pub.dartlang.org" + name: wakelock_plus_platform_interface + sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + url: "https://pub.dev" source: hosted - version: "0.4.0" - wakelock_windows: + version: "1.2.1" + web: dependency: transitive description: - name: wakelock_windows - url: "https://pub.dartlang.org" + name: web + sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.1" win32: dependency: transitive description: name: win32 - url: "https://pub.dartlang.org" + sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 + url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "5.5.1" xdg_directories: dependency: transitive description: name: xdg_directories - url: "https://pub.dartlang.org" + sha256: "0186b3f2d66be9a12b0295bddcf8b6f8c0b0cc2f85c6287344e2a6366bc28457" + url: "https://pub.dev" source: hosted version: "0.2.0" xml: dependency: "direct main" description: name: xml - url: "https://pub.dartlang.org" + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" source: hosted - version: "6.1.0" + version: "6.5.0" sdks: - dart: ">=2.17.0 <3.0.0" - flutter: ">=2.12.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index ebfe24469..31b237d02 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,30 +1,27 @@ name: better_player -description: Advanced video player based on video_player and Chewie. It's solves many typical use cases and it's easy to run. -version: 0.0.83 -# Disabled because of warning from analyzer -# authors: -# - Jakub Homlala +description: Advanced video player. It solves many typical use cases and it's easy to run. +version: 0.0.84 homepage: https://github.com/jhomlala/betterplayer documentation: https://jhomlala.github.io/betterplayer/ environment: - sdk: '>=2.12.0 <3.0.0' - flutter: ">=2.2.3" + sdk: ">=3.0.0 <4.0.0" + flutter: ">=3.3.0" dependencies: flutter: sdk: flutter - cupertino_icons: ^1.0.5 - wakelock: ^0.6.1+2 - meta: ^1.7.0 - flutter_widget_from_html_core: ^0.8.5+3 - visibility_detector: ^0.3.3 - path_provider: ^2.0.10 - collection: ^1.16.0 - xml: ^6.1.0 + cupertino_icons: ^1.0.8 + wakelock_plus: ^1.2.5 + meta: ^1.12.0 + flutter_widget_from_html_core: ^0.15.1 + visibility_detector: ^0.4.0+2 + path_provider: ^2.1.3 + collection: ^1.18.0 + xml: ^6.5.0 dev_dependencies: - lint: ^1.8.2 + lint: ^2.3.0 flutter_test: sdk: flutter flutter_localizations: