public void openSettings(View view) { Intent i = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", getPackageName(), null)); startActivity(i); }
@Override public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_POSITIVE: getPermissiveMessenger().repeatRequest(); break; case DialogInterface.BUTTON_NEGATIVE: getPermissiveMessenger().cancelRequest(); break; } }
@Override public void onClick(DialogInterface dialog, int which) { switch (which) { case DialogInterface.BUTTON_POSITIVE: getPermissiveMessenger().cancelRequest(); break; case DialogInterface.BUTTON_NEGATIVE: getPermissiveMessenger().repeatRequest(true); break; } }
@Override public void onResume() { super.onResume(); if (Permissive.filterPermissions(getContext(), getPermissiveMessenger().getRequestedPermissions(), PackageManager.PERMISSION_GRANTED).length > 0) { // if user granted permission via Settings, then finish this fragment finishFragment(); } }
@Override public void onClick(View v) { getActivity().finish(); getPermissiveMessenger().cancelRequest(); } });
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { if (isAnyAllowablePermission()) { return new AlertDialog.Builder(getActivity(), R.style.AskInContextDialogTheme) .setTitle("Ask in context...") .setMessage("This is an example of rationale when asked in context.\n" + "Press BACK to repeat the request.") .setPositiveButton(android.R.string.ok, this) .setNegativeButton(R.string.back, this) .create(); } else { return new AlertDialog.Builder(getActivity(), R.style.AskInContextDialogTheme) .setTitle("Ask in context...") .setMessage("The permission was checked to 'never ask again'.") .setPositiveButton(android.R.string.ok, this) .create(); } }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(getClass().getSimpleName(), "onCreate(): " + savedInstanceState); setContentView(R.layout.activity_main); if (null == savedInstanceState) { new Permissive.Request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .withRationale(new EducateUpFrontFragment()) .showRationaleFirst(true) .execute(this); } else { new Permissive.Request(Manifest.permission.WRITE_EXTERNAL_STORAGE) .showRationaleFirst(true) .execute(this); } }
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); final SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getContext()); final boolean firstTimeAsk = sharedPrefs.getBoolean("first_time_ask", true); if (!isAnyAllowablePermission()) { continueBtn.setText("SETTINGS"); continueBtn.setOnClickListener(new View.OnClickListener() {
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { getPermissiveMessenger().repeatRequest(); return inflater.inflate(R.layout.ask_up_front_fragment, container, false); }
@Override public void onClick(View v) { getPermissiveMessenger().repeatRequest(); sharedPrefs.edit().putBoolean("first_time_ask", false).apply(); } });
@Override public void onPermissionsResult(String[] grantedPermissions, String[] refusedPermissions) throws SecurityException { if (getActivity() == null || getActivity().isFinishing()) { return; } if (refusedPermissions.length > 0) { getActivity().finish(); } else { super.onPermissionsResult(grantedPermissions, refusedPermissions); } } }
@Override public void onClick(View v) { Intent i = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", v.getContext().getPackageName(), null)); startActivity(i); } });
@Override public void onPermissionsResult(String[] grantedPermissions, String[] refusedPermissions) throws SecurityException { super.onPermissionsResult(grantedPermissions, refusedPermissions); if (refusedPermissions.length > 0) { getActivity().finish(); } }
@NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog dialog = new AlertDialog.Builder(getActivity(), R.style.EducateInContextDialogTheme) .setIcon(R.mipmap.ic_launcher) .setTitle("Educate in context...") .setMessage("Location is required to track your position via GPS.") .setPositiveButton(android.R.string.ok, this) .setNegativeButton(android.R.string.no, this) .create(); dialog.getWindow().setGravity(Gravity.BOTTOM); return dialog; }
public void askForCameraPermission(View view) { new Permissive.Request(Manifest.permission.CAMERA) .withRationale(new AskInContextFragment()) .whenPermissionsGranted(this::onPermissionsGranted) .whenPermissionsRefused(this::onPermissionsRefused) .execute(this); }
public void educateForLocationPermission(View view) { new Permissive.Request(Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION) .showRationaleFirst(true) .withRationale(new EducateInContextFragment()) .whenPermissionsGranted(this::onPermissionsGranted) .whenPermissionsRefused(this::onPermissionsRefused) .execute(this); }
@Override public void onDestroy() { super.onDestroy(); getPermissiveMessenger().cancelRequest(); } }
@Override public void onDestroy() { super.onDestroy(); Log.i(getClass().getSimpleName(), "onDestroy()"); getPermissiveMessenger().cancelRequest(); }