mirror of
https://github.com/SoPat712/TrackCovid19.git
synced 2025-08-21 18:28:46 -04:00
200 lines
7.3 KiB
Java
Executable File
200 lines
7.3 KiB
Java
Executable File
package com.josh.trackcovid19v2;
|
|
|
|
import android.Manifest;
|
|
import android.annotation.SuppressLint;
|
|
import android.content.DialogInterface;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageManager;
|
|
import android.os.Build;
|
|
import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.util.Log;
|
|
import android.view.View;
|
|
import android.widget.Button;
|
|
import android.widget.Toast;
|
|
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RequiresApi;
|
|
import androidx.appcompat.app.AlertDialog;
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
import androidx.core.app.ActivityCompat;
|
|
import androidx.core.content.ContextCompat;
|
|
|
|
import java.io.File;
|
|
|
|
public class HomeActivity extends AppCompatActivity {
|
|
private int SPLASH_SCREEN_TIME_OUT = 30000;
|
|
private Button button;
|
|
private Handler handler;
|
|
private final int STORAGE_PERMISSION_CODE = 1;
|
|
private final int INTERNET_PERMISSION_CODE = 1;
|
|
private Runnable myRunnable;
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_home);
|
|
if(ContextCompat.checkSelfPermission(HomeActivity.this,
|
|
Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
|
|
}
|
|
else{
|
|
requestStoragePermission();
|
|
}
|
|
if(ContextCompat.checkSelfPermission(HomeActivity.this,
|
|
Manifest.permission.INTERNET) == PackageManager.PERMISSION_GRANTED) {
|
|
}
|
|
else{
|
|
requestInternetPermission();
|
|
}
|
|
}
|
|
|
|
@RequiresApi(api = Build.VERSION_CODES.M)
|
|
@Override
|
|
protected void onStart() {
|
|
super.onStart();
|
|
button = findViewById(R.id.magicbtn);
|
|
button.setOnClickListener(new View.OnClickListener() {
|
|
@SuppressLint("LongLogTag")
|
|
@Override
|
|
public void onClick(View v) {
|
|
Log.d("foasdfaosdfoasdfoasdfoasdfoasdofaosdfoasdfoasdf", "button thingy");
|
|
skipSplashScreen();
|
|
}
|
|
});
|
|
handler = new Handler();
|
|
Runnable myRunnable = new Runnable() {
|
|
public void run() {
|
|
Intent i= new Intent(HomeActivity.this,
|
|
MainActivity.class);
|
|
//Intent is used to switch from one activity to another.
|
|
|
|
startActivity(i);
|
|
//invoke the SecondActivity.
|
|
|
|
finish();
|
|
}
|
|
};
|
|
handler.postDelayed(myRunnable, SPLASH_SCREEN_TIME_OUT);
|
|
}
|
|
public void startNextActivity(){
|
|
startActivity(new Intent(getApplicationContext(), MainActivity.class));
|
|
}
|
|
|
|
@Override
|
|
public void onBackPressed() {
|
|
super.onBackPressed();
|
|
skipSplashScreen();
|
|
}
|
|
|
|
public void skipSplashScreen(){
|
|
if (handler != null)
|
|
handler.removeCallbacksAndMessages(null);
|
|
|
|
startNextActivity();
|
|
}
|
|
|
|
@Override
|
|
protected void onStop() {
|
|
super.onStop();
|
|
// clear handler on stop
|
|
if (handler != null)
|
|
handler.removeCallbacksAndMessages(null);
|
|
}
|
|
private void requestInternetPermission() {
|
|
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.INTERNET)){
|
|
new AlertDialog.Builder(this)
|
|
.setTitle("Permission needed")
|
|
.setMessage("This permission is needed to store COVID data on your phone for offline usage")
|
|
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
ActivityCompat.requestPermissions(HomeActivity.this, new String [] {Manifest.permission.INTERNET}, INTERNET_PERMISSION_CODE);
|
|
}
|
|
})
|
|
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dialog.dismiss();
|
|
}
|
|
})
|
|
.create().show();
|
|
} else{
|
|
ActivityCompat.requestPermissions(this, new String [] {Manifest.permission.INTERNET}, INTERNET_PERMISSION_CODE);
|
|
}
|
|
}
|
|
|
|
private void requestStoragePermission() {
|
|
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)){
|
|
new AlertDialog.Builder(this)
|
|
.setTitle("Permission needed")
|
|
.setMessage("This permission is needed to access data")
|
|
.setPositiveButton("ok", new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
ActivityCompat.requestPermissions(HomeActivity.this, new String [] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
|
|
}
|
|
})
|
|
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dialog.dismiss();
|
|
}
|
|
})
|
|
.create().show();
|
|
} else{
|
|
ActivityCompat.requestPermissions(this, new String [] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
|
if (requestCode == STORAGE_PERMISSION_CODE) {
|
|
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
|
}
|
|
else{
|
|
Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
if (requestCode == INTERNET_PERMISSION_CODE) {
|
|
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
|
}
|
|
else{
|
|
Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();
|
|
}
|
|
}
|
|
}
|
|
protected void onDestroy() {
|
|
// TODO Auto-generated method stub
|
|
super.onDestroy();
|
|
}
|
|
|
|
public void clearApplicationData() {
|
|
File cache = getCacheDir();
|
|
File appDir = new File(cache.getParent());
|
|
if (appDir.exists()) {
|
|
String[] children = appDir.list();
|
|
for (String s : children) {
|
|
if (!s.equals("lib")) {
|
|
deleteDir(new File(appDir, s));
|
|
Log.i("EEEEEERRRRRROOOOOOORRRR", "**************** File /data/data/APP_PACKAGE/" + s + " DELETED *******************");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean deleteDir(File dir) {
|
|
if (dir != null && dir.isDirectory()) {
|
|
String[] children = dir.list();
|
|
int i = 0;
|
|
while (i < children.length) {
|
|
boolean success = deleteDir(new File(dir, children[i]));
|
|
if (!success) {
|
|
return false;
|
|
}
|
|
i++;
|
|
}
|
|
}
|
|
|
|
assert dir != null;
|
|
return dir.delete();
|
|
}
|
|
}
|