+
+ // Favorite or default icon.
+ public void initializeFavoriteIcon() {
+ // Get the default favorite icon drawable. `ContextCompat` must be used until API >= 21.
+ Drawable favoriteIconDrawable = ContextCompat.getDrawable(getContext(), R.drawable.world);
+
+ // Cast the favorite icon drawable to a bitmap drawable.
+ BitmapDrawable favoriteIconBitmapDrawable = (BitmapDrawable) favoriteIconDrawable;
+
+ // Remove the incorrect warning below that the favorite icon bitmap drawable might be null.
+ assert favoriteIconBitmapDrawable != null;
+
+ // Store the default icon bitmap.
+ favoriteOrDefaultIcon = favoriteIconBitmapDrawable.getBitmap();
+ }
+
+ public void setFavoriteOrDefaultIcon(Bitmap icon) {
+ // Scale the favorite icon bitmap down if it is larger than 256 x 256. Filtering uses bilinear interpolation.
+ if ((icon.getHeight() > 256) || (icon.getWidth() > 256)) {
+ favoriteOrDefaultIcon = Bitmap.createScaledBitmap(icon, 256, 256, true);
+ } else {
+ // Store the icon as presented.
+ favoriteOrDefaultIcon = icon;
+ }
+ }
+
+ public Bitmap getFavoriteOrDefaultIcon() {
+ // Return the favorite or default icon.
+ return favoriteOrDefaultIcon;
+ }
+
+
+ // Night mode.
+ public void setNightMode(boolean status) {
+ // Store the night mode status.
+ nightMode = status;
+ }
+
+ public boolean getNightMode() {
+ // Return the night mode status.
+ return nightMode;
+ }
+
+
+ // Swipe to refresh.
+ public void setSwipeToRefresh(boolean status) {
+ // Store the swipe to refresh status.
+ swipeToRefresh = status;
+ }
+
+ public boolean getSwipeToRefresh() {
+ // Return the swipe to refresh status.
+ return swipeToRefresh;
+ }
+
+
+ // Waiting for proxy.
+ public void setWaitingForProxyUrlString(String urlString) {
+ // Store the waiting for proxy URL string.
+ waitingForProxyUrlString = urlString;
+ }
+
+ public String getWaitingForProxyUrlString() {
+ // Return the waiting for proxy URL string.
+ return waitingForProxyUrlString;
+ }
+
+ public void resetWaitingForProxyUrlString() {
+ // Clear the waiting for proxy URL string.
+ waitingForProxyUrlString = "";
+ }
+
+ // Scroll range.
+ public int getHorizontalScrollRange() {
+ // Return the horizontal scroll range.
+ return computeHorizontalScrollRange();
+ }
+
+ public int getVerticalScrollRange() {
+ // Return the vertical scroll range.
+ return computeVerticalScrollRange();