// Path: app/src/main/java/com/livingstoneapp/models/AppInfo.java
// public class AppInfo {
// 
//     private ArrayList<String> mSignatures;
//     private ArrayList<String> mFlags;
//     private DirectoryInfo mDirectoryInfo;
//     private GeneralInfo mGeneralInfo;
// 
//     public ArrayList<String> getSignatures() {
//         return mSignatures;
//     }
// 
//     public void setSignatures(ArrayList<String> mSignatures) {
//         this.mSignatures = mSignatures;
//     }
// 
//     public ArrayList<String> getFlags() {
//         return mFlags;
//     }
//     public void setFlags(ArrayList<String> mFlags) {
//         this.mFlags = mFlags;
//     }
// 
//     public DirectoryInfo getDirectoryInfo() {
//         return mDirectoryInfo;
//     }
// 
//     public void setDirectoryInfo(DirectoryInfo mDirectoryInfo) {
//         this.mDirectoryInfo = mDirectoryInfo;
//     }
// 
//     public GeneralInfo getGeneralInfo() {
//         return mGeneralInfo;
//     }
// 
//     public void setGeneralInfo(GeneralInfo mGeneralInfo) {
//         this.mGeneralInfo = mGeneralInfo;
//     }
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/FeatureInfoInternal.java
// public class FeatureInfoInternal {
//     private String mName;
//     private boolean mRequired;
//     private String mGLESVersion;
// 
//     public FeatureInfoInternal(String mName, boolean mRequired, String mGLESVersion) {
// 
//         this.mName = mName;
//         this.mRequired = mRequired;
//         this.mGLESVersion = mGLESVersion;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public boolean isRequired() {
//         return mRequired;
//     }
// 
//     public String getGLESVersion() {
//         return mGLESVersion;
//     }
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/InstalledPackageHeader.java
// public class InstalledPackageHeader {
//     private String mPackageName;
//     private String mAppName;
//     private Drawable mAppIcon;
// 
//     public InstalledPackageHeader() {
// 
//     }
// 
//     public InstalledPackageHeader(String packageName, String appName, Drawable appIcon) {
//         this.mPackageName = packageName;
//         this.mAppName = appName;
//         this.mAppIcon = appIcon;
//     }
// 
//     public Drawable getAppIcon() {
//         return mAppIcon;
//     }
//     public void setAppIcon(Drawable mAppIcon) {
//         this.mAppIcon = mAppIcon;
//     }
// 
//     public String getAppName() {
//         return mAppName;
//     }
//     public void setAppName(String mAppName) {
//         this.mAppName = mAppName;
//     }
// 
//     public String getPackageName() {
//         return mPackageName;
//     }
//     public void setPackageName(String mPackageName) {
//         this.mPackageName = mPackageName;
//     }
// }


import java.util.ArrayList;
import rx.Observable;
import com.livingstoneapp.models.AppInfo;
import com.livingstoneapp.models.FeatureInfoInternal;
import com.livingstoneapp.models.InstalledPackageHeader;
package com.livingstoneapp.interactors;



/**
 * Created by renier on 2/2/2016.
 */
public interface IPackageInteractor {
    Observable<ArrayList<InstalledPackageHeader>> getInstalledPackages(boolean refresh);
    Observable<String> getAppNameFromPackage(String packageName);
    Observable<AppInfo> getApplicationInfo(String packageName);
// Path: app/src/main/java/com/livingstoneapp/models/AppInfo.java
// public class AppInfo {
// 
//     private ArrayList<String> mSignatures;
//     private ArrayList<String> mFlags;
//     private DirectoryInfo mDirectoryInfo;
//     private GeneralInfo mGeneralInfo;
// 
//     public ArrayList<String> getSignatures() {
//         return mSignatures;
//     }
// 
//     public void setSignatures(ArrayList<String> mSignatures) {
//         this.mSignatures = mSignatures;
//     }
// 
//     public ArrayList<String> getFlags() {
//         return mFlags;
//     }
//     public void setFlags(ArrayList<String> mFlags) {
//         this.mFlags = mFlags;
//     }
// 
//     public DirectoryInfo getDirectoryInfo() {
//         return mDirectoryInfo;
//     }
// 
//     public void setDirectoryInfo(DirectoryInfo mDirectoryInfo) {
//         this.mDirectoryInfo = mDirectoryInfo;
//     }
// 
//     public GeneralInfo getGeneralInfo() {
//         return mGeneralInfo;
//     }
// 
//     public void setGeneralInfo(GeneralInfo mGeneralInfo) {
//         this.mGeneralInfo = mGeneralInfo;
//     }
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/FeatureInfoInternal.java
// public class FeatureInfoInternal {
//     private String mName;
//     private boolean mRequired;
//     private String mGLESVersion;
// 
//     public FeatureInfoInternal(String mName, boolean mRequired, String mGLESVersion) {
// 
//         this.mName = mName;
//         this.mRequired = mRequired;
//         this.mGLESVersion = mGLESVersion;
//     }
// 
//     public String getName() {
//         return mName;
//     }
// 
//     public boolean isRequired() {
//         return mRequired;
//     }
// 
//     public String getGLESVersion() {
//         return mGLESVersion;
//     }
// }
// 
// Path: app/src/main/java/com/livingstoneapp/models/InstalledPackageHeader.java
// public class InstalledPackageHeader {
//     private String mPackageName;
//     private String mAppName;
//     private Drawable mAppIcon;
// 
//     public InstalledPackageHeader() {
// 
//     }
// 
//     public InstalledPackageHeader(String packageName, String appName, Drawable appIcon) {
//         this.mPackageName = packageName;
//         this.mAppName = appName;
//         this.mAppIcon = appIcon;
//     }
// 
//     public Drawable getAppIcon() {
//         return mAppIcon;
//     }
//     public void setAppIcon(Drawable mAppIcon) {
//         this.mAppIcon = mAppIcon;
//     }
// 
//     public String getAppName() {
//         return mAppName;
//     }
//     public void setAppName(String mAppName) {
//         this.mAppName = mAppName;
//     }
// 
//     public String getPackageName() {
//         return mPackageName;
//     }
//     public void setPackageName(String mPackageName) {
//         this.mPackageName = mPackageName;
//     }
// }


// Path: app/src/main/java/com/livingstoneapp/interactors/IPackageInteractor.java
import java.util.ArrayList;
import rx.Observable;
import com.livingstoneapp.models.AppInfo;
import com.livingstoneapp.models.FeatureInfoInternal;
import com.livingstoneapp.models.InstalledPackageHeader;

package com.livingstoneapp.interactors;



/**
 * Created by renier on 2/2/2016.
 */
public interface IPackageInteractor {
    Observable<ArrayList<InstalledPackageHeader>> getInstalledPackages(boolean refresh);
    Observable<String> getAppNameFromPackage(String packageName);
    Observable<AppInfo> getApplicationInfo(String packageName);
    Observable<ArrayList<FeatureInfoInternal>> getRequestedFeatures(String packageName);