Lightning browser with I2P configuration
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

106 lines
2.9 KiB

package org.purplei2p.lightning.view;
import android.content.Context;
import android.graphics.Bitmap;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import org.purplei2p.lightning.R;
import org.purplei2p.lightning.utils.ThemeUtils;
import org.purplei2p.lightning.utils.Utils;
/**
* {@link LightningViewTitle} acts as a container class
* for the favicon and page title, the information used
* by the tab adapters to show the tabs to the user.
*/
class LightningViewTitle {
@Nullable private static Bitmap DEFAULT_DARK_ICON;
@Nullable private static Bitmap DEFAULT_LIGHT_ICON;
@Nullable private Bitmap mFavicon = null;
@NonNull private String mTitle;
@NonNull private final Context mContext;
public LightningViewTitle(@NonNull Context context) {
mContext = context;
mTitle = context.getString(R.string.action_new_tab);
}
/**
* Set the current favicon to a new Bitmap.
* May be null, if null, the default will be used.
*
* @param favicon the potentially null favicon to set.
*/
public void setFavicon(@Nullable Bitmap favicon) {
if (favicon == null) {
mFavicon = null;
} else {
mFavicon = Utils.padFavicon(favicon);
}
}
/**
* Helper method to initialize the DEFAULT_ICON variables
*
* @param context the context needed to initialize the Bitmap.
* @param darkTheme whether the icon should be themed dark or not.
* @return a not null icon.
*/
@NonNull
private static Bitmap getDefaultIcon(@NonNull Context context, boolean darkTheme) {
if (darkTheme) {
if (DEFAULT_DARK_ICON == null) {
DEFAULT_DARK_ICON = ThemeUtils.getThemedBitmap(context, R.drawable.ic_webpage, true);
}
return DEFAULT_DARK_ICON;
} else {
if (DEFAULT_LIGHT_ICON == null) {
DEFAULT_LIGHT_ICON = ThemeUtils.getThemedBitmap(context, R.drawable.ic_webpage, false);
}
return DEFAULT_LIGHT_ICON;
}
}
/**
* Set the current title to a new title.
* Must not be null.
*
* @param title the non-null title to set.
*/
public void setTitle(@Nullable String title) {
if (title == null) {
mTitle = "";
} else {
mTitle = title;
}
}
/**
* Gets the current title, which is not null.
* Can be an empty string.
*
* @return the non-null title.
*/
@NonNull
public String getTitle() {
return mTitle;
}
/**
* Gets the favicon of the page, which is not null.
* Either the favicon, or a default icon.
*
* @return the favicon or a default if that is null.
*/
@NonNull
public Bitmap getFavicon(boolean darkTheme) {
if (mFavicon == null) {
return getDefaultIcon(mContext, darkTheme);
}
return mFavicon;
}
}