// Path: src/at/jclehner/appopsxposed/AppOpsXposed.java
// public class AppOpsXposed implements IXposedHookZygoteInit, IXposedHookLoadPackage, IXposedHookInitPackageResources
// {
// 	public static final String MODULE_PACKAGE = AppOpsXposed.class.getPackage().getName();
// 	public static final String SETTINGS_PACKAGE = "com.android.settings";
// 	public static final String SETTINGS_MAIN_ACTIVITY = SETTINGS_PACKAGE + ".Settings";
// 	public static final String APP_OPS_FRAGMENT = "com.android.settings.applications.AppOpsSummary";
// 	public static final String APP_OPS_DETAILS_FRAGMENT = "com.android.settings.applications.AppOpsDetails";
// 
// 	private String mModPath;
// 
// 	static
// 	{
// 		Util.logger = new Util.Logger() {
// 
// 			@Override
// 			public void log(Throwable t)
// 			{
// 				XposedBridge.log(t);
// 			}
// 
// 			@Override
// 			public void log(String s)
// 			{
// 				XposedBridge.log(s);
// 			}
// 		};
// 	}
// 
// 	@Override
// 	public void initZygote(StartupParam startupParam) throws Throwable
// 	{
// 		mModPath = startupParam.modulePath;
// 		Res.modRes = XModuleResources.createInstance(mModPath, null);
// 		Res.modPrefs = new XSharedPreferences(AppOpsXposed.class.getPackage().getName());
// 		Res.modPrefs.makeWorldReadable();
// 	}
// 
// 	@Override
// 	public void handleInitPackageResources(InitPackageResourcesParam resparam) throws Throwable
// 	{
// 		if(!ApkVariant.isSettingsPackage(resparam.packageName))
// 			return;
// 
// 		for(int i = 0; i != Res.icons.length; ++i)
// 			Res.icons[i] = resparam.res.addResource(Res.modRes, Constants.ICONS[i]);
// 
// 		XUtils.reloadPrefs();
// 
// 		for(ApkVariant variant : ApkVariant.getAllMatching(resparam.packageName))
// 		{
// 			try
// 			{
// 				variant.handleInitPackageResources(resparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(variant.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 
// 			break;
// 		}
// 
// 		for(Hack hack : Hack.getAllEnabled(true))
// 		{
// 			try
// 			{
// 				hack.handleInitPackageResources(resparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(hack.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 	}
// 
// 	@Override
// 	public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable
// 	{
// 		final boolean isSettings = ApkVariant.isSettingsPackage(lpparam);
// 
// 		if(MODULE_PACKAGE.equals(lpparam.packageName))
// 		{
// 			XposedHelpers.findAndHookMethod(Util.class.getName(), lpparam.classLoader,
// 					"isXposedModuleEnabled", XC_MethodReplacement.returnConstant(true));
// 		}
// 
// 		XUtils.reloadPrefs();
// 
// 		for(Hack hack : Hack.getAllEnabled(true))
// 		{
// 			try
// 			{
// 				hack.handleLoadPackage(lpparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(hack.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 
// 		if(!isSettings)
// 			return;
// 
// 		Res.settingsRes = XModuleResources.createInstance(lpparam.appInfo.sourceDir, null);
// 
// 		for(ApkVariant variant : ApkVariant.getAllMatching(lpparam))
// 		{
// 			final String variantName = "  " + variant.getClass().getSimpleName();
// 
// 			try
// 			{
// 				variant.handleLoadPackage(lpparam);
// 				log(variantName + ": [OK]");
// 				break;
// 			}
// 			catch(Throwable t)
// 			{
// 				Util.debug(variantName + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 	}
// }


import de.robv.android.xposed.XSharedPreferences;
import android.content.res.XModuleResources;
import at.jclehner.appopsxposed.AppOpsXposed;
import at.jclehner.appopsxposed.R;
package at.jclehner.appopsxposed.util;


public class Res
{
	public static int[] icons = new int[Constants.ICONS.length];

	public static XModuleResources settingsRes;
	public static XModuleResources modRes;
	public static XSharedPreferences modPrefs;

