From 03914d7e71287e89acd6ee8a6c49d215397404eb Mon Sep 17 00:00:00 2001 From: Thomas Date: Wed, 30 Sep 2020 15:35:25 +0200 Subject: [PATCH] Display content only when available --- .../app/fedilab/mobilizon/MainActivity.java | 26 ++++---- .../webview/MobilizonWebViewClient.java | 19 +++--- app/src/main/res/layout/content_main.xml | 60 ++++++++++++------- 3 files changed, 65 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/app/fedilab/mobilizon/MainActivity.java b/app/src/main/java/app/fedilab/mobilizon/MainActivity.java index b45d2d4..cb13001 100644 --- a/app/src/main/java/app/fedilab/mobilizon/MainActivity.java +++ b/app/src/main/java/app/fedilab/mobilizon/MainActivity.java @@ -20,7 +20,8 @@ import android.webkit.WebView; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.LinearLayout; -import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; import android.widget.Toast; import androidx.annotation.NonNull; @@ -75,8 +76,10 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On } }; - private ProgressBar progressBar; + private RelativeLayout progress; private WebView main_webview; + private TextView progressText; + private FrameLayout webview_container; @Override protected void onCreate(Bundle savedInstanceState) { @@ -111,8 +114,9 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On drawMenu(); main_webview = findViewById(R.id.main_webview); - progressBar = findViewById(R.id.progressBar); - FrameLayout webview_container = findViewById(R.id.webview_container); + progress = findViewById(R.id.progress); + progressText = findViewById(R.id.progressText); + webview_container = findViewById(R.id.webview_container); final ViewGroup videoLayout = findViewById(R.id.videoLayout); String instance = Helper.getLiveInstance(MainActivity.this); Helper.initializeWebview(MainActivity.this, main_webview); @@ -171,20 +175,22 @@ public class MainActivity extends AppCompatActivity implements NavigationView.On } public void showProgressDialog() { - if (progressBar != null) { - progressBar.setVisibility(View.VISIBLE); + if (progress != null) { + progress.setVisibility(View.VISIBLE); + webview_container.setVisibility(View.GONE); } } public void hideProgressDialog() { - if (progressBar != null) { - progressBar.setVisibility(View.GONE); + if (progress != null) { + progress.setVisibility(View.GONE); + webview_container.setVisibility(View.VISIBLE); } } public void setProgressDialog(int progress) { - if (progressBar != null) { - progressBar.setProgress(progress); + if (progressText != null) { + progressText.setText(String.format("%s%%", progress)); } } diff --git a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java index 9e59cf9..a1d326b 100644 --- a/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java +++ b/app/src/main/java/app/fedilab/mobilizon/webview/MobilizonWebViewClient.java @@ -13,16 +13,16 @@ package app.fedilab.mobilizon.webview; * * You should have received a copy of the GNU General Public License along with Mobilizon app; if not, * see . */ - import android.app.Activity; import android.content.Context; import android.content.Intent; + import android.graphics.Bitmap; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Build; import android.provider.Settings; -import android.util.Log; +import android.view.View; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebResourceResponse; @@ -46,7 +46,7 @@ public class MobilizonWebViewClient extends WebViewClient { private Activity activity; private CoordinatorLayout rootView; - public MobilizonWebViewClient(Activity activity) { + public MobilizonWebViewClient(Activity activity){ this.activity = activity; rootView = activity.findViewById(R.id.main_layout); } @@ -58,14 +58,15 @@ public class MobilizonWebViewClient extends WebViewClient { } + @Override public WebResourceResponse shouldInterceptRequest(final WebView view, WebResourceRequest request) { - if (request.getUrl().toString().endsWith("api")) { + if(request.getUrl().toString().endsWith("api")){ Map headers = request.getRequestHeaders(); Iterator> it = headers.entrySet().iterator(); while (it.hasNext()) { Map.Entry pair = it.next(); - if (pair.getKey().compareTo("authorization") == 0 && pair.getValue().startsWith("Bearer")) { + if( pair.getKey().compareTo("authorization") == 0 && pair.getValue().startsWith("Bearer")) { MainActivity.isAuthenticated = true; } it.remove(); @@ -76,7 +77,7 @@ public class MobilizonWebViewClient extends WebViewClient { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { - MainActivity.isAuthenticated = false; + view.setVisibility(View.INVISIBLE); super.onPageStarted(view, url, favicon); if (activity instanceof MainActivity) { ((MainActivity) activity).showProgressDialog(); @@ -141,9 +142,9 @@ public class MobilizonWebViewClient extends WebViewClient { @Override public void onPageFinished(WebView view, String url) { - Log.v(Helper.TAG, "onPageFinished: " + url); Helper.injectCSS(activity, view, "css/style.css"); - ((MainActivity) activity).hideProgressDialog(); - ((MainActivity) activity).drawMenu(); + ((MainActivity)activity).hideProgressDialog(); + ((MainActivity)activity).drawMenu(); + view.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index d2ea73e..eba265d 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -4,33 +4,51 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" + android:paddingBottom="?attr/actionBarSize" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context=".MainActivity"> - - + - - - + + + + + + +