修改获取token逻辑,以及处理token 401问题

This commit is contained in:
kehaoyuan
2017-08-18 11:25:28 +08:00
parent 3b521ddd08
commit 043eebf013
26 changed files with 412 additions and 575 deletions

View File

@ -12,7 +12,6 @@ import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.v4.util.ArrayMap;
import android.text.Html;
import android.text.Spanned;
import android.text.TextUtils;
@ -28,7 +27,7 @@ import com.gh.common.util.DeviceUtils;
import com.gh.common.util.DialogUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.common.util.GameUtils;
import com.gh.common.util.LibaoUtils;
import com.gh.common.util.LoginUtils;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.PlatformUtils;
import com.gh.common.util.TokenUtils;
@ -84,7 +83,6 @@ import retrofit2.HttpException;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import rx.functions.Func1;
import rx.schedulers.Schedulers;
import static com.gh.common.util.EntranceUtils.KEY_DATA;
@ -515,15 +513,11 @@ public class MainActivity extends BaseActivity {
}
// 更新用户已安装游戏
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONArray(installed).toString());
return RetrofitManager.getApi().putPackage(token, body);
}
}).subscribeOn(Schedulers.io())
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONArray(installed).toString());
RetrofitManager
.getApi().putPackage(LoginUtils.getToken(MainActivity.this), body)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<ResponseBody>());
@ -680,31 +674,32 @@ public class MainActivity extends BaseActivity {
@Override
public void run() {
// 注册设备
TokenUtils.register(MainActivity.this.getApplicationContext());
TokenUtils.getToken(MainActivity.this.getApplicationContext(), false)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<String>() {
@Override
public void onResponse(String token) {
TokenUtils.checkDeviceInfo(MainActivity.this.getApplicationContext(), token);
}
});
updateUserGhzs();
initConcern(); // 初始化关注
LibaoUtils.getCunHaoXiang(MainActivity.this, true);
// TokenUtils.register(MainActivity.this.getApplicationContext());
// TokenUtils.getToken(MainActivity.this.getApplicationContext(), false) // TODO 是否移除
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(new Response<String>() {
// @Override
// public void onResponse(String token) {
// TokenUtils.checkDeviceInfo(MainActivity.this.getApplicationContext(), token);
// }
// });
// updateUserGhzs();
// initConcern(); // 初始化关注 TODO 移到登录成功后调用
// LibaoUtils.getCunHaoXiang(MainActivity.this);
}
});
} else {
updateUserGhzs();
// updateUserGhzs();
}
// 执行跳转事件
handler.postDelayed(skipRun, 500);
// if (sp.getBoolean("changeDefaultIcon", false) && sp.getInt("default_user_icon", 0) != 0) { // TODO
// postDefaultIcon(true, sp.getInt("default_user_icon", 0), 1);
// }
if (sp.getBoolean("changeDefaultIcon", false) && sp.getInt("default_user_icon", 0) != 0) {
postDefaultIcon(sp.getInt("default_user_icon", 0));
}
getSuggestionType();
@ -725,9 +720,9 @@ public class MainActivity extends BaseActivity {
super.onDestroy();
DownloadManager.getInstance(this).removeObserver(dataWatcher);
// if (sp.getBoolean("changeDefaultIcon", false) && sp.getInt("default_user_icon", 0) != 0) {
// postDefaultIcon(true, sp.getInt("default_user_icon", 0), 1); // TODO
// }
if (sp.getBoolean("changeDefaultIcon", false) && sp.getInt("default_user_icon", 0) != 0) {
postDefaultIcon(sp.getInt("default_user_icon", 0));
}
handler.removeCallbacksAndMessages(null);
}
@ -804,43 +799,43 @@ public class MainActivity extends BaseActivity {
}
// 更新用户使用的助手信息
private void updateUserGhzs() {
String version_code = sp.getString("version_code", null);
String version_name = sp.getString("version_name", null);
String channel = sp.getString("channel", null);
final String versionCode = PackageUtils.getVersionCode(MainActivity.this);
final String versionName = PackageUtils.getVersionName(MainActivity.this);
final String packageChannel = AppController.getInstance().getChannel();
if ((TextUtils.isEmpty(version_code) || TextUtils.isEmpty(version_name) || TextUtils.isEmpty(channel))
|| (!version_code.equals(versionCode) || !version_name.equals(versionName) || !channel.equals(packageChannel))) {
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
Map<String, String> params = new ArrayMap<>();
params.put("version_code", versionCode);
params.put("version_name", versionName);
params.put("channel", packageChannel);
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONObject(params).toString());
return RetrofitManager.getApi().postGhzs(token, body);
}
}).subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<ResponseBody>() {
@Override
public void onResponse(ResponseBody response) {
SharedPreferences.Editor editor = sp.edit();
editor.putString("version_code", versionCode);
editor.putString("version_name", versionName);
editor.putString("channel", packageChannel);
editor.apply();
}
});
}
}
// // 更新用户使用的助手信息
// private void updateUserGhzs() {
// String version_code = sp.getString("version_code", null);
// String version_name = sp.getString("version_name", null);
// String channel = sp.getString("channel", null);
//
// final String versionCode = PackageUtils.getVersionCode(MainActivity.this);
// final String versionName = PackageUtils.getVersionName(MainActivity.this);
// final String packageChannel = AppController.getInstance().getChannel();
// if ((TextUtils.isEmpty(version_code) || TextUtils.isEmpty(version_name) || TextUtils.isEmpty(channel))
// || (!version_code.equals(versionCode) || !version_name.equals(versionName) || !channel.equals(packageChannel))) {
// TokenUtils.getToken(MainActivity.this, true)
// .flatMap(new Func1<String, Observable<ResponseBody>>() {
// @Override
// public Observable<ResponseBody> call(String token) {
// Map<String, String> params = new ArrayMap<>();
// params.put("version_code", versionCode);
// params.put("version_name", versionName);
// params.put("channel", packageChannel);
// RequestBody body = RequestBody.create(MediaType.parse("application/json"),
// new JSONObject(params).toString());
// return RetrofitManager.getApi().postGhzs(token, body);
// }
// }).subscribeOn(Schedulers.io())
// .observeOn(Schedulers.io())
// .subscribe(new Response<ResponseBody>() {
// @Override
// public void onResponse(ResponseBody response) {
// SharedPreferences.Editor editor = sp.edit();
// editor.putString("version_code", versionCode);
// editor.putString("version_name", versionName);
// editor.putString("channel", packageChannel);
// editor.apply();
// }
// });
// }
// }
// 初始化关注
private void initConcern() {
@ -854,15 +849,11 @@ public class MainActivity extends BaseActivity {
@Override
public void onResponse(final List<String> response) {
if (response.size() != 0) {
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONArray(response).toString());
return RetrofitManager.getApi().putConcern(token, body);
}
}).subscribeOn(Schedulers.io())
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONArray(response).toString());
RetrofitManager.getApi()
.putConcern(LoginUtils.getToken(MainActivity.this), body)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<ResponseBody>());
}
@ -871,13 +862,9 @@ public class MainActivity extends BaseActivity {
}
});
} else {
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<List<String>>>() {
@Override
public Observable<List<String>> call(String token) {
return RetrofitManager.getApi().getConcern(token);
}
}).subscribeOn(Schedulers.io())
RetrofitManager.getApi()
.getConcern(LoginUtils.getToken(this))
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<List<String>>() {
@Override
@ -1048,17 +1035,13 @@ public class MainActivity extends BaseActivity {
}
}
// 更新已安装游戏
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
JSONArray params = new JSONArray();
params.put(packageName);
RequestBody body = RequestBody.create(
MediaType.parse("application/json"), params.toString());
return RetrofitManager.getApi().postPackage(token, body);
}
}).subscribeOn(Schedulers.io())
JSONArray params = new JSONArray();
params.put(packageName);
RequestBody body = RequestBody.create(
MediaType.parse("application/json"), params.toString());
RetrofitManager.getApi()
.postPackage(LoginUtils.getToken(MainActivity.this), body)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<ResponseBody>());
}
@ -1067,13 +1050,9 @@ public class MainActivity extends BaseActivity {
if ("卸载".equals(busFour.getType())) {
// 更新已安装游戏
TokenUtils.getToken(MainActivity.this, true)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
return RetrofitManager.getApi().deletePackage(token, packageName);
}
}).subscribeOn(Schedulers.io())
RetrofitManager.getApi()
.deletePackage(LoginUtils.getToken(this), packageName)
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.io())
.subscribe(new Response<ResponseBody>());
}
@ -1111,18 +1090,13 @@ public class MainActivity extends BaseActivity {
}
// 提交默认头像
private void postDefaultIcon(boolean isCheck, final int i, final int count) {
TokenUtils.getToken(this, isCheck)
.flatMap(new Func1<String, Observable<ResponseBody>>() {
@Override
public Observable<ResponseBody> call(String token) {
Map<String, String> params = new HashMap<>();
params.put("icon_key", "icon" + i);
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONObject(params).toString());
return RetrofitManager.getUser().postDefaultIcon(token, body);
}
})
private void postDefaultIcon(final int i) {
Map<String, String> params = new HashMap<>();
params.put("icon_key", "icon" + i);
RequestBody body = RequestBody.create(MediaType.parse("application/json"),
new JSONObject(params).toString());
RetrofitManager.getUser()
.postDefaultIcon(LoginUtils.getToken(this), body)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new JSONObjectResponse() {
@ -1133,11 +1107,6 @@ public class MainActivity extends BaseActivity {
@Override
public void onFailure(HttpException e) {
if (e != null) {
if (e.code() == 401) {
postDefaultIcon(true, i, count - 1);
}
}
}
}
);