package org.horaapps.leafpic.activities.base;
import android.annotation.TargetApi;
import android.app.ActivityManager;
import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SwitchCompat;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.ScrollView;
import android.widget.SeekBar;
import com.mikepenz.iconics.IconicsDrawable;
import com.mikepenz.iconics.context.IconicsContextWrapper;
import com.mikepenz.iconics.typeface.IIcon;
import org.horaapps.leafpic.R;
import org.horaapps.leafpic.util.ColorPalette;
import org.horaapps.leafpic.util.PreferenceUtil;
import org.horaapps.leafpic.util.ThemeHelper;
import java.util.ArrayList;
/**
* Created by dnld on 23/02/16.
*/
public class ThemedActivity extends AppCompatActivity {
private ThemeHelper themeHelper;
private PreferenceUtil SP;
private boolean coloredNavBar;
private boolean obscuredStatusBar;
private boolean applyThemeImgAct;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SP = PreferenceUtil.getInstance(getApplicationContext());
themeHelper = new ThemeHelper(getApplicationContext());
}
@Override
public void onResume(){
super.onResume();
updateTheme();
}
public void updateTheme(){
themeHelper.updateTheme();
coloredNavBar = SP.getBoolean(getString(R.string.preference_colored_nav_bar), false);
obscuredStatusBar = SP.getBoolean(getString(R.string.preference_translucent_status_bar),true);
applyThemeImgAct = SP.getBoolean(getString(R.string.preference_apply_theme_pager), true);
}
@Override
protected void attachBaseContext(Context newBase) {
// NOTE: icons stuff
super.attachBaseContext(IconicsContextWrapper.wrap(newBase));
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void setNavBarColor() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isNavigationBarColored()) getWindow().setNavigationBarColor(getPrimaryColor());
else
getWindow().setNavigationBarColor(ContextCompat.getColor(getApplicationContext(), R.color.md_black_1000));
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
protected void setStatusBarColor() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar())
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(getPrimaryColor()));
else
getWindow().setStatusBarColor(getPrimaryColor());
}
}
protected void setScrollViewColor(ScrollView scr){
themeHelper.setScrollViewColor(scr);
}
public void setCursorDrawableColor(EditText editText, int color) {
// TODO: 02/08/16 remove this
ThemeHelper.setCursorDrawableColor(editText, color);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public void setRecentApp(String text){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
BitmapDrawable drawable = ((BitmapDrawable) getDrawable(R.mipmap.ic_launcher));
setTaskDescription(new ActivityManager.TaskDescription(text, drawable.getBitmap(), getPrimaryColor()));
}
}
public boolean isNavigationBarColored() {
return coloredNavBar;
}
public boolean isTranslucentStatusBar() {
return obscuredStatusBar;
}
protected boolean isApplyThemeOnImgAct() {
return applyThemeImgAct;
}
protected boolean isTransparencyZero() {
return 255 - SP.getInt(getString(R.string.preference_transparency), 0) == 255;
}
public int getTransparency() {
return 255 - SP.getInt(getString(org.horaapps.leafpic.R.string.preference_transparency), 0);
}
public void setBaseTheme(int baseTheme, boolean permanent) {
themeHelper.setBaseTheme(baseTheme, permanent);
}
public void themeSeekBar(SeekBar bar) {
themeHelper.themeSeekBar(bar);
}
public int getPrimaryColor() {
return themeHelper.getPrimaryColor();
}
public int getAccentColor() {
return themeHelper.getAccentColor();
}
public int getBaseTheme(){ return themeHelper.getBaseTheme(); }
protected int getBackgroundColor(){
return themeHelper.getBackgroundColor();
}
protected Drawable getPlaceHolder(){
return themeHelper.getPlaceHolder();
}
protected int getInvertedBackgroundColor(){
return themeHelper.getInvertedBackgroundColor();
}
public int getTextColor(){
return themeHelper.getTextColor();
}
public int getSubTextColor(){
return themeHelper.getSubTextColor();
}
public int getCardBackgroundColor(){
return themeHelper.getCardBackgroundColor();
}
public int getIconColor(){
return themeHelper.getIconColor();
}
protected int getDrawerBackground(){
return themeHelper.getDrawerBackground();
}
public int getDialogStyle(){
return themeHelper.getDialogStyle();
}
protected int getPopupToolbarStyle(){
return themeHelper.getPopupToolbarStyle();
}
protected ArrayAdapter<String> getSpinnerAdapter(ArrayList<String> items) {
return themeHelper.getSpinnerAdapter(items);
}
protected int getDefaultThemeToolbarColor3th(){
return themeHelper.getDefaultThemeToolbarColor3th();
}
protected void updateRadioButtonColor(RadioButton radioButton) {
themeHelper.updateRadioButtonColor(radioButton);
}
protected void setRadioTextButtonColor(RadioButton radioButton, int color) {
themeHelper.setRadioTextButtonColor(radioButton, color);
}
public void updateSwitchColor(SwitchCompat sw, int color){
themeHelper.updateSwitchColor(sw, color);
}
public IconicsDrawable getToolbarIcon(IIcon icon){
return themeHelper.getToolbarIcon(icon);
}
}