casey langen
ab10608d7a
Playlist updates are now reflected in the UI, in real time, when changed
...
from remote devices.
2017-12-05 15:10:15 -08:00
casey langen
fc84edf72f
Include "environment" information in a successful auth response --
...
includes http server port, api version, and sdk version.
2017-12-05 15:09:34 -08:00
casey langen
a66c14e931
Fixed some proguard wonkiness.
2017-12-04 12:28:04 -08:00
casey langen
dca2526879
Fixed compiler errors and warning that showed up on Debian Stretch.
2017-12-04 00:12:21 +00:00
casey langen
e9f924fef8
A bunch of small changes in preparation for release:
...
1. Finalized the initial `IEncoder` interface with a new
`GetPreferences()` method so external parties can configure encoder
operation.
2. Updated `IEnvironment` interface with a new `GetPreferences()` call
so plugins (e.g. encoders) can be configured by other plugins.
3. Fixed sort order in plugin list to be alphabetical.
4. Ensure the main app depends on the "stockencoders" plugin in the
Visual Studio solution.
2017-12-03 14:44:42 -08:00
casey langen
51be0ccfb4
Fixed a bug in playlist re-arranging when moving items up (down and
...
delete were fine). Also improved snackbars with a "VIEW" button that
jumps to updated playlists.
2017-12-02 23:37:16 -08:00
casey langen
dc5bcef940
Ensure OfflineDb gets initialized early so it can install it's WSS
...
injector.
2017-12-02 16:35:14 -08:00
casey langen
5f4375afc5
Updated our custom AndroidVideoCache with a bug fix that was causing
...
corrupted downloads when trying to resume downloads that were returning
200 instead of 206.
2017-12-02 16:19:28 -08:00
casey langen
cc42d9250b
Playlist editing polish: "EDIT" button in "view playlist" toolbar, some
...
better error handling, toasts, and icon color updates.
2017-12-01 19:52:18 -08:00
casey langen
5796b1e46d
Properly set the modified flag so we don't requery and clobber edits.
2017-12-01 08:32:32 -08:00
casey langen
5111b3ed30
SQL WHERE IN(...) does not preserve order, meaning certain playlist
...
operations could result in jumbled track orders. This fixes that by
eating some extra memory temporarily.
2017-12-01 00:32:22 -08:00
casey langen
78c57b8f10
Incremental work to support playlist editing.
2017-12-01 00:14:06 -08:00
casey langen
fc99911ad1
Fixed crash when attempting to query tracks by externalId only.
2017-12-01 00:13:45 -08:00
casey langen
153cc9c708
Playlist track sort order cleanup, part two.
2017-11-30 10:41:48 -08:00
casey langen
5fdffc292d
Small update to Indexer to ensure playlist sort order is always
...
sequential with no holes.
2017-11-30 10:10:09 -08:00
casey langen
8bb70e7d98
Added "remove (track) from playlist" functionality to the Android client.
2017-11-29 23:13:26 -08:00
casey langen
ede67d9726
Fixed AppendPlaylistQuery initial sort_order bug.
2017-11-29 23:12:51 -08:00
casey langen
a01603d200
Added playlist renaming to Android client UI.
2017-11-28 22:33:20 -08:00
casey langen
c8c9d94f9a
Fixed fopen() mode in LameEncoder to ensure the gapless header is properly written.
2017-11-28 22:05:46 -08:00
casey langen
2942b81a2c
Updated to Kotlin 1.2.0 and ExoPlayer 2.6.0
2017-11-28 21:53:45 -08:00
casey langen
903ebfdbe4
Version bump and changelog in preparation for release.
2017-11-28 10:53:16 -08:00
casey langen
e0bfe2c987
Added some more error-checking around the HttpServer's range header to
...
ensure we don't try to read invalid offsets.
2017-11-28 09:51:06 -08:00
casey langen
d8b0aef307
Fixed a bug in HttpServer where the byte range response header's "to"
...
field may be larger than the size.
2017-11-28 01:35:51 -08:00
casey langen
fb869e27b3
A few spotlight tweaks after testing on physical hardware.
2017-11-27 19:25:28 -08:00
casey langen
a6d0f1d351
Added a spotlight feature that shows the user how to switch between
...
remote and streaming mode. Also updated GaplessHeaderService to require
less bandwidth, with more error checking.
2017-11-27 19:15:45 -08:00
casey langen
bbc6dda144
re-enable auth; things are stable now
2017-11-26 23:59:36 -08:00
casey langen
19db8456c8
Fleshed out GaplessHeaderService (and DAO/DB friends). Tracks downloaded
...
via realtime transcoder are now patched up after-the-fact, so subsequent
plays are gapless. Also added a new, custom version of
AndroidVideoCache that supports receiving response headers.
2017-11-26 23:43:53 -08:00
casey langen
33d3c1544c
More improvements to dependency injection -- databases and more service
...
related things are injected with correct scoping rules. Removed
remaining static state from Application subclass.
2017-11-26 15:46:51 -08:00
casey langen
5d9e24019d
Fixed Linux (and hopefully macOS) compile and linker errors.
2017-11-25 23:31:19 -08:00
casey langen
1a15e084c7
Major surgery to websocket_remote:
...
- Renamed websocket_remote plugin to "server"
- Added IEncoder, IEncoderFactory interfaces to SDK. Updated
IEnvironment and related plumbing; plugins can now declare encoders and
other plugins can request instances through the SDK.
- Removed LAME encoding from websocket_server plugin, created new
stockencoders plugin that includes both LAME and Ogg Vorbis encoders.
- Moved to dynamic libraries for ogg, vorbis, libvorbis so it can be
shared between encoding and decoding plugins.
- Plumbing for new "format" URL param through HttpServer, Transcoder,
and TranscodingDataStream. Use new IEncoder functionality to deal with
on-the-fly re-encoding
2017-11-25 23:06:29 -08:00
casey langen
0a6851544e
Added the ability to select playback engine (ExoPlayer, ExoPlayer
...
Gapless, or MediaPlayer).
2017-11-21 14:31:07 -08:00
casey langen
b065751b0a
Initial work to support ExoPlayer gapless playback.
2017-11-21 11:58:44 -08:00
casey langen
4340de3c57
Fixed a race condition (that generally only shows up in the debugger) --
...
need to use a ReplaySubject instead of a PublishSubject in case the
result comes back before the subscribe.
2017-11-21 11:57:57 -08:00
casey langen
a932c34b9d
Upgraded to ExoPlayer 2.5.4 and Android Studio 3.0.1
2017-11-21 11:57:57 -08:00
casey langen
93f1980b77
Added context menu to PlayQueueActivity and PlayQueueAdapter.
2017-11-21 11:57:57 -08:00
casey langen
a573265092
More context menu handling fixes. Lots of cross linkage!
2017-11-21 11:57:57 -08:00
casey langen
c41e89367c
Fixed volume up / down key not working for remote playback, caused by
...
recent refactors.
2017-11-21 11:57:57 -08:00
casey langen
eeafa9d7e8
Cleaned up, and (mostly) finished new context menus for tracks, artists,
...
albums, genres, and playlists. Also fixed a messed up string.
2017-11-21 11:57:57 -08:00
casey langen
584c41cc1a
Resource and prefs cleanups.
2017-11-21 11:57:56 -08:00
casey langen
b6fd556fcf
Added the ability to create playlists in the Android app.
2017-11-21 11:57:56 -08:00
casey langen
8534225c55
Added a playlist list specific context menu, which allows the user to
...
delete the selected playlist, or play it immediately.
2017-11-21 11:57:56 -08:00
casey langen
6573194dac
Intermediate commit with a bunch of important changes:
...
1. Renamed "Components" to "Mixins" to avoid confusion with Dagger
2. Implemented a bunch of mixins -- DataProviderMixin,
ItemContextMenuMixin, PlaybackMixin, RunnerMixin, ViewModelMixin to
modularize functionality and slim down base classes
3. Started implementing new context menu for browsing predicated
categories
4. Some other general cleanup -- more properties instead of methods,
function expressions, etc
2017-11-21 11:57:56 -08:00
casey langen
b950ae0259
Added a super simple, bare-bones component system. We'll use this to
...
swap functionality at runtime in the near future. Or not, and we'll end
up removing it.
2017-11-21 11:57:56 -08:00
casey langen
4edd5476a3
Restructured package layout to be more scalable.
2017-11-21 11:57:56 -08:00
casey langen
9d3e87f32e
Some versions of the Android OS seem to have problems redrawing the lock
...
screen if the media session is updated too quickly. Installed a
debouncer to ensure we only ever update, at most, twice a second.
2017-11-21 11:57:56 -08:00
casey langen
35c3e4b534
Load album art from the musikcube server by default, if thumbnails
...
exist. Otherwise farm out to lastfm.
2017-11-21 11:57:56 -08:00
casey langen
850664a519
Removed AlbumArtModel in favor of AlbumArtLookup utility module and a
...
custom OkHttp interceptor to automatically redirect to the requested
resource. This simplifies a number of interactions related to loading
(and preloading) album art. The changes also ensure we don't make
duplicate requests against the backend unless necessary.
2017-11-21 11:57:56 -08:00
casey langen
328911d868
Fixed Glide to inject auth headers when requesting album art against a
...
musikcube server.
2017-11-21 11:57:56 -08:00
casey langen
1d7e97005e
Upgraded to Glide v4 from Glide v3. Also, added some accessor methods
...
for track and album thumbnail ids.
2017-11-21 11:57:56 -08:00
casey langen
93156e99aa
Updated build dependencies, and also switched to a new fastscroller
...
library for RecyclerView that seems to work more smoothly on older
devices. Also, the implementation of it seems pretty simple, and should
be relatively easy to debug if problems arise.
2017-11-21 11:57:56 -08:00