capacitor-plugin-playlist 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/android/.gradle/8.0.2/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.0.2/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.0.2/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  5. package/android/.gradle/8.0.2/executionHistory/executionHistory.bin +0 -0
  6. package/android/.gradle/8.0.2/executionHistory/executionHistory.lock +0 -0
  7. package/android/.gradle/8.0.2/fileHashes/fileHashes.bin +0 -0
  8. package/android/.gradle/8.0.2/fileHashes/fileHashes.lock +0 -0
  9. package/android/.gradle/8.0.2/fileHashes/resourceHashesCache.bin +0 -0
  10. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  11. package/android/.gradle/buildOutputCleanup/cache.properties +1 -1
  12. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  13. package/android/.gradle/config.properties +2 -0
  14. package/android/.gradle/file-system.probe +0 -0
  15. package/android/.idea/compiler.xml +6 -0
  16. package/android/.idea/gradle.xml +8 -3
  17. package/android/.idea/kotlinc.xml +6 -0
  18. package/android/.idea/migrations.xml +10 -0
  19. package/android/.idea/misc.xml +2 -2
  20. package/android/.project +34 -0
  21. package/android/bin/.gradle/8.0.2/checksums/checksums.lock +0 -0
  22. package/android/bin/.gradle/8.0.2/checksums/md5-checksums.bin +0 -0
  23. package/android/bin/.gradle/8.0.2/checksums/sha1-checksums.bin +0 -0
  24. package/android/bin/.gradle/8.0.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  25. package/android/bin/.gradle/8.0.2/executionHistory/executionHistory.bin +0 -0
  26. package/android/bin/.gradle/8.0.2/executionHistory/executionHistory.lock +0 -0
  27. package/android/bin/.gradle/8.0.2/fileChanges/last-build.bin +0 -0
  28. package/android/bin/.gradle/8.0.2/fileHashes/fileHashes.bin +0 -0
  29. package/android/bin/.gradle/8.0.2/fileHashes/fileHashes.lock +0 -0
  30. package/android/bin/.gradle/8.0.2/fileHashes/resourceHashesCache.bin +0 -0
  31. package/android/bin/.gradle/8.0.2/gc.properties +0 -0
  32. package/android/bin/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  33. package/android/bin/.gradle/buildOutputCleanup/cache.properties +2 -0
  34. package/android/bin/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  35. package/android/bin/.gradle/config.properties +2 -0
  36. package/android/bin/.gradle/file-system.probe +0 -0
  37. package/android/bin/.gradle/vcs-1/gc.properties +0 -0
  38. package/android/bin/.idea/compiler.xml +6 -0
  39. package/android/bin/.idea/gradle.xml +19 -0
  40. package/android/bin/.idea/kotlinc.xml +6 -0
  41. package/android/bin/.idea/migrations.xml +10 -0
  42. package/android/bin/.idea/misc.xml +9 -0
  43. package/android/bin/.idea/vcs.xml +6 -0
  44. package/android/bin/.project +34 -0
  45. package/android/bin/.settings/org.eclipse.buildship.core.prefs +13 -0
  46. package/android/bin/build.gradle +79 -0
  47. package/android/bin/gradle/wrapper/gradle-wrapper.jar +0 -0
  48. package/android/bin/gradle/wrapper/gradle-wrapper.properties +6 -0
  49. package/android/bin/gradle.properties +22 -0
  50. package/android/bin/gradlew +244 -0
  51. package/android/bin/gradlew.bat +92 -0
  52. package/android/bin/local.properties +8 -0
  53. package/android/bin/proguard-rules.pro +21 -0
  54. package/android/bin/settings.gradle +2 -0
  55. package/android/bin/src/androidTest/java/com/getcapacitor/android/ExampleInstrumentedTest.class +0 -0
  56. package/android/bin/src/main/AndroidManifest.xml +4 -0
  57. package/android/bin/src/main/java/org/dwbn/plugins/playlist/App.kt +62 -0
  58. package/android/bin/src/main/java/org/dwbn/plugins/playlist/FakeR.kt +39 -0
  59. package/android/bin/src/main/java/org/dwbn/plugins/playlist/OnStatusCallback.kt +34 -0
  60. package/android/bin/src/main/java/org/dwbn/plugins/playlist/OnStatusReportListener.class +0 -0
  61. package/android/bin/src/main/java/org/dwbn/plugins/playlist/PlaylistItemOptions.class +0 -0
  62. package/android/bin/src/main/java/org/dwbn/plugins/playlist/PlaylistPlugin.kt +356 -0
  63. package/android/bin/src/main/java/org/dwbn/plugins/playlist/RmxAudioErrorType.class +0 -0
  64. package/android/bin/src/main/java/org/dwbn/plugins/playlist/RmxAudioPlayer.class +0 -0
  65. package/android/bin/src/main/java/org/dwbn/plugins/playlist/RmxAudioStatusMessage.class +0 -0
  66. package/android/bin/src/main/java/org/dwbn/plugins/playlist/RmxConstants.class +0 -0
  67. package/android/bin/src/main/java/org/dwbn/plugins/playlist/TrackRemovalItem.class +0 -0
  68. package/android/bin/src/main/java/org/dwbn/plugins/playlist/data/AudioTrack.kt +94 -0
  69. package/android/bin/src/main/java/org/dwbn/plugins/playlist/manager/MediaControlsListener.kt +13 -0
  70. package/android/bin/src/main/java/org/dwbn/plugins/playlist/manager/Options.kt +77 -0
  71. package/android/bin/src/main/java/org/dwbn/plugins/playlist/manager/PlaylistManager.kt +286 -0
  72. package/android/bin/src/main/java/org/dwbn/plugins/playlist/notification/PlaylistNotificationProvider.kt +26 -0
  73. package/android/bin/src/main/java/org/dwbn/plugins/playlist/playlist/AudioApi.kt +101 -0
  74. package/android/bin/src/main/java/org/dwbn/plugins/playlist/playlist/AudioPlaylistHandler$Builder.class +0 -0
  75. package/android/bin/src/main/java/org/dwbn/plugins/playlist/playlist/AudioPlaylistHandler.class +0 -0
  76. package/android/bin/src/main/java/org/dwbn/plugins/playlist/playlist/BaseMediaApi.kt +40 -0
  77. package/android/bin/src/main/java/org/dwbn/plugins/playlist/service/MediaImageProvider.kt +79 -0
  78. package/android/bin/src/main/java/org/dwbn/plugins/playlist/service/MediaService.kt +53 -0
  79. package/android/bin/src/main/res/.gitkeep +0 -0
  80. package/android/bin/src/main/res/drawable/ic_closed_caption_white_24dp.xml +9 -0
  81. package/android/bin/src/main/res/drawable/ic_demo_icon_adaptive.xml +15 -0
  82. package/android/bin/src/main/res/drawable/ic_launcher_background.xml +48 -0
  83. package/android/bin/src/main/res/drawable/ic_launcher_foreground.xml +22 -0
  84. package/android/bin/src/main/res/drawable/ic_notification_icon.png +0 -0
  85. package/android/bin/src/main/res/layout/bridge_layout_main.xml +15 -0
  86. package/android/bin/src/main/res/values/colors.xml +3 -0
  87. package/android/bin/src/main/res/values/strings.xml +3 -0
  88. package/android/bin/src/main/res/values/styles.xml +3 -0
  89. package/android/bin/src/test/java/com/getcapacitor/ExampleUnitTest.class +0 -0
  90. package/android/build.gradle +0 -4
  91. package/android/local.properties +1 -1
  92. package/android/src/main/java/org/dwbn/plugins/playlist/manager/PlaylistManager.kt +2 -1
  93. package/dist/docs.json +1357 -3
  94. package/dist/esm/web.js +1 -6
  95. package/dist/esm/web.js.map +1 -1
  96. package/dist/plugin.cjs.js +1 -6
  97. package/dist/plugin.cjs.js.map +1 -1
  98. package/dist/plugin.js +1 -6
  99. package/dist/plugin.js.map +1 -1
  100. package/package.json +1 -1
  101. package/android/.gradle/checksums/checksums.lock +0 -0
  102. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  103. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  104. package/android/.idea/modules/android.iml +0 -18
  105. package/android/.idea/modules.xml +0 -8
  106. /package/android/{.gradle/configuration-cache → bin/.gradle/8.0.2/dependencies-accessors}/gc.properties +0 -0
