diff --git a/Server.js b/Server.js index 6068a51c..3e689f88 100644 --- a/Server.js +++ b/Server.js @@ -33,6 +33,7 @@ class Server extends EventEmitter { setUser(user) { this.user = user this.store.commit('user/setUser', user) + this.store.commit('user/setSettings', user.settings) if (user) { localStorage.setItem('userToken', user.token) } else { @@ -149,6 +150,11 @@ class Server extends EventEmitter { this.emit('initialStream', data.stream) } }) + this.socket.on('user_updated', (user) => { + if (this.user && user.id === this.user.id) { + this.setUser(user) + } + }) } } diff --git a/android/app/build.gradle b/android/app/build.gradle index b726d401..1d53a4a3 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.audiobookshelf.app" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 3 - versionName "0.1.0-beta" + versionCode 4 + versionName "0.2.0-beta" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index 109f3a00..1ddfae6e 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -10,7 +10,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { implementation project(':capacitor-dialog') - implementation project(':capacitor-toast') + implementation project(':robingenz-capacitor-app-update') } diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index 799cec2a..9483b3b3 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -4,7 +4,7 @@ "classpath": "com.capacitorjs.plugins.dialog.DialogPlugin" }, { - "pkg": "@capacitor/toast", - "classpath": "com.capacitorjs.plugins.toast.ToastPlugin" + "pkg": "@robingenz/capacitor-app-update", + "classpath": "dev.robingenz.capacitor.appupdate.AppUpdatePlugin" } ] diff --git a/android/app/src/main/java/com/audiobookshelf/app/Audiobook.kt b/android/app/src/main/java/com/audiobookshelf/app/Audiobook.kt index 79042df9..1dca6325 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/Audiobook.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/Audiobook.kt @@ -13,6 +13,7 @@ class Audiobook { var cover:String = "" var playWhenReady:Boolean = false var startTime:Long = 0 + var playbackSpeed:Float = 1f var duration:Long = 0 var hasPlayerLoaded:Boolean = false @@ -30,6 +31,7 @@ class Audiobook { playlistUrl = jsondata.getString("playlistUrl", "").toString() playWhenReady = jsondata.getBoolean("playWhenReady", false) == true startTime = jsondata.getString("startTime", "0")!!.toLong() + playbackSpeed = jsondata.getDouble("playbackSpeed")!!.toFloat() duration = jsondata.getString("duration", "0")!!.toLong() playlistUri = Uri.parse(playlistUrl) diff --git a/android/app/src/main/java/com/audiobookshelf/app/MyNativeAudio.kt b/android/app/src/main/java/com/audiobookshelf/app/MyNativeAudio.kt index 8818b4a0..225dc52c 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/MyNativeAudio.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/MyNativeAudio.kt @@ -102,16 +102,27 @@ class MyNativeAudio : Plugin() { } @PluginMethod - fun seekForward10(call: PluginCall) { + fun seekForward(call: PluginCall) { + var amount:Long = call.getString("amount", "0")!!.toLong() Handler(Looper.getMainLooper()).post() { - playerNotificationService.seekForward10() + playerNotificationService.seekForward(amount) call.resolve() } } @PluginMethod - fun seekBackward10(call: PluginCall) { + fun seekBackward(call: PluginCall) { + var amount:Long = call.getString("amount", "0")!!.toLong() Handler(Looper.getMainLooper()).post() { - playerNotificationService.seekBackward10() + playerNotificationService.seekBackward(amount) + call.resolve() + } + } + @PluginMethod + fun setPlaybackSpeed(call: PluginCall) { + var playbackSpeed:Float = call.getFloat("speed", 1.0f)!! + + Handler(Looper.getMainLooper()).post() { + playerNotificationService.setPlaybackSpeed(playbackSpeed) call.resolve() } } diff --git a/android/app/src/main/java/com/audiobookshelf/app/PlayerNotificationService.kt b/android/app/src/main/java/com/audiobookshelf/app/PlayerNotificationService.kt index 14d241ea..9ea2020e 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/PlayerNotificationService.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/PlayerNotificationService.kt @@ -373,6 +373,7 @@ class PlayerNotificationService : Service() { mPlayer.setMediaSource(mediaSource, true) mPlayer.prepare() mPlayer.playWhenReady = currentAudiobook!!.playWhenReady + mPlayer.setPlaybackSpeed(audiobook.playbackSpeed) } @@ -396,12 +397,16 @@ class PlayerNotificationService : Service() { mPlayer.seekTo(time) } - fun seekForward10() { - mPlayer.seekTo(mPlayer.currentPosition + 10000) + fun seekForward(amount:Long) { + mPlayer.seekTo(mPlayer.currentPosition + amount) } - fun seekBackward10() { - mPlayer.seekTo(mPlayer.currentPosition - 10000) + fun seekBackward(amount:Long) { + mPlayer.seekTo(mPlayer.currentPosition - amount) + } + + fun setPlaybackSpeed(speed:Float) { + mPlayer.setPlaybackSpeed(speed) } fun terminateStream() { diff --git a/android/app/src/main/res/drawable-land-hdpi/screen.png b/android/app/src/main/res/drawable-land-hdpi/screen.png new file mode 100644 index 00000000..db9f3288 Binary files /dev/null and b/android/app/src/main/res/drawable-land-hdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/android/app/src/main/res/drawable-land-hdpi/splash.png deleted file mode 100644 index ef2e210c..00000000 Binary files a/android/app/src/main/res/drawable-land-hdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-land-mdpi/screen.png b/android/app/src/main/res/drawable-land-mdpi/screen.png new file mode 100644 index 00000000..85796f95 Binary files /dev/null and b/android/app/src/main/res/drawable-land-mdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/android/app/src/main/res/drawable-land-mdpi/splash.png deleted file mode 100644 index 71af61c1..00000000 Binary files a/android/app/src/main/res/drawable-land-mdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-land-xhdpi/screen.png b/android/app/src/main/res/drawable-land-xhdpi/screen.png new file mode 100644 index 00000000..8610f113 Binary files /dev/null and b/android/app/src/main/res/drawable-land-xhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/android/app/src/main/res/drawable-land-xhdpi/splash.png deleted file mode 100644 index 0fe6d9f3..00000000 Binary files a/android/app/src/main/res/drawable-land-xhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-land-xxhdpi/screen.png b/android/app/src/main/res/drawable-land-xxhdpi/screen.png new file mode 100644 index 00000000..52f5f3a4 Binary files /dev/null and b/android/app/src/main/res/drawable-land-xxhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxhdpi/splash.png deleted file mode 100644 index 5f1050a8..00000000 Binary files a/android/app/src/main/res/drawable-land-xxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/screen.png b/android/app/src/main/res/drawable-land-xxxhdpi/screen.png new file mode 100644 index 00000000..1d36e7b4 Binary files /dev/null and b/android/app/src/main/res/drawable-land-xxxhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxxhdpi/splash.png deleted file mode 100644 index 530999db..00000000 Binary files a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-port-hdpi/screen.png b/android/app/src/main/res/drawable-port-hdpi/screen.png new file mode 100644 index 00000000..046f49da Binary files /dev/null and b/android/app/src/main/res/drawable-port-hdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-port-hdpi/splash.png b/android/app/src/main/res/drawable-port-hdpi/splash.png deleted file mode 100644 index 3b46cb14..00000000 Binary files a/android/app/src/main/res/drawable-port-hdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-port-mdpi/screen.png b/android/app/src/main/res/drawable-port-mdpi/screen.png new file mode 100644 index 00000000..5dec3f2f Binary files /dev/null and b/android/app/src/main/res/drawable-port-mdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-port-mdpi/splash.png b/android/app/src/main/res/drawable-port-mdpi/splash.png deleted file mode 100644 index 223298fb..00000000 Binary files a/android/app/src/main/res/drawable-port-mdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-port-xhdpi/screen.png b/android/app/src/main/res/drawable-port-xhdpi/screen.png new file mode 100644 index 00000000..e53e2dbd Binary files /dev/null and b/android/app/src/main/res/drawable-port-xhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-port-xhdpi/splash.png b/android/app/src/main/res/drawable-port-xhdpi/splash.png deleted file mode 100644 index 8173ffd8..00000000 Binary files a/android/app/src/main/res/drawable-port-xhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-port-xxhdpi/screen.png b/android/app/src/main/res/drawable-port-xxhdpi/screen.png new file mode 100644 index 00000000..d066a875 Binary files /dev/null and b/android/app/src/main/res/drawable-port-xxhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxhdpi/splash.png deleted file mode 100644 index 921f35e8..00000000 Binary files a/android/app/src/main/res/drawable-port-xxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/screen.png b/android/app/src/main/res/drawable-port-xxxhdpi/screen.png new file mode 100644 index 00000000..4dfea4a7 Binary files /dev/null and b/android/app/src/main/res/drawable-port-xxxhdpi/screen.png differ diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png deleted file mode 100644 index 447a38bd..00000000 Binary files a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png and /dev/null differ diff --git a/android/app/src/main/res/drawable/screen.png b/android/app/src/main/res/drawable/screen.png new file mode 100644 index 00000000..046f49da Binary files /dev/null and b/android/app/src/main/res/drawable/screen.png differ diff --git a/android/app/src/main/res/drawable/splash.png b/android/app/src/main/res/drawable/splash.png deleted file mode 100644 index 71af61c1..00000000 Binary files a/android/app/src/main/res/drawable/splash.png and /dev/null differ diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml index bb45498f..102f1273 100644 --- a/android/app/src/main/res/values/styles.xml +++ b/android/app/src/main/res/values/styles.xml @@ -17,6 +17,6 @@ - \ No newline at end of file + diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle index d27ef083..f85ee9ce 100644 --- a/android/capacitor.settings.gradle +++ b/android/capacitor.settings.gradle @@ -5,5 +5,5 @@ project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/ include ':capacitor-dialog' project(':capacitor-dialog').projectDir = new File('../node_modules/@capacitor/dialog/android') -include ':capacitor-toast' -project(':capacitor-toast').projectDir = new File('../node_modules/@capacitor/toast/android') +include ':robingenz-capacitor-app-update' +project(':robingenz-capacitor-app-update').projectDir = new File('../node_modules/@robingenz/capacitor-app-update/android') diff --git a/android/variables.gradle b/android/variables.gradle index 94d47109..24088750 100644 --- a/android/variables.gradle +++ b/android/variables.gradle @@ -6,6 +6,7 @@ ext { androidxAppCompatVersion = '1.2.0' androidxCoordinatorLayoutVersion = '1.1.0' androidxCoreVersion = '1.6.0' + androidPlayCore = '1.9.0' androidxFragmentVersion = '1.3.0' junitVersion = '4.13.1' androidxJunitVersion = '1.1.2' diff --git a/assets/app.css b/assets/app.css new file mode 100644 index 00000000..986d774e --- /dev/null +++ b/assets/app.css @@ -0,0 +1,15 @@ +.box-shadow-md { + box-shadow: 2px 8px 6px #111111aa; +} + +.box-shadow-lg-up { + box-shadow: 0px -12px 8px #111111ee; +} + +.box-shadow-xl { + box-shadow: 2px 14px 8px #111111aa; +} + +.box-shadow-book { + box-shadow: 4px 1px 8px #11111166, -4px 1px 8px #11111166, 1px -4px 8px #11111166; +} \ No newline at end of file diff --git a/components/AudioPlayerMini.vue b/components/AudioPlayerMini.vue index 2021f0a9..716a5b70 100644 --- a/components/AudioPlayerMini.vue +++ b/components/AudioPlayerMini.vue @@ -16,8 +16,8 @@
New
+