@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (mIntentWaitingForResult != null) {
      String inputDeviceDescriptor =
          mIntentWaitingForResult.getStringExtra(
              KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_DESCRIPTOR);
      mIntentWaitingForResult = null;
      showKeyboardLayoutDialog(inputDeviceDescriptor);
    }
  }
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.i(TAG, "RequestCode:" + resultCode);
    if (resultCode == Activity.RESULT_OK) {
      if (requestCode == ShortcutPickerHelper.REQUEST_PICK_SHORTCUT
          || requestCode == ShortcutPickerHelper.REQUEST_PICK_APPLICATION
          || requestCode == ShortcutPickerHelper.REQUEST_CREATE_SHORTCUT) {
        mPicker.onActivityResult(requestCode, resultCode, data);

      } else if (requestCode == REQUEST_PICK_CUSTOM_ICON) {
        String iconName = getIconFileName(mPendingButton);
        FileOutputStream iconStream = null;
        try {
          iconStream = mContext.openFileOutput(iconName, Context.MODE_WORLD_READABLE);
        } catch (FileNotFoundException e) {
          return; // NOOOOO
        }

        Uri selectedImageUri = getTempFileUri();
        try {
          Log.e(TAG, "Selected image path: " + selectedImageUri.getPath());
          Bitmap bitmap = BitmapFactory.decodeFile(selectedImageUri.getPath());
          bitmap.compress(Bitmap.CompressFormat.PNG, 100, iconStream);
        } catch (NullPointerException npe) {
          Log.e(TAG, "SeletedImageUri was null.");
          return;
        }
        mButtons
            .get(mPendingButton)
            .setIconURI(Uri.fromFile(new File(mContext.getFilesDir(), iconName)).getPath());

        File f = new File(selectedImageUri.getPath());
        if (f.exists()) f.delete();
        refreshButtons();
      }
    }
    super.onActivityResult(requestCode, resultCode, data);
  }