Compare commits

...

3 Commits

Author SHA1 Message Date
Koen 150a7d5006 Added proper permissions for download and export service (A14). 2023-12-10 09:29:33 +01:00
Koen a0a73a8e5c Fixes Android SDK. 2023-12-10 00:34:34 +01:00
Kelvin 4723a0b29a Fix up next view 2023-12-09 19:03:47 +01:00
8 changed files with 45 additions and 13 deletions
+6 -2
View File
@@ -11,6 +11,8 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/>
<application
android:allowBackup="true"
@@ -35,9 +37,11 @@
android:enabled="true"
android:foregroundServiceType="mediaPlayback" />
<service android:name=".services.DownloadService"
android:enabled="true" />
android:enabled="true"
android:foregroundServiceType="dataSync" />
<service android:name=".services.ExportingService"
android:enabled="true" />
android:enabled="true"
android:foregroundServiceType="dataSync" />
<receiver android:name=".receivers.MediaControlReceiver" />
<receiver android:name=".receivers.AudioNoisyReceiver" />
@@ -555,7 +555,7 @@ class Settings : FragmentedStorageFileJson() {
val cookieManager: CookieManager = CookieManager.getInstance();
cookieManager.removeAllCookies(null);
}
@FormField(R.string.reinstall_embedded_plugins, FieldForm.BUTTON, R.string.also_removes_any_data_related_plugin_like_login_or_settings, 1)
/*@FormField(R.string.reinstall_embedded_plugins, FieldForm.BUTTON, R.string.also_removes_any_data_related_plugin_like_login_or_settings, 1)
fun reinstallEmbedded() {
StateApp.instance.scopeOrNull!!.launch(Dispatchers.IO) {
try {
@@ -574,7 +574,7 @@ class Settings : FragmentedStorageFileJson() {
}
}
}
}
}*/
}
@@ -2,6 +2,8 @@ package com.futo.platformplayer.api.media.structures
import com.futo.platformplayer.api.media.models.contents.IPlatformContent
import com.futo.platformplayer.api.media.models.video.IPlatformVideo
import com.futo.platformplayer.assume
import kotlin.streams.asSequence
import kotlin.streams.toList
/**
@@ -28,6 +30,7 @@ class PlatformContentPager : IPager<IPlatformContent> {
_page++;
_currentItems = _items.stream()
.skip((_page * _pageSize).toLong())
.asSequence()
.toList()
.take(_pageSize)
.toList();
@@ -566,9 +566,7 @@ class VideoDetailView : ConstraintLayout {
};
_upNext.onNextItem.subscribe {
val item = StatePlayer.instance.nextQueueItem();
if(item != null)
setVideoOverview(item, true);
nextVideo(true, true, true);
};
_upNext.onOpenQueueClick.subscribe {
_container_content_queue.updateQueue();
@@ -6,6 +6,9 @@ import android.app.PendingIntent
import android.app.Service
import android.content.Context
import android.content.Intent
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK
import android.os.Build
import android.os.IBinder
import androidx.core.app.NotificationCompat
import com.futo.platformplayer.*
@@ -250,7 +253,11 @@ class DownloadService : Service() {
val notif = builder.build();
notif.flags = notif.flags or NotificationCompat.FLAG_ONGOING_EVENT or NotificationCompat.FLAG_NO_CLEAR;
startForeground(DOWNLOAD_NOTIF_ID, notif);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForeground(DOWNLOAD_NOTIF_ID, notif, FOREGROUND_SERVICE_TYPE_DATA_SYNC);
} else {
startForeground(DOWNLOAD_NOTIF_ID, notif);
}
}
fun closeDownloadSession() {
@@ -7,6 +7,8 @@ import android.app.Service
import android.content.Context
import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.content.pm.ServiceInfo
import android.os.Build
import android.os.IBinder
import androidx.core.app.NotificationCompat
import androidx.core.content.FileProvider
@@ -173,7 +175,11 @@ class ExportingService : Service() {
val notif = builder.build();
notif.flags = notif.flags or NotificationCompat.FLAG_ONGOING_EVENT or NotificationCompat.FLAG_NO_CLEAR;
startForeground(EXPORT_NOTIF_ID, notif);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForeground(EXPORT_NOTIF_ID, notif, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC);
} else {
startForeground(EXPORT_NOTIF_ID, notif);
}
}
fun closeExportSession() {
@@ -1,6 +1,7 @@
package com.futo.platformplayer.states
import android.content.Context
import kotlin.streams.asSequence
import kotlin.streams.toList
/***
@@ -26,7 +27,7 @@ class StateAssets {
else
break;
}
return (parts1 + parts2.stream().skip(toSkip.toLong()).toList()).joinToString("/");
return (parts1 + parts2.stream().skip(toSkip.toLong()).asSequence().toList()).joinToString("/");
}
/**
+16 -3
View File
@@ -24,6 +24,12 @@
<data android:host="www.youtube.com" />
<data android:host="m.youtube.com" />
<data android:host="rumble.com" />
<data android:host="kick.com" />
<data android:host="nebula.tv" />
<data android:host="odysee.com" />
<data android:host="patreon.com" />
<data android:host="soundcloud.com" />
<data android:host="twitch.tv" />
<data android:pathPrefix="/" />
</intent-filter>
<intent-filter android:autoVerify="true">
@@ -33,11 +39,18 @@
<data android:mimeType="text/plain" />
<data android:host="youtube.com" />
<data android:host="m.youtube.com" />
<data android:host="you.be" />
<data android:host="youtu.be" />
<data android:host="www.you.be" />
<data android:host="youtube.com" />
<data android:host="www.youtube.com" />
<data android:host="m.youtube.com" />
<data android:host="rumble.com" />
<data android:host="kick.com" />
<data android:host="nebula.tv" />
<data android:host="odysee.com" />
<data android:host="patreon.com" />
<data android:host="soundcloud.com" />
<data android:host="twitch.tv" />
</intent-filter>
</activity>
</application>