From 492cb3104fabe1b54f360d2a0ea57de60674f404 Mon Sep 17 00:00:00 2001 From: RaindropsSys Date: Wed, 8 Nov 2023 22:02:10 +0100 Subject: Updated 7 files, added android/app/release/app-release.apk.zip and renamed android/app/release/app-release.apka (automated) --- android/.idea/deploymentTargetDropDown.xml | 15 ++++++++++++++- android/app/build.gradle.kts | 4 ++-- android/app/release/app-release.apk | Bin 0 -> 23035043 bytes android/app/release/app-release.apk.zip | Bin 0 -> 8354599 bytes android/app/release/app-release.apka | Bin 23034331 -> 0 bytes android/app/release/output-metadata.json | 4 ++-- .../java/dev/equestria/mist/JavaScriptExtensions.kt | 5 +++++ .../src/main/java/dev/equestria/mist/MainActivity.kt | 5 +++++ api/lyrics.php | 17 +++++++++++++++++ app/index.php | 12 +++++++++++- 10 files changed, 56 insertions(+), 6 deletions(-) create mode 100644 android/app/release/app-release.apk create mode 100644 android/app/release/app-release.apk.zip delete mode 100644 android/app/release/app-release.apka diff --git a/android/.idea/deploymentTargetDropDown.xml b/android/.idea/deploymentTargetDropDown.xml index 0c0c338..ef1f9a9 100644 --- a/android/.idea/deploymentTargetDropDown.xml +++ b/android/.idea/deploymentTargetDropDown.xml @@ -3,7 +3,20 @@ - + + + + + + + + + + + + + + diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 8975408..b711e97 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -12,8 +12,8 @@ android { applicationId = "dev.equestria.mist" minSdk = 30 targetSdk = 34 - versionCode = 1 - versionName = "1.0" + versionCode = 2 + versionName = "1.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/android/app/release/app-release.apk b/android/app/release/app-release.apk new file mode 100644 index 0000000..aa449ce Binary files /dev/null and b/android/app/release/app-release.apk differ diff --git a/android/app/release/app-release.apk.zip b/android/app/release/app-release.apk.zip new file mode 100644 index 0000000..f8b3169 Binary files /dev/null and b/android/app/release/app-release.apk.zip differ diff --git a/android/app/release/app-release.apka b/android/app/release/app-release.apka deleted file mode 100644 index 0b3aa69..0000000 Binary files a/android/app/release/app-release.apka and /dev/null differ diff --git a/android/app/release/output-metadata.json b/android/app/release/output-metadata.json index 0debc4d..5b3e7dd 100644 --- a/android/app/release/output-metadata.json +++ b/android/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 1, - "versionName": "1.0", + "versionCode": 2, + "versionName": "1.1", "outputFile": "app-release.apk" } ], diff --git a/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt b/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt index 294e80f..dad4a7b 100644 --- a/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt +++ b/android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt @@ -89,6 +89,11 @@ class JavaScriptExtensions(originalActivity: MainActivity, private val window: W } } + @JavascriptInterface + fun quitApp() { + activity.finish() + } + @JavascriptInterface fun setNotificationData(title: String, artist: String, album: String, position: Long, duration: Long, playing: Boolean, buffering: Boolean) { val playbackStateBuilder = PlaybackStateCompat.Builder() diff --git a/android/app/src/main/java/dev/equestria/mist/MainActivity.kt b/android/app/src/main/java/dev/equestria/mist/MainActivity.kt index 78807c2..acfe7df 100644 --- a/android/app/src/main/java/dev/equestria/mist/MainActivity.kt +++ b/android/app/src/main/java/dev/equestria/mist/MainActivity.kt @@ -18,6 +18,7 @@ import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient import androidx.activity.ComponentActivity +import androidx.activity.addCallback import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -90,6 +91,10 @@ class MainActivity : ComponentActivity() { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) + val callback = onBackPressedDispatcher.addCallback(this) { + webview.evaluateJavascript("window.back();", null) + } + if (ActivityCompat.checkSelfPermission( applicationContext, Manifest.permission.POST_NOTIFICATIONS diff --git a/api/lyrics.php b/api/lyrics.php index d72a17c..74503dc 100644 --- a/api/lyrics.php +++ b/api/lyrics.php @@ -2,6 +2,7 @@ header("X-Frame-Options: SAMEORIGIN"); header("Content-Type: application/json"); +//header("Content-Type: text/plain"); require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $songs; $token = json_decode(file_exists("/opt/spotify/token.json") ? file_get_contents("/opt/spotify/token.json") : file_get_contents($_SERVER["DOCUMENT_ROOT"] . "/includes/app.json"), true); @@ -34,6 +35,22 @@ if (isset($data) && str_ends_with($data["syncType"], "_SYNCED")) { ], JSON_PRETTY_PRINT)); } +$probe = []; +exec("ffprobe -v quiet -print_format json -show_format $_SERVER[DOCUMENT_ROOT]/assets/content/$_GET[id].flac", $probe); +$metadata = json_decode(implode("\n", $probe), true); + +if (isset($metadata["format"]["tags"]["UNSYNCEDLYRICS"])) { + die(json_encode([ + "synced" => false, + "payload" => trim($metadata["format"]["tags"]["UNSYNCEDLYRICS"]) + ], JSON_PRETTY_PRINT)); +} elseif (isset($metadata["format"]["tags"]["unsyncedlyrics"])) { + die(json_encode([ + "synced" => false, + "payload" => trim($metadata["format"]["tags"]["unsyncedlyrics"]) + ], JSON_PRETTY_PRINT)); +} + $genius = json_decode(file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/includes/app.json"), true)["genius"]; $id = array_values(array_filter(json_decode(file_get_contents("https://api.genius.com/search?q=" . rawurlencode($song["title"] . " " . $song["artist"]), false, stream_context_create([ diff --git a/app/index.php b/app/index.php index b53bb43..72ca74b 100644 --- a/app/index.php +++ b/app/index.php @@ -66,7 +66,7 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI