android support! thanks to TachiWeb devs.

This commit is contained in:
Aria Moradi
2021-01-02 04:57:20 +03:30
parent ced07d4e1e
commit 1e46a0c78c
291 changed files with 68699 additions and 16 deletions
@@ -0,0 +1,738 @@
/*
* Copyright 2016 Andy Bao
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package xyz.nulldev.androidcompat.androidimpl;
import android.content.*;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.*;
import android.view.Display;
import android.view.DisplayAdjustments;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.kodein.di.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import xyz.nulldev.androidcompat.info.ApplicationInfoImpl;
import xyz.nulldev.androidcompat.io.AndroidFiles;
import xyz.nulldev.androidcompat.io.sharedprefs.JsonSharedPreferences;
import xyz.nulldev.androidcompat.service.ServiceSupport;
import xyz.nulldev.androidcompat.util.KodeinGlobalHelper;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Custom context implementation.
*
* TODO Deal with packagemanager for extension sources
*/
public class CustomContext extends Context implements DIAware {
private DI kodein;
public CustomContext() {
this(KodeinGlobalHelper.kodein());
}
public CustomContext(DI kodein) {
this.kodein = kodein;
//Init configs
androidFiles = KodeinGlobalHelper.instance(AndroidFiles.class, getDi());
applicationInfo = KodeinGlobalHelper.instance(ApplicationInfoImpl.class, getDi());
serviceSupport = KodeinGlobalHelper.instance(ServiceSupport.class, getDi());
fakePackageManager = KodeinGlobalHelper.instance(FakePackageManager.class, getDi());
}
@NotNull
@Override
public DI getDi() {
return kodein;
}
private AndroidFiles androidFiles;
private ApplicationInfoImpl applicationInfo;
private ServiceSupport serviceSupport;
private FakePackageManager fakePackageManager;
private Logger logger = LoggerFactory.getLogger(CustomContext.class);
private Map<String, Object> serviceMap = new HashMap<>();
{
serviceMap.put(Context.CONNECTIVITY_SERVICE, ConnectivityManager.INSTANCE);
serviceMap.put(Context.POWER_SERVICE, PowerManager.INSTANCE);
}
@Override
public AssetManager getAssets() {
return null;
}
@Override
public Resources getResources() {
return null;
}
@Override
public PackageManager getPackageManager() {
return fakePackageManager;
}
@Override
public ContentResolver getContentResolver() {
return null;
}
@Override
public Looper getMainLooper() {
return null;
}
@Override
public Context getApplicationContext() {
return this;
}
@Override
public void setTheme(int i) {
}
@Override
public Resources.Theme getTheme() {
return null;
}
@Override
public ClassLoader getClassLoader() {
return this.getClass().getClassLoader();
}
@Override
public String getPackageName() {
return null;
}
@Override
public String getBasePackageName() {
return null;
}
@Override
public String getOpPackageName() {
return null;
}
@Override
public ApplicationInfo getApplicationInfo() {
return applicationInfo;
}
@Override
public String getPackageResourcePath() {
return null;
}
@Override
public String getPackageCodePath() {
return null;
}
/** Fake shared prefs! **/
private Map<String, SharedPreferences> prefs = new HashMap<>(); //Cache
private File sharedPrefsFileFromString(String s) {
return new File(androidFiles.getPrefsDir(), s + ".json");
}
@Override
public synchronized SharedPreferences getSharedPreferences(String s, int i) {
SharedPreferences preferences = prefs.get(s);
//Create new shared preferences if one does not exist
if(preferences == null) {
preferences = getSharedPreferences(sharedPrefsFileFromString(s), i);
prefs.put(s, preferences);
}
return preferences;
}
public SharedPreferences getSharedPreferences(File file, int mode) {
return new JsonSharedPreferences(file);
}
@Override
public boolean moveSharedPreferencesFrom(Context sourceContext, String name) {
return false;
}
@Override
public boolean deleteSharedPreferences(String name) {
prefs.remove(name);
return sharedPrefsFileFromString(name).delete();
}
@Override
public FileInputStream openFileInput(String s) throws FileNotFoundException {
return null;
}
@Override
public FileOutputStream openFileOutput(String s, int i) throws FileNotFoundException {
return null;
}
@Override
public boolean deleteFile(String s) {
return false;
}
@Override
public File getFileStreamPath(String s) {
return null;
}
@Override
public File getSharedPreferencesPath(String name) {
return null;
}
@Override
public File getDataDir() {
return androidFiles.getDataDir();
}
@Override
public File getFilesDir() {
return androidFiles.getFilesDir();
}
@Override
public File getNoBackupFilesDir() {
return androidFiles.getNoBackupFilesDir();
}
@Override
public File getExternalFilesDir(String s) {
return androidFiles.getExternalFilesDirs().get(0);
}
@Override
public File[] getExternalFilesDirs(String s) {
List<File> files = androidFiles.getExternalFilesDirs();
return files.toArray(new File[files.size()]);
}
@Override
public File getObbDir() {
return androidFiles.getObbDirs().get(0);
}
@Override
public File[] getObbDirs() {
List<File> files = androidFiles.getObbDirs();
return files.toArray(new File[files.size()]);
}
@Override
public File getCacheDir() {
return androidFiles.getCacheDir();
}
@Override
public File getCodeCacheDir() {
return androidFiles.getCodeCacheDir();
}
@Override
public File getExternalCacheDir() {
return androidFiles.getExternalCacheDirs().get(0);
}
@Override
public File[] getExternalCacheDirs() {
List<File> files = androidFiles.getExternalCacheDirs();
return files.toArray(new File[files.size()]);
}
@Override
public File[] getExternalMediaDirs() {
List<File> files = androidFiles.getExternalMediaDirs();
return files.toArray(new File[files.size()]);
}
@Override
public String[] fileList() {
return new String[0];
}
@Override
public File getDir(String s, int i) {
return null;
}
@Override
public SQLiteDatabase openOrCreateDatabase(String s, int i, SQLiteDatabase.CursorFactory cursorFactory) {
return openOrCreateDatabase(s, i, cursorFactory, null);
}
@Override
public SQLiteDatabase openOrCreateDatabase(String s, int i, SQLiteDatabase.CursorFactory cursorFactory, DatabaseErrorHandler databaseErrorHandler) {
return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(s).getAbsolutePath(), cursorFactory, databaseErrorHandler);
}
@Override
public boolean moveDatabaseFrom(Context sourceContext, String name) {
return false;
}
@Override
public boolean deleteDatabase(String s) {
return false;
}
@Override
public File getDatabasePath(String s) {
return new File(new File(androidFiles.getRootDir(), "databases"), s);
}
@Override
public String[] databaseList() {
return new String[0];
}
@Override
public Drawable getWallpaper() {
return null;
}
@Override
public Drawable peekWallpaper() {
return null;
}
@Override
public int getWallpaperDesiredMinimumWidth() {
return 0;
}
@Override
public int getWallpaperDesiredMinimumHeight() {
return 0;
}
@Override
public void setWallpaper(Bitmap bitmap) throws IOException {
}
@Override
public void setWallpaper(InputStream inputStream) throws IOException {
}
@Override
public void clearWallpaper() throws IOException {
}
@Override
public void startActivity(Intent intent) {
}
@Override
public void startActivity(Intent intent, Bundle bundle) {
}
@Override
public void startActivities(Intent[] intents) {
}
@Override
public void startActivities(Intent[] intents, Bundle bundle) {
}
@Override
public void startIntentSender(IntentSender intentSender, Intent intent, int i, int i1, int i2) throws IntentSender.SendIntentException {
}
@Override
public void startIntentSender(IntentSender intentSender, Intent intent, int i, int i1, int i2, Bundle bundle) throws IntentSender.SendIntentException {
}
@Override
public void sendBroadcast(Intent intent) {
}
@Override
public void sendBroadcast(Intent intent, String s) {
}
@Override
public void sendBroadcastMultiplePermissions(Intent intent, String[] receiverPermissions) {
}
@Override
public void sendBroadcast(Intent intent, String receiverPermission, Bundle options) {
}
@Override
public void sendBroadcast(Intent intent, String receiverPermission, int appOp) {
}
@Override
public void sendOrderedBroadcast(Intent intent, String s) {
}
@Override
public void sendOrderedBroadcast(Intent intent, String s, BroadcastReceiver broadcastReceiver, Handler handler, int i, String s1, Bundle bundle) {
}
@Override
public void sendOrderedBroadcast(Intent intent, String receiverPermission, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
}
@Override
public void sendOrderedBroadcast(Intent intent, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
}
@Override
public void sendBroadcastAsUser(Intent intent, UserHandle userHandle) {
}
@Override
public void sendBroadcastAsUser(Intent intent, UserHandle userHandle, String s) {
}
@Override
public void sendBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp) {
}
@Override
public void sendOrderedBroadcastAsUser(Intent intent, UserHandle userHandle, String s, BroadcastReceiver broadcastReceiver, Handler handler, int i, String s1, Bundle bundle) {
}
@Override
public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
}
@Override
public void sendOrderedBroadcastAsUser(Intent intent, UserHandle user, String receiverPermission, int appOp, Bundle options, BroadcastReceiver resultReceiver, Handler scheduler, int initialCode, String initialData, Bundle initialExtras) {
}
@Override
public void sendStickyBroadcast(Intent intent) {
}
@Override
public void sendStickyOrderedBroadcast(Intent intent, BroadcastReceiver broadcastReceiver, Handler handler, int i, String s, Bundle bundle) {
}
@Override
public void removeStickyBroadcast(Intent intent) {
}
@Override
public void sendStickyBroadcastAsUser(Intent intent, UserHandle userHandle) {
}
@Override
public void sendStickyBroadcastAsUser(Intent intent, UserHandle user, Bundle options) {
}
@Override
public void sendStickyOrderedBroadcastAsUser(Intent intent, UserHandle userHandle, BroadcastReceiver broadcastReceiver, Handler handler, int i, String s, Bundle bundle) {
}
@Override
public void removeStickyBroadcastAsUser(Intent intent, UserHandle userHandle) {
}
@Override
public Intent registerReceiver(BroadcastReceiver broadcastReceiver, IntentFilter intentFilter) {
return null;
}
@Override
public Intent registerReceiver(BroadcastReceiver broadcastReceiver, IntentFilter intentFilter, String s, Handler handler) {
return null;
}
@Override
public Intent registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler) {
return null;
}
public void unregisterReceiver(BroadcastReceiver broadcastReceiver) {
}
@Override
public ComponentName startService(Intent intent) {
serviceSupport.startService(this, intent);
return intent.getComponent();
}
@Override
public boolean stopService(Intent intent) {
serviceSupport.stopService(this, intent);
return true;
}
@Override
public ComponentName startServiceAsUser(Intent service, UserHandle user) {
logger.warn("An attempt was made to start the service: '{}' as another user! Since multiple user services are currently not supported, the service will be started as the current user!", service.getComponent().getClassName());
return startService(service);
}
@Override
public boolean stopServiceAsUser(Intent service, UserHandle user) {
logger.warn("An attempt was made to stop the service: '{}' as another user! Since multiple user services are currently not supported, the service will be stopped as the current user!", service.getComponent().getClassName());
return stopService(service);
}
@Override
public boolean bindService(Intent intent, ServiceConnection serviceConnection, int i) {
return false;
}
@Override
public void unbindService(ServiceConnection serviceConnection) {
}
@Override
public boolean startInstrumentation(ComponentName componentName, String s, Bundle bundle) {
return false;
}
@Override
public Object getSystemService(String s) {
return serviceMap.get(s);
}
@Override
public String getSystemServiceName(Class<?> aClass) {
return null;
}
@Override
public int checkPermission(String s, int i, int i1) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public int checkPermission(String permission, int pid, int uid, IBinder callerToken) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public int checkCallingPermission(String s) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public int checkCallingOrSelfPermission(String s) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public int checkSelfPermission(String s) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public void enforcePermission(String s, int i, int i1, String s1) {
}
@Override
public void enforceCallingPermission(String s, String s1) {
}
@Override
public void enforceCallingOrSelfPermission(String s, String s1) {
}
@Override
public void grantUriPermission(String s, Uri uri, int i) {
}
@Override
public void revokeUriPermission(Uri uri, int i) {
}
@Override
public int checkUriPermission(Uri uri, int i, int i1, int i2) {
return 0;
}
@Override
public int checkUriPermission(Uri uri, int pid, int uid, int modeFlags, IBinder callerToken) {
return 0;
}
@Override
public int checkCallingUriPermission(Uri uri, int i) {
return 0;
}
@Override
public int checkCallingOrSelfUriPermission(Uri uri, int i) {
return 0;
}
@Override
public int checkUriPermission(Uri uri, String s, String s1, int i, int i1, int i2) {
return 0;
}
@Override
public void enforceUriPermission(Uri uri, int i, int i1, int i2, String s) {
}
@Override
public void enforceCallingUriPermission(Uri uri, int i, String s) {
}
@Override
public void enforceCallingOrSelfUriPermission(Uri uri, int i, String s) {
}
@Override
public void enforceUriPermission(Uri uri, String s, String s1, int i, int i1, int i2, String s2) {
}
@Override
public Context createPackageContext(String s, int i) throws PackageManager.NameNotFoundException {
return null;
}
@Override
public Context createPackageContextAsUser(String packageName, int flags, UserHandle user) throws PackageManager.NameNotFoundException {
return null;
}
@Override
public Context createApplicationContext(ApplicationInfo application, int flags) throws PackageManager.NameNotFoundException {
return null;
}
@Override
public int getUserId() {
return 0;
}
@Override
public Context createConfigurationContext(Configuration configuration) {
return null;
}
@Override
public Context createDisplayContext(Display display) {
return null;
}
@Override
public Context createDeviceProtectedStorageContext() {
return null;
}
@Override
public Context createCredentialProtectedStorageContext() {
return null;
}
@Override
public DisplayAdjustments getDisplayAdjustments(int displayId) {
return null;
}
@Override
public Display getDisplay() {
return null;
}
@Override
public boolean isDeviceProtectedStorage() {
return false;
}
@Override
public boolean isCredentialProtectedStorage() {
return false;
}
@NotNull
@Override
public DIContext<?> getDiContext() {
return getDi().getDiContext();
}
@Nullable
@Override
public DITrigger getDiTrigger() {
return null;
}
}
@@ -0,0 +1,849 @@
package xyz.nulldev.androidcompat.androidimpl;
import android.app.PackageInstallObserver;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.pm.*;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler;
import android.os.UserHandle;
import kotlin.NotImplementedError;
import xyz.nulldev.androidcompat.pm.InstalledPackage;
import xyz.nulldev.androidcompat.pm.PackageController;
import xyz.nulldev.androidcompat.util.KodeinGlobalHelper;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class FakePackageManager extends PackageManager {
private PackageController controller = KodeinGlobalHelper.instance(PackageController.class);
@Override
public PackageInfo getPackageInfo(String packageName, int flags) throws NameNotFoundException {
InstalledPackage installedPackage = controller.findPackage(packageName);
if(installedPackage == null) throw new NameNotFoundException();
return installedPackage.getInfo();
}
@Override
public PackageInfo getPackageInfo(VersionedPackage versionedPackage, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException {
return getPackageInfo(packageName, userId);
}
@Override
public String[] currentToCanonicalPackageNames(String[] names) {
throw new NotImplementedError();
}
@Override
public String[] canonicalToCurrentPackageNames(String[] names) {
throw new NotImplementedError();
}
@Override
public Intent getLaunchIntentForPackage(String packageName) {
throw new NotImplementedError();
}
@Override
public Intent getLeanbackLaunchIntentForPackage(String packageName) {
throw new NotImplementedError();
}
@Override
public int[] getPackageGids(String packageName) throws NameNotFoundException {
return new int[0];
}
@Override
public int[] getPackageGids(String packageName, int flags) throws NameNotFoundException {
return new int[0];
}
@Override
public int getPackageUid(String packageName, int flags) throws NameNotFoundException {
return 0;
}
@Override
public int getPackageUidAsUser(String packageName, int userId) throws NameNotFoundException {
return 0;
}
@Override
public int getPackageUidAsUser(String packageName, int flags, int userId) throws NameNotFoundException {
return 0;
}
@Override
public PermissionInfo getPermissionInfo(String name, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public List<PermissionInfo> queryPermissionsByGroup(String group, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public boolean isPermissionReviewModeEnabled() {
return false;
}
@Override
public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public List<PermissionGroupInfo> getAllPermissionGroups(int flags) {
throw new NotImplementedError();
}
@Override
public ApplicationInfo getApplicationInfo(String packageName, int flags) throws NameNotFoundException {
return getPackageInfo(packageName, flags).applicationInfo;
}
@Override
public ApplicationInfo getApplicationInfoAsUser(String packageName, int flags, int userId) throws NameNotFoundException {
return getPackageInfoAsUser(packageName, flags, userId).applicationInfo;
}
@Override
public ActivityInfo getActivityInfo(ComponentName component, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public ActivityInfo getReceiverInfo(ComponentName component, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public ServiceInfo getServiceInfo(ComponentName component, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
@Override
public ProviderInfo getProviderInfo(ComponentName component, int flags) throws NameNotFoundException {
throw new NotImplementedError();
}
//TODO Return loaded extensions
@Override
public List<PackageInfo> getInstalledPackages(int flags) {
return controller.listInstalled().stream().map(InstalledPackage::getInfo).collect(Collectors.toList());
}
@Override
public List<PackageInfo> getPackagesHoldingPermissions(String[] permissions, int flags) {
throw new NotImplementedError();
}
@Override
public List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId) {
throw new NotImplementedError();
}
@Override
public int checkPermission(String permName, String pkgName) {
return PackageManager.PERMISSION_GRANTED;
}
@Override
public boolean isPermissionRevokedByPolicy(String permName, String pkgName) {
return false;
}
@Override
public String getPermissionControllerPackageName() {
return null;
}
@Override
public boolean addPermission(PermissionInfo info) {
return true;
}
@Override
public boolean addPermissionAsync(PermissionInfo info) {
return true;
}
@Override
public void removePermission(String name) {
}
@Override
public void grantRuntimePermission(String packageName, String permissionName, UserHandle user) {
}
@Override
public void revokeRuntimePermission(String packageName, String permissionName, UserHandle user) {
}
@Override
public int getPermissionFlags(String permissionName, String packageName, UserHandle user) {
return 0;
}
@Override
public void updatePermissionFlags(String permissionName, String packageName, int flagMask, int flagValues, UserHandle user) {
throw new NotImplementedError();
}
@Override
public boolean shouldShowRequestPermissionRationale(String permission) {
return true;
}
@Override
public int checkSignatures(String pkg1, String pkg2) {
return 0;
}
@Override
public int checkSignatures(int uid1, int uid2) {
return 0;
}
@Override
public String[] getPackagesForUid(int uid) {
return new String[0];
}
@Override
public String getNameForUid(int uid) {
return null;
}
@Override
public String[] getNamesForUids(int[] uids) {
return new String[0];
}
@Override
public int getUidForSharedUser(String sharedUserName) throws NameNotFoundException {
return 0;
}
@Override
public List<ApplicationInfo> getInstalledApplications(int flags) {
return getInstalledPackages(flags).stream().map((it) -> it.applicationInfo).collect(Collectors.toList());
}
@Override
public List<ApplicationInfo> getInstalledApplicationsAsUser(int flags, int userId) {
return getInstalledApplications(flags);
}
@Override
public List<InstantAppInfo> getInstantApps() {
return new ArrayList<>();
}
@Override
public Drawable getInstantAppIcon(String packageName) {
throw new NotImplementedError();
}
@Override
public boolean isInstantApp() {
return false;
}
@Override
public boolean isInstantApp(String packageName) {
return false;
}
@Override
public int getInstantAppCookieMaxBytes() {
return 0;
}
@Override
public int getInstantAppCookieMaxSize() {
return 0;
}
@Override
public byte[] getInstantAppCookie() {
return new byte[0];
}
@Override
public void clearInstantAppCookie() {
}
@Override
public void updateInstantAppCookie(byte[] cookie) {
}
@Override
public boolean setInstantAppCookie(byte[] cookie) {
return false;
}
@Override
public String[] getSystemSharedLibraryNames() {
return new String[0];
}
@Override
public List<SharedLibraryInfo> getSharedLibraries(int flags) {
return null;
}
@Override
public List<SharedLibraryInfo> getSharedLibrariesAsUser(int flags, int userId) {
return null;
}
@Override
public String getServicesSystemSharedLibraryPackageName() {
return null;
}
@Override
public String getSharedSystemSharedLibraryPackageName() {
return null;
}
@Override
public ChangedPackages getChangedPackages(int sequenceNumber) {
return null;
}
@Override
public FeatureInfo[] getSystemAvailableFeatures() {
return new FeatureInfo[0];
}
@Override
public boolean hasSystemFeature(String name) {
return false;
}
@Override
public boolean hasSystemFeature(String name, int version) {
return false;
}
@Override
public ResolveInfo resolveActivity(Intent intent, int flags) {
return null;
}
@Override
public ResolveInfo resolveActivityAsUser(Intent intent, int flags, int userId) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivitiesAsUser(Intent intent, int flags, int userId) {
return null;
}
@Override
public List<ResolveInfo> queryIntentActivityOptions(ComponentName caller, Intent[] specifics, Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryBroadcastReceivers(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryBroadcastReceiversAsUser(Intent intent, int flags, int userId) {
return null;
}
@Override
public ResolveInfo resolveService(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentServices(Intent intent, int flags) {
return null;
}
@Override
public List<ResolveInfo> queryIntentServicesAsUser(Intent intent, int flags, int userId) {
return null;
}
@Override
public List<ResolveInfo> queryIntentContentProvidersAsUser(Intent intent, int flags, int userId) {
return null;
}
@Override
public List<ResolveInfo> queryIntentContentProviders(Intent intent, int flags) {
return null;
}
@Override
public ProviderInfo resolveContentProvider(String name, int flags) {
return null;
}
@Override
public ProviderInfo resolveContentProviderAsUser(String name, int flags, int userId) {
return null;
}
@Override
public List<ProviderInfo> queryContentProviders(String processName, int uid, int flags) {
return null;
}
@Override
public InstrumentationInfo getInstrumentationInfo(ComponentName className, int flags) throws NameNotFoundException {
return null;
}
@Override
public List<InstrumentationInfo> queryInstrumentation(String targetPackage, int flags) {
return null;
}
@Override
public Drawable getDrawable(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public Drawable getActivityIcon(ComponentName activityName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getActivityIcon(Intent intent) throws NameNotFoundException {
return null;
}
@Override
public Drawable getActivityBanner(ComponentName activityName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getActivityBanner(Intent intent) throws NameNotFoundException {
return null;
}
@Override
public Drawable getDefaultActivityIcon() {
return null;
}
@Override
public Drawable getApplicationIcon(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationIcon(String packageName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getApplicationBanner(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationBanner(String packageName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getActivityLogo(ComponentName activityName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getActivityLogo(Intent intent) throws NameNotFoundException {
return null;
}
@Override
public Drawable getApplicationLogo(ApplicationInfo info) {
return null;
}
@Override
public Drawable getApplicationLogo(String packageName) throws NameNotFoundException {
return null;
}
@Override
public Drawable getUserBadgedIcon(Drawable icon, UserHandle user) {
return null;
}
@Override
public Drawable getUserBadgedDrawableForDensity(Drawable drawable, UserHandle user, Rect badgeLocation, int badgeDensity) {
return null;
}
@Override
public Drawable getUserBadgeForDensity(UserHandle user, int density) {
return null;
}
@Override
public Drawable getUserBadgeForDensityNoBackground(UserHandle user, int density) {
return null;
}
@Override
public CharSequence getUserBadgedLabel(CharSequence label, UserHandle user) {
return null;
}
@Override
public CharSequence getText(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public XmlResourceParser getXml(String packageName, int resid, ApplicationInfo appInfo) {
return null;
}
@Override
public CharSequence getApplicationLabel(ApplicationInfo info) {
return info.nonLocalizedLabel;
}
@Override
public Resources getResourcesForActivity(ComponentName activityName) throws NameNotFoundException {
return null;
}
@Override
public Resources getResourcesForApplication(ApplicationInfo app) throws NameNotFoundException {
return null;
}
@Override
public Resources getResourcesForApplication(String appPackageName) throws NameNotFoundException {
return null;
}
@Override
public Resources getResourcesForApplicationAsUser(String appPackageName, int userId) throws NameNotFoundException {
return null;
}
@Override
public void installPackage(Uri packageURI, PackageInstallObserver observer, int flags, String installerPackageName) {
}
@Override
public int installExistingPackage(String packageName) throws NameNotFoundException {
return 0;
}
@Override
public int installExistingPackage(String packageName, int installReason) throws NameNotFoundException {
return 0;
}
@Override
public int installExistingPackageAsUser(String packageName, int userId) throws NameNotFoundException {
return 0;
}
@Override
public void verifyPendingInstall(int id, int verificationCode) {
}
@Override
public void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay) {
}
@Override
public void verifyIntentFilter(int verificationId, int verificationCode, List<String> failedDomains) {
}
@Override
public int getIntentVerificationStatusAsUser(String packageName, int userId) {
return 0;
}
@Override
public boolean updateIntentVerificationStatusAsUser(String packageName, int status, int userId) {
return false;
}
@Override
public List<IntentFilterVerificationInfo> getIntentFilterVerifications(String packageName) {
return null;
}
@Override
public List<IntentFilter> getAllIntentFilters(String packageName) {
return null;
}
@Override
public String getDefaultBrowserPackageNameAsUser(int userId) {
return null;
}
@Override
public boolean setDefaultBrowserPackageNameAsUser(String packageName, int userId) {
return false;
}
@Override
public void setInstallerPackageName(String targetPackage, String installerPackageName) {
}
@Override
public void setUpdateAvailable(String packageName, boolean updateAvaialble) {
}
@Override
public String getInstallerPackageName(String packageName) {
return null;
}
@Override
public void freeStorage(String volumeUuid, long freeStorageSize, IntentSender pi) {
}
@Override
public void addPackageToPreferred(String packageName) {
}
@Override
public void removePackageFromPreferred(String packageName) {
}
@Override
public List<PackageInfo> getPreferredPackages(int flags) {
return null;
}
@Override
public void addPreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) {
}
@Override
public void replacePreferredActivity(IntentFilter filter, int match, ComponentName[] set, ComponentName activity) {
}
@Override
public void clearPackagePreferredActivities(String packageName) {
}
@Override
public int getPreferredActivities(List<IntentFilter> outFilters, List<ComponentName> outActivities, String packageName) {
return 0;
}
@Override
public ComponentName getHomeActivities(List<ResolveInfo> outActivities) {
return null;
}
@Override
public void setComponentEnabledSetting(ComponentName componentName, int newState, int flags) {
}
@Override
public int getComponentEnabledSetting(ComponentName componentName) {
return 0;
}
@Override
public void setApplicationEnabledSetting(String packageName, int newState, int flags) {
}
@Override
public int getApplicationEnabledSetting(String packageName) {
return 0;
}
@Override
public void flushPackageRestrictionsAsUser(int userId) {
}
@Override
public boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, UserHandle userHandle) {
return false;
}
@Override
public boolean getApplicationHiddenSettingAsUser(String packageName, UserHandle userHandle) {
return false;
}
@Override
public boolean isSafeMode() {
return false;
}
@Override
public void addOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
}
@Override
public void removeOnPermissionsChangeListener(OnPermissionsChangedListener listener) {
}
@Override
public KeySet getKeySetByAlias(String packageName, String alias) {
return null;
}
@Override
public KeySet getSigningKeySet(String packageName) {
return null;
}
@Override
public boolean isSignedBy(String packageName, KeySet ks) {
return false;
}
@Override
public boolean isSignedByExactly(String packageName, KeySet ks) {
return false;
}
@Override
public String[] setPackagesSuspendedAsUser(String[] packageNames, boolean suspended, int userId) {
return new String[0];
}
@Override
public boolean isPackageSuspendedForUser(String packageName, int userId) {
return false;
}
@Override
public int getMoveStatus(int moveId) {
return 0;
}
@Override
public void registerMoveCallback(MoveCallback callback, Handler handler) {
}
@Override
public void unregisterMoveCallback(MoveCallback callback) {
}
@Override
public boolean isUpgrade() {
return false;
}
@Override
public PackageInstaller getPackageInstaller() {
return null;
}
@Override
public void addCrossProfileIntentFilter(IntentFilter filter, int sourceUserId, int targetUserId, int flags) {
}
@Override
public void clearCrossProfileIntentFilters(int sourceUserId) {
}
@Override
public Drawable loadItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
return null;
}
@Override
public Drawable loadUnbadgedItemIcon(PackageItemInfo itemInfo, ApplicationInfo appInfo) {
return null;
}
@Override
public boolean isPackageAvailable(String packageName) {
return false;
}
@Override
public int getInstallReason(String packageName, UserHandle user) {
return 0;
}
@Override
public boolean canRequestPackageInstalls() {
return false;
}
@Override
public ComponentName getInstantAppResolverSettingsComponent() {
return null;
}
@Override
public ComponentName getInstantAppInstallerComponent() {
return null;
}
@Override
public String getInstantAppAndroidId(String packageName, UserHandle user) {
return null;
}
@Override
public void registerDexModule(String dexModulePath, DexModuleRegisterCallback callback) {
}
}