@@ -0,0 +1,79 @@
1
+ package org.dwbn.plugins.playlist.service
2
+
3
+ import android.content.Context
4
+ import android.graphics.Bitmap
5
+ import android.graphics.BitmapFactory
6
+ import com.bumptech.glide.Glide
7
+ import com.bumptech.glide.RequestManager
8
+ import com.bumptech.glide.request.target.SimpleTarget
9
+ import com.bumptech.glide.request.transition.Transition
10
+ import com.devbrackets.android.playlistcore.components.image.ImageProvider
11
+ import org.dwbn.plugins.playlist.FakeR
12
+ import org.dwbn.plugins.playlist.data.AudioTrack
13
+ import org.dwbn.plugins.playlist.manager.Options
14
+
15
+
16
+ class MediaImageProvider(
17
+ context: Context,
18
+ val onImageUpdatedListener: OnImageUpdatedListener,
19
+ options: Options
20
+ ) : ImageProvider<AudioTrack> {
21
+
22
+ interface OnImageUpdatedListener {
23
+ fun onImageUpdated()
24
+ }
25
+
26
+ private var options: Options? = null
27
+ private val glide: RequestManager = Glide.with(context.applicationContext)
28
+ private val fakeR: FakeR = FakeR(context.applicationContext)
29
+ private val remoteViewImageTarget = RemoteViewImageTarget()
30
+ private var defaultArtworkImage: Bitmap? = null
31
+ private var artworkImage: Bitmap? = null
32
+ private var notificationIconId = 0
33
+ override val notificationIconRes: Int
34
+ get() = mipmapIcon
35
+
36
+ override val remoteViewIconRes: Int
37
+ get() = mipmapIcon
38
+
39
+ override val largeNotificationImage: Bitmap?
40
+ get() = remoteViewArtwork
41
+
42
+ override var remoteViewArtwork: Bitmap? = null
43
+ get() = if (artworkImage != null) artworkImage else defaultArtworkImage
44
+ private set
45
+
46
+ override fun updateImages(playlistItem: AudioTrack) {
47
+ glide.asBitmap().load(playlistItem.artworkUrl).into(remoteViewImageTarget)
48
+ }
49
+
50
+ // return R.mipmap.icon; // this comes from cordova itself.
51
+ private val mipmapIcon: Int
52
+ get() {
53
+ // return R.mipmap.icon; // this comes from cordova itself.
54
+ if (notificationIconId <= 0) {
55
+ notificationIconId = fakeR.getId("drawable", options?.icon)
56
+ }
57
+ return notificationIconId
58
+ }
59
+
60
+ /**
61
+ * A class used to listen to the loading of the large lock screen images and perform
62
+ * the correct functionality to update the artwork once it is loaded.
63
+ *
64
+ * **NOTE:** This is a Glide Image loader class
65
+ */
66
+ private inner class RemoteViewImageTarget : SimpleTarget<Bitmap>() {
67
+ override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
68
+ artworkImage = resource
69
+ }
70
+ }
71
+
72
+ init {
73
+ this.options = options
74
+ defaultArtworkImage = BitmapFactory.decodeResource(
75
+ context.resources,
76
+ fakeR.getId("drawable", options.icon)
77
+ )
78
+ }
79
+ }
@@ -0,0 +1,53 @@
1
+ package org.dwbn.plugins.playlist.service
2
+
3
+ import com.devbrackets.android.playlistcore.components.playlisthandler.PlaylistHandler
4
+ import com.devbrackets.android.playlistcore.service.BasePlaylistService
5
+ import org.dwbn.plugins.playlist.App
6
+ import org.dwbn.plugins.playlist.data.AudioTrack
7
+ import org.dwbn.plugins.playlist.manager.PlaylistManager
8
+ import org.dwbn.plugins.playlist.playlist.AudioApi
9
+ import org.dwbn.plugins.playlist.playlist.AudioPlaylistHandler
10
+ import org.dwbn.plugins.playlist.service.MediaImageProvider.OnImageUpdatedListener
11
+
12
+ /**
13
+ * A simple service that extends [BasePlaylistService] in order to provide
14
+ * the application specific information required.
15
+ */
16
+ class MediaService : BasePlaylistService<AudioTrack, PlaylistManager>() {
17
+ override fun onCreate() {
18
+ super.onCreate()
19
+ // Adds the audio player implementation, otherwise there's nothing to play media with
20
+ val newAudio = AudioApi(applicationContext)
21
+ newAudio.addErrorListener(playlistManager)
22
+ playlistManager.mediaPlayers.add(newAudio)
23
+ }
24
+
25
+ override fun onDestroy() {
26
+ super.onDestroy()
27
+
28
+ // Releases and clears all the MediaPlayersMediaImageProvider
29
+ for (player in playlistManager.mediaPlayers) {
30
+ player.release()
31
+ }
32
+ playlistManager.mediaPlayers.clear()
33
+ }
34
+
35
+ override val playlistManager: PlaylistManager
36
+ get() = (applicationContext as App).playlistManager
37
+
38
+ override fun newPlaylistHandler(): PlaylistHandler<AudioTrack> {
39
+ val imageProvider = MediaImageProvider(applicationContext, object : OnImageUpdatedListener {
40
+ override fun onImageUpdated() {
41
+ playlistHandler.updateMediaControls()
42
+ }
43
+ }, playlistManager.options)
44
+
45
+ return AudioPlaylistHandler.Builder(
46
+ applicationContext,
47
+ javaClass,
48
+ playlistManager,
49
+ imageProvider,
50
+ null
51
+ ).build()
52
+ }
53
+ }
File without changes
@@ -0,0 +1,9 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="24dp"
3
+ android:height="24dp"
4
+ android:viewportWidth="24.0"
5
+ android:viewportHeight="24.0">
6
+ <path
7
+ android:fillColor="#FFFFFFFF"
8
+ android:pathData="M19,4L5,4c-1.11,0 -2,0.9 -2,2v12c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2L21,6c0,-1.1 -0.9,-2 -2,-2zM11,11L9.5,11v-0.5h-2v3h2L9.5,13L11,13v1c0,0.55 -0.45,1 -1,1L7,15c-0.55,0 -1,-0.45 -1,-1v-4c0,-0.55 0.45,-1 1,-1h3c0.55,0 1,0.45 1,1v1zM18,11h-1.5v-0.5h-2v3h2L16.5,13L18,13v1c0,0.55 -0.45,1 -1,1h-3c-0.55,0 -1,-0.45 -1,-1v-4c0,-0.55 0.45,-1 1,-1h3c0.55,0 1,0.45 1,1v1z"/>
9
+ </vector>
@@ -0,0 +1,15 @@
1
+ <vector android:height="24dp" android:viewportHeight="50.8"
2
+ android:viewportWidth="50.8" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <path android:fillAlpha="1" android:fillColor="#4db6ac"
4
+ android:pathData="m13.76,23.11l0,16.89l3.57,-2.06l0,-14.83z"
5
+ android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.47587052"/>
6
+ <path android:fillAlpha="1" android:fillColor="#aed581"
7
+ android:pathData="m13.76,10.8l0,11.78l15.35,0l0,-3.05L13.98,10.8Z"
8
+ android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.52379054"/>
9
+ <path android:fillAlpha="1" android:fillColor="#f29312"
10
+ android:pathData="m17.85,23.11l0,14.53l12.93,-7.46l-1.66,0l0,-7.07z"
11
+ android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.40285373"/>
12
+ <path android:fillAlpha="1" android:fillColor="#ffee58"
13
+ android:pathData="m29.64,19.84l0,9.81l2.05,0L39.16,25.34Z"
14
+ android:strokeAlpha="1" android:strokeColor="#00000000" android:strokeWidth="0.35085261"/>
15
+ </vector>
@@ -0,0 +1,48 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="108dp"
3
+ android:height="108dp"
4
+ android:viewportWidth="50.8"
5
+ android:viewportHeight="50.8">
6
+ <path
7
+ android:pathData="M-10.85,-0h72.57v50.8h-72.57z"
8
+ android:fillAlpha="1"
9
+ android:strokeColor="#00000000"
10
+ android:fillColor="#00796b"
11
+ android:strokeWidth="10.03837585"
12
+ android:strokeAlpha="1"/>
13
+ <path
14
+ android:pathData="M0,22.49l19.05,0l0,20.64l-19.05,0z"
15
+ android:fillAlpha="1"
16
+ android:strokeColor="#00000000"
17
+ android:fillColor="#64ffda"
18
+ android:strokeWidth="0.41645226"
19
+ android:strokeAlpha="1"/>
20
+ <path
21
+ android:pathData="M0,7.57l33.34,0l0,14.29l-33.34,0z"
22
+ android:fillAlpha="1"
23
+ android:strokeColor="#00000000"
24
+ android:fillColor="#aed581"
25
+ android:strokeWidth="0.45838892"
26
+ android:strokeAlpha="1"/>
27
+ <path
28
+ android:pathData="M33.97,7.57l16.83,0l0,9.53l-16.83,0z"
29
+ android:fillAlpha="1"
30
+ android:strokeColor="#00000000"
31
+ android:fillColor="#4db6ac"
32
+ android:strokeWidth="0.26590821"
33
+ android:strokeAlpha="1"/>
34
+ <path
35
+ android:pathData="m19.68,22.49l0,20.64l13.65,0 17.46,0L50.8,31.06L33.34,31.06L33.34,22.49Z"
36
+ android:fillAlpha="1"
37
+ android:strokeColor="#00000000"
38
+ android:fillColor="#f29312"
39
+ android:strokeWidth="0.77728117"
40
+ android:strokeAlpha="1"/>
41
+ <path
42
+ android:pathData="M33.97,17.73l16.83,0l0,12.7l-16.83,0z"
43
+ android:fillAlpha="1"
44
+ android:strokeColor="#00000000"
45
+ android:fillColor="#ffee58"
46
+ android:strokeWidth="0.30704439"
47
+ android:strokeAlpha="1"/>
48
+ </vector>
@@ -0,0 +1,22 @@
1
+ <vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ android:width="108dp"
3
+ android:height="108dp"
4
+ android:viewportHeight="28.575"
5
+ android:viewportWidth="28.575">
6
+ <path
7
+ android:fillAlpha="1"
8
+ android:fillColor="#4db6ac"
9
+ android:pathData="m9.6242,13.3524l0,6.8882l1.5616,-0.8401l0,-6.0481z"/>
10
+ <path
11
+ android:fillAlpha="1"
12
+ android:fillColor="#aed581"
13
+ android:pathData="m9.6242,8.3344l0,4.8044l6.717,0l0,-1.242L9.7201,8.3344Z"/>
14
+ <path
15
+ android:fillAlpha="1"
16
+ android:fillColor="#f29312"
17
+ android:pathData="m11.4146,13.3524l0,5.925l5.6549,-3.0425l-0.7283,0l0,-2.8824z"/>
18
+ <path
19
+ android:fillAlpha="1"
20
+ android:fillColor="#ffee58"
21
+ android:pathData="m16.5704,12.0203l0,4.0013l0.8954,0L20.7367,14.2617Z"/>
22
+ </vector>
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ tools:context="com.getcapacitor.BridgeActivity"
8
+ >
9
+
10
+ <WebView
11
+ android:id="@+id/webview"
12
+ android:layout_width="fill_parent"
13
+ android:layout_height="fill_parent" />
14
+
15
+ </androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <resources>
3
+ </resources>
@@ -0,0 +1,3 @@
1
+ <resources>
2
+ <string name="my_string">Just a simple string</string>
3
+ </resources>
@@ -0,0 +1,3 @@
1
+ <resources>
2
+
3
+ </resources>
@@ -3,14 +3,12 @@ ext {
3
3
  androidxJunitVersion = project.hasProperty('androidxJunitVersion') ? rootProject.ext.androidxJunitVersion : '1.1.5'
4
4
  androidxEspressoCoreVersion = project.hasProperty('androidxEspressoCoreVersion') ? rootProject.ext.androidxEspressoCoreVersion : '3.5.1'
5
5
  exoPlayerVersion = project.hasProperty('exoPlayerVersion') ? rootProject.ext.exoPlayerVersion : "2.9.6"
6
- supportLibVersion = project.hasProperty('supportLibVersion') ? rootProject.ext.supportLibVersion : "28.0.0"
7
6
  }
