CB-12479: Use ProgressBar instead of ProgressDialog

This commit is contained in:
Connor Pearson 2018-10-01 10:17:32 -04:00 committed by Connor Pearson
parent ec082aa187
commit 4bd3fc422c

View File

@ -20,9 +20,7 @@ package org.apache.cordova.inappbrowser;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.ComponentName; import android.content.ComponentName;
import android.app.ProgressDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
@ -59,6 +57,7 @@ import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
@ -68,7 +67,6 @@ import org.apache.cordova.CordovaArgs;
import org.apache.cordova.CordovaHttpAuthHandler; import org.apache.cordova.CordovaHttpAuthHandler;
import org.apache.cordova.CordovaPlugin; import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView; import org.apache.cordova.CordovaWebView;
import org.apache.cordova.inappbrowser.InAppBrowserDialog;
import org.apache.cordova.LOG; import org.apache.cordova.LOG;
import org.apache.cordova.PluginManager; import org.apache.cordova.PluginManager;
import org.apache.cordova.PluginResult; import org.apache.cordova.PluginResult;
@ -119,6 +117,7 @@ public class InAppBrowser extends CordovaPlugin {
private InAppBrowserDialog dialog; private InAppBrowserDialog dialog;
private WebView inAppWebView; private WebView inAppWebView;
private EditText edittext; private EditText edittext;
private ProgressBar progressBar;
private CallbackContext callbackContext; private CallbackContext callbackContext;
private boolean showLocationBar = true; private boolean showLocationBar = true;
private boolean showZoomControls = true; private boolean showZoomControls = true;
@ -991,6 +990,13 @@ public class InAppBrowser extends CordovaPlugin {
main.addView(toolbar); main.addView(toolbar);
} }
// Progress Bar
progressBar = new ProgressBar(webView.getContext(), null, android.R.attr.progressBarStyleHorizontal);
progressBar.setIndeterminate(true);
progressBar.setVisibility(View.GONE);
main.addView(progressBar);
// Add our webview to our main view/layout // Add our webview to our main view/layout
RelativeLayout webViewLayout = new RelativeLayout(cordova.getActivity()); RelativeLayout webViewLayout = new RelativeLayout(cordova.getActivity());
webViewLayout.addView(inAppWebView); webViewLayout.addView(inAppWebView);
@ -1088,7 +1094,6 @@ public class InAppBrowser extends CordovaPlugin {
public class InAppBrowserClient extends WebViewClient { public class InAppBrowserClient extends WebViewClient {
EditText edittext; EditText edittext;
CordovaWebView webView; CordovaWebView webView;
ProgressDialog progressDialog;
/** /**
* Constructor. * Constructor.
@ -1099,17 +1104,6 @@ public class InAppBrowser extends CordovaPlugin {
public InAppBrowserClient(CordovaWebView webView, EditText mEditText) { public InAppBrowserClient(CordovaWebView webView, EditText mEditText) {
this.webView = webView; this.webView = webView;
this.edittext = mEditText; this.edittext = mEditText;
progressDialog = new ProgressDialog(webView.getContext());
progressDialog.setCancelable(true);
progressDialog.setCanceledOnTouchOutside(false);
progressDialog.setIndeterminate(true);
progressDialog.setOnCancelListener(new DialogInterface.OnCancelListener(){
@Override
public void onCancel(DialogInterface dialog){
inAppWebView.stopLoading();
}
});
} }
/** /**
@ -1236,8 +1230,7 @@ public class InAppBrowser extends CordovaPlugin {
} catch (JSONException ex) { } catch (JSONException ex) {
LOG.e(LOG_TAG, "URI passed in has caused a JSON error."); LOG.e(LOG_TAG, "URI passed in has caused a JSON error.");
} }
progressBar.setVisibility(View.VISIBLE);
progressDialog.show();
} }
@ -1265,8 +1258,7 @@ public class InAppBrowser extends CordovaPlugin {
} catch (JSONException ex) { } catch (JSONException ex) {
LOG.d(LOG_TAG, "Should never happen"); LOG.d(LOG_TAG, "Should never happen");
} }
progressBar.setVisibility(View.GONE);
progressDialog.dismiss();
} }
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
@ -1283,8 +1275,7 @@ public class InAppBrowser extends CordovaPlugin {
} catch (JSONException ex) { } catch (JSONException ex) {
LOG.d(LOG_TAG, "Should never happen"); LOG.d(LOG_TAG, "Should never happen");
} }
progressBar.setVisibility(View.GONE);
progressDialog.dismiss();
} }
/** /**