正在查看: St.John's v1.0.9 应用的 BusTrackingActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: St.John's v1.0.9 应用的 BusTrackingActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.mcb.stjohnsemschool.activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.IntentSender;
import android.net.http.SslError;
import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.webkit.GeolocationPermissions;
import android.webkit.SslErrorHandler;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import com.an.biometric.BiometricManager$;
import com.google.android.exoplayer2.DefaultRenderersFactory;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.LocationSettingsResult;
import com.google.firebase.analytics.FirebaseAnalytics;
public class BusTrackingActivity extends AppCompatActivity {
private static final String TAG = "com.mcb.stjohnsemschool.activity.BusTrackingActivity";
WebView webView;
String mTrackURL = "";
private int REQUEST_CHECK_SETTINGS = 143;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_bustrack);
if (ActivityCompat.checkSelfPermission(this, "android.permission.ACCESS_FINE_LOCATION") != 0 && ActivityCompat.checkSelfPermission(this, "android.permission.ACCESS_COARSE_LOCATION") != 0 && Build.VERSION.SDK_INT >= 23) {
BiometricManager$.ExternalSyntheticApiModelOutline0.m(this, new String[]{"android.permission.ACCESS_FINE_LOCATION"}, 108);
}
this.mTrackURL = getIntent().getStringExtra("DeviceId");
getSupportActionBar().setTitle("BusTrack");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
WebView webView = (WebView) findViewById(2131364517);
this.webView = webView;
webView.getSettings().setLoadsImagesAutomatically(true);
this.webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
this.webView.getSettings().setBuiltInZoomControls(true);
this.webView.getSettings().setDomStorageEnabled(true);
this.webView.setWebViewClient(new GeoWebViewClient());
this.webView.getSettings().setJavaScriptEnabled(true);
this.webView.getSettings().setGeolocationEnabled(true);
this.webView.setWebChromeClient(new GeoWebChromeClient());
this.webView.setScrollBarStyle(0);
this.webView.loadUrl(this.mTrackURL);
displayLocationSettingsRequest(this);
}
private class GeoWebViewClient extends WebViewClient {
private GeoWebViewClient() {
}
@Override
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
webView.loadUrl(webResourceRequest.getUrl().toString());
return true;
}
@Override
public void onReceivedSslError(WebView webView, final SslErrorHandler sslErrorHandler, SslError sslError) {
AlertDialog.Builder builder = new AlertDialog.Builder(BusTrackingActivity.this);
builder.setMessage("SSL Violation Error!,Do you want to proceed?");
builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sslErrorHandler.proceed();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sslErrorHandler.cancel();
}
});
builder.create().show();
}
}
private class GeoWebChromeClient extends WebChromeClient {
private GeoWebChromeClient() {
}
@Override
public void onGeolocationPermissionsShowPrompt(String str, GeolocationPermissions.Callback callback) {
callback.invoke(str, true, false);
}
}
public boolean onOptionsItemSelected(MenuItem menuItem) {
if (menuItem.getItemId() == 16908332) {
super.onBackPressed();
return true;
}
return super.onOptionsItemSelected(menuItem);
}
public void onBackPressed() {
if (this.webView.canGoBack()) {
this.webView.goBack();
} else {
super.onBackPressed();
}
}
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
if (i == 108) {
if (iArr[0] != 0 || ActivityCompat.checkSelfPermission(this, "android.permission.ACCESS_FINE_LOCATION") == 0) {
return;
}
ActivityCompat.checkSelfPermission(this, "android.permission.ACCESS_COARSE_LOCATION");
return;
}
super.onRequestPermissionsResult(i, strArr, iArr);
}
private void displayLocationSettingsRequest(Context context) {
GoogleApiClient build = new GoogleApiClient.Builder(context).addApi(LocationServices.API).build();
build.connect();
LocationRequest create = LocationRequest.create();
create.setPriority(100);
create.setInterval(10000L);
create.setFastestInterval(DefaultRenderersFactory.DEFAULT_ALLOWED_VIDEO_JOINING_TIME_MS);
LocationSettingsRequest.Builder addLocationRequest = new LocationSettingsRequest.Builder().addLocationRequest(create);
addLocationRequest.setAlwaysShow(true);
LocationServices.SettingsApi.checkLocationSettings(build, addLocationRequest.build()).setResultCallback(new ResultCallback<LocationSettingsResult>() {
@Override
public void onResult(LocationSettingsResult locationSettingsResult) {
Status status = locationSettingsResult.getStatus();
if (status.getStatusCode() != 6) {
return;
}
try {
?? r0 = BusTrackingActivity.this;
status.startResolutionForResult(r0, ((BusTrackingActivity) r0).REQUEST_CHECK_SETTINGS);
} catch (IntentSender.SendIntentException unused) {
}
}
});
}
protected void onPause() {
super.onPause();
this.webView.pauseTimers();
}
protected void onDestroy() {
this.webView.pauseTimers();
this.webView.destroy();
super.onDestroy();
}
protected void onResume() {
super.onResume();
this.webView.resumeTimers();
String string = getSharedPreferences("", 0).getString("usernamekey", "");
Bundle bundle = new Bundle();
bundle.putString("user_name", string);
FirebaseAnalytics.getInstance(this).logEvent("PAGE_BUS_TRACKING", bundle);
}
}