diff --git a/plugin.xml b/plugin.xml
index 65ce77f34..eaedbdfb9 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -66,6 +66,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java
index eed595016..413d0b4a5 100644
--- a/src/android/InAppBrowser.java
+++ b/src/android/InAppBrowser.java
@@ -17,6 +17,10 @@ Licensed to the Apache Software Foundation (ASF) under one
under the License.
*/
package org.apache.cordova.inappbrowser;
+import android.graphics.Typeface;
+import android.text.TextUtils;
+import android.util.Log;
+
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
@@ -34,16 +38,12 @@ Licensed to the Apache Software Foundation (ASF) under one
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.text.InputType;
import android.util.TypedValue;
import android.view.Gravity;
-import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
-import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodManager;
import android.webkit.CookieManager;
import android.webkit.HttpAuthHandler;
import android.webkit.JavascriptInterface;
@@ -56,7 +56,6 @@ Licensed to the Apache Software Foundation (ASF) under one
import android.webkit.WebView;
import android.webkit.DownloadListener;
import android.webkit.WebViewClient;
-import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -82,6 +81,7 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.Arrays;
import java.util.List;
import java.util.HashMap;
+import java.util.Map;
import java.util.StringTokenizer;
@SuppressLint("SetJavaScriptEnabled")
@@ -125,7 +125,12 @@ public class InAppBrowser extends CordovaPlugin {
private InAppBrowserDialog dialog;
private WebView inAppWebView;
- private EditText edittext;
+ private TextView tvLinkUrl;
+
+ private ImageView faviconView;
+
+ private TextView tvHeaderUrl;
+
private CallbackContext callbackContext;
private boolean showLocationBar = true;
private boolean showZoomControls = true;
@@ -141,7 +146,7 @@ public class InAppBrowser extends CordovaPlugin {
private String closeButtonCaption = "";
private String closeButtonColor = "";
private boolean leftToRight = false;
- private int toolbarColor = android.graphics.Color.LTGRAY;
+ private int toolbarColor = Color.WHITE;
private boolean hideNavigationButtons = false;
private String navigationButtonColor = "";
private boolean hideUrlBar = false;
@@ -161,6 +166,7 @@ public class InAppBrowser extends CordovaPlugin {
* @return A PluginResult object with a status and message.
*/
public boolean execute(String action, CordovaArgs args, final CallbackContext callbackContext) throws JSONException {
+ Log.d("AN TEST", "action is: " + action);
if (action.equals("open")) {
this.callbackContext = callbackContext;
final String url = args.getString(0);
@@ -597,9 +603,9 @@ private void goForward() {
* @param url to load
*/
private void navigate(String url) {
- InputMethodManager imm = (InputMethodManager)this.cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
+ /* InputMethodManager imm = (InputMethodManager)this.cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
-
+*/
if (!url.startsWith("http") && !url.startsWith("file:")) {
this.inAppWebView.loadUrl("http://" + url);
} else {
@@ -750,7 +756,7 @@ private View createCloseButton(int id) {
_close = close;
}
else {
- ImageButton close = new ImageButton(cordova.getActivity());
+ ImageView close = new ImageView(cordova.getActivity());
int closeResId = activityRes.getIdentifier("ic_action_remove", "drawable", cordova.getActivity().getPackageName());
Drawable closeIcon = activityRes.getDrawable(closeResId);
if (closeButtonColor != "") close.setColorFilter(android.graphics.Color.parseColor(closeButtonColor));
@@ -781,6 +787,7 @@ public void onClick(View v) {
@SuppressLint("NewApi")
public void run() {
+ Log.d("AN TEST", "785");
// CB-6702 InAppBrowser hangs when opening more than one instance
if (dialog != null) {
dialog.dismiss();
@@ -805,7 +812,7 @@ public void run() {
//Please, no more black!
toolbar.setBackgroundColor(toolbarColor);
toolbar.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, this.dpToPixels(TOOLBAR_HEIGHT)));
- toolbar.setPadding(this.dpToPixels(2), this.dpToPixels(2), this.dpToPixels(2), this.dpToPixels(2));
+ toolbar.setPadding(this.dpToPixels(5), this.dpToPixels(0), this.dpToPixels(5), this.dpToPixels(0));
if (leftToRight) {
toolbar.setHorizontalGravity(Gravity.LEFT);
} else {
@@ -815,7 +822,7 @@ public void run() {
// Action Button Container layout
RelativeLayout actionButtonContainer = new RelativeLayout(cordova.getActivity());
- RelativeLayout.LayoutParams actionButtonLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
+ RelativeLayout.LayoutParams actionButtonLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
if (leftToRight) actionButtonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
else actionButtonLayoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
actionButtonContainer.setLayoutParams(actionButtonLayoutParams);
@@ -824,9 +831,10 @@ public void run() {
actionButtonContainer.setId(leftToRight ? Integer.valueOf(5) : Integer.valueOf(1));
// Back button
- ImageButton back = new ImageButton(cordova.getActivity());
- RelativeLayout.LayoutParams backLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
+ ImageView back = new ImageView(cordova.getActivity());
+ RelativeLayout.LayoutParams backLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
backLayoutParams.addRule(RelativeLayout.ALIGN_LEFT);
+ backLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
back.setLayoutParams(backLayoutParams);
back.setContentDescription("Back Button");
back.setId(Integer.valueOf(2));
@@ -837,7 +845,7 @@ public void run() {
back.setBackground(null);
back.setImageDrawable(backIcon);
back.setScaleType(ImageView.ScaleType.FIT_CENTER);
- back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
+ // back.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
back.getAdjustViewBounds();
back.setOnClickListener(new View.OnClickListener() {
@@ -847,7 +855,7 @@ public void onClick(View v) {
});
// Forward button
- ImageButton forward = new ImageButton(cordova.getActivity());
+ /* ImageButton forward = new ImageButton(cordova.getActivity());
RelativeLayout.LayoutParams forwardLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
forwardLayoutParams.addRule(RelativeLayout.RIGHT_OF, 2);
forward.setLayoutParams(forwardLayoutParams);
@@ -866,30 +874,86 @@ public void onClick(View v) {
public void onClick(View v) {
goForward();
}
- });
-
- // Edit Text Box
- edittext = new EditText(cordova.getActivity());
- RelativeLayout.LayoutParams textLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
- textLayoutParams.addRule(RelativeLayout.RIGHT_OF, 1);
+ });*/
+
+
+ // ImageView Lock SSL
+ ImageView ivLockSsl = new ImageView(cordova.getActivity());
+ RelativeLayout.LayoutParams lockSSLLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
+ lockSSLLayoutParams.addRule(RelativeLayout.RIGHT_OF, 1);
+ lockSSLLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
+ lockSSLLayoutParams.setMargins(this.dpToPixels(5), this.dpToPixels(0), this.dpToPixels(10), this.dpToPixels(0));
+ ivLockSsl.setLayoutParams(lockSSLLayoutParams);
+ ivLockSsl.setContentDescription("Lock SLL Image");
+ ivLockSsl.setId(Integer.valueOf(8));
+ int lockSSLResId = activityRes.getIdentifier("ic_lock_ssl", "drawable", cordova.getActivity().getPackageName());
+ Drawable lockSSLIcon = activityRes.getDrawable(lockSSLResId);
+ if (navigationButtonColor != "") ivLockSsl.setColorFilter(android.graphics.Color.parseColor(navigationButtonColor));
+ ivLockSsl.setBackground(null);
+ ivLockSsl.setImageDrawable(lockSSLIcon);
+ ivLockSsl.setScaleType(ImageView.ScaleType.FIT_CENTER);
+ //ivLockSsl.setVisibility(View.GONE);
+ // ivLockSsl.setPadding(0, this.dpToPixels(10), 0, this.dpToPixels(10));
+ ivLockSsl.getAdjustViewBounds();
+
+ // Image View favicon
+ ImageView ivFavicon = new ImageView(cordova.getActivity());
+ RelativeLayout.LayoutParams ivFaviconLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
+ ivFaviconLayoutParams.addRule(RelativeLayout.RIGHT_OF, 1);
+ ivFaviconLayoutParams.addRule(RelativeLayout.CENTER_VERTICAL);
+ ivFaviconLayoutParams.setMargins(this.dpToPixels(5), this.dpToPixels(0), this.dpToPixels(10), this.dpToPixels(0));
+ ivFaviconLayoutParams.width = this.dpToPixels(20);
+ ivFavicon.setLayoutParams(ivFaviconLayoutParams);
+ ivFavicon.setId(Integer.valueOf(8));
+
+ // TextView Title Header URL
+
+ tvHeaderUrl = new TextView(cordova.getActivity());
+ RelativeLayout.LayoutParams textLayoutParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ textLayoutParams.addRule(RelativeLayout.RIGHT_OF, 8);
textLayoutParams.addRule(RelativeLayout.LEFT_OF, 5);
- edittext.setLayoutParams(textLayoutParams);
- edittext.setId(Integer.valueOf(4));
- edittext.setSingleLine(true);
- edittext.setText(url);
- edittext.setInputType(InputType.TYPE_TEXT_VARIATION_URI);
- edittext.setImeOptions(EditorInfo.IME_ACTION_GO);
- edittext.setInputType(InputType.TYPE_NULL); // Will not except input... Makes the text NON-EDITABLE
- edittext.setOnKeyListener(new View.OnKeyListener() {
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- // If the event is a key-down event on the "enter" button
- if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
- navigate(edittext.getText().toString());
- return true;
- }
- return false;
- }
- });
+ textLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT);
+ textLayoutParams.setMargins(this.dpToPixels(5), this.dpToPixels(2), this.dpToPixels(5), this.dpToPixels(0));
+ tvHeaderUrl.setLayoutParams(textLayoutParams);
+ tvHeaderUrl.setId(Integer.valueOf(9));
+ tvHeaderUrl.setSingleLine(true);
+ // tvHeaderUrl.setText(url);
+ tvHeaderUrl.setTextColor(Color.BLACK);
+ tvHeaderUrl.setTextSize(13);
+ tvHeaderUrl.setTextAlignment(View.TEXT_ALIGNMENT_VIEW_START );
+ tvHeaderUrl.setTypeface(null, Typeface.BOLD);
+ tvHeaderUrl.setEllipsize(TextUtils.TruncateAt.END);
+
+ // TextView Description link URL
+ tvLinkUrl = new TextView(cordova.getActivity());
+ RelativeLayout.LayoutParams textLayoutParamsLink = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
+ textLayoutParamsLink.addRule(RelativeLayout.RIGHT_OF, 8);
+ textLayoutParamsLink.addRule(RelativeLayout.LEFT_OF, 5);
+ textLayoutParamsLink.addRule(RelativeLayout.BELOW,9);
+ textLayoutParamsLink.setMargins(this.dpToPixels(5), this.dpToPixels(2), this.dpToPixels(5), this.dpToPixels(0));
+ tvLinkUrl.setLayoutParams(textLayoutParamsLink);
+ tvLinkUrl.setId(Integer.valueOf(4));
+ tvLinkUrl.setSingleLine(true);
+ tvLinkUrl.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
+ // tvLinkUrl.setText(url);
+ tvLinkUrl.setTextColor(Color.BLACK);
+ tvLinkUrl.setTextSize(11);
+ tvLinkUrl.setEllipsize(TextUtils.TruncateAt.END);
+
+
+ // edittext.setInputType(InputType.TYPE_TEXT_VARIATION_URI);
+ // edittext.setImeOptions(EditorInfo.IME_ACTION_GO);
+ // edittext.setInputType(InputType.TYPE_NULL); // Will not except input... Makes the text NON-EDITABLE
+// edittext.setOnKeyListener(new View.OnKeyListener() {
+// public boolean onKey(View v, int keyCode, KeyEvent event) {
+// // If the event is a key-down event on the "enter" button
+// if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
+// navigate(edittext.getText().toString());
+// return true;
+// }
+// return false;
+// }
+// });
// Header Close/Done button
@@ -920,10 +984,13 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
inAppWebView = new WebView(cordova.getActivity());
inAppWebView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
inAppWebView.setId(Integer.valueOf(6));
+ inAppWebView.setId(Integer.valueOf(6));
+
// File Chooser Implemented ChromeClient
inAppWebView.setWebChromeClient(new InAppChromeClient(thatWebView) {
public boolean onShowFileChooser (WebView webView, ValueCallback filePathCallback, WebChromeClient.FileChooserParams fileChooserParams)
{
+
LOG.d(LOG_TAG, "File Chooser 5.0+");
// If callback exists, finish it.
if(mUploadCallback != null) {
@@ -940,8 +1007,20 @@ public boolean onShowFileChooser (WebView webView, ValueCallback filePath
cordova.startActivityForResult(InAppBrowser.this, Intent.createChooser(content, "Select File"), FILECHOOSER_REQUESTCODE);
return true;
}
+
+ @Override
+ public void onReceivedIcon(WebView view, Bitmap icon) {
+ ivFavicon.setImageBitmap(icon);
+ super.onReceivedIcon(view, icon);
+ }
+
+ @Override
+ public void onReceivedTitle(WebView view, String title) {
+ tvHeaderUrl.setText(title);
+ }
});
- currentClient = new InAppBrowserClient(thatWebView, edittext, beforeload);
+
+ currentClient = new InAppBrowserClient(thatWebView,tvHeaderUrl, tvLinkUrl, beforeload,ivLockSsl);
inAppWebView.setWebViewClient(currentClient);
WebSettings settings = inAppWebView.getSettings();
settings.setJavaScriptEnabled(true);
@@ -1032,11 +1111,15 @@ public void postMessage(String data) {
// Add the back and forward buttons to our action button container layout
actionButtonContainer.addView(back);
- actionButtonContainer.addView(forward);
+ // actionButtonContainer.addView(forward);
// Add the views to our toolbar if they haven't been disabled
- if (!hideNavigationButtons) toolbar.addView(actionButtonContainer);
- if (!hideUrlBar) toolbar.addView(edittext);
+ // if (!hideNavigationButtons) toolbar.addView(actionButtonContainer);
+ if (!hideUrlBar) toolbar.addView(tvHeaderUrl);
+ toolbar.addView((ivFavicon));
+ //if (!hideUrlBar) toolbar.addView(tvLinkUrl);
+ //if (!hideUrlBar) toolbar.addView(ivLockSsl);
+
// Don't add the toolbar if its been disabled
if (getShowLocationBar()) {
@@ -1123,54 +1206,74 @@ public void onActivityResult(int requestCode, int resultCode, Intent intent) {
* The webview client receives notifications about appView
*/
public class InAppBrowserClient extends WebViewClient {
- EditText edittext;
+ TextView tvLinkUrl;
+
+
+ TextView tvHeaderUrl;
CordovaWebView webView;
String beforeload;
boolean waitForBeforeload;
+ ImageView ivLockSsl;
/**
* Constructor.
*
* @param webView
- * @param mEditText
+ * @param mTvHeader
+ * @param mTvLink
*/
- public InAppBrowserClient(CordovaWebView webView, EditText mEditText, String beforeload) {
+ public InAppBrowserClient(CordovaWebView webView,TextView mTvHeader, TextView mTvLink, String beforeload,ImageView mIvSsl) {
this.webView = webView;
- this.edittext = mEditText;
+ this.tvLinkUrl = mTvLink;
+ this.tvHeaderUrl = mTvHeader;
+ this.ivLockSsl = mIvSsl;
this.beforeload = beforeload;
this.waitForBeforeload = beforeload != null;
}
- /**
- * Override the URL that should be loaded
- *
- * Legacy (deprecated in API 24)
- * For Android 6 and below.
- *
- * @param webView
- * @param url
- */
+ @Override
+ public void doUpdateVisitedHistory(WebView view, String url, boolean isReload) {
+ tvHeaderUrl.setText(view.getTitle());
+ tvLinkUrl.setText(url);
+ Log.d("AN TEST", "Title: " + view.getFavicon());
+
+ super.doUpdateVisitedHistory(view, url, isReload);
+ }
+
+
+
+// *
+// * Override the URL that should be loaded
+// *
+// * Legacy (deprecated in API 24)
+// * For Android 6 and below.
+// *
+// * @param webView
+// * @param url
+
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String url) {
+
+
return shouldOverrideUrlLoading(url, null);
}
- /**
- * Override the URL that should be loaded
- *
- * New (added in API 24)
- * For Android 7 and above.
- *
- * @param webView
- * @param request
- */
+// *
+// * Override the URL that should be loaded
+// *
+// * New (added in API 24)
+// * For Android 7 and above.
+// *
+// * @param webView
+// * @param request
+
@TargetApi(Build.VERSION_CODES.N)
@Override
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest request) {
+
return shouldOverrideUrlLoading(request.getUrl().toString(), request.getMethod());
}
-
/**
* Override the URL that should be loaded
*
@@ -1180,6 +1283,8 @@ public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest requ
* @param method
*/
public boolean shouldOverrideUrlLoading(String url, String method) {
+
+
boolean override = false;
boolean useBeforeload = false;
String errorMessage = null;
@@ -1325,6 +1430,7 @@ private boolean sendBeforeLoad(String url, String method) {
*/
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
+
return shouldInterceptRequest(request.getUrl().toString(), super.shouldInterceptRequest(view, request), request.getMethod());
}
@@ -1341,7 +1447,16 @@ public WebResourceResponse shouldInterceptRequest(String url, WebResourceRespons
*/
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
+ if(favicon != null) {
+ Log.d("AN TEST", "Co icon");
+ }
super.onPageStarted(view, url, favicon);
+
+ boolean hasSsl = url.toLowerCase().startsWith("https://");
+ if(hasSsl){
+ ivLockSsl.setVisibility(View.VISIBLE);
+ }
+
String newloc = "";
if (url.startsWith("http:") || url.startsWith("https:") || url.startsWith("file:")) {
newloc = url;
@@ -1355,9 +1470,9 @@ public void onPageStarted(WebView view, String url, Bitmap favicon) {
}
// Update the UI if we haven't already
- if (!newloc.equals(edittext.getText().toString())) {
- edittext.setText(newloc);
- }
+// if (!newloc.equals(tvLinkUrl.getText().toString())) {
+// tvLinkUrl.setText(newloc);
+// }
try {
JSONObject obj = new JSONObject();
@@ -1369,6 +1484,8 @@ public void onPageStarted(WebView view, String url, Bitmap favicon) {
}
}
+
+
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
@@ -1391,6 +1508,8 @@ public void onPageFinished(WebView view, String url) {
} catch (JSONException ex) {
LOG.d(LOG_TAG, "Should never happen");
}
+
+
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
@@ -1412,6 +1531,10 @@ public void onReceivedError(WebView view, int errorCode, String description, Str
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
+
+ ivLockSsl.setVisibility(View.GONE);
+ //Hide Image security
+
try {
JSONObject obj = new JSONObject();
obj.put("type", LOAD_ERROR_EVENT);
@@ -1454,7 +1577,6 @@ public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError e
*/
@Override
public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, String host, String realm) {
-
// Check if there is some plugin which can resolve this auth challenge
PluginManager pluginManager = null;
try {
diff --git a/src/android/res/drawable-hdpi/ic_action_previous_item.png b/src/android/res/drawable-hdpi/ic_action_previous_item.png
index e861ecce9..b4f7f7922 100644
Binary files a/src/android/res/drawable-hdpi/ic_action_previous_item.png and b/src/android/res/drawable-hdpi/ic_action_previous_item.png differ
diff --git a/src/android/res/drawable-hdpi/ic_action_remove.png b/src/android/res/drawable-hdpi/ic_action_remove.png
index f889617e4..8d671171f 100644
Binary files a/src/android/res/drawable-hdpi/ic_action_remove.png and b/src/android/res/drawable-hdpi/ic_action_remove.png differ
diff --git a/src/android/res/drawable-hdpi/ic_back_edittext.png b/src/android/res/drawable-hdpi/ic_back_edittext.png
new file mode 100644
index 000000000..d56b5caf4
Binary files /dev/null and b/src/android/res/drawable-hdpi/ic_back_edittext.png differ
diff --git a/src/android/res/drawable-hdpi/ic_lock_ssl.png b/src/android/res/drawable-hdpi/ic_lock_ssl.png
new file mode 100644
index 000000000..02c271505
Binary files /dev/null and b/src/android/res/drawable-hdpi/ic_lock_ssl.png differ
diff --git a/src/android/res/drawable-mdpi/ic_action_previous_item.png b/src/android/res/drawable-mdpi/ic_action_previous_item.png
index 4ad2df427..3926a565a 100644
Binary files a/src/android/res/drawable-mdpi/ic_action_previous_item.png and b/src/android/res/drawable-mdpi/ic_action_previous_item.png differ
diff --git a/src/android/res/drawable-mdpi/ic_action_remove.png b/src/android/res/drawable-mdpi/ic_action_remove.png
index e84853e4f..8d671171f 100644
Binary files a/src/android/res/drawable-mdpi/ic_action_remove.png and b/src/android/res/drawable-mdpi/ic_action_remove.png differ
diff --git a/src/android/res/drawable-mdpi/ic_back_edittext.png b/src/android/res/drawable-mdpi/ic_back_edittext.png
new file mode 100644
index 000000000..d56b5caf4
Binary files /dev/null and b/src/android/res/drawable-mdpi/ic_back_edittext.png differ
diff --git a/src/android/res/drawable-mdpi/ic_lock_ssl.png b/src/android/res/drawable-mdpi/ic_lock_ssl.png
new file mode 100644
index 000000000..874a220ed
Binary files /dev/null and b/src/android/res/drawable-mdpi/ic_lock_ssl.png differ
diff --git a/src/android/res/drawable-xhdpi/ic_action_previous_item.png b/src/android/res/drawable-xhdpi/ic_action_previous_item.png
index ed8ac91de..af4ec8b0a 100644
Binary files a/src/android/res/drawable-xhdpi/ic_action_previous_item.png and b/src/android/res/drawable-xhdpi/ic_action_previous_item.png differ
diff --git a/src/android/res/drawable-xhdpi/ic_action_remove.png b/src/android/res/drawable-xhdpi/ic_action_remove.png
index 4cd0458b9..8d671171f 100644
Binary files a/src/android/res/drawable-xhdpi/ic_action_remove.png and b/src/android/res/drawable-xhdpi/ic_action_remove.png differ
diff --git a/src/android/res/drawable-xhdpi/ic_back_edittext.png b/src/android/res/drawable-xhdpi/ic_back_edittext.png
new file mode 100644
index 000000000..612a71f87
Binary files /dev/null and b/src/android/res/drawable-xhdpi/ic_back_edittext.png differ
diff --git a/src/android/res/drawable-xhdpi/ic_lock_ssl.png b/src/android/res/drawable-xhdpi/ic_lock_ssl.png
new file mode 100644
index 000000000..548fd7c4f
Binary files /dev/null and b/src/android/res/drawable-xhdpi/ic_lock_ssl.png differ
diff --git a/src/android/res/drawable-xxhdpi/ic_action_previous_item.png b/src/android/res/drawable-xxhdpi/ic_action_previous_item.png
index bc8ff1241..4dc8fc5b4 100644
Binary files a/src/android/res/drawable-xxhdpi/ic_action_previous_item.png and b/src/android/res/drawable-xxhdpi/ic_action_previous_item.png differ
diff --git a/src/android/res/drawable-xxhdpi/ic_action_remove.png b/src/android/res/drawable-xxhdpi/ic_action_remove.png
index 331c545b8..8d671171f 100644
Binary files a/src/android/res/drawable-xxhdpi/ic_action_remove.png and b/src/android/res/drawable-xxhdpi/ic_action_remove.png differ
diff --git a/src/android/res/drawable-xxhdpi/ic_back_edittext.png b/src/android/res/drawable-xxhdpi/ic_back_edittext.png
new file mode 100644
index 000000000..612a71f87
Binary files /dev/null and b/src/android/res/drawable-xxhdpi/ic_back_edittext.png differ
diff --git a/src/android/res/drawable-xxhdpi/ic_lock_ssl.png b/src/android/res/drawable-xxhdpi/ic_lock_ssl.png
new file mode 100644
index 000000000..815441fca
Binary files /dev/null and b/src/android/res/drawable-xxhdpi/ic_lock_ssl.png differ
diff --git a/src/android/res/drawable/bg_back_button.xml b/src/android/res/drawable/bg_back_button.xml
new file mode 100644
index 000000000..30733b5ff
--- /dev/null
+++ b/src/android/res/drawable/bg_back_button.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/android/res/drawable/bg_continue.xml b/src/android/res/drawable/bg_continue.xml
new file mode 100644
index 000000000..ee285538a
--- /dev/null
+++ b/src/android/res/drawable/bg_continue.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/src/android/res/drawable/bg_stay.xml b/src/android/res/drawable/bg_stay.xml
new file mode 100644
index 000000000..c6bfcb61e
--- /dev/null
+++ b/src/android/res/drawable/bg_stay.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file