import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.graphics.Bitmap;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
+import android.support.v4.content.ContextCompat;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v4.widget.SwipeRefreshLayout;
// 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 MainWebViewActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, CreateHomeScreenShortcut.CreateHomeScreenSchortcutListener {
- // `favoriteIcon` is public static so it can be accessed from `CreateHomeScreenShortcut`, `BookmarksActivity`, and `EditBookmark`.
+ // `favoriteIcon` is public static so it can be accessed from `CreateHomeScreenShortcut`, `BookmarksActivity`, `CreateBookmark`, `CreateBookmarkFolder`, and `EditBookmark`.
// It is also used in `onCreate()` and `onCreateHomeScreenShortcutCreate()`.
public static Bitmap favoriteIcon;
// Load the initial website.
mainWebView.loadUrl(formattedUrlString);
+ // Load the default favorite icon if it is null.
+ if (favoriteIcon == null) {
+ // We have to use `ContextCompat` until API >= 21.
+ Drawable favoriteIconDrawable = ContextCompat.getDrawable(getApplicationContext(), R.drawable.world);
+ BitmapDrawable favoriteIconBitmapDrawable = (BitmapDrawable) favoriteIconDrawable;
+ favoriteIcon = favoriteIconBitmapDrawable.getBitmap();
+ }
+
// Initialize AdView for the free flavor and request an ad. If this is not the free flavor BannerAd.requestAd() does nothing.
adView = findViewById(R.id.adView);
BannerAd.requestAd(adView);
case R.id.addToHomescreen:
// Show the CreateHomeScreenShortcut AlertDialog and name this instance "@string/create_shortcut".
DialogFragment createHomeScreenShortcutDialogFragment = new CreateHomeScreenShortcut();
- createHomeScreenShortcutDialogFragment.show(getFragmentManager(), "@string/create_shortcut");
+ createHomeScreenShortcutDialogFragment.show(getFragmentManager(), getResources().getString(R.string.create_shortcut));
//Everything else will be handled by CreateHomeScreenShortcut and the associated listeners below.
return true;
break;
case R.id.settings:
- // Launch SettingsActivity.
+ // Launch `SettingsActivity`.
Intent settingsIntent = new Intent(this, SettingsActivity.class);
startActivity(settingsIntent);
break;
case R.id.guide:
- // Launch GuideActivity.
+ // Launch `GuideActivity`.
Intent guideIntent = new Intent(this, GuideActivity.class);
startActivity(guideIntent);
break;
case R.id.about:
- // Launch AboutActivity.
+ // Launch `AboutActivity`.
Intent aboutIntent = new Intent(this, AboutActivity.class);
startActivity(aboutIntent);
break;
}
@Override
- public void onCreateHomeScreenShortcutCancel(DialogFragment dialogFragment) {
+ public void onCancelCreateHomeScreenShortcut(DialogFragment dialogFragment) {
// Do nothing because the user selected "Cancel".
}
@Override
- public void onCreateHomeScreenShortcutCreate(DialogFragment dialogFragment) {
+ public void onCreateHomeScreenShortcut(DialogFragment dialogFragment) {
// Get shortcutNameEditText from the alert dialog.
EditText shortcutNameEditText = (EditText) dialogFragment.getDialog().findViewById(R.id.shortcut_name_edittext);