1636 Commits

Author SHA1 Message Date
Adrian Ulrich
19ae36c3a2 update translations 2016-12-31 10:52:46 +01:00
Adrian Ulrich
c55860d56d s/songs/tracks/ 2016-12-28 18:06:19 +01:00
Adrian Ulrich
08f79a84ae implement media scanner UI 2016-12-27 21:44:42 +01:00
Adrian Ulrich
447059150e Revert "fix some layout errors with the white widget"
This looks bad on Android 5 :-/

This reverts commit 37652c8b92196afdd996ff3634ff8925573821b6.
2016-12-27 19:39:32 +01:00
Adrian Ulrich
46deaf25e7 crashfix: correctly check sort mode bounds
A sort mode of -6 means '6 reversed', so we must check if '6' is in-bounds (instead of -6)
2016-12-26 21:06:05 +01:00
Adrian Ulrich
70b8119365 add blue theme 2016-12-26 20:50:32 +01:00
Adrian Ulrich
2f0fe7586b Revert "add blue theme"
This reverts commit 8f670897ddc85570163ac62e1896e95db0886111.
2016-12-26 20:50:06 +01:00
Adrian Ulrich
1fa70a00bf use centerCrop for notification 2016-12-26 20:13:29 +01:00
Adrian Ulrich
37652c8b92 fix some layout errors with the white widget 2016-12-26 20:13:05 +01:00
Adrian Ulrich
8f670897dd add blue theme 2016-12-26 19:51:58 +01:00
Adrian Ulrich
6c85a11743 Merge branch 'medialibrary' 2016-12-26 19:33:08 +01:00
Adrian Ulrich
dcd7df4f66 first version of automatic media scanner 2016-12-26 19:31:12 +01:00
Adrian Ulrich
6f898e7892 update translations 2016-12-22 18:57:06 +01:00
Adrian Ulrich
8abdf25d38 Implement getLibrarySize() 2016-12-18 19:59:46 +01:00
Adrian Ulrich
16aa6440f8 implement externally triggerable scanner 2016-12-18 18:55:41 +01:00
Adrian Ulrich
57b88bfef2 fix code style errors 2016-12-18 18:27:59 +01:00
Adrian Ulrich
2e9de29921 fix comment typo 2016-12-18 11:53:10 +01:00
Adrian Ulrich
4ed4cd0fab implement startNativeLibraryScan() 2016-12-18 11:50:59 +01:00
Adrian Ulrich
5782e295eb implement startUpdateScan() 2016-12-18 11:36:17 +01:00
Adrian Ulrich
4429c50dec improve handling of file updates 2016-12-18 10:58:15 +01:00
Adrian Ulrich
da159cace2 Reduce visibility of functions 2016-12-18 10:12:46 +01:00
Adrian Ulrich
72d8c65211 UGLY: our SQL optimizer is pretty silly and uses a regexp to parse SQL.
Instead of fixing the root issue (parsing sql by regexp), we are going to pass
a 'nicer' query to the 'optimizer' so that it is able to catch our intent.
2016-12-18 10:09:48 +01:00
Adrian Ulrich
ddc38d1853 avoid deadlock while entering random mode from play-click
calling setSong(0); is not required as changing the mode will already broadcast a change which causes us to pick up a new song from scratch.

The old code caused 2 threads to touch the PlaybackService + SongTimeline at the same time, resulting in a deadlock in the worst case.

