class ApkProvider extends FDroidProvider {

    @Override
    public Uri insert(@NonNull Uri uri, ContentValues values) {
        boolean saveAntiFeatures = false;
        String[] antiFeatures = null;
        if (values.containsKey(Cols.AntiFeatures.ANTI_FEATURES)) {
            saveAntiFeatures = true;
            String antiFeaturesString = values.getAsString(Cols.AntiFeatures.ANTI_FEATURES);
            antiFeatures = Utils.parseCommaSeparatedString(antiFeaturesString);
            values.remove(Cols.AntiFeatures.ANTI_FEATURES);
        }

        removeFieldsFromOtherTables(values);
        validateFields(Cols.ALL, values);
        long newId = db().insertOrThrow(getTableName(), null, values);

        if (saveAntiFeatures) {
            ensureAntiFeatures(antiFeatures, newId);
        }

        if (!isApplyingBatch()) {
            getContext().getContentResolver().notifyChange(uri, null);
        }
        return getApkUri(newId);
    }

}