// Path: substratum-packager/src/main/java/com/pddstudio/substratum/packager/models/ApkInfo.java
// public class ApkInfo implements Serializable {
// 
// 	private String appName;
// 	private String apk;
// 	private String version;
// 	private String source;
// 	private String data;
// 
// 	public ApkInfo(String appName, String apk, String version, String source, String data) {
// 		this.appName = appName;
// 		this.apk = apk;
// 		this.version = version;
// 		this.source = source;
// 		this.data = data;
// 	}
// 
// 	public String getAppName() {
// 		return appName;
// 	}
// 
// 	public void setAppName(String appName) {
// 		this.appName = appName;
// 	}
// 
// 	public String getPackageName() {
// 		return apk;
// 	}
// 
// 	public void setApk(String apk) {
// 		this.apk = apk;
// 	}
// 
// 	public String getVersion() {
// 		return version;
// 	}
// 
// 	public void setVersion(String version) {
// 		this.version = version;
// 	}
// 
// 	public String getSource() {
// 		return source;
// 	}
// 
// 	public void setSource(String source) {
// 		this.source = source;
// 	}
// 
// 	public String getData() {
// 		return data;
// 	}
// 
// 	public void setData(String data) {
// 		this.data = data;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		Gson gson = new GsonBuilder().setPrettyPrinting().create();
// 		return gson.toJson(this);
// 	}
// }
// 
// Path: substratum-packager/src/main/java/com/pddstudio/substratum/packager/utils/ApkHelper.java
// @EBean(scope = EBean.Scope.Singleton)
// public class ApkHelper {
// 
// 	private static final String TAG = ApkHelper.class.getSimpleName();
// 
// 	@RootContext
// 	Context context;
// 	PackageManager packageManager;
// 
// 	public List<ApkInfo> getInstalledApks() {
// 		packageManager = context.getPackageManager();
// 		List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA);
// 		return StreamSupport.stream(packages).map(this::convertPackageInfoToApkInfo).filter(apkInfo -> apkInfo != null).collect(Collectors.toList());
// 	}
// 
// 	private ApkInfo convertPackageInfoToApkInfo(PackageInfo packageInfo) {
// 		if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// 			return new ApkInfo(packageManager.getApplicationLabel(packageInfo.applicationInfo).toString(),
// 							   packageInfo.packageName,
// 							   packageInfo.versionName,
// 							   packageInfo.applicationInfo.sourceDir,
// 							   packageInfo.applicationInfo.dataDir);
// 		} else {
// 			return null;
// 		}
// 	}
// 
// 	public static Intent getShareIntent(File file) {
// 		Intent intent = new Intent();
// 		intent.setAction(Intent.ACTION_SEND);
// 		intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
// 		intent.setType("application/vnd.android.package-archive");
// 		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// 
// 		return intent;
// 	}
// 
// }


import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import com.pddstudio.substratum.packager.models.ApkInfo;
import com.pddstudio.substratum.packager.utils.ApkHelper;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.RootContext;
import java.util.List;
import java8.util.Objects;
import java8.util.stream.Collectors;
import java8.util.stream.StreamSupport;
package com.pddstudio.otgsubs.beans;






/**
 * Created by pddstudio on 28/04/2017.
 */

@EBean(scope = EBean.Scope.Singleton)
public class ManifestProcessorBean {

	private static final String TAG = ManifestProcessorBean.class.getSimpleName();

	private static final String OTG_SUBS_META_DATA_FLAG = "OTGSubs_Supported";

	@RootContext
	protected Context context;

	@Bean
	ApkHelper apkHelper;

// Path: substratum-packager/src/main/java/com/pddstudio/substratum/packager/models/ApkInfo.java
// public class ApkInfo implements Serializable {
// 
// 	private String appName;
// 	private String apk;
// 	private String version;
// 	private String source;
// 	private String data;
// 
// 	public ApkInfo(String appName, String apk, String version, String source, String data) {
// 		this.appName = appName;
// 		this.apk = apk;
// 		this.version = version;
// 		this.source = source;
// 		this.data = data;
// 	}
// 
// 	public String getAppName() {
// 		return appName;
// 	}
// 
// 	public void setAppName(String appName) {
// 		this.appName = appName;
// 	}
// 
// 	public String getPackageName() {
// 		return apk;
// 	}
// 
// 	public void setApk(String apk) {
// 		this.apk = apk;
// 	}
// 
// 	public String getVersion() {
// 		return version;
// 	}
// 
// 	public void setVersion(String version) {
// 		this.version = version;
// 	}
// 
// 	public String getSource() {
// 		return source;
// 	}
// 
// 	public void setSource(String source) {
// 		this.source = source;
// 	}
// 
// 	public String getData() {
// 		return data;
// 	}
// 
// 	public void setData(String data) {
// 		this.data = data;
// 	}
// 
// 	@Override
// 	public String toString() {
// 		Gson gson = new GsonBuilder().setPrettyPrinting().create();
// 		return gson.toJson(this);
// 	}
// }
// 
// Path: substratum-packager/src/main/java/com/pddstudio/substratum/packager/utils/ApkHelper.java
// @EBean(scope = EBean.Scope.Singleton)
// public class ApkHelper {
// 
// 	private static final String TAG = ApkHelper.class.getSimpleName();
// 
// 	@RootContext
// 	Context context;
// 	PackageManager packageManager;
// 
// 	public List<ApkInfo> getInstalledApks() {
// 		packageManager = context.getPackageManager();
// 		List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_META_DATA);
// 		return StreamSupport.stream(packages).map(this::convertPackageInfoToApkInfo).filter(apkInfo -> apkInfo != null).collect(Collectors.toList());
// 	}
// 
// 	private ApkInfo convertPackageInfoToApkInfo(PackageInfo packageInfo) {
// 		if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// 			return new ApkInfo(packageManager.getApplicationLabel(packageInfo.applicationInfo).toString(),
// 							   packageInfo.packageName,
// 							   packageInfo.versionName,
// 							   packageInfo.applicationInfo.sourceDir,
// 							   packageInfo.applicationInfo.dataDir);
// 		} else {
// 			return null;
// 		}
// 	}
// 
// 	public static Intent getShareIntent(File file) {
// 		Intent intent = new Intent();
// 		intent.setAction(Intent.ACTION_SEND);
// 		intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
// 		intent.setType("application/vnd.android.package-archive");
// 		intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// 
// 		return intent;
// 	}
// 
// }


// Path: app/src/main/java/com/pddstudio/otgsubs/beans/ManifestProcessorBean.java
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import com.pddstudio.substratum.packager.models.ApkInfo;
import com.pddstudio.substratum.packager.utils.ApkHelper;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EBean;
import org.androidannotations.annotations.RootContext;
import java.util.List;
import java8.util.Objects;
import java8.util.stream.Collectors;
import java8.util.stream.StreamSupport;

package com.pddstudio.otgsubs.beans;






/**
 * Created by pddstudio on 28/04/2017.
 */

@EBean(scope = EBean.Scope.Singleton)
public class ManifestProcessorBean {

	private static final String TAG = ManifestProcessorBean.class.getSimpleName();

	private static final String OTG_SUBS_META_DATA_FLAG = "OTGSubs_Supported";

	@RootContext
	protected Context context;

	@Bean
	ApkHelper apkHelper;

	public List<ApkInfo> getSupportedThemes() {