Skip to content
Snippets Groups Projects
Commit 5e0ea630 authored by viveksvdy2014's avatar viveksvdy2014
Browse files

Added Back Button Exit Confirmation and Dangerous Permissions Request!!

parent 9c9920e1
No related branches found
No related tags found
No related merge requests found
package com.speedyapps.keepyousafe;
import android.Manifest;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.annotation.MainThread;
import android.support.annotation.RequiresApi;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
......@@ -12,16 +17,23 @@ import android.telephony.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
Intent intent;
int choice;
SharedPreferences firsttime;
private static final int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 291;
int backCount=0;
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestPermissionsApp();
firsttime = this.getSharedPreferences("firsttimecheck",MODE_PRIVATE);
SharedPreferences.Editor editor = firsttime.edit();
String checkString = firsttime.getString("status","false");
......@@ -54,6 +66,7 @@ public class MainActivity extends AppCompatActivity {
}
public void onClick(){
backCount=0;
Log.i("zz",""+choice);
switch(choice) {
case 0:
......@@ -68,10 +81,69 @@ public class MainActivity extends AppCompatActivity {
public void contact(View v)
{
backCount=0;
Intent i=new Intent(this,ContactSelection.class);
startActivity(i);
}
@Override
public void onBackPressed() {
Toast.makeText(this, "Press Back Button One More Time To Exit Application!!", Toast.LENGTH_SHORT).show();
if(backCount==1){
finish();
}
backCount=(backCount+1)%2;
}
@RequiresApi(api = Build.VERSION_CODES.M)
void requestPermissionsApp(){
List<String> permissionsNeeded = new ArrayList<String>();
final List<String> permissionsList = new ArrayList<String>();
permissionsList.clear();
permissionsNeeded.clear();
if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_CONTACTS)!= PackageManager.PERMISSION_GRANTED) {
permissionsList.add(Manifest.permission.READ_CONTACTS);
permissionsNeeded.add("Read Contacts");
}
if (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.SEND_SMS)!=PackageManager.PERMISSION_GRANTED) {
permissionsList.add(Manifest.permission.SEND_SMS);
permissionsList.add(Manifest.permission.RECEIVE_SMS);
permissionsList.add(Manifest.permission.READ_SMS);
permissionsNeeded.add("Send SMS");
permissionsNeeded.add("Receive SMS");
permissionsNeeded.add("Read SMS");
}
if (permissionsList.size() > 0) {
if (permissionsNeeded.size() > 0) {
String message = "You need to grant access to " + permissionsNeeded.get(0);
for (int i = 1; i < permissionsNeeded.size(); i++)
message = message + ", " + permissionsNeeded.get(i);
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
});
return;
}
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]), REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return;
}
// requestPermissionsApp();
}
private void showMessageOKCancel(String message, DialogInterface.OnClickListener okListener) {
new AlertDialog.Builder(MainActivity.this)
.setMessage(message)
.setPositiveButton("OK", okListener)
.setNegativeButton("Cancel", null)
.create()
.show();
}
}
......@@ -64,10 +64,6 @@ public class confirmationScreen extends AppCompatActivity {
Intent main = new Intent(confirmationScreen.this,MainActivity.class);
startActivity(main);
}
else if(textView.getText().toString().equals("0")) {
distressCall();
handler2.postDelayed(this,100);
}
else
handler2.postDelayed(this,100);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment