@Override public ProviderHook fetch(boolean external, IInterface provider) { if (external) { return new ExternalProviderHook(provider); } return new InternalProviderHook(provider); } };
@Override protected void processArgs(Method method, Object... args) { super.processArgs(method, args); } }
@Override public Cursor query(MethodBox methodBox, Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder, Bundle originQueryArgs) throws InvocationTargetException { Cursor cursor = super.query(methodBox, url, projection, selection, selectionArgs, sortOrder, originQueryArgs); return new QueryRedirectCursor(cursor, DownloadManager.COLUMN_LOCAL_FILENAME); } }
@Override public Uri insert(MethodBox methodBox, Uri url, ContentValues initialValues) throws InvocationTargetException { if (initialValues.containsKey(COLUMN_NOTIFICATION_PACKAGE)) { initialValues.put(COLUMN_NOTIFICATION_PACKAGE, VirtualCore.get().getHostPkg()); } if (initialValues.containsKey(COLUMN_COOKIE_DATA)) { String cookie = initialValues.getAsString(COLUMN_COOKIE_DATA); initialValues.remove(COLUMN_COOKIE_DATA); // retrieve the next free INSERT_KEY_PREFIX int headerIndex = 0; while (initialValues.containsKey(INSERT_KEY_PREFIX + headerIndex)) { headerIndex++; } // add the cookie initialValues.put(INSERT_KEY_PREFIX + headerIndex, "Cookie" + ": " + cookie); } if (!initialValues.containsKey(COLUMN_IS_PUBLIC_API)) { initialValues.put(COLUMN_IS_PUBLIC_API, true); } for (String column : ENFORCE_REMOVE_COLUMNS) { if (initialValues.containsKey(column)) { initialValues.remove(column); } } return super.insert(methodBox, url, initialValues); }
@Override public Uri insert(MethodBox methodBox, Uri url, ContentValues initialValues) throws InvocationTargetException { if (initialValues.containsKey(COLUMN_NOTIFICATION_PACKAGE)) { initialValues.put(COLUMN_NOTIFICATION_PACKAGE, VirtualCore.get().getHostPkg()); } if (initialValues.containsKey(COLUMN_COOKIE_DATA)) { String cookie = initialValues.getAsString(COLUMN_COOKIE_DATA); initialValues.remove(COLUMN_COOKIE_DATA); // retrieve the next free INSERT_KEY_PREFIX int headerIndex = 0; while (initialValues.containsKey(INSERT_KEY_PREFIX + headerIndex)) { headerIndex++; } // add the cookie initialValues.put(INSERT_KEY_PREFIX + headerIndex, "Cookie" + ": " + cookie); } if (!initialValues.containsKey(COLUMN_IS_PUBLIC_API)) { initialValues.put(COLUMN_IS_PUBLIC_API, true); } for (String column : ENFORCE_REMOVE_COLUMNS) { if (initialValues.containsKey(column)) { initialValues.remove(column); } } return super.insert(methodBox, url, initialValues); } }
@Override protected void processArgs(Method method, Object... args) { super.processArgs(method, args); } }
@Override public ProviderHook fetch(boolean external, IInterface provider) { if (external) { return new ExternalProviderHook(provider); } return new InternalProviderHook(provider); } };
@Override public Uri insert(MethodBox methodBox, Uri url, ContentValues initialValues) throws InvocationTargetException { if (initialValues.containsKey(COLUMN_NOTIFICATION_PACKAGE)) { initialValues.put(COLUMN_NOTIFICATION_PACKAGE, VirtualCore.get().getHostPkg()); } if (initialValues.containsKey(COLUMN_COOKIE_DATA)) { String cookie = initialValues.getAsString(COLUMN_COOKIE_DATA); initialValues.remove(COLUMN_COOKIE_DATA); // retrieve the next free INSERT_KEY_PREFIX int headerIndex = 0; while (initialValues.containsKey(INSERT_KEY_PREFIX + headerIndex)) { headerIndex++; } // add the cookie initialValues.put(INSERT_KEY_PREFIX + headerIndex, "Cookie" + ": " + cookie); } if (!initialValues.containsKey(COLUMN_IS_PUBLIC_API)) { initialValues.put(COLUMN_IS_PUBLIC_API, true); } for (String column : ENFORCE_REMOVE_COLUMNS) { if (initialValues.containsKey(column)) { initialValues.remove(column); } } return super.insert(methodBox, url, initialValues); }
@Override public Cursor query(MethodBox methodBox, Uri url, String[] projection, String selection, String[] selectionArgs, String sortOrder, Bundle originQueryArgs) throws InvocationTargetException { Cursor cursor = super.query(methodBox, url, projection, selection, selectionArgs, sortOrder, originQueryArgs); return new QueryRedirectCursor(cursor, DownloadManager.COLUMN_LOCAL_FILENAME); } }
@Override protected void processArgs(Method method, Object... args) { super.processArgs(method, args); } }
@Override public ProviderHook fetch(boolean external, IInterface provider) { if (external) { return new ExternalProviderHook(provider); } return new InternalProviderHook(provider); } };