summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaindropsSys <raindrops@equestria.dev>2023-11-08 22:02:10 +0100
committerRaindropsSys <raindrops@equestria.dev>2023-11-08 22:02:10 +0100
commit492cb3104fabe1b54f360d2a0ea57de60674f404 (patch)
treef17178b8af7912113e3081a103bac267aa180c8e
parentb83a38434156038bc02db74cb93fa8460d0f2f32 (diff)
downloadmist-492cb3104fabe1b54f360d2a0ea57de60674f404.tar.gz
mist-492cb3104fabe1b54f360d2a0ea57de60674f404.tar.bz2
mist-492cb3104fabe1b54f360d2a0ea57de60674f404.zip
Updated 7 files, added android/app/release/app-release.apk.zip and renamed android/app/release/app-release.apka (automated)
-rw-r--r--android/.idea/deploymentTargetDropDown.xml15
-rw-r--r--android/app/build.gradle.kts4
-rw-r--r--android/app/release/app-release.apk (renamed from android/app/release/app-release.apka)bin23034331 -> 23035043 bytes
-rw-r--r--android/app/release/app-release.apk.zipbin0 -> 8354599 bytes
-rw-r--r--android/app/release/output-metadata.json4
-rw-r--r--android/app/src/main/java/dev/equestria/mist/JavaScriptExtensions.kt5
-rw-r--r--android/app/src/main/java/dev/equestria/mist/MainActivity.kt5
-rw-r--r--api/lyrics.php17
-rw-r--r--app/index.php12
9 files changed, 56 insertions, 6 deletions
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 @@
<component name="deploymentTargetDropDown">
<value>
<entry key="app">
- <State />
+ <State>
+ <targetSelectedWithDropDown>
+ <Target>
+ <type value="QUICK_BOOT_TARGET" />
+ <deviceKey>
+ <Key>
+ <type value="VIRTUAL_DEVICE_PATH" />
+ <value value="$USER_HOME$/.android/avd/Pixel_4a_API_31.avd" />
+ </Key>
+ </deviceKey>
+ </Target>
+ </targetSelectedWithDropDown>
+ <timeTargetWasSelectedWithDropDown value="2023-11-08T20:38:44.325223Z" />
+ </State>
</entry>
</value>
</component>
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.apka b/android/app/release/app-release.apk
index 0b3aa69..aa449ce 100644
--- a/android/app/release/app-release.apka
+++ b/android/app/release/app-release.apk
Binary files 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
--- /dev/null
+++ b/android/app/release/app-release.apk.zip
Binary files 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
@@ -90,6 +90,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()
val style = MediaStyle()
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
</div>
<div id="mobile-navbar" style="padding: 0 10px; border-bottom: 1px solid rgba(0, 0, 0, .1); height: 48px; top: var(--android-status-bar); left: 0; right: 0; position: fixed; display: none; grid-template-columns: max-content 1fr;">
- <div style="display: flex; align-items: center;" onclick="document.getElementById('ui').contentWindow.history.back();">
+ <div style="display: flex; align-items: center;" onclick="window.back();">
<img alt="Back" src="/assets/icons/back-mobile.svg" style="height: 32px; width: 32px;">
</div>
<div style="display: flex; align-items: center; margin-left: 10px;" id="mobile-navbar-title"></div>
@@ -114,6 +114,16 @@ require_once $_SERVER['DOCUMENT_ROOT'] . "/includes/session.php"; global $_PROFI
});
}
+ window.back = () => {
+ if (document.getElementById('ui').contentWindow.history.length > 1) {
+ document.getElementById('ui').contentWindow.history.back();
+ } else {
+ if (window.MistAndroid) {
+ window.MistAndroid.quitApp();
+ }
+ }
+ }
+
window.playlist = [];
window.showLyrics = () => {