package com.example.jpushdemo; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.text.TextUtils; import android.text.format.DateFormat; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.TimePicker; import android.widget.Toast; import java.util.HashSet; import java.util.Set; import cn.jpush.android.api.InstrumentedActivity; import cn.jpush.android.api.JPushInterface; import com.atguigu.beijingnews.R; public class SettingActivity extends InstrumentedActivity implements OnClickListener { TimePicker startTime; TimePicker endTime; CheckBox mMonday ; CheckBox mTuesday ; CheckBox mWednesday; CheckBox mThursday; CheckBox mFriday ; CheckBox mSaturday; CheckBox mSunday ; Button mSetTime; SharedPreferences mSettings; Editor mEditor; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.set_push_time); init(); initListener(); } @Override public void onStart() { super.onStart(); initData(); } private void init(){ startTime = (TimePicker) findViewById(R.id.start_time); endTime = (TimePicker) findViewById(R.id.end_time); startTime.setIs24HourView(DateFormat.is24HourFormat(this)); endTime.setIs24HourView(DateFormat.is24HourFormat(this)); mSetTime = (Button)findViewById(R.id.bu_setTime); mMonday = (CheckBox)findViewById(R.id.cb_monday); mTuesday = (CheckBox)findViewById(R.id.cb_tuesday); mWednesday = (CheckBox)findViewById(R.id.cb_wednesday); mThursday = (CheckBox)findViewById(R.id.cb_thursday); mFriday = (CheckBox)findViewById(R.id.cb_friday); mSaturday = (CheckBox)findViewById(R.id.cb_saturday); mSunday = (CheckBox)findViewById(R.id.cb_sunday); } private void initListener(){ mSetTime.setOnClickListener(this); } private void initData(){ mSettings = getSharedPreferences(ExampleUtil.PREFS_NAME, MODE_PRIVATE); String days = mSettings.getString(ExampleUtil.PREFS_DAYS, ""); if (!TextUtils.isEmpty(days)) { initAllWeek(false); String[] sArray = days.split(","); for (String day : sArray) { setWeek(day); } } else { initAllWeek(true); } int startTimeStr = mSettings.getInt(ExampleUtil.PREFS_START_TIME, 0); startTime.setCurrentHour(Integer.valueOf(startTimeStr)); int endTimeStr = mSettings.getInt(ExampleUtil.PREFS_END_TIME, 23); endTime.setCurrentHour(Integer.valueOf(endTimeStr)); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bu_setTime: v.requestFocus(); v.requestFocusFromTouch(); setPushTime(); break; } } /** *设置允许接收通知时间 */ private void setPushTime(){ int startime = startTime.getCurrentHour(); int endtime = endTime.getCurrentHour(); if (startime > endtime) { Toast.makeText(SettingActivity.this, "开始时间不能大于结束时间", Toast.LENGTH_SHORT).show(); return; } StringBuffer daysSB = new StringBuffer(); Set<Integer> days = new HashSet<Integer>(); if (mSunday.isChecked()) { days.add(0); daysSB.append("0,"); } if (mMonday.isChecked()) { days.add(1); daysSB.append("1,"); } if (mTuesday.isChecked()) { days.add(2); daysSB.append("2,"); } if (mWednesday.isChecked()) { days.add(3); daysSB.append("3,"); } if (mThursday.isChecked()) { days.add(4); daysSB.append("4,"); } if (mFriday.isChecked()) { days.add(5); daysSB.append("5,"); } if (mSaturday.isChecked()) { days.add(6); daysSB.append("6,"); } //调用JPush api设置Push时间 JPushInterface.setPushTime(getApplicationContext(), days, startime, endtime); mEditor = mSettings.edit(); mEditor.putString(ExampleUtil.PREFS_DAYS, daysSB.toString()); mEditor.putInt(ExampleUtil.PREFS_START_TIME, startime); mEditor.putInt(ExampleUtil.PREFS_END_TIME, endtime); mEditor.commit(); Toast.makeText(SettingActivity.this, R.string.setting_su, Toast.LENGTH_SHORT).show(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ finish(); } return super.onKeyDown(keyCode, event); } private void setWeek(String day){ int dayId = Integer.valueOf(day); switch (dayId) { case 0: mSunday.setChecked(true); break; case 1: mMonday.setChecked(true); break; case 2: mTuesday.setChecked(true); break; case 3: mWednesday.setChecked(true); break; case 4: mThursday.setChecked(true); break; case 5: mFriday.setChecked(true); break; case 6: mSaturday.setChecked(true); break; } } private void initAllWeek(boolean isChecked) { mSunday.setChecked(isChecked); mMonday.setChecked(isChecked); mTuesday.setChecked(isChecked); mWednesday.setChecked(isChecked); mThursday.setChecked(isChecked); mFriday.setChecked(isChecked); mSaturday.setChecked(isChecked); } }