diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle index a035cf07..c12243cc 100644 --- a/android/app/capacitor.build.gradle +++ b/android/app/capacitor.build.gradle @@ -9,6 +9,7 @@ android { apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle" dependencies { + implementation project(':byteowls-capacitor-filesharer') implementation project(':capacitor-app') implementation project(':capacitor-browser') implementation project(':capacitor-clipboard') diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index 91ba9d08..a2f6b93a 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -1,4 +1,8 @@ [ + { + "pkg": "@byteowls/capacitor-filesharer", + "classpath": "com.byteowls.capacitor.filesharer.FileSharerPlugin" + }, { "pkg": "@capacitor/app", "classpath": "com.capacitorjs.plugins.app.AppPlugin" diff --git a/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt b/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt index 94698d15..339954ee 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/MainActivity.kt @@ -116,6 +116,7 @@ class MainActivity : BridgeActivity() { override fun onSaveInstanceState(outState: Bundle) { storageHelper.onSaveInstanceState(outState) super.onSaveInstanceState(outState) + outState.clear() } override fun onRestoreInstanceState(savedInstanceState: Bundle) { diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle index 4d93d79d..e38371ae 100644 --- a/android/capacitor.settings.gradle +++ b/android/capacitor.settings.gradle @@ -2,6 +2,9 @@ include ':capacitor-android' project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/android/capacitor') +include ':byteowls-capacitor-filesharer' +project(':byteowls-capacitor-filesharer').projectDir = new File('../node_modules/@byteowls/capacitor-filesharer/android') + include ':capacitor-app' project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android') diff --git a/assets/app.css b/assets/app.css index 33561947..3429acd8 100644 --- a/assets/app.css +++ b/assets/app.css @@ -2,6 +2,7 @@ @import "./fonts.css"; @import './defaultStyles.css'; @import './absicons.css'; +@import './transitions.css'; * { -webkit-touch-callout: none; @@ -16,10 +17,6 @@ textarea { user-select: auto; } -body { - background-color: #262626; -} - .layout-wrapper { height: calc(100vh - env(safe-area-inset-top)); min-height: calc(100vh - env(safe-area-inset-top)); diff --git a/assets/tailwind.css b/assets/tailwind.css index 7b8f598a..08764ff9 100644 --- a/assets/tailwind.css +++ b/assets/tailwind.css @@ -18,7 +18,7 @@ --color-track: 107 114 128; --color-track-buffered: 75 85 99; --gradient-item-page: linear-gradient(169deg, rgba(0, 0, 0, 0.4) 0%, rgba(55, 56, 56, 1) 80%); - --gradient-audio-player: linear-gradient(169deg, rgba(0, 0, 0, 0) 0%, rgba(38, 38, 38, 1) 80%); + --gradient-audio-player: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(38, 38, 38, 1) 80%); --gradient-minimized-audio-player: linear-gradient(145deg, rgba(38, 38, 38, 0.5) 0%, rgba(38, 38, 38, 0.9) 20%, rgb(38, 38, 38) 60%); } @@ -37,7 +37,11 @@ --color-track: 189 191 191; --color-track-buffered: 129 131 131; --gradient-item-page: linear-gradient(169deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 1) 80%); - --gradient-audio-player: linear-gradient(169deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 1) 80%); + --gradient-audio-player: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 80%); --gradient-minimized-audio-player: linear-gradient(145deg, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.9) 20%, rgb(255, 255, 255) 60%); } + + body { + @apply bg-primary + } } \ No newline at end of file diff --git a/assets/transitions.css b/assets/transitions.css new file mode 100644 index 00000000..63e9cfc4 --- /dev/null +++ b/assets/transitions.css @@ -0,0 +1,51 @@ +.slide-enter-active { + -moz-transition-duration: 0.1s; + -webkit-transition-duration: 0.1s; + -o-transition-duration: 0.1s; + transition-duration: 0.1s; + -moz-transition-timing-function: ease-in; + -webkit-transition-timing-function: ease-in; + -o-transition-timing-function: ease-in; + transition-timing-function: ease-in; +} + +.slide-leave-active { + -moz-transition-duration: 0.2s; + -webkit-transition-duration: 0.2s; + -o-transition-duration: 0.2s; + transition-duration: 0.2s; + -moz-transition-timing-function: cubic-bezier(0, 1, 0.5, 1); + -webkit-transition-timing-function: cubic-bezier(0, 1, 0.5, 1); + -o-transition-timing-function: cubic-bezier(0, 1, 0.5, 1); + transition-timing-function: cubic-bezier(0, 1, 0.5, 1); +} + +.slide-enter-to, +.slide-leave { + max-height: 600px; + overflow: hidden; +} + +.slide-enter, +.slide-leave-to { + overflow: hidden; + max-height: 0; +} + +.menu-enter, +.menu-leave-active { + transform: translateY(-15px); +} + +.menu-enter-active { + transition: all 0.2s; +} + +.menu-leave-active { + transition: all 0.1s; +} + +.menu-enter, +.menu-leave-active { + opacity: 0; +} \ No newline at end of file diff --git a/components/app/AudioPlayer.vue b/components/app/AudioPlayer.vue index 96ceb08f..61c31195 100644 --- a/components/app/AudioPlayer.vue +++ b/components/app/AudioPlayer.vue @@ -164,6 +164,7 @@ export default { showFullscreen(val) { this.updateScreenSize() this.$store.commit('setPlayerFullscreen', !!val) + document.querySelector('body').style.backgroundColor = this.showFullscreen ? this.coverRgb : "" }, bookCoverAspectRatio() { this.updateScreenSize() @@ -699,8 +700,8 @@ export default { this.updateTimestamp() this.updateTrack() this.updateReadyTrack() + this.updateUseChapterTrack() this.$localStore.setUseTotalTrack(this.useTotalTrack) - this.$localStore.setUseChapterTrack(this.useChapterTrack) } else if (action === 'total_track') { this.useTotalTrack = !this.useTotalTrack this.useChapterTrack = !this.useTotalTrack || this.useChapterTrack @@ -708,13 +709,20 @@ export default { this.updateTimestamp() this.updateTrack() this.updateReadyTrack() + this.updateUseChapterTrack() this.$localStore.setUseTotalTrack(this.useTotalTrack) - this.$localStore.setUseChapterTrack(this.useChapterTrack) } else if (action === 'close') { this.closePlayback() } }) }, + updateUseChapterTrack() { + this.$localStore.setUseChapterTrack(this.useChapterTrack) + // Chapter track in NowPlaying only supported on iOS for now + if (this.$platform === 'ios') { + AbsAudioPlayer.setChapterTrack({ enabled: this.useChapterTrack }) + } + }, forceCloseDropdownMenu() { if (this.$refs.dropdownMenu && this.$refs.dropdownMenu.closeMenu) { this.$refs.dropdownMenu.closeMenu() diff --git a/components/cards/LazyListBookCard.vue b/components/cards/LazyListBookCard.vue index 3b46b9a4..9aebb8df 100644 --- a/components/cards/LazyListBookCard.vue +++ b/components/cards/LazyListBookCard.vue @@ -15,7 +15,7 @@
-

+

#{{ seriesSequence }} {{ displayTitle }}

{{ displayAuthor }}

diff --git a/components/modals/FilterModal.vue b/components/modals/FilterModal.vue index ae15f882..e104dd9c 100644 --- a/components/modals/FilterModal.vue +++ b/components/modals/FilterModal.vue @@ -1,12 +1,12 @@