package cn.scau.scautreasure.ui;
import android.appwidget.AppWidgetManager;
import android.content.Intent;
import android.os.Bundle;
import com.larswerkman.holocolorpicker.SVBar;
import com.larswerkman.holocolorpicker.SaturationBar;
import com.larswerkman.holocolorpicker.ValueBar;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.OptionsItem;
import org.androidannotations.annotations.OptionsMenu;
import org.androidannotations.annotations.ViewById;
import org.androidannotations.annotations.res.StringArrayRes;
import org.androidannotations.annotations.res.StringRes;
import org.androidannotations.annotations.sharedpreferences.Pref;
import cn.scau.scautreasure.R;
import cn.scau.scautreasure.helper.WidgetHelper;
import cn.scau.scautreasure.widget.ParamWidget;
/**
* User: special
* Date: 13-9-15
* Time: 下午3:16
* Mail: specialcyci@gmail.com
*/
@EActivity(R.layout.widget_configuration)
@OptionsMenu(R.menu.menu_widget_configuration)
public class WidgetConfiguration extends CommonActivity {
@Pref
cn.scau.scautreasure.AppConfig_ config;
@Bean
WidgetHelper widgetHelper;
@ViewById
com.larswerkman.holocolorpicker.ColorPicker picker;
@ViewById
SVBar svbar;
@ViewById
SaturationBar saturationbar;
@ViewById
ValueBar valuebar;
@ViewById
ParamWidget param_background, param_fontSize;
@StringArrayRes
String[] widget_background,widget_fontSize;
@StringRes
String listitem_lable_widget_backgroud;
@StringRes
String listitem_lable_widget_fontsize;
private int mAppWidgetId;
@AfterViews
void init(){
getAppWidgetParams();
getSupportActionBar().setTitle(R.string.title_colorpicker);
initColorPicker();
initParam();
}
private void initColorPicker(){
picker.addSVBar(svbar);
picker.addSaturationBar(saturationbar);
picker.addValueBar(valuebar);
picker.setOldCenterColor(config.widgetFontColor().get());
picker.setNewCenterColor(config.widgetFontColor().get());
}
private void initParam(){
String fontSize = config.widgetFontSize().get();
String background = config.widgetBackground().get();
param_fontSize.initView(listitem_lable_widget_fontsize,widget_fontSize,0);
param_background.initView(listitem_lable_widget_backgroud,widget_background,1);
param_fontSize.getWheel().setCurrentItem(findMatchIndex(widget_fontSize,fontSize));
param_background.getWheel().setCurrentItem(findMatchIndex(widget_background,background));
}
private int findMatchIndex(String[] stringArray, String want){
for (int i = 0; i < stringArray.length ; i++)
if (stringArray[i].equals(want))
return i;
return 0;
}
@OptionsItem
void menu_done(){
int color = picker.getColor();
String fontSize = param_fontSize.getSelectedParam();
String background = param_background.getSelectedParam();
config.widgetFontColor().put(color);
config.widgetFontSize().put(fontSize);
config.widgetBackground().put(background);
widgetHelper.setUpViews();
returnAppWidget();
}
private void getAppWidgetParams(){
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
mAppWidgetId = extras.getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID);
}
}
private void returnAppWidget(){
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
setResult(RESULT_OK, resultValue);
finish();
}
}