code: @Override
      public void handleRegistrationRequest(Context context, AppDescriptor descriptor, final Callback callback) {
          final DialogView dialogView = new DialogView(context, descriptor);
  
          Dialog dialog = new AlertDialog.Builder(context).setPositiveButton(R.string.app_permission_dialog_allow, new AlertDialog.OnClickListener() {
  
              @Override
              public void onClick(DialogInterface dialog, int which) {
                  callback.onRequestAccepted(dialogView.getSelectedPersona());
              }
          }).setNegativeButton(R.string.app_permission_dialog_deny, new AlertDialog.OnClickListener() {
  
              @Override
              public void onClick(DialogInterface dialog, int which) {
                  callback.onRequestRefused();
              }
          }).setView(dialogView.getView()).create();
  
  
          /*
           * Workaround to fix the crash:
  		 * android.view.WindowManager$BadTokenException: Unable to add window
  		 * android.view.ViewRootImpl$W@3d67307 -- permission denied for this window type
  		 * that appears only on Android 6.0 Marshmallow or greater.
  		 * Start a dialog fragment to explain the procedure to the user.
  		 * When the user accepts, onClickOnUnderstoodButton() will be called.
  		 */
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
              //if android MarshMallow or greater
              if (Settings.canDrawOverlays(context)) {
                  dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
                  dialog.show();
              } else {
                  //to prevent a crash
                  Toast.makeText(context, "You must activate SPF!", Toast.LENGTH_SHORT).show();
              }
          } else {
              //other older Android's versions
              dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
              dialog.show();
          }
      }
docs: /*
  (non-Javadoc)
  
  @see it.polimi.spf.framework.security.AppRegistrationHandler#
  handleRegistrationRequest(android.content.Context,
  it.polimi.spf.shared.model.AppDescriptor,
  it.polimi.spf.framework.security.AppRegistrationHandler.Callback)