package com.mogujie.tt.ui.fragment;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.Toast;
import com.mogujie.tt.R;
import com.mogujie.tt.imlib.IMConfigurationManager;
import com.mogujie.tt.imlib.common.ConfigDefs;
import com.mogujie.tt.imlib.service.IMService;
import com.mogujie.tt.imlib.utils.IMUIHelper;
import com.mogujie.tt.log.Logger;
import com.mogujie.tt.ui.base.TTBaseFragment;
import com.mogujie.tt.ui.utils.IMServiceHelper;
import com.mogujie.tt.ui.utils.IMServiceHelper.OnIMServiceListner;
public class SettingFragment extends TTBaseFragment
implements
OnIMServiceListner {
private Logger logger = Logger.getLogger(SettingFragment.class);
private IMServiceHelper imServiceHelper = new IMServiceHelper();
private IMConfigurationManager configMgr;
private View curView = null;
private View exitTeamTalkView;
private CheckBox notificationNoDisturbCheckBox;
private CheckBox notificationGotSoundCheckBox;
private CheckBox notificationGotVibrationCheckBox;
private CheckBox saveTrafficModeCheckBox;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// ArrayList<String> actions = new ArrayList<String>();
imServiceHelper.connect(this.getActivity(), null, IMServiceHelper.INTENT_MAX_PRIORITY, this);
if (null != curView) {
((ViewGroup) curView.getParent()).removeView(curView);
return curView;
}
curView = inflater.inflate(R.layout.tt_fragment_setting, topContentView);
initExitView();
initRes();
return curView;
}
private void initOptions() {
notificationNoDisturbCheckBox = (CheckBox) curView.findViewById(R.id.NotificationNoDisturbCheckbox);
notificationGotSoundCheckBox = (CheckBox) curView.findViewById(R.id.notifyGotSoundCheckBox);
notificationGotVibrationCheckBox = (CheckBox) curView.findViewById(R.id.notifyGotVibrationCheckBox);
saveTrafficModeCheckBox = (CheckBox) curView.findViewById(R.id.saveTrafficCheckBox);
initCheckBox(notificationNoDisturbCheckBox, ConfigDefs.KEY_NOTIFICATION_NO_DISTURB, ConfigDefs.DEF_VALUE_NOTIFICATION_NO_DISTURB);
initCheckBox(notificationGotSoundCheckBox, ConfigDefs.KEY_NOTIFICATION_GOT_SOUND, ConfigDefs.DEF_VALUE_NOTIFICATION_GOT_SOUND);
initCheckBox(notificationGotVibrationCheckBox, ConfigDefs.KEY_NOTIFICATION_GOT_VIBRATION, ConfigDefs.DEF_VALUE_NOTIFICATION_GOT_VIBRATION);
initCheckBox(saveTrafficModeCheckBox, ConfigDefs.KEY_SAVE_TRAFFIC_MODE, ConfigDefs.DEF_VALUE_SAVE_TRAFFIC_MODE);
}
private void initCheckBox(CheckBox checkBox, String configKey,
boolean defaultValue) {
handleCheckBoxChanged(checkBox, configKey);
configCheckBox(checkBox, configKey, defaultValue);
}
private void configCheckBox(CheckBox checkBox, String configKey,
boolean defaultValue) {
if (configMgr == null) {
logger.e("config#configMgr is null");
return;
}
boolean shouldCheck = configMgr.getBoolean(ConfigDefs.CATEGORY_GLOBAL, configKey, defaultValue);
logger.d("config#%s is set %s", configKey, shouldCheck);
checkBox.setChecked(shouldCheck);
}
private void handleCheckBoxChanged(final CheckBox checkBox,
final String configKey) {
if (checkBox == null) {
return;
}
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
configMgr.setBoolean(ConfigDefs.CATEGORY_GLOBAL, configKey, checkBox.isChecked());
}
});
}
private void initExitView() {
exitTeamTalkView = curView.findViewById(R.id.exitTeamTalkView);
if (exitTeamTalkView != null) {
exitTeamTalkView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "you clicked me", Toast.LENGTH_SHORT).show();
}
});
IMUIHelper.setViewTouchHightlighted(exitTeamTalkView);
}
}
@Override
public void onResume() {
super.onResume();
}
/**
* @Description 初始化资源
*/
private void initRes() {
// 设置标题栏
setTopTitle(getActivity().getString(R.string.setting_page_name));
setTopLeftButton(R.drawable.tt_top_back);
topLeftBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
getActivity().finish();
}
});
}
@Override
protected void initHandler() {
}
@Override
public void onAction(String action, Intent intent,
BroadcastReceiver broadcastReceiver) {
// TODO Auto-generated method stub
}
@Override
public void onIMServiceConnected() {
logger.d("config#onIMServiceConnected");
IMService imService = imServiceHelper.getIMService();
if (imService != null) {
configMgr = imService.getConfigManager();
initOptions();
}
}
}