Adrian Ulrich
5a15f52a29
Tighten lock in writeState
2017-09-24 20:27:15 +02:00
Adrian Ulrich
b62cc51689
Create notification early for headset events
...
Headset events are the only place where we are forced to use the startForegroundService call which requires us to call startForeground() within 5 sec.
This will *usually* work fine, but fails if the device somehow failes to be fast enough OR if there is no song available.
Having an option to create a notification in onStart() in any case avoids the ANR crash in such strange cases.
2017-09-17 13:57:31 +02:00
Adrian Ulrich
073896639a
Revert cab1dc8fdd6235d1ade4733a627b870187190806 (while fixing conflicts).
...
The majority of people do not seem to like this feature, so lets go back to our old behaviour.
2017-09-07 21:31:20 +02:00
Adrian Ulrich
65fc2929b6
Fix ghost-seeks.
...
The pending seek info loaded from the state may not be used if the user hits < or > to restore the playback service.
If we keep the seek around, we would do an unexpected seek if we ever reach the saved song, which is not what we want.
2017-09-07 21:23:59 +02:00
Adrian Ulrich
674a34d6c2
Use startForegroundService on O for headset events.
...
The activity hack doesn't really work as it closes vanilla music if we receive an event while one of our activities is visible.
2017-09-07 21:13:02 +02:00
Adrian Ulrich
a3847edd70
Use ShortcutPseudoActivity.getIntent() in widgets.
2017-09-06 22:04:18 +02:00
Adrian Ulrich
a364b5b885
Use ShortcutPseudoActivity for headset events.
...
This works on Android 8 without calling startForegroundService() - ¯\_(ツ)_/¯
2017-09-06 21:55:14 +02:00
Adrian Ulrich
b79dfc49ba
Reduce notification visibility modes to when_playing and always.
...
The NEVER didn't really work well since 5.x (we were more likely to get killed) and is broken on 8.x, so we just get rid of it.
2017-09-06 21:37:26 +02:00
Adrian Ulrich
59e98546c9
Unregister contentObserver while PlaybackService gets destroyed.
2017-09-03 15:30:03 +02:00
Adrian Ulrich
2808735a17
Set notification importance on Android 8 to LOW.
...
All > levels produces sound.
2017-09-03 14:50:49 +02:00
Adrian Ulrich
9fa33f6420
Use ShortcutPseudoActivity for widgets.
...
Android 8 does not allow us to directly start a background service, use the ShortcutPseudoActivity to do it anyway.
That's how we roll now.
2017-08-28 22:41:59 +02:00
Adrian Ulrich
4b06348059
fix notifications for android 8
2017-08-27 20:47:34 +02:00
Adrian Ulrich
d3b0436554
Sync FileProvider.java with android-7.0.0_r33
2017-08-27 19:41:52 +02:00
Adrian Ulrich
a104b68201
Use FileProvider to implement share function.
2017-08-27 19:21:22 +02:00
Adrian Ulrich
39168bc561
Add FileProvider.java (103998f0f71ce45147449044f57a6ba2618225a9)
2017-08-27 18:52:26 +02:00
Adrian Ulrich
1ad2a6fb8b
Use postInvalidate instead of postInvalidateOnAnimation.
...
We still support android 4.0, which does not implement postInvalidateOnAnimation.
2017-08-26 09:50:18 +02:00
Adrian Ulrich
fa65bc393b
add previous button to small notification
2017-08-22 21:34:26 +02:00
Adrian Ulrich
2b36ff3114
Add 'shortcuts' support
2017-08-11 21:49:31 +02:00
Adrian Ulrich
1b9bb0596d
minor cover tweaks
2017-08-11 20:08:26 +02:00
Adrian Ulrich
caf24d645c
improve cover artwork scaling
2017-08-10 12:39:27 +02:00
Adrian Ulrich
a44dca0d1b
PlaylistDialog can handle LibraryAdapters, no need to cast to MediaAdapter
2017-08-10 10:59:14 +02:00
Adrian Ulrich
5d57fbea5b
generateBitmap() doesn't like null songs.
...
But we may have to set a bitmap to null - just skip creating the cover if it would be null anyway.
2017-08-06 12:16:18 +02:00
Adrian Ulrich
34ad6a24b4
add help fragment
2017-08-05 13:02:56 +02:00
Adrian Ulrich
6bc3976dbb
use context.getApplicationContext in MediaLibrary.
...
This ensures that we are not handing an Activity to our children
2017-08-05 12:28:48 +02:00
Adrian Ulrich
6bbc3800c2
Re-implement CoverView.
...
This implementation should hopefully drop less frames.
2017-08-03 20:35:56 +02:00
Adrian Ulrich
b308b97880
pick up ADTS files
2017-08-03 20:28:16 +02:00
Adrian Ulrich
5ccd9cb9a6
Always update album entries with new data
2017-07-16 19:32:45 +02:00
Dennis Guse
cab1dc8fdd
Mark notifications showing media content as private. ( #627 )
...
* Mark notifications showing media content as private.
* Removed unnecessary setting of private/public for notifications
2017-07-05 18:52:44 +02:00
Adrian Ulrich
df853b06c3
increase precision in dpi calculation
...
Some devices have a density like 2.7, so we should use a float to do the calculation
2017-07-03 10:48:47 +02:00
Adrian Ulrich
53f097b469
sync with bastp
2017-07-03 10:03:05 +02:00
Adrian Ulrich
2666afd234
Wrap mirror links result in try/catch.
...
This seems to be racy on the receiver side and i have no real way to test it :-/
2017-07-03 09:21:25 +02:00
Adrian Ulrich
cd03f0b1f5
calculate cover sizes dynamically
2017-07-02 16:10:44 +02:00
Adrian Ulrich
0d4c8685ae
handle NULLs in fastscroll alphabet.
...
Display a question mark if the value was NULL, this enables the fastscroller to scroll to NULL columns.
2017-07-02 15:41:13 +02:00
Adrian Ulrich
753410bbef
rename getQueuePositionForSong into getQueuePositionForSongId()
2017-07-02 14:26:23 +02:00
Antic1tizen One
117572eb7c
Jump to song in queue if picked just one ( #624 )
...
* Bump gradle versions needed for build
Android Studio already refuses to build it as-is,
so alter the versions required.
* Rename mode -> action for better readability
* Fix incorrect description on getByPos from timeline
* Jump to song in queue if picked one. Implements #604
2017-07-02 14:24:11 +02:00
Adrian Ulrich
023f0ef37f
Workaround for samsung devices.
...
Looks like Samsunb broke getExternalMediaDirs() on 5.x as it tends to return a null File sometimes.
This code checks for it and falls back to the old case on total failure.
2017-06-26 19:38:06 +02:00
Adrian Ulrich
f88f96d615
default to Notification.PRIORITY_HIGH
2017-06-24 13:05:02 +02:00
Adrian Ulrich
ab91bda772
convert unixtime to string
2017-06-21 21:53:10 +02:00
Adrian Ulrich
345e45533c
handle KEYCODE_SEARCH in FullPlaybackActivity
2017-06-21 21:00:11 +02:00
Adrian Ulrich
94b7566881
Handle KEYCODE_SEARCH
2017-06-19 19:07:11 +02:00
Adrian Ulrich
b9f0d2db88
force use of index on left joins to song-contributors.
...
SQLite versions on Android 4.x fail to pick up the index, resulting in a full table scan which is pretty horrible for performance.
We therefore change the views to force sqlite using the index.
2017-06-19 18:55:29 +02:00
Adrian Ulrich
7612febbab
improve media dirs detection on newer android releases.
...
use getExternalMediaDirs() if available instead of guessing the path to the sd-card.
2017-06-18 18:23:08 +02:00
Adrian Ulrich
012b53e1ea
also blacklist .tmp and .bin files
2017-06-10 12:38:01 +02:00
Adrian Ulrich
3481503633
Support for adding any content:// style URI
2017-06-10 12:31:26 +02:00
Adrian Ulrich
efb107b063
Fix context menues inside SlidingView for Android 7.x
2017-06-09 23:13:49 +02:00
Adrian Ulrich
c2ed38f0af
Fix out of bounds error.
...
We might call timeline.add() with an invalid position if we skipped a song due to being unfilled.
Use 'added' instead of 'j' to calculate the queue position.
2017-06-09 09:37:03 +02:00
Adrian Ulrich
e74180f62b
Display total amount of play time in stats.
2017-06-08 15:13:38 +02:00
Adrian Ulrich
db02f11963
Minor design tweaks.
2017-06-08 14:56:07 +02:00
Adrian Ulrich
a1252fd2d6
bump DB version and trigger a full clean
2017-06-08 14:01:57 +02:00
Adrian Ulrich
d6b1da50fb
Fix renames
...
We failed to fully remove any orphaned artists, albums references, this could result in duplicate items showing up in the songs view.
2017-06-08 11:18:02 +02:00