package com.fastaccess.ui.modules.settings.dialogs;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.widget.Toolbar;
import android.view.View;
import com.fastaccess.R;
import com.fastaccess.helper.Bundler;
import com.fastaccess.helper.PrefConstant;
import com.fastaccess.helper.PrefHelper;
import com.fastaccess.helper.ViewHelper;
import com.fastaccess.ui.base.BaseBottomSheetDialog;
import com.fastaccess.ui.widgets.FontTextView;
import com.fastaccess.ui.widgets.ForegroundImageView;
import org.adw.library.widgets.discreteseekbar.DiscreteSeekBar;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by Kosh on 16 Oct 2016, 6:46 PM
*/
public class IconSizeTransparencyDialog extends BaseBottomSheetDialog implements DiscreteSeekBar.OnProgressChangeListener {
@BindView(R.id.done) ForegroundImageView done;
@BindView(R.id.valueText) FontTextView valueText;
@BindView(R.id.seekBar) DiscreteSeekBar seekBar;
@BindView(R.id.toolbar) Toolbar toolbar;
private boolean isBackground;
private boolean isSize;
public static IconSizeTransparencyDialog newInstance(boolean isBackground) {
IconSizeTransparencyDialog dialog = new IconSizeTransparencyDialog();
dialog.setArguments(Bundler.start().put("isBackground", isBackground).end());
return dialog;
}
public static IconSizeTransparencyDialog newInstance(boolean isBackground, boolean isSize) {
IconSizeTransparencyDialog dialog = new IconSizeTransparencyDialog();
dialog.setArguments(Bundler.start().put("isBackground", isBackground).put("isSize", isSize).end());
return dialog;
}
@OnClick(R.id.done) void onDone() {
if (!isSize) {
PrefHelper.set(isBackground ? PrefConstant.FA_BACKGROUND_ALPHA : PrefConstant.ICON_ALPHA, seekBar.getProgress());
} else {
PrefHelper.set(PrefConstant.MANUAL_SIZE, seekBar.getProgress());
}
dismiss();
}
@Override protected int layoutRes() {
return R.layout.transparency_layout;
}
@Override public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isSize = getArguments().getBoolean("isSize");
isBackground = getArguments().getBoolean("isBackground");
}
@Override protected void onViewCreated(@NonNull View view) {
if (isSize) toolbar.setTitle(R.string.change_size);
seekBar.setOnProgressChangeListener(this);
if (isSize) {
seekBar.setMin(100);
seekBar.setMax(300);
seekBar.setProgress(PrefHelper.getInt(PrefConstant.MANUAL_SIZE));
} else {
seekBar.setMin(isBackground ? 0 : 20);
seekBar.setProgress(PrefHelper.getInt(isBackground ? PrefConstant.FA_BACKGROUND_ALPHA : PrefConstant.ICON_ALPHA));
}
}
@Override public void onProgressChanged(DiscreteSeekBar seekBar, int value, boolean fromUser) {
changeIconAlpha(value);
}
private void changeIconAlpha(int value) {
valueText.setText(String.format("%s: %s", getString(R.string.value), value));
Drawable drawable = valueText.getCompoundDrawables()[2];//end drawable
if (!isSize) {
if (drawable != null) drawable.setAlpha(value);
} else {
if (drawable != null) {
int height = ViewHelper.toPx(getContext(), value);
drawable.setBounds(0, 0, height, height);
valueText.getLayoutParams().height = height;
}
}
}
@Override public void onStartTrackingTouch(DiscreteSeekBar seekBar) {
}
@Override public void onStopTrackingTouch(DiscreteSeekBar seekBar) {
}
}