Rename top level directories

This commit is contained in:
Elias Projahn 2020-04-24 21:55:17 +02:00
parent 256bda1b72
commit 674ce19414
90 changed files with 0 additions and 0 deletions

8
player/android/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
gradle-wrapper.jar
/.gradle
/gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

View file

@ -0,0 +1,43 @@
group 'de.johrpan.musicus_player'
version '1.0-SNAPSHOT'
buildscript {
ext.kotlin_version = '1.3.50'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
rootProject.allprojects {
repositories {
google()
jcenter()
}
}
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
android {
compileSdkVersion 28
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
minSdkVersion 16
}
lintOptions {
disable 'InvalidPackage'
}
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

View file

@ -0,0 +1,4 @@
org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

View file

@ -0,0 +1 @@
rootProject.name = 'musicus_player'

View file

@ -0,0 +1,3 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.johrpan.musicus_player">
</manifest>

View file

@ -0,0 +1,78 @@
package de.johrpan.musicus_player
import android.content.Context
import android.media.MediaPlayer
import android.net.Uri
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.plugins.FlutterPlugin
import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result
import io.flutter.plugin.common.PluginRegistry.Registrar
public class MusicusPlayerPlugin: FlutterPlugin, MethodCallHandler {
private lateinit var channel: MethodChannel
private lateinit var context: Context
private var playing = false
private var uri: Uri? = null
private var mediaPlayer: MediaPlayer? = null
override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
channel = MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "de.johrpan.musicus_player/platform")
channel.setMethodCallHandler(this)
context = flutterPluginBinding.getApplicationContext()
}
override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
if (call.method == "setUri") {
val newUri = Uri.parse(call.argument<String>("uri"))
uri = newUri
if (mediaPlayer != null) {
mediaPlayer?.release()
}
mediaPlayer = MediaPlayer.create(context, uri)
mediaPlayer?.setOnCompletionListener {
channel.invokeMethod("onComplete", null)
}
if (playing) {
mediaPlayer?.start()
}
result.success(mediaPlayer?.getDuration())
} else if (call.method == "play") {
playing = true
mediaPlayer?.start()
result.success(null)
} else if (call.method == "getPosition") {
// TODO: Check, if mediaPlayer is in a valid state.
result.success(mediaPlayer?.getCurrentPosition())
} else if (call.method == "seekTo") {
// TODO: Check, if mediaPlayer is in a valid state.
mediaPlayer?.seekTo(call.argument("positionMs")!!)
result.success(null)
} else if (call.method == "pause") {
playing = false
mediaPlayer?.pause()
result.success(null)
} else if (call.method == "stop") {
playing = false
uri = null
mediaPlayer?.release()
mediaPlayer = null
result.success(null)
} else {
result.notImplemented()
}
}
override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
channel.setMethodCallHandler(null)
}
}