diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7b463016..d2604061 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -31,6 +31,10 @@ android { aaptOptions.cruncherEnabled = false // Disable png crunching } } + @Suppress("UnstableApiUsage") + buildFeatures { + viewBinding = true + } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 diff --git a/app/src/main/java/org/jellyfin/mobile/WebappActivity.kt b/app/src/main/java/org/jellyfin/mobile/WebappActivity.kt index 7f8babf8..4cbdf6ce 100644 --- a/app/src/main/java/org/jellyfin/mobile/WebappActivity.kt +++ b/app/src/main/java/org/jellyfin/mobile/WebappActivity.kt @@ -7,24 +7,10 @@ import android.content.Intent import android.content.ServiceConnection import android.os.Bundle import android.os.IBinder -import android.view.KeyEvent -import android.view.View -import android.view.inputmethod.EditorInfo -import android.view.inputmethod.InputMethodManager import android.webkit.* -import android.widget.Button -import android.widget.EditText import android.widget.FrameLayout import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import androidx.core.content.getSystemService -import androidx.core.view.doOnNextLayout -import androidx.core.view.isVisible -import androidx.core.view.postDelayed -import androidx.lifecycle.lifecycleScope -import kotlinx.coroutines.launch -import okhttp3.HttpUrl -import okhttp3.HttpUrl.Companion.toHttpUrlOrNull import okhttp3.OkHttpClient import org.jellyfin.mobile.bridge.Commands.triggerInputManagerAction import org.jellyfin.mobile.bridge.NativeInterface @@ -32,6 +18,7 @@ import org.jellyfin.mobile.bridge.NativePlayer import org.jellyfin.mobile.cast.Chromecast import org.jellyfin.mobile.utils.* import org.jellyfin.mobile.utils.Constants.INPUT_MANAGER_COMMAND_BACK +import org.jellyfin.mobile.webapp.ConnectionHelper import timber.log.Timber import java.io.Reader @@ -40,6 +27,10 @@ class WebappActivity : AppCompatActivity(), WebViewController { val appPreferences: AppPreferences by lazy { AppPreferences(this) } val httpClient = OkHttpClient() val chromecast = Chromecast() + private val connectionHelper = ConnectionHelper(this) + + val rootView: FrameLayout by lazyView(R.id.root_view) + val webView: WebView by lazyView(R.id.web_view) var serviceBinder: RemotePlayerService.ServiceBinder? = null private set @@ -54,15 +45,6 @@ class WebappActivity : AppCompatActivity(), WebViewController { } } - private var cachedInstanceUrl: HttpUrl? = null - private var connected = false - - private val rootView: FrameLayout by lazyView(R.id.root_view) - private val webView: WebView by lazyView(R.id.web_view) - private val serverSetupLayout: View by lazy { layoutInflater.inflate(R.layout.connect_server, rootView, false) } - private val hostInput: EditText by lazy { serverSetupLayout.findViewById(R.id.host_input) } - private val connectButton: Button by lazy { serverSetupLayout.findViewById