8
7
 
9
8
  buildscript {
10
9
  ext.kotlin_version = project.hasProperty("kotlin_version") ? rootProject.ext.kotlin_version : '1.8.20'
11
10
  repositories {
12
11
  google()
13
- jcenter()
14
12
  mavenCentral()
15
13
  }
16
14
  dependencies {
@@ -68,8 +66,6 @@ dependencies {
68
66
 
69
67
  // Image Exomedia
70
68
  implementation 'com.devbrackets.android:exomedia:4.3.0'
71
- implementation "com.android.support:appcompat-v7:$supportLibVersion"
72
- implementation "com.android.support:support-media-compat:$supportLibVersion"
73
69
  implementation "com.google.android.exoplayer:extension-okhttp:$exoPlayerVersion"
74
70
 
75
71
  // Image Loading
@@ -4,5 +4,5 @@
4
4
  # Location of the SDK. This is only used by Gradle.
5
5
  # For customization when using a Version Control System, please read the
6
6
  # header note.
7
- #Sun Oct 08 20:00:17 CEST 2023
7
+ #Sat Jul 13 01:10:53 CEST 2024
8
8
  sdk.dir=/Users/philippmohrenweiser/Library/Android/sdk
@@ -265,6 +265,7 @@ class PlaylistManager(application: Application) :
265
265
  }
266
266
 
267
267
  fun beginPlayback(@IntRange(from = 0) seekPosition: Long, startPaused: Boolean) {
268
+ currentItem ?: return
268
269
  super.play(seekPosition, startPaused)
269
270
  try {
270
271
  setVolume(volumeLeft, volumeRight)
@@ -279,7 +280,7 @@ class PlaylistManager(application: Application) :
279
280
  }
280
281
 
281
282
  init {
282
- setParameters(audioTracks, -1)
283
+ setParameters(audioTracks, 0)
283
284
  options = Options(application.baseContext)
284
285
  }
285
286
  }