导航菜单

页面标题

页面副标题

St.John's v1.0.9 - BusTrackingActivity.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);
    }
}