Trace for historical reasons:
DALVIK THREADS (21):
"main" prio=5 tid=1 Blocked
  | group="main" sCount=1 dsCount=0 obj=0x73d5b000 self=0xb4827800
  | sysTid=14357 nice=0 cgrp=default sched=0/0 handle=0xb6f74bec
  | state=S schedstat=( 321573745 82720575 681 ) utm=21 stm=11 core=3 HZ=100
  | stack=0xbe5a4000-0xbe5a6000 stackSize=8MB
  | held mutexes=
  at ch.blinkenlights.android.vanilla.SongTimeline.shiftCurrentSong(SongTimeline.java:669)
  - waiting to lock <0x30e74b87> (a ch.blinkenlights.android.vanilla.SongTimeline) held by thread 16
  at ch.blinkenlights.android.vanilla.PlaybackService.setCurrentSong(PlaybackService.java:1298)
  at ch.blinkenlights.android.vanilla.PlaybackService.play(PlaybackService.java:1184)
  - locked <0x3ce87ab4> (a java.lang.Object[])
  at ch.blinkenlights.android.vanilla.PlaybackService.playPause(PlaybackService.java:1221)
  - locked <0x3ce87ab4> (a java.lang.Object[])
  at ch.blinkenlights.android.vanilla.PlaybackActivity.playPause(PlaybackActivity.java:186)
  at ch.blinkenlights.android.vanilla.PlaybackActivity.onClick(PlaybackActivity.java:206)
  at ch.blinkenlights.android.vanilla.LibraryActivity.onClick(LibraryActivity.java:544)
  at android.view.View.performClick(View.java:4789)
  at android.view.View$PerformClick.run(View.java:19881)
  at android.os.Handler.handleCallback(Handler.java:739)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:135)
  at android.app.ActivityThread.main(ActivityThread.java:5294)
  at java.lang.reflect.Method.invoke!(Native method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

	"PlaybackService" prio=5 tid=16 Blocked
  | group="main" sCount=1 dsCount=0 obj=0x12d52900 self=0xb4a1c400
  | sysTid=14379 nice=0 cgrp=default sched=0/0 handle=0xb4929400
  | state=S schedstat=( 25323853 1519584 33 ) utm=2 stm=0 core=3 HZ=100
  | stack=0xaeafe000-0xaeb00000 stackSize=1036KB
  | held mutexes=
  at ch.blinkenlights.android.vanilla.PlaybackService.setCurrentSong(PlaybackService.java:1315)
  - waiting to lock <0x3ce87ab4> (a java.lang.Object[]) held by thread 1
  at ch.blinkenlights.android.vanilla.PlaybackService.activeSongReplaced(PlaybackService.java:1659)
  at ch.blinkenlights.android.vanilla.SongTimeline.broadcastChangedSongs(SongTimeline.java:906)
  at ch.blinkenlights.android.vanilla.SongTimeline.setFinishAction(SongTimeline.java:511)
  - locked <0x30e74b87> (a ch.blinkenlights.android.vanilla.SongTimeline)
  at ch.blinkenlights.android.vanilla.PlaybackService.processNewState(PlaybackService.java:1039)
  at ch.blinkenlights.android.vanilla.PlaybackService.handleMessage(PlaybackService.java:1543)
  at android.os.Handler.dispatchMessage(Handler.java:98)
  at android.os.Looper.loop(Looper.java:135)
  at android.os.HandlerThread.run(HandlerThread.java:61)
2016-12-02 15:23:36 +01:00
Adrian Ulrich
6eff4efde2 bump version code 2016-12-02 07:58:10 +01:00
Adrian Ulrich
d6b8cdbddc fix sd scanner
onAttach(Context) is an API23 function, this fixes the scanner to work on Android <=5
2016-12-02 07:56:53 +01:00
Adrian Ulrich
012f0538f8 remove orphaned playlist entries during delete 2016-11-28 21:06:42 +01:00
Adrian Ulrich
055effb976 support for file updates 2016-11-28 21:05:02 +01:00
Adrian Ulrich
69b8636c60 get rid of unused recursive flag 2016-11-28 20:05:08 +01:00
Adrian Ulrich
3d49310a9d move observer notifications into MediaLibrary from MediaLibraryBackend 2016-11-28 20:03:47 +01:00
Adrian Ulrich
fd7d3cb31b discover storage paths automatically 2016-11-27 18:46:48 +01:00
Adrian Ulrich
b288425994 add songs.year column 2016-11-27 14:29:00 +01:00
Adrian Ulrich
d493056cc9 pass all tags trough a filter 2016-11-27 14:16:16 +01:00
Adrian Ulrich
7caf2115a8 Fix crash in listview
setData() might get called late after a queue update. If the listview already started to draw, it might trigger a panic if a count mismatch was detected
2016-11-26 20:54:19 +01:00
Adrian Ulrich
d2559dcaf0 Fix crash in listview
setData() might get called late after a queue update. If the listview already started to draw, it might trigger a panic if a count mismatch was detected
2016-11-26 20:51:43 +01:00
Adrian Ulrich
f749773e35 sort songs by album if we hit PlayAll from the artists tab 2016-11-26 20:32:37 +01:00
Adrian Ulrich
62e58c003c fix wrong sorting for 'enqueue album' 2016-11-26 20:22:05 +01:00
Adrian Ulrich
bc69dde38c implement simple blacklist 2016-11-26 20:14:36 +01:00
Adrian Ulrich
6a6178846b make role a constant 2016-11-26 20:14:17 +01:00
Adrian Ulrich
8d05089c9f brush up scanner 2016-11-26 19:47:27 +01:00
Adrian Ulrich
69b9393987 vorbis: guess YEAR from DATE 2016-11-26 19:29:15 +01:00
Adrian Ulrich
0af0d35a66 unify metadata extractor 2016-11-26 19:15:10 +01:00
Adrian Ulrich
432ce9d557 get rid of unused song_count and disc_count fields 2016-11-26 18:59:11 +01:00
Adrian Ulrich
2df519f0f6 add metadata extraction wrapper 2016-11-26 18:57:41 +01:00
Adrian Ulrich
80744ae9cc Merge branch 'master' into medialibrary 2016-11-26 17:25:04 +01:00
Adrian Ulrich
b24648caac Use ArrayList instead of Vector 2016-11-26 17:24:43 +01:00
Adrian Ulrich
2f477c65d4 get rid of some content resolver leftovers 2016-11-26 16:59:46 +01:00
Adrian Ulrich
29c6dd9916 add songs for playlist_id,song_id queries 2016-11-26 16:53:05 +01:00
Adrian Ulrich
6683a221ab bring back android album artwork support 2016-11-26 16:50:51 +01:00
Adrian Ulrich
f218271919 use Long.toString() 2016-11-26 16:28:35 +01:00
Adrian Ulrich
e3c6331885 do not use sort trickery on playcounts playlist name 2016-11-26 16:25:41 +01:00