Ostrich VPN v1.19.0222版本的 MD5 值为:1b442e5f3dd93fd660d88d6f4b94ace3
以下内容为反编译后的 IpInfoActivity.java 源代码,内容仅作参考
package com.best.free.vpn.proxy.ui.activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import androidx.core.app.NotificationCompat;
import androidx.lifecycle.ViewModel;
import com.best.free.vpn.proxy.R;
import com.best.free.vpn.proxy.base.BaseActivity;
import com.best.free.vpn.proxy.configs.GeoBean;
import com.best.free.vpn.proxy.configs.LocationInfoBean;
import com.best.free.vpn.proxy.configs.LocationInfoIpApiBean;
import com.best.free.vpn.proxy.configs.LocationInfoIpinfoBean;
import com.best.free.vpn.proxy.configs.LocationInfoOstrichNetBean;
import com.best.free.vpn.proxy.databinding.ActivityIpInfoBinding;
import com.best.free.vpn.proxy.databinding.AdLayoutAdmobSmallBinding;
import com.best.free.vpn.proxy.http.HttpURL;
import com.best.free.vpn.proxy.http.HttpUtil;
import com.best.free.vpn.proxy.http.ObservableInterface;
import com.best.free.vpn.proxy.http.RxTransformerUtil;
import com.best.free.vpn.proxy.util.CommonUtil;
import com.best.free.vpn.proxy.util.LogKt;
import com.best.free.vpn.proxy.util.NetworkUtil;
import com.google.android.gms.common.internal.ImagesContract;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import java.util.Arrays;
import java.util.List;
import kotlin.Metadata;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.StringCompanionObject;
import kotlin.text.StringsKt;
@Metadata(d1 = {"\u0000H\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0007\n\u0002\u0010\u000e\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\u0018\u0000 \u001b2\u000e\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u00030\u00012\u00020\u0004:\u0001\u001bB\u0005¢\u0006\u0002\u0010\u0005J\b\u0010\b\u001a\u00020\tH\u0014J\b\u0010\n\u001a\u00020\u000bH\u0014J\b\u0010\f\u001a\u00020\u000bH\u0002J\b\u0010\r\u001a\u00020\u000bH\u0002J\b\u0010\u000e\u001a\u00020\u000bH\u0002J\b\u0010\u000f\u001a\u00020\u000bH\u0003J\b\u0010\u0010\u001a\u00020\u000bH\u0003J\u0012\u0010\u0011\u001a\u00020\u000b2\b\b\u0002\u0010\u0012\u001a\u00020\u0013H\u0003J\b\u0010\u0014\u001a\u00020\u000bH\u0014J\u001c\u0010\u0015\u001a\u00020\u00162\b\u0010\u0017\u001a\u0004\u0018\u00010\u00182\b\u0010\u0019\u001a\u0004\u0018\u00010\u001aH\u0016R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082.¢\u0006\u0002\n\u0000¨\u0006\u001c"}, d2 = {"Lcom/best/free/vpn/proxy/ui/activity/IpInfoActivity;", "Lcom/best/free/vpn/proxy/base/BaseActivity;", "Landroidx/lifecycle/ViewModel;", "Lcom/best/free/vpn/proxy/databinding/ActivityIpInfoBinding;", "Landroid/view/View$OnTouchListener;", "()V", "bindingAdLayout", "Lcom/best/free/vpn/proxy/databinding/AdLayoutAdmobSmallBinding;", "getLayoutId", "", "initView", "", "initWebView", "loadAD", "loadLocationInfo", "loadLocationInfoIpApi", "loadLocationInfoIpinfo", "loadLocationInfoOstrichnet", ImagesContract.URL, "", "onDestroy", "onTouch", "", "v", "Landroid/view/View;", NotificationCompat.CATEGORY_EVENT, "Landroid/view/MotionEvent;", "Companion", "vpnkt-v1.19.0(222)_release"}, k = 1, mv = {1, 9, 0}, xi = 48)
public final class IpInfoActivity extends BaseActivity<ViewModel, ActivityIpInfoBinding> implements View.OnTouchListener {
public static final Companion INSTANCE = new Companion(null);
private AdLayoutAdmobSmallBinding bindingAdLayout;
@Override
protected int getLayoutId() {
return R.layout.activity_ip_info;
}
@Metadata(d1 = {"\u0000\u0018\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u000e\u0010\u0003\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006¨\u0006\u0007"}, d2 = {"Lcom/best/free/vpn/proxy/ui/activity/IpInfoActivity$Companion;", "", "()V", "launch", "", "context", "Landroid/content/Context;", "vpnkt-v1.19.0(222)_release"}, k = 1, mv = {1, 9, 0}, xi = 48)
public static final class Companion {
public Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
private Companion() {
}
public final void launch(Context context) {
Intrinsics.checkNotNullParameter(context, "context");
context.startActivity(new Intent(context, (Class<?>) IpInfoActivity.class));
}
}
@Override
protected void initView() {
AdLayoutAdmobSmallBinding inflate = AdLayoutAdmobSmallBinding.inflate(getLayoutInflater());
Intrinsics.checkNotNullExpressionValue(inflate, "inflate(...)");
this.bindingAdLayout = inflate;
setSupportActionBar(getMDataBinding().toolbar);
getMDataBinding().toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
IpInfoActivity.initView$lambda$0(IpInfoActivity.this, view);
}
});
initWebView();
loadLocationInfo();
}
public static final void initView$lambda$0(IpInfoActivity this$0, View view) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
this$0.finish();
}
private final void loadAD() {
}
private final void initWebView() {
WebView webView = getMDataBinding().webView;
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDefaultTextEncodingName("UTF-8");
webView.setScrollbarFadingEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
getMDataBinding().webView.setOnTouchListener(this);
}
@Override
public void onDestroy() {
super.onDestroy();
WebView webView = getMDataBinding().webView;
webView.removeAllViews();
webView.destroy();
}
private final void loadLocationInfo() {
IpInfoActivity ipInfoActivity = this;
if (!NetworkUtil.INSTANCE.isNetworkAvailable(ipInfoActivity) || !NetworkUtil.INSTANCE.isNetworkConnect(ipInfoActivity)) {
String tag = getTAG();
Intrinsics.checkNotNullExpressionValue(tag, "<get-TAG>(...)");
LogKt.logE(tag, "Network is unavailable");
} else {
String string = getString(R.string.ip_info_loading);
Intrinsics.checkNotNullExpressionValue(string, "getString(...)");
getMDataBinding().setLocationBean(new LocationInfoBean(string, new float[2], new GeoBean("", null, null, null, 14, null)));
loadLocationInfoIpinfo();
}
}
private final void loadLocationInfoIpinfo() {
ObservableInterface observableInterface = HttpUtil.INSTANCE.getInterface("https://ipinfo.io/");
if (observableInterface != null) {
Observable<R> compose = observableInterface.getLocationInfoIpinfo().compose(RxTransformerUtil.INSTANCE.observableIO2Main());
final Function1<LocationInfoIpinfoBean, Unit> function1 = new Function1<LocationInfoIpinfoBean, Unit>() {
{
super(1);
}
@Override
public Unit invoke(LocationInfoIpinfoBean locationInfoIpinfoBean) {
invoke2(locationInfoIpinfoBean);
return Unit.INSTANCE;
}
public final void invoke2(LocationInfoIpinfoBean locationInfoIpinfoBean) {
String llString;
Float valueOf = Float.valueOf(0.0f);
if (locationInfoIpinfoBean != null && (llString = locationInfoIpinfoBean.getLlString()) != null && llString.length() != 0) {
List split$default = StringsKt.split$default((CharSequence) locationInfoIpinfoBean.getLlString(), new String[]{","}, false, 0, 6, (Object) null);
float parseFloat = split$default.size() >= 2 ? Float.parseFloat((String) split$default.get(0)) : 0.0f;
float parseFloat2 = split$default.size() >= 2 ? Float.parseFloat((String) split$default.get(1)) : 0.0f;
String ip = locationInfoIpinfoBean.getIp();
if (ip == null) {
ip = "";
}
float[] fArr = {parseFloat, parseFloat2};
String city = locationInfoIpinfoBean.getCity();
if (city == null) {
city = "";
}
String countryCode = locationInfoIpinfoBean.getCountryCode();
if (countryCode == null) {
countryCode = "";
}
String region = locationInfoIpinfoBean.getRegion();
String str = region == null ? "" : region;
String postal = locationInfoIpinfoBean.getPostal();
IpInfoActivity.this.getMDataBinding().setLocationBean(new LocationInfoBean(ip, fArr, new GeoBean(city, countryCode, str, postal != null ? postal : "")));
IpInfoActivity.this.getMDataBinding().ivCountryFlag.setImageDrawable(CommonUtil.INSTANCE.getDrawable(IpInfoActivity.this, locationInfoIpinfoBean.getCountryCode()));
WebView webView = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
String string = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string, "getString(...)");
String format = String.format(string, Arrays.copyOf(new Object[]{Float.valueOf(parseFloat), Float.valueOf(parseFloat2)}, 2));
Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
webView.loadUrl(format);
return;
}
WebView webView2 = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject2 = StringCompanionObject.INSTANCE;
String string2 = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string2, "getString(...)");
String format2 = String.format(string2, Arrays.copyOf(new Object[]{valueOf, valueOf}, 2));
Intrinsics.checkNotNullExpressionValue(format2, "format(format, *args)");
webView2.loadUrl(format2);
}
};
Consumer consumer = new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoIpinfo$lambda$5$lambda$3(Function1.this, obj);
}
};
final Function1<Throwable, Unit> function12 = new Function1<Throwable, Unit>() {
{
super(1);
}
@Override
public Unit invoke(Throwable th) {
invoke2(th);
return Unit.INSTANCE;
}
public final void invoke2(Throwable th) {
th.printStackTrace();
IpInfoActivity.this.loadLocationInfoIpApi();
}
};
compose.subscribe(consumer, new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoIpinfo$lambda$5$lambda$4(Function1.this, obj);
}
});
}
}
public static final void loadLocationInfoIpinfo$lambda$5$lambda$3(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
public static final void loadLocationInfoIpinfo$lambda$5$lambda$4(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
public final void loadLocationInfoIpApi() {
ObservableInterface observableInterface = HttpUtil.INSTANCE.getInterface("http://ip-api.com");
if (observableInterface != null) {
Observable<R> compose = observableInterface.getLocationInfoIpApi().compose(RxTransformerUtil.INSTANCE.observableIO2Main());
final Function1<LocationInfoIpApiBean, Unit> function1 = new Function1<LocationInfoIpApiBean, Unit>() {
{
super(1);
}
@Override
public Unit invoke(LocationInfoIpApiBean locationInfoIpApiBean) {
invoke2(locationInfoIpApiBean);
return Unit.INSTANCE;
}
public final void invoke2(LocationInfoIpApiBean locationInfoIpApiBean) {
if (locationInfoIpApiBean != null) {
String ip = locationInfoIpApiBean.getIp();
if (ip == null) {
ip = "";
}
float[] fArr = {locationInfoIpApiBean.getLat(), locationInfoIpApiBean.getLon()};
String city = locationInfoIpApiBean.getCity();
if (city == null) {
city = "";
}
String countryCode = locationInfoIpApiBean.getCountryCode();
if (countryCode == null) {
countryCode = "";
}
String region = locationInfoIpApiBean.getRegion();
if (region == null) {
region = "";
}
String postal = locationInfoIpApiBean.getPostal();
if (postal == null) {
postal = "";
}
IpInfoActivity.this.getMDataBinding().setLocationBean(new LocationInfoBean(ip, fArr, new GeoBean(city, countryCode, region, postal)));
ImageView imageView = IpInfoActivity.this.getMDataBinding().ivCountryFlag;
CommonUtil commonUtil = CommonUtil.INSTANCE;
IpInfoActivity ipInfoActivity = IpInfoActivity.this;
String countryCode2 = locationInfoIpApiBean.getCountryCode();
imageView.setImageDrawable(commonUtil.getDrawable(ipInfoActivity, countryCode2 != null ? countryCode2 : ""));
WebView webView = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
String string = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string, "getString(...)");
String format = String.format(string, Arrays.copyOf(new Object[]{Float.valueOf(locationInfoIpApiBean.getLat()), Float.valueOf(locationInfoIpApiBean.getLon())}, 2));
Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
webView.loadUrl(format);
return;
}
WebView webView2 = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject2 = StringCompanionObject.INSTANCE;
String string2 = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string2, "getString(...)");
String format2 = String.format(string2, Arrays.copyOf(new Object[]{Float.valueOf(0.0f), Float.valueOf(0.0f)}, 2));
Intrinsics.checkNotNullExpressionValue(format2, "format(format, *args)");
webView2.loadUrl(format2);
}
};
Consumer consumer = new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoIpApi$lambda$8$lambda$6(Function1.this, obj);
}
};
final Function1<Throwable, Unit> function12 = new Function1<Throwable, Unit>() {
{
super(1);
}
@Override
public Unit invoke(Throwable th) {
invoke2(th);
return Unit.INSTANCE;
}
public final void invoke2(Throwable th) {
th.printStackTrace();
IpInfoActivity.loadLocationInfoOstrichnet$default(IpInfoActivity.this, null, 1, null);
}
};
compose.subscribe(consumer, new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoIpApi$lambda$8$lambda$7(Function1.this, obj);
}
});
}
}
public static final void loadLocationInfoIpApi$lambda$8$lambda$6(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
public static final void loadLocationInfoIpApi$lambda$8$lambda$7(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
public static void loadLocationInfoOstrichnet$default(IpInfoActivity ipInfoActivity, String str, int i, Object obj) {
if ((i & 1) != 0) {
str = "";
}
ipInfoActivity.loadLocationInfoOstrichnet(str);
}
private final void loadLocationInfoOstrichnet(String url) {
HttpUtil httpUtil = HttpUtil.INSTANCE;
if (url.length() == 0) {
url = HttpURL.BASE_URL;
}
ObservableInterface observableInterface = httpUtil.getInterface(url);
if (observableInterface != null) {
Observable<R> compose = observableInterface.getLocationInfo().compose(RxTransformerUtil.INSTANCE.observableIO2Main());
final Function1<LocationInfoOstrichNetBean, Unit> function1 = new Function1<LocationInfoOstrichNetBean, Unit>() {
{
super(1);
}
@Override
public Unit invoke(LocationInfoOstrichNetBean locationInfoOstrichNetBean) {
invoke2(locationInfoOstrichNetBean);
return Unit.INSTANCE;
}
public final void invoke2(LocationInfoOstrichNetBean locationInfoOstrichNetBean) {
if (locationInfoOstrichNetBean != null) {
String ip = locationInfoOstrichNetBean.getIp();
if (ip == null) {
ip = "";
}
IpInfoActivity.this.getMDataBinding().setLocationBean(new LocationInfoBean(ip, locationInfoOstrichNetBean.getGeo().getLl(), new GeoBean(locationInfoOstrichNetBean.getGeo().getCity(), locationInfoOstrichNetBean.getGeo().getCountry(), locationInfoOstrichNetBean.getGeo().getRegion(), locationInfoOstrichNetBean.getGeo().getTimezone())));
IpInfoActivity.this.getMDataBinding().ivCountryFlag.setImageDrawable(CommonUtil.INSTANCE.getDrawable(IpInfoActivity.this, locationInfoOstrichNetBean.getGeo().getCountry()));
WebView webView = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject = StringCompanionObject.INSTANCE;
String string = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string, "getString(...)");
String format = String.format(string, Arrays.copyOf(new Object[]{Float.valueOf(locationInfoOstrichNetBean.getGeo().getLl()[0]), Float.valueOf(locationInfoOstrichNetBean.getGeo().getLl()[1])}, 2));
Intrinsics.checkNotNullExpressionValue(format, "format(format, *args)");
webView.loadUrl(format);
return;
}
WebView webView2 = IpInfoActivity.this.getMDataBinding().webView;
StringCompanionObject stringCompanionObject2 = StringCompanionObject.INSTANCE;
String string2 = IpInfoActivity.this.getString(R.string.google_map_url);
Intrinsics.checkNotNullExpressionValue(string2, "getString(...)");
String format2 = String.format(string2, Arrays.copyOf(new Object[]{Float.valueOf(0.0f), Float.valueOf(0.0f)}, 2));
Intrinsics.checkNotNullExpressionValue(format2, "format(format, *args)");
webView2.loadUrl(format2);
}
};
Consumer consumer = new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoOstrichnet$lambda$11$lambda$9(Function1.this, obj);
}
};
final Function1<Throwable, Unit> function12 = new Function1<Throwable, Unit>() {
{
super(1);
}
@Override
public Unit invoke(Throwable th) {
invoke2(th);
return Unit.INSTANCE;
}
public final void invoke2(Throwable th) {
th.printStackTrace();
String string = IpInfoActivity.this.getString(R.string.ip_info_failed);
Intrinsics.checkNotNullExpressionValue(string, "getString(...)");
String string2 = IpInfoActivity.this.getString(R.string.ip_info_failed);
Intrinsics.checkNotNullExpressionValue(string2, "getString(...)");
IpInfoActivity.this.getMDataBinding().setLocationBean(new LocationInfoBean(string, new float[2], new GeoBean(string2, null, null, null, 14, null)));
}
};
compose.subscribe(consumer, new Consumer() {
@Override
public final void accept(Object obj) {
IpInfoActivity.loadLocationInfoOstrichnet$lambda$11$lambda$10(Function1.this, obj);
}
});
}
}
public static final void loadLocationInfoOstrichnet$lambda$11$lambda$9(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
public static final void loadLocationInfoOstrichnet$lambda$11$lambda$10(Function1 tmp0, Object obj) {
Intrinsics.checkNotNullParameter(tmp0, "$tmp0");
tmp0.invoke(obj);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v == null || v.getId() != R.id.webView || event == null || event.getAction() != 0) {
return false;
}
try {
Intent intent = new Intent("android.intent.action.VIEW", Uri.parse("geo:" + ((Object) getMDataBinding().tvLat.getText()) + "," + ((Object) getMDataBinding().tvLng.getText())));
intent.setPackage("com.google.android.apps.maps");
startActivity(intent);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}