package com.sec.sandbox.api;

import android.content.ComponentName;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;

interface ISandboxApiManager{
    void waitForEngine();

    void startVALoading(String packageName,in Intent intent, int userId);

    void installPackage(String installSource,in Uri uri, boolean clone);

    boolean uninstallPackage(String packageName, boolean force);

    void launchByPackage(int userId, String packageName);

    void launchByIntent(int userId,in Intent intent);

    boolean isInstalled(String packageName);

    List<String> getInstalledPackages(int flag);

    PackageInfo getPackageInfo(String packageName, long flags, int userId);

    ApplicationInfo getApplicationInfo(String packageName, long flags, int userId);

    boolean isAppRunning(String packageName, int userId, boolean foreground);

    void kill(String packageName, int userId);

    void killAll();

    void startActivity(in Intent intent, int userId);

    void sendBroadcast(in Intent intent, int userId);

    void isolationScreenshots(String srcPath);

    void scanScreenshots(String fileName);

    void cancelAllAppNotification();

    List<String> getInterceptNotificationPackages();

    void startInstallActivity(String path, String source);

    ServiceInfo resolveServiceInfo(in Intent intent, int userId);

    List<String> recursionScanAppDir();

    void setInSecSpace(boolean inSecSpace);

    void setUseEncryption(boolean encrypt);

    void setUseShareFolder(boolean share);

    void setIMEI1(String imei1);

    void setIMEI2(String imei2);

    void setSupport64(boolean support64);

    void startMdmOnlineCtrl();

    void stopMdmOnlineCtrl();

    void saveMdmOnlineLog();

    ResolveInfo resolveIntent(in Intent intent, String resolvedType, long flags, int userId);

    List<Bundle> getActiveSessionCache();

    List<ResolveInfo> queryIntentActivities(in Intent intent, String resolvedType, long flags, int userId);

    ActivityInfo getActivityInfo(in ComponentName componentName, long flags, int userId);

    Intent getLaunchIntent(String packageName);

    Bitmap getIconBitmap(String packageName, int resId);

    String getResourceText(String packageName, int resId);

    Bitmap getBitmapForDensityByResId(String packageName, int resId, int density);

    Bitmap getBitmapForDensityByResName(String packageName, String resName, int density);
}