正在查看: Jurassic World v1.83.4 应用的 WalletLoadingActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Jurassic World v1.83.4 应用的 WalletLoadingActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.urbanairship.actions;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.Observer;
import com.urbanairship.AirshipExecutors;
import com.urbanairship.Logger;
import com.urbanairship.R;
import com.urbanairship.UAirship;
import com.urbanairship.activity.ThemedActivity;
import com.urbanairship.http.Request;
import com.urbanairship.http.RequestException;
import com.urbanairship.http.Response;
import com.urbanairship.http.ResponseParser;
import com.urbanairship.util.UAHttpStatusUtil;
import java.util.List;
import java.util.Map;
public class WalletLoadingActivity extends ThemedActivity {
private final MutableLiveData<Result> liveData = new MutableLiveData<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ua_activity_wallet_loading);
Uri data = getIntent().getData();
if (data == null) {
Logger.warn("User URI null, unable to process link.", new Object[0]);
finish();
} else {
this.liveData.observe(this, new Observer<Result>() {
public void onChanged(Result result) {
if (result.exception != null || result.uri == null) {
WalletLoadingActivity.this.finish();
} else {
WalletLoadingActivity.this.startActivity(new Intent("android.intent.action.VIEW", result.uri));
}
}
});
resolveWalletUrl(data);
}
}
private void resolveWalletUrl(final Uri url) {
AirshipExecutors.threadPoolExecutor().submit(new Runnable() {
@Override
public void run() {
try {
Logger.debug("Runner starting", new Object[0]);
Response execute = new Request().setOperation("GET", url).setInstanceFollowRedirects(false).setAirshipUserAgent(UAirship.shared().getRuntimeConfig()).execute(new ResponseParser<String>() {
@Override
public String parseResponse(int status, Map headers, String responseBody) throws Exception {
return parseResponse2(status, (Map<String, List<String>>) headers, responseBody);
}
@Override
public String parseResponse2(int status, Map<String, List<String>> headers, String responseBody) {
if (!UAHttpStatusUtil.inRedirectionRange(status) || headers == null || headers.get("Location") == null) {
return null;
}
return headers.get("Location").get(0);
}
});
if (execute.getResult() != null) {
WalletLoadingActivity.this.liveData.postValue(new Result(Uri.parse(execute.getResponseHeader("Location")), null));
} else {
Logger.warn("No result found for Wallet URL, finishing action.", new Object[0]);
WalletLoadingActivity.this.liveData.postValue(new Result(null, null));
}
} catch (RequestException e) {
WalletLoadingActivity.this.liveData.postValue(new Result(null, e));
}
}
});
}
private static class Result {
Exception exception;
Uri uri;
public Result(Uri uri, Exception exception) {
this.uri = uri;
this.exception = exception;
}
}
}