X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2FMainWebView.java;h=daaa58a809d384b4fb01ae7414d6d38bc271a376;hb=90ec377a834698621227ec37ca7ed37ae7f69851;hp=b0176a3f1506e9a19b8129e96ba35edbb32ee2b5;hpb=218e03269d47ababa71ae0dcec7b6ea8fef20454;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/MainWebView.java b/app/src/main/java/com/stoutner/privacybrowser/MainWebView.java index b0176a3f..daaa58a8 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/MainWebView.java +++ b/app/src/main/java/com/stoutner/privacybrowser/MainWebView.java @@ -37,6 +37,7 @@ import android.support.v4.app.DialogFragment; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatDialogFragment; +import android.support.v7.widget.Toolbar; import android.util.Patterns; import android.view.KeyEvent; import android.view.Menu; @@ -59,6 +60,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; +// We need to use AppCompatActivity from android.support.v7.app.AppCompatActivity to have access to the SupportActionBar until the minimum API is >= 21. public class MainWebView extends AppCompatActivity implements CreateHomeScreenShortcut.CreateHomeScreenSchortcutListener { // favoriteIcon is public static so it can be accessed from CreateHomeScreenShortcut. public static Bitmap favoriteIcon; @@ -95,23 +97,26 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_webview); + Toolbar toolbar = (Toolbar) findViewById(R.id.appBar); + setSupportActionBar(toolbar); final FrameLayout fullScreenVideoFrameLayout = (FrameLayout) findViewById(R.id.fullScreenVideoFrameLayout); final Activity mainWebViewActivity = this; - final ActionBar actionBar = getSupportActionBar(); + // We need to use the SupportActionBar from android.support.v7.app.ActionBar until the minimum API is >= 21. + final ActionBar appBar = getSupportActionBar(); mainWebView = (WebView) findViewById(R.id.mainWebView); - if (actionBar != null) { - // Remove the title from the action bar. - actionBar.setDisplayShowTitleEnabled(false); + if (appBar != null) { + // Remove the title from the app bar. + appBar.setDisplayShowTitleEnabled(false); - // Add the custom app_bar layout, which shows the favoriteIcon, urlTextBar, and progressBar. - actionBar.setCustomView(R.layout.app_bar); - actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); + // Add the custom url_bar layout, which shows the favoriteIcon, urlTextBar, and progressBar. + appBar.setCustomView(R.layout.url_bar); + appBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); // Set the "go" button on the keyboard to load the URL in urlTextBox. - urlTextBox = (EditText) actionBar.getCustomView().findViewById(R.id.urlTextBox); + urlTextBox = (EditText) appBar.getCustomView().findViewById(R.id.urlTextBox); urlTextBox.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, load the URL. @@ -164,9 +169,9 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh // Update the progress bar when a page is loading. @Override public void onProgressChanged(WebView view, int progress) { - // Make sure that actionBar is not null. - if (actionBar != null) { - ProgressBar progressBar = (ProgressBar) actionBar.getCustomView().findViewById(R.id.progressBar); + // Make sure that appBar is not null. + if (appBar != null) { + ProgressBar progressBar = (ProgressBar) appBar.getCustomView().findViewById(R.id.progressBar); progressBar.setProgress(progress); if (progress < 100) { progressBar.setVisibility(View.VISIBLE); @@ -182,9 +187,9 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh // Save a copy of the favorite icon for use if a shortcut is added to the home screen. favoriteIcon = icon; - // Place the favorite icon in the actionBar if it is not null. - if (actionBar != null) { - ImageView imageViewFavoriteIcon = (ImageView) actionBar.getCustomView().findViewById(R.id.favoriteIcon); + // Place the favorite icon in the appBar if it is not null. + if (appBar != null) { + ImageView imageViewFavoriteIcon = (ImageView) appBar.getCustomView().findViewById(R.id.favoriteIcon); imageViewFavoriteIcon.setImageBitmap(Bitmap.createScaledBitmap(icon, 64, 64, true)); } } @@ -192,8 +197,8 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh // Enter full screen video @Override public void onShowCustomView(View view, CustomViewCallback callback) { - if (actionBar != null) { - actionBar.hide(); + if (appBar != null) { + appBar.hide(); } fullScreenVideoFrameLayout.addView(view); @@ -224,8 +229,8 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh // Exit full screen video public void onHideCustomView() { - if (actionBar != null) { - actionBar.show(); + if (appBar != null) { + appBar.show(); } mainWebView.setVisibility(View.VISIBLE); @@ -393,13 +398,10 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh public boolean onOptionsItemSelected(MenuItem menuItem) { int menuItemId = menuItem.getItemId(); - // Some options need to access the clipboard. - ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); - // Some options need to update the drawable for toggleJavaScript. MenuItem toggleJavaScript = mainMenu.findItem(R.id.toggleJavaScript); - // Sets the commands that relate to the menu entries. + // Set the commands that relate to the menu entries. switch (menuItemId) { case R.id.toggleJavaScript: if (javaScriptEnabled) { @@ -527,6 +529,24 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh Toast.makeText(getApplicationContext(), "Cookies deleted", Toast.LENGTH_SHORT).show(); return true; + case R.id.addToHomescreen: + // Show the CreateHomeScreenShortcut AlertDialog and name this instance createShortcut. + AppCompatDialogFragment shortcutDialog = new CreateHomeScreenShortcut(); + shortcutDialog.show(getSupportFragmentManager(), "createShortcut"); + + //Everything else will be handled by CreateHomeScreenShortcut and the associated listeners below. + return true; + + case R.id.downloads: + // Launch the system Download Manager. + Intent downloadManangerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); + + // Launch as a new task so that Download Manager and Privacy Browser show as separate windows in the recent tasks list. + downloadManangerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + + startActivity(downloadManangerIntent); + return true; + case R.id.home: mainWebView.loadUrl(homepage); return true; @@ -543,21 +563,7 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh mainWebView.goForward(); return true; - case R.id.copyURL: - clipboard.setPrimaryClip(ClipData.newPlainText("URL", urlTextBox.getText())); - return true; - - case R.id.pasteURL: - ClipData.Item clipboardData = clipboard.getPrimaryClip().getItemAt(0); - urlTextBox.setText(clipboardData.coerceToText(this)); - try { - loadUrlFromTextBox(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - return true; - - case R.id.shareURL: + case R.id.share: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_TEXT, urlTextBox.getText().toString()); @@ -565,24 +571,6 @@ public class MainWebView extends AppCompatActivity implements CreateHomeScreenSh startActivity(Intent.createChooser(shareIntent, "Share URL")); return true; - case R.id.addToHomescreen: - // Show the CreateHomeScreenShortcut AlertDialog and name this instance createShortcut. - AppCompatDialogFragment shortcutDialog = new CreateHomeScreenShortcut(); - shortcutDialog.show(getSupportFragmentManager(), "createShortcut"); - - //Everything else will be handled by CreateHomeScreenShortcut and the associated listeners below. - return true; - - case R.id.downloads: - // Launch the system Download Manager. - Intent downloadManangerIntent = new Intent(DownloadManager.ACTION_VIEW_DOWNLOADS); - - // Launch as a new task so that Download Manager and Privacy Browser show as separate windows in the recent tasks list. - downloadManangerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - - startActivity(downloadManangerIntent); - return true; - case R.id.settings: // Start the Settings activity. Intent intent = new Intent(this, Settings.class);