code: @Implementation(minSdk = KITKAT)
    @HiddenApi
    @RequiresPermission(android.Manifest.permission.MANAGE_APP_OPS_MODES)
    public void setMode(int op, int uid, String packageName, int mode) {
      Integer oldMode = appModeMap.put(getOpMapKey(uid, packageName, op), mode);
      OnOpChangedListener listener = appOpListeners.get(getListenerKey(op, packageName));
      if (listener != null && !Objects.equals(oldMode, mode)) {
        String[] sOpToString = ReflectionHelpers.getStaticField(AppOpsManager.class, "sOpToString");
        listener.onOpChanged(sOpToString[op], packageName);
      }
    }
docs: Int version of {@link #setMode(String, int, String, int)}.
  
  <p>This method is public for testing {@link #checkOpNoThrow}. If {@link #checkOpNoThrow} is *
  called afterwards with the {@code op}, {@code ui}, and {@code packageName} provided, it will *
  return the {@code mode} set here.