package com.cyhz.csyj.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import com.cyhz.csyj.base.AppContext;
import com.cyhz.csyj.others.UiHelper;
import com.cyhz.csyj.toolbox.MsgDispatchCenter;
import com.cyhz.csyj.view.activity.AppStart;
import com.cyhz.csyj.view.activity.BaseActivity;
import com.cyhz.csyj.view.activity.LoginNew;
import com.cyhz.csyj.view.view.NetWorkProgressDialog;
import com.google.gson.Gson;
import com.netroid.Listener;
import com.netroid.NetroidError;
import org.json.JSONObject;
import java.lang.reflect.ParameterizedType;
import java.util.List;
/**
* Created by liuxiaolong on 14-9-18.
*/
public abstract class ListenerCasingTransmit<T> extends Listener<JSONObject> {
NetWorkProgressDialog netWorkProgressDialog;
Context context;
Class<T> class1;
public ListenerCasingTransmit(Context context) {
if (context != null) {
netWorkProgressDialog = new NetWorkProgressDialog(context);
}
this.context = context;
try {
class1 = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
} catch (Exception e) {
class1 = (Class<T>) Object.class;
}
}
/**
* 在请求的时候是否显示进度动画。
*
* @return
*/
public boolean isDialogShow() {
return true;
}
@Override
public void onFinish() {
super.onFinish();
if (isDialogShow() && netWorkProgressDialog.isShowing()) {
netWorkProgressDialog.dismiss();
}
}
@Override
public void onPreExecute() {
super.onPreExecute();
if (isDialogShow()) {
netWorkProgressDialog.show();
}
}
@Override
public void onSuccess(JSONObject response) {
try {
String code = response.getString("err_no");
if (code.equals("0")) {
String data = response.getString("data");
success(data);
char ch = data.substring(0, 1).toCharArray()[0];
if (ch == '{') {
success(ParseUtil.parseResultJson(data, class1, new Gson()));
} else if (ch == '[') {
success(ParseUtil.parseResultJsonArray(data, class1));
} else {
logcatFilter("json 返回格式错误:" + code);
}
logcatFilter("请求成功:" + data);
} else {
logcatFilter("请求错误,错误代码 :" + code);
failure(code);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(NetroidError error) {
super.onError(error);
error(error.getMessage());
Log.e("sdjbsjkdbnksb", error.toString());
// Toast.makeText(context, "网络异常,请检查网络设置!", Toast.LENGTH_SHORT).show();
logcatFilter("请求失败,错误原因 :" + error.getMessage());
}
/**
* 根据服务器端返回的log打印字段来设置是否显示日志信息。
*
* @param content
*/
public void logcatFilter(String content) {
try {
String logCode = AppContext.get().getAppConfig().getAccessInfo().getDebug_log_level();
if (!TextUtils.isEmpty(logCode)) {
if (logCode.equals("5")) {
Toast.makeText(context, content, Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
}
}
public void success(T t) {
}
public void success(String result) {
}
public void success(List<T> ts) {
}
public void failure(String code) {
Log.e("lxl...log...response1",code);
if (code.equals("1115")) {
if (context instanceof BaseActivity) {
((BaseActivity) context).showToast("授权码失效!");
SharedPreferences sharedPreferences = context.getSharedPreferences(AppStart.SETTING_INFOS, 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(LoginNew.REMEMBERPASSWORD, 10);
editor.commit();
UiHelper.toLoginNew((BaseActivity) context);
((BaseActivity) context).getScreenManager().popAllActivityExceptOne(LoginNew.class);
new Thread(new Runnable() {
@Override
public void run() {
try {
MsgDispatchCenter.closeMQ();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
}
public void error(String error) {
if (isDialogShow() && netWorkProgressDialog.isShowing()) {
netWorkProgressDialog.dismiss();
}
}
}
import android.content.Context;
import android.content.SharedPreferences;
import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast;
import com.cyhz.csyj.base.AppContext;
import com.cyhz.csyj.others.UiHelper;
import com.cyhz.csyj.toolbox.MsgDispatchCenter;
import com.cyhz.csyj.view.activity.AppStart;
import com.cyhz.csyj.view.activity.BaseActivity;
import com.cyhz.csyj.view.activity.LoginNew;
import com.cyhz.csyj.view.view.NetWorkProgressDialog;
import com.google.gson.Gson;
import com.netroid.Listener;
import com.netroid.NetroidError;
import org.json.JSONObject;
import java.lang.reflect.ParameterizedType;
import java.util.List;
/**
* Created by liuxiaolong on 14-9-18.
*/
public abstract class ListenerCasingTransmit<T> extends Listener<JSONObject> {
NetWorkProgressDialog netWorkProgressDialog;
Context context;
Class<T> class1;
public ListenerCasingTransmit(Context context) {
if (context != null) {
netWorkProgressDialog = new NetWorkProgressDialog(context);
}
this.context = context;
try {
class1 = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
} catch (Exception e) {
class1 = (Class<T>) Object.class;
}
}
/**
* 在请求的时候是否显示进度动画。
*
* @return
*/
public boolean isDialogShow() {
return true;
}
@Override
public void onFinish() {
super.onFinish();
if (isDialogShow() && netWorkProgressDialog.isShowing()) {
netWorkProgressDialog.dismiss();
}
}
@Override
public void onPreExecute() {
super.onPreExecute();
if (isDialogShow()) {
netWorkProgressDialog.show();
}
}
@Override
public void onSuccess(JSONObject response) {
try {
String code = response.getString("err_no");
if (code.equals("0")) {
String data = response.getString("data");
success(data);
char ch = data.substring(0, 1).toCharArray()[0];
if (ch == '{') {
success(ParseUtil.parseResultJson(data, class1, new Gson()));
} else if (ch == '[') {
success(ParseUtil.parseResultJsonArray(data, class1));
} else {
logcatFilter("json 返回格式错误:" + code);
}
logcatFilter("请求成功:" + data);
} else {
logcatFilter("请求错误,错误代码 :" + code);
failure(code);
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(NetroidError error) {
super.onError(error);
error(error.getMessage());
Log.e("sdjbsjkdbnksb", error.toString());
// Toast.makeText(context, "网络异常,请检查网络设置!", Toast.LENGTH_SHORT).show();
logcatFilter("请求失败,错误原因 :" + error.getMessage());
}
/**
* 根据服务器端返回的log打印字段来设置是否显示日志信息。
*
* @param content
*/
public void logcatFilter(String content) {
try {
String logCode = AppContext.get().getAppConfig().getAccessInfo().getDebug_log_level();
if (!TextUtils.isEmpty(logCode)) {
if (logCode.equals("5")) {
Toast.makeText(context, content, Toast.LENGTH_LONG).show();
}
}
} catch (Exception e) {
}
}
public void success(T t) {
}
public void success(String result) {
}
public void success(List<T> ts) {
}
public void failure(String code) {
Log.e("lxl...log...response1",code);
if (code.equals("1115")) {
if (context instanceof BaseActivity) {
((BaseActivity) context).showToast("授权码失效!");
SharedPreferences sharedPreferences = context.getSharedPreferences(AppStart.SETTING_INFOS, 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(LoginNew.REMEMBERPASSWORD, 10);
editor.commit();
UiHelper.toLoginNew((BaseActivity) context);
((BaseActivity) context).getScreenManager().popAllActivityExceptOne(LoginNew.class);
new Thread(new Runnable() {
@Override
public void run() {
try {
MsgDispatchCenter.closeMQ();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
}
}
public void error(String error) {
if (isDialogShow() && netWorkProgressDialog.isShowing()) {
netWorkProgressDialog.dismiss();
}
}
}