You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SmsForwarder/app/src/main/java/com/idormy/sms/forwarder/SettingActivity.java

186 lines
7.6 KiB
Java

package com.idormy.sms.forwarder;
import android.content.ComponentName;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.idormy.sms.forwarder.BroadCastReceiver.RebootBroadcastReceiver;
import com.idormy.sms.forwarder.model.vo.FeedBackResult;
import com.idormy.sms.forwarder.utils.HttpI;
import com.idormy.sms.forwarder.utils.HttpUtil;
import com.idormy.sms.forwarder.utils.UpdateAppHttpUtil;
import com.idormy.sms.forwarder.utils.aUtil;
import com.vector.update_app.UpdateAppManager;
import com.vector.update_app.UpdateCallback;
import com.vector.update_app.listener.ExceptionHandler;
import java.util.HashMap;
import java.util.Map;
public class SettingActivity extends AppCompatActivity {
private String TAG = "SettingActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "oncreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting);
Log.d(TAG, "onCreate: " + RebootBroadcastReceiver.class.getName());
Switch check_with_reboot = (Switch) findViewById(R.id.switch_with_reboot);
checkWithReboot(check_with_reboot);
TextView version_now = (TextView) findViewById(R.id.version_now);
Button check_version_now = (Button) findViewById(R.id.check_version_now);
try {
version_now.setText(aUtil.getVersionName(SettingActivity.this));
} catch (Exception e) {
e.printStackTrace();
}
check_version_now.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkNewVersion();
}
});
}
//检查重启广播接受器状态并设置
private void checkWithReboot(Switch withrebootSwitch) {
//获取组件
final ComponentName cm = new ComponentName(this.getPackageName(), RebootBroadcastReceiver.class.getName());
final PackageManager pm = getPackageManager();
int state = pm.getComponentEnabledSetting(cm);
if (state != PackageManager.COMPONENT_ENABLED_STATE_DISABLED
&& state != PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER) {
withrebootSwitch.setChecked(true);
} else {
withrebootSwitch.setChecked(false);
}
withrebootSwitch.setOnCheckedChangeListener(new Switch.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int newState = (Boolean) isChecked ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
: PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
pm.setComponentEnabledSetting(cm, newState, PackageManager.DONT_KILL_APP);
Log.d(TAG, "onCheckedChanged:" + isChecked);
}
});
}
private void checkNewVersion() {
String geturl = "http://api.allmything.com/api/version/hasnew?versioncode=";
try {
geturl += aUtil.getVersionCode(SettingActivity.this);
Log.i("SettingActivity", geturl);
new UpdateAppManager
.Builder()
//当前Activity
.setActivity(SettingActivity.this)
//更新地址
.setUpdateUrl(geturl)
//全局异常捕获
.handleException(new ExceptionHandler() {
@Override
public void onException(Exception e) {
Log.e(TAG, "onException: ", e);
Toast.makeText(SettingActivity.this, "更新失败:" + e.getMessage(), Toast.LENGTH_SHORT).show();
}
})
//实现httpManager接口的对象
.setHttpManager(new UpdateAppHttpUtil())
.build()
.checkNewApp(new UpdateCallback() {
/**
* 没有新版本
*/
protected void noNewApp(String error) {
Toast.makeText(SettingActivity.this, "没有新版本", Toast.LENGTH_SHORT).show();
}
});
// .update();
} catch (Exception e) {
e.printStackTrace();
}
}
public void feedbackcommit(View view) {
final AlertDialog.Builder builder = new AlertDialog.Builder(SettingActivity.this);
View view1 = View.inflate(SettingActivity.this, R.layout.dialog_feedback, null);
final EditText feedback_et_email = view1.findViewById(R.id.feedback_et_email);
final EditText feedback_et_text = view1.findViewById(R.id.feedback_et_text);
builder
.setTitle(R.string.feedback_input_text)
.setView(view1)
.create();
builder.setPositiveButton("提交反馈", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try {
Map<String, String> feedBackData = new HashMap<>();
feedBackData.put("email", feedback_et_email.getText().toString());
feedBackData.put("text", feedback_et_text.getText().toString());
new HttpUtil().asyncPost("https://api.sl.willanddo.com/api/tsms/feedBack", feedBackData, new HttpI.Callback() {
@Override
public void onResponse(String result) {
Log.i(TAG, "onResponse: " + result);
if (result != null) {
FeedBackResult feedBackResult = JSON.parseObject(result, FeedBackResult.class);
Log.i(TAG, "feedBackResult: " + feedBackResult);
if (feedBackResult != null) {
JSONObject feedBackResultObject = JSON.parseObject(result);
Toast.makeText(SettingActivity.this, feedBackResultObject.getString("message"), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(SettingActivity.this, "感谢您的反馈,我们将尽快处理!", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(SettingActivity.this, "感谢您的反馈,我们将尽快处理!", Toast.LENGTH_LONG).show();
}
}
@Override
public void onError(String error) {
Log.i(TAG, "onError: " + error);
Toast.makeText(SettingActivity.this, error, Toast.LENGTH_LONG).show();
}
});
} catch (Exception e) {
Toast.makeText(SettingActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
Log.d(TAG, "feedback e: " + e.getMessage());
}
}
}).show();
}
}