From 67ec2f64e41fb53a80c6993cfebd81ffba511eb9 Mon Sep 17 00:00:00 2001 From: Maxr1998 Date: Fri, 24 Jul 2020 16:54:01 +0200 Subject: [PATCH] Setup web app, improve styling --- app/src/main/AndroidManifest.xml | 12 +++++- .../org/jellyfin/android/WebappActivity.kt | 41 +++++++++++++++++++ .../org/jellyfin/android/utils/ViewUtils.kt | 10 +++++ app/src/main/res/layout/activity_webapp.xml | 5 +++ app/src/main/res/values/colors.xml | 6 +-- app/src/main/res/values/styles.xml | 6 +-- 6 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/org/jellyfin/android/WebappActivity.kt create mode 100644 app/src/main/java/org/jellyfin/android/utils/ViewUtils.kt create mode 100644 app/src/main/res/layout/activity_webapp.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7cfa2c9e..3a9c0c88 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,12 +1,20 @@ + + - + android:theme="@style/AppTheme"> + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/org/jellyfin/android/WebappActivity.kt b/app/src/main/java/org/jellyfin/android/WebappActivity.kt new file mode 100644 index 00000000..91550f60 --- /dev/null +++ b/app/src/main/java/org/jellyfin/android/WebappActivity.kt @@ -0,0 +1,41 @@ +package org.jellyfin.android + +import android.annotation.SuppressLint +import android.os.Bundle +import android.webkit.WebChromeClient +import android.webkit.WebView +import androidx.appcompat.app.AppCompatActivity +import org.jellyfin.android.utils.lazyView + +class WebappActivity : AppCompatActivity() { + + private val webView: WebView by lazyView(R.id.web_view) + + @SuppressLint("SetJavaScriptEnabled") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_webapp) + + webView.webChromeClient = WebChromeClient() + webView.settings.apply { + javaScriptEnabled = true + domStorageEnabled = true + allowUniversalAccessFromFileURLs = true + } + + webView.loadUrl("file:///android_asset/www/index.html") + } + + override fun onBackPressed() { + val history = webView.copyBackForwardList() + if (webView.canGoBack() && history.currentIndex > 1) { + webView.goBack() + } else super.onBackPressed() + } + + companion object { + init { + if (BuildConfig.DEBUG) WebView.setWebContentsDebuggingEnabled(true) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/org/jellyfin/android/utils/ViewUtils.kt b/app/src/main/java/org/jellyfin/android/utils/ViewUtils.kt new file mode 100644 index 00000000..560080ae --- /dev/null +++ b/app/src/main/java/org/jellyfin/android/utils/ViewUtils.kt @@ -0,0 +1,10 @@ +@file:Suppress("NOTHING_TO_INLINE") + +package org.jellyfin.android.utils + +import android.app.Activity +import android.webkit.WebView +import androidx.annotation.IdRes + +inline fun Activity.lazyView(@IdRes id: Int) = + lazy(LazyThreadSafetyMode.NONE) { findViewById(id) } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_webapp.xml b/app/src/main/res/layout/activity_webapp.xml new file mode 100644 index 00000000..04bd2d8f --- /dev/null +++ b/app/src/main/res/layout/activity_webapp.xml @@ -0,0 +1,5 @@ + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 4faecfa8..5d30bfa3 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,6 +1,6 @@ - #6200EE - #3700B3 - #03DAC5 + #202020 + #1a1a1a + #00a4dc \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index fac92916..72786088 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,10 +1,8 @@ - - - \ No newline at end of file