package cn.scau.scautreasure.ui; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.util.Log; import android.widget.Toast; import com.devspark.appmsg.AppMsg; import com.umeng.update.UmengUpdateAgent; import com.umeng.update.UmengUpdateListener; import com.umeng.update.UpdateResponse; import com.umeng.update.UpdateStatus; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EFragment; 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.AppContext; import cn.scau.scautreasure.R; import cn.scau.scautreasure.RingerMode; import cn.scau.scautreasure.impl.OnTabSelectListener; import cn.scau.scautreasure.util.ClassUtil; import cn.scau.scautreasure.widget.ParamWidget; /** * 设置界面吧. * * User: special * Date: 13-10-5 * Time: 下午1:36 * Mail: specialcyci@gmail.com */ @EFragment(R.layout.configuration) public class Configuration extends CommonFragment implements OnTabSelectListener{ @Pref cn.scau.scautreasure.AppConfig_ config; @ViewById ParamWidget param_server, param_classTableAsFirstScreen, param_ringer_mode_during_class, param_ringer_mode_after_class; @StringArrayRes String[] server, ringer_mode; @StringRes String listitem_lable_server, listitem_lable_classTableAsFirstScreen, listitem_label_ringerModeDuringClass, listitem_label_ringerModeAfterClass; @AfterViews void initViews(){ param_server.initView(listitem_lable_server, server, 0); param_server.getWheel().setCurrentItem(AppContext.server - 1); param_classTableAsFirstScreen.initViewWithYesOrNoOption(listitem_lable_classTableAsFirstScreen, 1); param_classTableAsFirstScreen.setYesOrNo(config.classTableAsFirstScreen().get()); param_ringer_mode_during_class.initView(listitem_label_ringerModeDuringClass, ringer_mode, 2); int i = 0; for(RingerMode mode : RingerMode.values()){ if(mode.getValue() == config.duringClassRingerMode().get()){ param_ringer_mode_during_class.getWheel().setCurrentItem(i); } i++; } param_ringer_mode_after_class.initView(listitem_label_ringerModeAfterClass, ringer_mode, 3); i = 0; for(RingerMode mode : RingerMode.values()){ if(mode.getValue() == config.afterClassRingerMode().get()){ param_ringer_mode_after_class.getWheel().setCurrentItem(i); } i++; } } @Click void btn_notification_setting(){ NotificationTiming_.intent(getSherlockActivity()).start(); } @Click void btn_about(){ About_.intent(getSherlockActivity()).start(); } @Click void btn_update(){ AppMsg.makeText(getSherlockActivity(), app.getString(R.string.tips_checking_for_update) , AppMsg.STYLE_INFO).show(); UmengUpdateAgent.setUpdateAutoPopup(false); UmengUpdateAgent.setUpdateListener(umengUpdateListener); UmengUpdateAgent.forceUpdate(getSherlockActivity()); } @Click void btn_change_account(){ Login_.intent(this).start(); } @Click void btn_save(){ int server = Integer.valueOf(param_server.getSelectedParam()); boolean isFirstScreen = param_classTableAsFirstScreen.getYesOrNo(); AppContext.server = server; config.eduServer().put(server); config.classTableAsFirstScreen().put(isFirstScreen); RingerMode[] modes = RingerMode.values(); RingerMode duringMode = modes[param_ringer_mode_during_class.getWheel().getCurrentItem()]; RingerMode afterMode = modes[param_ringer_mode_after_class.getWheel().getCurrentItem()]; boolean needUpdateAlarm = false; if(RingerMode.isSet(config.duringClassRingerMode().get()) != RingerMode.isSet(duringMode.getValue()) || RingerMode.isSet(config.afterClassRingerMode().get()) != RingerMode.isSet(afterMode.getValue())){ needUpdateAlarm = true; } config.duringClassRingerMode().put(duringMode.getValue()); config.afterClassRingerMode().put(afterMode.getValue()); if(needUpdateAlarm){ RingerMode.duringClassOn(getActivity(), duringMode, -1); RingerMode.afterClassOn(getActivity(), afterMode, 1); } if(RingerMode.isSet(duringMode.getValue()) || RingerMode.isSet(afterMode.getValue())){ RingerMode.setDateChangedAlarm(getActivity()); } else { RingerMode.cancelDateChangedAlarm(getActivity()); } AudioManager audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE); if(ClassUtil.isDuringClassNow(getActivity())){ audioManager.setRingerMode(duringMode.getValue()); } else { audioManager.setRingerMode(afterMode.getValue()); } AppMsg.makeText(parentActivity(),R.string.tips_save_successfully,AppMsg.STYLE_INFO).show(); } private UmengUpdateListener umengUpdateListener = new UmengUpdateListener() { @Override public void onUpdateReturned(int updateStatus,UpdateResponse updateInfo) { switch (updateStatus) { case UpdateStatus.Yes: // has update UmengUpdateAgent.showUpdateDialog(getSherlockActivity(), updateInfo); break; case UpdateStatus.No: // has no update Toast.makeText(getSherlockActivity(), "没有更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.NoneWifi: // none wifi Toast.makeText(getSherlockActivity(), "没有wifi连接, 只在wifi下更新", Toast.LENGTH_SHORT).show(); break; case UpdateStatus.Timeout: // time out Toast.makeText(getSherlockActivity(), "超时", Toast.LENGTH_SHORT).show(); break; } } }; @Override public void onTabSelect() { setTitle(R.string.title_configuration); setSubTitle(null); } }