package org.horaapps.leafpic.activities;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.widget.CardView;
import android.support.v7.widget.SwitchCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.mikepenz.community_material_typeface_library.CommunityMaterial;
import com.mikepenz.iconics.IconicsDrawable;
import com.mikepenz.iconics.view.IconicsImageView;
import org.horaapps.leafpic.MyApplication;
import org.horaapps.leafpic.R;
import org.horaapps.leafpic.activities.base.ThemedActivity;
import org.horaapps.leafpic.util.ColorPalette;
import org.horaapps.leafpic.util.PreferenceUtil;
import org.horaapps.leafpic.util.SecurityHelper;
import org.horaapps.leafpic.util.StaticMapProvider;
import org.horaapps.leafpic.util.ThemeHelper;
import uz.shift.colorpicker.LineColorPicker;
import uz.shift.colorpicker.OnColorChangedListener;
import static org.horaapps.leafpic.util.ThemeHelper.AMOLED_THEME;
import static org.horaapps.leafpic.util.ThemeHelper.DARK_THEME;
import static org.horaapps.leafpic.util.ThemeHelper.LIGHT_THEME;
/**
* Created by Jibo on 02/03/2016.
*/
@SuppressWarnings("ResourceAsColor")
public class SettingsActivity extends ThemedActivity {
private PreferenceUtil SP;
private SecurityHelper securityObj;
private Toolbar toolbar;
private ScrollView scr;
private TextView txtGT;
private TextView txtTT;
private TextView txtPT;
private TextView txtVT;
private TextView txtAT;
private SwitchCompat swNavBar;
private SwitchCompat swStatusBar;
private SwitchCompat swMaxLuminosity;
private SwitchCompat swPictureOrientation;
private SwitchCompat swDelayFullImage;
private SwitchCompat swInternalBrowser;
private SwitchCompat swAutoUpdate;
private SwitchCompat swUseMediaStore;
private SwitchCompat swIncludeVideo;
private SwitchCompat swSwipeDirection;
private SwitchCompat swShowFab;
private SwitchCompat swSubScaling;
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
toolbar = (Toolbar) findViewById(R.id.toolbar);
SP = PreferenceUtil.getInstance(getApplicationContext());
securityObj = new SecurityHelper(SettingsActivity.this);
txtTT = (TextView) findViewById(R.id.theme_setting_title);
txtGT = (TextView) findViewById(R.id.general_setting_title);
txtPT = (TextView) findViewById(R.id.picture_setting_title);
txtVT = (TextView) findViewById(R.id.video_setting_title);
txtAT = (TextView) findViewById(R.id.advanced_setting_title);
scr = (ScrollView)findViewById(R.id.settingAct_scrollView);
/*** BASIC THEME ***/
findViewById(R.id.ll_basic_theme).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
baseThemeDialog();
}
});
/*** SECURITY ***/
findViewById(R.id.ll_security).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!securityObj.isActiveSecurity())
startActivity(new Intent(getApplicationContext(), SecurityActivity.class));
else
askPasswordDialog();
}
});
/*** PRIMARY COLOR PIKER ***/
findViewById(R.id.ll_primaryColor).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
primaryColorPiker();
}
});
/*** ACCENT COLOR PIKER ***/
findViewById(R.id.ll_accentColor).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
accentColorPiker();
}
});
/*** EXCLUDED ALBUMS INTENT ***/
findViewById(R.id.ll_excluded_album).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(SettingsActivity.this, ExcludedAlbumsActivity.class));
}
});
/*** CUSTOMIZE PICTURE VIEWER DIALOG ***/
findViewById(R.id.ll_custom_thirdAct).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
customizePictureViewer();
}
});
/*** MAP PROVIDER DIALOG ***/
findViewById(R.id.ll_map_provider).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mapProviderDialog();
}
});
/*** MULTI COLUMN DIALOG ***/
findViewById(R.id.ll_n_columns).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
multiColumnsDialog();
}
});
/*** SW Show Fab ***/
swShowFab = (SwitchCompat) findViewById(R.id.sw_show_fab);
swShowFab.setChecked(SP.getBoolean(getString(R.string.preference_show_fab), false));
swShowFab.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_show_fab), isChecked);
updateSwitchColor(swShowFab, getAccentColor());
}
});
/*** SW Show Fab ***/
swSubScaling = (SwitchCompat) findViewById(R.id.sw_sub_scaling);
swSubScaling.setChecked(SP.getBoolean(getString(R.string.preference_sub_scaling), false));
swSubScaling.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_sub_scaling), isChecked);
updateSwitchColor(swSubScaling, getAccentColor());
}
});
/*** SW Internal Player ***/
swInternalBrowser = (SwitchCompat) findViewById(R.id.set_internal_player);
swInternalBrowser.setChecked(SP.getBoolean(getString(R.string.preference_internal_player), false));
swInternalBrowser.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_internal_player), isChecked);
new Thread(new Runnable() {
@Override
public void run() {
((MyApplication) getApplicationContext()).updateAlbums();
}
}).start();
updateSwitchColor(swInternalBrowser, getAccentColor());
}
});
/*** SW INCLUDE VIDEO ***/
swIncludeVideo = (SwitchCompat) findViewById(R.id.set_include_video);
swIncludeVideo.setChecked(SP.getBoolean(getString(R.string.preference_include_video), true));
swIncludeVideo.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_include_video), isChecked);
updateSwitchColor(swIncludeVideo, getAccentColor());
}
});
/*** SW SWIPE DIRECTION ***/
swSwipeDirection = (SwitchCompat) findViewById(R.id.Set_media_viewer_swipe_direction);
swSwipeDirection.setChecked(SP.getBoolean(getString(R.string.preference_swipe_direction_inverted), false));
swSwipeDirection.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_swipe_direction_inverted), isChecked);
updateSwitchColor(swSwipeDirection, getAccentColor());
}
});
/*** SW AUTO UPDATE MEDIA ***/
swAutoUpdate = (SwitchCompat) findViewById(R.id.SetAutoUpdateMedia);
swAutoUpdate.setChecked(SP.getBoolean(getString(R.string.preference_auto_update_media), false));
swAutoUpdate.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_auto_update_media), isChecked);
updateSwitchColor(swAutoUpdate, getAccentColor());
}
});
/*** SW MEDIA STORE ***/
swUseMediaStore = (SwitchCompat) findViewById(R.id.sw_use_media_mediastore);
swUseMediaStore.setChecked(SP.getBoolean(getString(R.string.preference_use_alternative_provider), false));
swUseMediaStore.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_use_alternative_provider), isChecked);
updateSwitchColor(swUseMediaStore, getAccentColor());
}
});
/*** SW DELAY FULL-SIZE IMAGE ***/
swDelayFullImage = (SwitchCompat) findViewById(R.id.set_full_resolution);
swDelayFullImage.setChecked(SP.getBoolean(getString(R.string.preference_delay_full_image), true));
swDelayFullImage.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_delay_full_image), isChecked);
updateSwitchColor(swDelayFullImage, getAccentColor());
}
});
/*** SW PICTURE ORIENTATION ***/
swPictureOrientation = (SwitchCompat) findViewById(R.id.set_picture_orientation);
swPictureOrientation.setChecked(SP.getBoolean(getString(R.string.preference_auto_rotate), false));
swPictureOrientation.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_auto_rotate), isChecked);
updateSwitchColor(swPictureOrientation, getAccentColor());
}
});
/*** SW MAX LUMINOSITY ***/
swMaxLuminosity = (SwitchCompat) findViewById(R.id.set_max_luminosity);
swMaxLuminosity.setChecked(SP.getBoolean(getString(R.string.preference_max_brightness), false));
swMaxLuminosity.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_max_brightness), isChecked);
updateSwitchColor(swMaxLuminosity, getAccentColor());
}
});
/*** SW TRANSLUCENT STATUS BAR ***/
swStatusBar = (SwitchCompat) findViewById(R.id.SetTraslucentStatusBar);
swStatusBar.setChecked(SP.getBoolean(getString(R.string.preference_translucent_status_bar), true));
swStatusBar.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_translucent_status_bar), isChecked);
updateTheme();
setStatusBarColor();
updateSwitchColor(swStatusBar, getAccentColor());
}
});
/*** SW COLORED NAV BAR ***/
swNavBar = (SwitchCompat) findViewById(R.id.SetColoredNavBar);
swNavBar.setChecked(SP.getBoolean(getString(R.string.preference_colored_nav_bar), false));
swNavBar.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SP.putBoolean(getString(R.string.preference_colored_nav_bar), isChecked);
updateTheme();
updateSwitchColor(swNavBar, getAccentColor());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(isNavigationBarColored() ? getPrimaryColor() : ContextCompat.getColor(getApplicationContext(), R.color.md_black_1000));
}
});
}
private void multiColumnsDialog() {
AlertDialog.Builder multiColumnDialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_multi_column, null);
((TextView) dialogLayout.findViewById(R.id.folders_title)).setTextColor(getTextColor());
((TextView) dialogLayout.findViewById(R.id.media_title)).setTextColor(getTextColor());
((CardView) dialogLayout.findViewById(R.id.multi_column_card)).setCardBackgroundColor(getCardBackgroundColor());
dialogLayout.findViewById(R.id.multi_column_title).setBackgroundColor(getPrimaryColor());
final TextView nColFolders = (TextView) dialogLayout.findViewById(R.id.n_columns_folders);
final TextView nColMedia = (TextView) dialogLayout.findViewById(R.id.n_columns_media);
nColFolders.setTextColor(getSubTextColor());
nColMedia.setTextColor(getSubTextColor());
SeekBar barFolders = (SeekBar) dialogLayout.findViewById(R.id.seek_bar_n_columns_folders);
SeekBar barMedia = (SeekBar) dialogLayout.findViewById(R.id.seek_bar_n_columns_media);
themeSeekBar(barFolders); themeSeekBar(barMedia);
nColFolders.setText(String.valueOf(SP.getInt("n_columns_folders", 2)));
nColMedia.setText(String.valueOf(SP.getInt("n_columns_media", 3)));
barFolders.setProgress(SP.getInt("n_columns_folders", 2) -1);
barMedia.setProgress(SP.getInt("n_columns_media", 3) -1);
barFolders.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
nColFolders.setText(String.valueOf(i+1));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
barMedia.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
nColMedia.setText(String.valueOf(i+1));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
multiColumnDialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
int nFolders = Integer.parseInt(nColFolders.getText().toString());
int nMedia = Integer.parseInt(nColMedia.getText().toString());
SP.putInt("n_columns_folders", nFolders);
SP.putInt("n_columns_media", nMedia);
}
});
multiColumnDialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), null);
multiColumnDialogBuilder.setView(dialogLayout);
multiColumnDialogBuilder.show();
}
private void askPasswordDialog() {
AlertDialog.Builder passwordDialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
final EditText editTextPassword = securityObj.getInsertPasswordDialog(SettingsActivity.this,passwordDialogBuilder);
passwordDialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), null);
passwordDialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//This should br empty it will be overwrite later
//to avoid dismiss of the dialog on wrong password
}
});
final AlertDialog passwordDialog = passwordDialogBuilder.create();
passwordDialog.show();
passwordDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (securityObj.checkPassword(editTextPassword.getText().toString())) {
passwordDialog.dismiss();
startActivity(new Intent(getApplicationContext(), SecurityActivity.class));
} else {
Toast.makeText(getApplicationContext(), R.string.wrong_password, Toast.LENGTH_SHORT).show();
editTextPassword.getText().clear();
editTextPassword.requestFocus();
}
}
});
}
private void mapProviderDialog() {
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_map_provider, null);
TextView dialogTitle = (TextView) dialogLayout.findViewById(R.id.title);
((CardView) dialogLayout.findViewById(R.id.dialog_chose_provider_title)).setCardBackgroundColor(getCardBackgroundColor());
dialogTitle.setBackgroundColor(getPrimaryColor());
final RadioGroup mapProvider = (RadioGroup) dialogLayout.findViewById(R.id.radio_group_maps_provider);
RadioButton radioGoogleMaps = (RadioButton) dialogLayout.findViewById(R.id.radio_google_maps);
RadioButton radioMapBoxStreets = (RadioButton) dialogLayout.findViewById(R.id.radio_mapb_streets);
RadioButton radioMapBoxDark = (RadioButton) dialogLayout.findViewById(R.id.radio_mapb_dark);
RadioButton radioMapBoxLight = (RadioButton) dialogLayout.findViewById(R.id.radio_mapb_light);
RadioButton radioTyler = (RadioButton) dialogLayout.findViewById(R.id.radio_osm_tyler);
setRadioTextButtonColor(radioGoogleMaps, getSubTextColor());
setRadioTextButtonColor(radioMapBoxStreets, getSubTextColor());
setRadioTextButtonColor(radioMapBoxDark, getSubTextColor());
setRadioTextButtonColor(radioMapBoxLight, getSubTextColor());
setRadioTextButtonColor(radioTyler, getSubTextColor());
((TextView) dialogLayout.findViewById(R.id.header_proprietary_maps)).setTextColor(getTextColor());
((TextView) dialogLayout.findViewById(R.id.header_free_maps)).setTextColor(getTextColor());
switch (StaticMapProvider.fromValue(SP.getInt(getString(R.string.preference_map_provider),
StaticMapProvider.GOOGLE_MAPS.getValue()))) {
case GOOGLE_MAPS:
default: radioGoogleMaps.setChecked(true); break;
case MAP_BOX: radioMapBoxStreets.setChecked(true); break;
case MAP_BOX_DARK: radioMapBoxDark.setChecked(true); break;
case MAP_BOX_LIGHT: radioMapBoxLight.setChecked(true); break;
case TYLER: radioTyler.setChecked(true); break;
}
dialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), null);
dialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (mapProvider.getCheckedRadioButtonId()) {
case R.id.radio_google_maps:
default: SP.putInt(getString(R.string.preference_map_provider), StaticMapProvider.GOOGLE_MAPS.getValue()); break;
case R.id.radio_mapb_streets: SP.putInt(getString(R.string.preference_map_provider), StaticMapProvider.MAP_BOX.getValue()); break;
case R.id.radio_osm_tyler: SP.putInt(getString(R.string.preference_map_provider), StaticMapProvider.TYLER.getValue()); break;
case R.id.radio_mapb_dark: SP.putInt(getString(R.string.preference_map_provider), StaticMapProvider.MAP_BOX_DARK.getValue()); break;
case R.id.radio_mapb_light: SP.putInt(getString(R.string.preference_map_provider), StaticMapProvider.MAP_BOX_LIGHT.getValue()); break;
}
}
});
dialogBuilder.setView(dialogLayout);
dialogBuilder.show();
}
private void baseThemeDialog(){
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
final View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_basic_theme, null);
final TextView dialogTitle = (TextView) dialogLayout.findViewById(R.id.basic_theme_title);
final CardView dialogCardView = (CardView) dialogLayout.findViewById(R.id.basic_theme_card);
final IconicsImageView whiteSelect = (IconicsImageView) dialogLayout.findViewById(R.id.white_basic_theme_select);
final IconicsImageView darkSelect = (IconicsImageView) dialogLayout.findViewById(R.id.dark_basic_theme_select);
final IconicsImageView darkAmoledSelect = (IconicsImageView) dialogLayout.findViewById(R.id.dark_amoled_basic_theme_select);
switch (getBaseTheme()){
case LIGHT_THEME:
whiteSelect.setVisibility(View.VISIBLE);
darkSelect.setVisibility(View.GONE);
darkAmoledSelect.setVisibility(View.GONE);
break;
case DARK_THEME:
whiteSelect.setVisibility(View.GONE);
darkSelect.setVisibility(View.VISIBLE);
darkAmoledSelect.setVisibility(View.GONE);
break;
case AMOLED_THEME:
whiteSelect.setVisibility(View.GONE);
darkSelect.setVisibility(View.GONE);
darkAmoledSelect.setVisibility(View.VISIBLE);
break;
}
/** SET OBJ THEME **/
dialogTitle.setBackgroundColor(getPrimaryColor());
dialogCardView.setCardBackgroundColor(getCardBackgroundColor());
dialogLayout.findViewById(R.id.ll_white_basic_theme).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
whiteSelect.setVisibility(View.VISIBLE);
darkSelect.setVisibility(View.GONE);
darkAmoledSelect.setVisibility(View.GONE);
setBaseTheme(LIGHT_THEME, false);
//dialogCardView.setCardBackgroundColor(getCardBackgroundColor());
//setTheme();
}
});
dialogLayout.findViewById(R.id.ll_dark_basic_theme).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
whiteSelect.setVisibility(View.GONE);
darkSelect.setVisibility(View.VISIBLE);
darkAmoledSelect.setVisibility(View.GONE);
setBaseTheme(DARK_THEME, false);
//dialogCardView.setCardBackgroundColor(getCardBackgroundColor());
//setTheme();
}
});
dialogLayout.findViewById(R.id.ll_dark_amoled_basic_theme).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
whiteSelect.setVisibility(View.GONE);
darkSelect.setVisibility(View.GONE);
darkAmoledSelect.setVisibility(View.VISIBLE);
setBaseTheme(AMOLED_THEME, false);
//dialogCardView.setCardBackgroundColor(getCardBackgroundColor());
//setTheme();
}
});
dialogBuilder.setView(dialogLayout);
dialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SP.putInt(getString(org.horaapps.leafpic.R.string.preference_base_theme), getBaseTheme());
setTheme();
}
});
dialogBuilder.setNegativeButton(getString(R.string.cancel).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
setBaseTheme(ThemeHelper.getBaseTheme(getApplicationContext()), false);
setTheme();
}
});
dialogBuilder.setView(dialogLayout);
dialogBuilder.show();
}
private void primaryColorPiker(){
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
final View dialogLayout = getLayoutInflater().inflate(R.layout.color_piker_primary, null);
final LineColorPicker colorPicker = (LineColorPicker) dialogLayout.findViewById(R.id.color_picker_primary);
final LineColorPicker colorPicker2 = (LineColorPicker) dialogLayout.findViewById(R.id.color_picker_primary_2);
final TextView dialogTitle = (TextView) dialogLayout.findViewById(R.id.cp_primary_title);
CardView dialogCardView = (CardView) dialogLayout.findViewById(R.id.cp_primary_card);
dialogCardView.setCardBackgroundColor(getCardBackgroundColor());
colorPicker.setColors(ColorPalette.getBaseColors(getApplicationContext()));
for (int i : colorPicker.getColors())
for (int i2 : ColorPalette.getColors(getBaseContext(), i))
if (i2 == getPrimaryColor()) {
colorPicker.setSelectedColor(i);
colorPicker2.setColors(ColorPalette.getColors(getBaseContext(), i));
colorPicker2.setSelectedColor(i2);
break;}
dialogTitle.setBackgroundColor(getPrimaryColor());
colorPicker.setOnColorChangedListener(new OnColorChangedListener() {
@Override
public void onColorChanged(int c) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar()) {
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(getPrimaryColor()));
} else getWindow().setStatusBarColor(c);
}
toolbar.setBackgroundColor(c);
dialogTitle.setBackgroundColor(c);
colorPicker2.setColors(ColorPalette.getColors(getApplicationContext(), colorPicker.getColor()));
colorPicker2.setSelectedColor(colorPicker.getColor());
}
});
colorPicker2.setOnColorChangedListener(new OnColorChangedListener() {
@Override
public void onColorChanged(int c) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar()) {
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(c));
} else getWindow().setStatusBarColor(c);
if (isNavigationBarColored())
getWindow().setNavigationBarColor(c);
else
getWindow().setNavigationBarColor(ContextCompat.getColor(getApplicationContext(), R.color.md_black_1000));
}
toolbar.setBackgroundColor(c);
dialogTitle.setBackgroundColor(c);
}
});
dialogBuilder.setView(dialogLayout);
dialogBuilder.setNeutralButton(getString(R.string.cancel).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar()) {
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(getPrimaryColor()));
} else getWindow().setStatusBarColor(getPrimaryColor());
}
toolbar.setBackgroundColor(getPrimaryColor());
dialog.cancel();
}
});
dialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SP.putInt(getString(R.string.preference_primary_color), colorPicker2.getColor());
updateTheme();
setNavBarColor();
setScrollViewColor(scr);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar()) {
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(getPrimaryColor()));
} else {
getWindow().setStatusBarColor(getPrimaryColor());
}
}
}
});
dialogBuilder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
if (isTranslucentStatusBar()) {
getWindow().setStatusBarColor(ColorPalette.getObscuredColor(getPrimaryColor()));
} else getWindow().setStatusBarColor(getPrimaryColor());
if (isNavigationBarColored())
getWindow().setNavigationBarColor(getPrimaryColor());
else getWindow().setNavigationBarColor(ContextCompat.getColor(getApplicationContext(), R.color.md_black_1000));
}
toolbar.setBackgroundColor(getPrimaryColor());
}
});
dialogBuilder.show();
}
private void accentColorPiker(){
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
final View dialogLayout = getLayoutInflater().inflate(R.layout.color_piker_accent, null);
final LineColorPicker colorPicker = (LineColorPicker) dialogLayout.findViewById(R.id.color_picker_accent);
final TextView dialogTitle = (TextView) dialogLayout.findViewById(R.id.cp_accent_title);
CardView cv = (CardView) dialogLayout.findViewById(R.id.cp_accent_card);
cv.setCardBackgroundColor(getCardBackgroundColor());
colorPicker.setColors(ColorPalette.getAccentColors(getApplicationContext()));
colorPicker.setSelectedColor(getAccentColor());
dialogTitle.setBackgroundColor(getAccentColor());
colorPicker.setOnColorChangedListener(new OnColorChangedListener() {
@Override
public void onColorChanged(int c) {
dialogTitle.setBackgroundColor(c);
updateViewswithAccentColor(colorPicker.getColor());
}
});
dialogBuilder.setView(dialogLayout);
dialogBuilder.setNeutralButton(getString(R.string.cancel).toUpperCase(), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
updateViewswithAccentColor(getAccentColor());
}
});
dialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SP.putInt(getString(R.string.preference_accent_color), colorPicker.getColor());
updateTheme();
updateViewswithAccentColor(getAccentColor());
}
});
dialogBuilder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
updateViewswithAccentColor(getAccentColor());
}
});
dialogBuilder.show();
}
private void customizePictureViewer(){
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(SettingsActivity.this, getDialogStyle());
View dialogLayout = getLayoutInflater().inflate(R.layout.dialog_media_viewer_theme, null);
final SwitchCompat swApplyTheme_Viewer = (SwitchCompat) dialogLayout.findViewById(R.id.apply_theme_3th_act_enabled);
((CardView) dialogLayout.findViewById(R.id.third_act_theme_card)).setCardBackgroundColor(getCardBackgroundColor());
dialogLayout.findViewById(R.id.third_act_theme_title).setBackgroundColor(getPrimaryColor());//or GetPrimary
((TextView) dialogLayout.findViewById(R.id.apply_theme_3thAct_title)).setTextColor(getTextColor());
((TextView) dialogLayout.findViewById(R.id.apply_theme_3thAct_title_Sub)).setTextColor(getSubTextColor());
((IconicsImageView) dialogLayout.findViewById(R.id.ll_apply_theme_3thAct_icon)).setColor(getIconColor());
swApplyTheme_Viewer.setChecked(isApplyThemeOnImgAct());
swApplyTheme_Viewer.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
updateSwitchColor(swApplyTheme_Viewer, getAccentColor());
}
});
updateSwitchColor(swApplyTheme_Viewer, getAccentColor());
final LineColorPicker transparencyColorPicker = (LineColorPicker) dialogLayout.findViewById(R.id.pickerTransparent);
transparencyColorPicker.setColors(ColorPalette.getTransparencyShadows(getPrimaryColor()));
transparencyColorPicker.setSelectedColor(ColorPalette.getTransparentColor(getPrimaryColor(), getTransparency()));
/**TEXT VIEWS**/
((TextView) dialogLayout.findViewById(R.id.seek_bar_alpha_title)).setTextColor(getTextColor());
((TextView) dialogLayout.findViewById(R.id.seek_bar_alpha_title_Sub)).setTextColor(getSubTextColor());
dialogBuilder.setView(dialogLayout);
dialogBuilder.setNeutralButton(getString(R.string.cancel).toUpperCase(), null);
dialogBuilder.setPositiveButton(getString(R.string.ok_action).toUpperCase(), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
SharedPreferences.Editor editor = SP.getEditor();
editor.putBoolean(getString(R.string.preference_apply_theme_pager), swApplyTheme_Viewer.isChecked());
int c = Color.alpha(transparencyColorPicker.getColor());
editor.putInt(getString(R.string.preference_transparency), 255 - c);
editor.commit();
updateTheme();
}
});
dialogBuilder.show();
}
private void updateViewswithAccentColor(int color){
txtGT.setTextColor(color);
txtTT.setTextColor(color);
txtPT.setTextColor(color);
txtVT.setTextColor(color);
txtAT.setTextColor(color);
updateSwitchColor(swDelayFullImage, color);
updateSwitchColor(swNavBar, color);
updateSwitchColor(swStatusBar, color);
updateSwitchColor(swMaxLuminosity, color);
updateSwitchColor(swPictureOrientation, color);
updateSwitchColor(swInternalBrowser, color);
updateSwitchColor(swAutoUpdate, color);
updateSwitchColor(swIncludeVideo, color);
updateSwitchColor(swSwipeDirection, color);
updateSwitchColor(swUseMediaStore, color);
updateSwitchColor(swShowFab, color);
updateSwitchColor(swSubScaling, color);
}
@Override
public void onPostResume() {
super.onPostResume();
setTheme();
securityObj.updateSecuritySetting();
}
private void setTheme(){
/** BackGround **/
findViewById(org.horaapps.leafpic.R.id.setting_background).setBackgroundColor(getBackgroundColor());
/** Cards **/
int color = getCardBackgroundColor();
((CardView) findViewById(org.horaapps.leafpic.R.id.general_setting_card)).setCardBackgroundColor(color);
((CardView) findViewById(org.horaapps.leafpic.R.id.theme_setting_card)).setCardBackgroundColor(color);
((CardView) findViewById(org.horaapps.leafpic.R.id.preview_picture_setting_card)).setCardBackgroundColor(color);
((CardView) findViewById(org.horaapps.leafpic.R.id.video_setting_card)).setCardBackgroundColor(color);
((CardView) findViewById(R.id.advanced_setting_card)).setCardBackgroundColor(color);
toolbar.setBackgroundColor(getPrimaryColor());
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(
new IconicsDrawable(this)
.icon(CommunityMaterial.Icon.cmd_arrow_left)
.color(Color.WHITE)
.sizeDp(19));
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
setStatusBarColor();
setNavBarColor();
setRecentApp(getString(org.horaapps.leafpic.R.string.settings));
setScrollViewColor(scr);
updateViewswithAccentColor(getAccentColor());
/** Icons **/
color = getIconColor();
((IconicsImageView) findViewById(R.id.ll_switch_picture_orientation_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.ll_switch_max_luminosity_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.ll_switch_full_resolution_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.traslucent_statusbar_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.custom_3thact_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.primary_color_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.accent_color_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.basic_theme_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.n_columns_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.nav_bar_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.excluded_album_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.internal_player_Icon)).setColor(color);
((IconicsImageView) findViewById(R.id.internal_include_video)).setColor(color);
((IconicsImageView) findViewById(R.id.auto_update_media_Icon)).setColor(color);
((IconicsImageView) findViewById(R.id.use_media_mediastore_Icon)).setColor(color);
((IconicsImageView) findViewById(R.id.security_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.fab_options_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.sub_scaling_Icon)).setColor(color);
((IconicsImageView) findViewById(R.id.map_provider_icon)).setColor(color);
((IconicsImageView) findViewById(R.id.media_viewer_swipe_direction_Icon)).setColor(color);
/** TextViews **/
color = getTextColor();
((TextView) findViewById(R.id.max_luminosity_Item)).setTextColor(color);
((TextView) findViewById(R.id.full_resolution_Item)).setTextColor(color);
((TextView) findViewById(R.id.picture_orientation_Item)).setTextColor(color);
((TextView) findViewById(R.id.custom_3thAct_title)).setTextColor(color);
((TextView) findViewById(R.id.Traslucent_StatusBar_Item)).setTextColor(color);
((TextView) findViewById(R.id.PrimaryColor_Item)).setTextColor(color);
((TextView) findViewById(R.id.accentColor_Item)).setTextColor(color);
((TextView) findViewById(R.id.basic_theme_item)).setTextColor(color);
((TextView) findViewById(R.id.n_columns_Item_Title)).setTextColor(color);
((TextView) findViewById(R.id.NavBar_Item)).setTextColor(color);
((TextView) findViewById(R.id.sub_scaling_Item)).setTextColor(color);
((TextView) findViewById(R.id.Excluded_Album_Item_Title)).setTextColor(color);
((TextView) findViewById(R.id.internal_player_Item)).setTextColor(color);
((TextView) findViewById(R.id.include_video_Item)).setTextColor(color);
((TextView) findViewById(R.id.auto_update_media_Item)).setTextColor(color);
((TextView) findViewById(R.id.security_item_title)).setTextColor(color);
((TextView) findViewById(R.id.use_media_mediastore_Item)).setTextColor(color);
((TextView) findViewById(R.id.fab_options_item_title)).setTextColor(color);
((TextView) findViewById(R.id.map_provider_item_title)).setTextColor(color);
((TextView) findViewById(R.id.media_viewer_swipe_direction_Item)).setTextColor(color);
/** Sub Text Views**/
color = getSubTextColor();
((TextView) findViewById(R.id.max_luminosity_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.full_resolution_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.custom_3thAct_Sub)).setTextColor(color);
((TextView) findViewById(R.id.picture_orientation_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.Traslucent_StatusBar_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.use_media_mediastore_Item_sub)).setTextColor(color);
((TextView) findViewById(R.id.PrimaryColor_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.accentColor_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.basic_theme_item_sub)).setTextColor(color);
((TextView) findViewById(R.id.n_columns_Item_Title_Sub)).setTextColor(color);
((TextView) findViewById(R.id.NavBar_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.Excluded_Album_Item_Title_Sub)).setTextColor(color);
((TextView) findViewById(R.id.internal_player_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.sub_scaling_Item_sub)).setTextColor(color);
((TextView) findViewById(R.id.include_video_Item_Sub)).setTextColor(color);
((TextView) findViewById(R.id.auto_update_media_Item_sub)).setTextColor(color);
((TextView) findViewById(R.id.security_item_sub)).setTextColor(color);
((TextView) findViewById(R.id.fab_options_item_sub)).setTextColor(color);
((TextView) findViewById(R.id.map_provider_item_sub)).setTextColor(color);
((TextView) findViewById(R.id.media_viewer_swipe_direction_sub)).setTextColor(color);
}
}