	public static int getSettingsIdentifier(String name) {
// Path: src/at/jclehner/appopsxposed/AppOpsXposed.java
// public class AppOpsXposed implements IXposedHookZygoteInit, IXposedHookLoadPackage, IXposedHookInitPackageResources
// {
// 	public static final String MODULE_PACKAGE = AppOpsXposed.class.getPackage().getName();
// 	public static final String SETTINGS_PACKAGE = "com.android.settings";
// 	public static final String SETTINGS_MAIN_ACTIVITY = SETTINGS_PACKAGE + ".Settings";
// 	public static final String APP_OPS_FRAGMENT = "com.android.settings.applications.AppOpsSummary";
// 	public static final String APP_OPS_DETAILS_FRAGMENT = "com.android.settings.applications.AppOpsDetails";
// 
// 	private String mModPath;
// 
// 	static
// 	{
// 		Util.logger = new Util.Logger() {
// 
// 			@Override
// 			public void log(Throwable t)
// 			{
// 				XposedBridge.log(t);
// 			}
// 
// 			@Override
// 			public void log(String s)
// 			{
// 				XposedBridge.log(s);
// 			}
// 		};
// 	}
// 
// 	@Override
// 	public void initZygote(StartupParam startupParam) throws Throwable
// 	{
// 		mModPath = startupParam.modulePath;
// 		Res.modRes = XModuleResources.createInstance(mModPath, null);
// 		Res.modPrefs = new XSharedPreferences(AppOpsXposed.class.getPackage().getName());
// 		Res.modPrefs.makeWorldReadable();
// 	}
// 
// 	@Override
// 	public void handleInitPackageResources(InitPackageResourcesParam resparam) throws Throwable
// 	{
// 		if(!ApkVariant.isSettingsPackage(resparam.packageName))
// 			return;
// 
// 		for(int i = 0; i != Res.icons.length; ++i)
// 			Res.icons[i] = resparam.res.addResource(Res.modRes, Constants.ICONS[i]);
// 
// 		XUtils.reloadPrefs();
// 
// 		for(ApkVariant variant : ApkVariant.getAllMatching(resparam.packageName))
// 		{
// 			try
// 			{
// 				variant.handleInitPackageResources(resparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(variant.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 
// 			break;
// 		}
// 
// 		for(Hack hack : Hack.getAllEnabled(true))
// 		{
// 			try
// 			{
// 				hack.handleInitPackageResources(resparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(hack.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 	}
// 
// 	@Override
// 	public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable
// 	{
// 		final boolean isSettings = ApkVariant.isSettingsPackage(lpparam);
// 
// 		if(MODULE_PACKAGE.equals(lpparam.packageName))
// 		{
// 			XposedHelpers.findAndHookMethod(Util.class.getName(), lpparam.classLoader,
// 					"isXposedModuleEnabled", XC_MethodReplacement.returnConstant(true));
// 		}
// 
// 		XUtils.reloadPrefs();
// 
// 		for(Hack hack : Hack.getAllEnabled(true))
// 		{
// 			try
// 			{
// 				hack.handleLoadPackage(lpparam);
// 			}
// 			catch(Throwable t)
// 			{
// 				log(hack.getClass().getSimpleName() + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 
// 		if(!isSettings)
// 			return;
// 
// 		Res.settingsRes = XModuleResources.createInstance(lpparam.appInfo.sourceDir, null);
// 
// 		for(ApkVariant variant : ApkVariant.getAllMatching(lpparam))
// 		{
// 			final String variantName = "  " + variant.getClass().getSimpleName();
// 
// 			try
// 			{
// 				variant.handleLoadPackage(lpparam);
// 				log(variantName + ": [OK]");
// 				break;
// 			}
// 			catch(Throwable t)
// 			{
// 				Util.debug(variantName + ": [!!]");
// 				Util.debug(t);
// 			}
// 		}
// 	}
// }


// Path: src/at/jclehner/appopsxposed/util/Res.java
import de.robv.android.xposed.XSharedPreferences;
import android.content.res.XModuleResources;
import at.jclehner.appopsxposed.AppOpsXposed;
import at.jclehner.appopsxposed.R;

package at.jclehner.appopsxposed.util;


public class Res
{
	public static int[] icons = new int[Constants.ICONS.length];

	public static XModuleResources settingsRes;
	public static XModuleResources modRes;
	public static XSharedPreferences modPrefs;

	public static int getSettingsIdentifier(String name) {
		return settingsRes.getIdentifier(name, null, AppOpsXposed.SETTINGS_PACKAGE);