From 303f0dfe9c7c50b619ba14bbdce90b6feb5ad3b5 Mon Sep 17 00:00:00 2001 From: Chirag Jain Date: Mon, 13 Jul 2020 16:45:27 +0530 Subject: [PATCH] Fix App Not Loading (#561) --- .../anywhere/activity/ServerAppActivity.java | 51 +++++++++++++++---- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/amahi/anywhere/activity/ServerAppActivity.java b/src/main/java/org/amahi/anywhere/activity/ServerAppActivity.java index 386a4731b..7f7fc1712 100644 --- a/src/main/java/org/amahi/anywhere/activity/ServerAppActivity.java +++ b/src/main/java/org/amahi/anywhere/activity/ServerAppActivity.java @@ -22,7 +22,6 @@ import android.content.Context; import android.graphics.Bitmap; import android.os.Bundle; -import androidx.appcompat.app.AppCompatActivity; import android.text.TextUtils; import android.view.Menu; import android.view.MenuItem; @@ -31,6 +30,13 @@ import android.webkit.WebView; import android.webkit.WebViewClient; +import androidx.appcompat.app.AppCompatActivity; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.resource.drawable.GlideDrawable; +import com.bumptech.glide.request.animation.GlideAnimation; +import com.bumptech.glide.request.target.SimpleTarget; + import org.amahi.anywhere.AmahiApplication; import org.amahi.anywhere.R; import org.amahi.anywhere.server.client.ServerClient; @@ -54,6 +60,8 @@ public class ServerAppActivity extends AppCompatActivity { @Inject ServerClient serverClient; + Context ctx; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -67,6 +75,7 @@ protected void onCreate(Bundle savedInstanceState) { private void setUpInjections() { AmahiApplication.from(this).inject(this); + ctx = this; } private void setUpApp(Bundle state) { @@ -83,7 +92,7 @@ private void setUpAppWebCookie() { String appCookies = Preferences.ofCookie(this).getAppCookies(appHost); for (String appCookie : TextUtils.split(appCookies, ";")) { - CookieManager.getInstance().setCookie(getAppUrl(), appCookie); + CookieManager.getInstance().setCookie(getServerUrl(), appCookie); } } @@ -91,10 +100,19 @@ private ServerApp getApp() { return getIntent().getParcelableExtra(Intents.Extras.SERVER_APP); } - private String getAppUrl() { + private String getServerUrl() { return serverClient.getServerAddress(); } + private String getAppUrl() { + String host = getApp().getHost(); + if (host.matches("^(http|https)://")) { + return host; + } else { + return "http://" + host; + } + } + private void setUpAppWebAgent() { getWebView().getSettings().setUserAgentString(getAppWebAgent()); } @@ -130,6 +148,18 @@ private void setUpAppWebTitle() { getSupportActionBar().setTitle(getApp().getName()); } + private void setUpAppWebIcon() { + getSupportActionBar().setIcon(R.drawable.ic_launcher); + if (!TextUtils.isEmpty(getApp().getLogoUrl())) { + Glide.with(ctx).load(getApp().getLogoUrl()).into(new SimpleTarget() { + @Override + public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) { + getSupportActionBar().setIcon(resource); + } + }); + } + } + private void setUpAppWebContent(Bundle state) { if (state == null) { getWebView().loadUrl(getAppUrl()); @@ -192,9 +222,8 @@ protected void onPause() { @Override protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - getWebView().saveState(outState); + super.onSaveInstanceState(outState); } @Override @@ -210,7 +239,7 @@ protected void onDestroy() { private void tearDownAppWebCookie() { String appHost = getApp().getHost(); - String appCookies = CookieManager.getInstance().getCookie(getAppUrl()); + String appCookies = CookieManager.getInstance().getCookie(getServerUrl()); Preferences.ofCookie(this).setAppCookies(appHost, appCookies); @@ -227,6 +256,11 @@ private void showApp() { ViewDirector.of(this, R.id.animator).show(R.id.web_content); } + @Override + protected void attachBaseContext(Context newBase) { + super.attachBaseContext(LocaleHelper.onAttach(newBase)); + } + private static final class AppWebAgentField { public static final String HOST = "Vhost"; @@ -255,9 +289,4 @@ public void onPageFinished(WebView appWebView, String appUrl) { activity.showApp(); } } - - @Override - protected void attachBaseContext(Context newBase) { - super.attachBaseContext(LocaleHelper.onAttach(newBase)); - } }