android support! thanks to TachiWeb devs.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+849
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user