package org.fitchfamily.android.gsmlocation; import android.Manifest; import android.annotation.TargetApi; import android.app.Activity; import android.app.AlertDialog; import android.app.NotificationManager; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.os.Bundle; import android.util.Log; import static org.fitchfamily.android.gsmlocation.LogUtils.makeLogTag; @TargetApi(23) public class ReqLocationPermActivity extends Activity { private static final String TAG = makeLogTag(ReqLocationPermActivity.class); private static final boolean DEBUG = Config.DEBUG; public static final int NOTIFICATION_ID = 1; @Override protected void onCreate(Bundle savedInstanceState) { if (DEBUG) Log.i(TAG, "onCreate() called"); super.onCreate(savedInstanceState); requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 0); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { if (DEBUG) Log.i(TAG, "onRequestPermissionsResult() called"); AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle(R.string.app_name) .setCancelable(false).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }); if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { builder.setMessage(R.string.dialog_location_perm_granted).show(); } else { builder.setMessage(R.string.dialog_location_perm_denied).show(); } ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)).cancel(NOTIFICATION_ID); } }