package com.pandocloud.freeiot.ui.urlconfig;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
import com.pandocloud.freeiot.R;
import com.pandocloud.freeiot.ui.SplashActivity;
import com.pandocloud.freeiot.ui.app.AppConfigPrefs;
import com.pandocloud.freeiot.ui.app.UserState;
import com.pandocloud.freeiot.ui.base.BaseActivity;
import com.pandocloud.freeiot.utils.ActivityUtils;
import com.umeng.analytics.MobclickAgent;
public class UrlConfigActivity extends BaseActivity implements OnClickListener {
public static final int URL_CONFIG_REQUEST_CODE = 1 << 2;
private TextView mApiHostUrlView;
private RadioGroup mUrlRadioGroup;
private RadioButton mDevRadioBtn, mPreProductRadioBtn, mReleaseRadioBtn;
private int lastUrlState = UrlConfigManager.getCurrentState();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_url_config);
mUrlRadioGroup = (RadioGroup) findViewById(R.id.radio_group);
mDevRadioBtn = (RadioButton) mUrlRadioGroup.findViewById(R.id.dev_radio);
mPreProductRadioBtn = (RadioButton) mUrlRadioGroup.findViewById(R.id.pre_product_radio);
mReleaseRadioBtn = (RadioButton) mUrlRadioGroup.findViewById(R.id.release_radio);
findViewById(R.id.back).setOnClickListener(this);
if (UrlConfigManager.getCurrentState() == UrlConfigManager.DEVELOP_STATE) {
mDevRadioBtn.setChecked(true);
} else if (UrlConfigManager.getCurrentState() == UrlConfigManager.PREPRODUCT_STATE) {
mPreProductRadioBtn.setChecked(true);
} else if (UrlConfigManager.getCurrentState() == UrlConfigManager.RELEASE_STATE) {
mReleaseRadioBtn.setChecked(true);
}
mApiHostUrlView = (TextView)findViewById(R.id.tv_apihost_url);
setData();
mUrlRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.dev_radio:
UrlConfigManager.setCurrentState(UrlConfigManager.DEVELOP_STATE);
break;
case R.id.pre_product_radio:
UrlConfigManager.setCurrentState(UrlConfigManager.PREPRODUCT_STATE);
break;
case R.id.release_radio:
UrlConfigManager.setCurrentState(UrlConfigManager.RELEASE_STATE);
break;
default:
break;
}
UrlConfigManager.updateUrl(UrlConfigManager.getCurrentState());
AppConfigPrefs.getInstances(UrlConfigActivity.this).saveIntValue("cur_env", UrlConfigManager.getCurrentState());
setData();
}
});
}
public void setData() {
int currentState = UrlConfigManager.getCurrentState();
switch (currentState) {
case UrlConfigManager.DEVELOP_STATE:
mApiHostUrlView.setText(UrlConfigManager.API_HOST_URL);
break;
case UrlConfigManager.PREPRODUCT_STATE:
mApiHostUrlView.setText(UrlConfigManager.API_HOST_URL);
break;
case UrlConfigManager.RELEASE_STATE:
mApiHostUrlView.setText(UrlConfigManager.API_HOST_URL);
break;
default:
break;
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.back:
onBackPressed();
break;
default:
break;
}
}
@Override
public void onBackPressed() {
if (UserState.getInstances(this).isLogin()) {
if (lastUrlState != UrlConfigManager.getCurrentState()) {
UserState.getInstances(this).logout(this);
setResult(RESULT_OK);
Intent mStartActivity = new Intent(this, SplashActivity.class);
int mPendingIntentId = 123456;
PendingIntent mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);
AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 200, mPendingIntent);
MobclickAgent.onKillProcess(this);
android.os.Process.killProcess(android.os.Process.myPid());
return;
}
}
ActivityUtils.animFinish(this, R.anim.slide_in_from_left, R.anim.slide_out_to_right);
}
}