1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 02:39:23 +02:00

signature will not be checked for dictionaries :)

This commit is contained in:
Nikolay Pultsin 2011-03-18 23:48:15 +00:00
parent b1829640ce
commit cd69a5ee98
3 changed files with 13 additions and 8 deletions

View file

@ -96,7 +96,7 @@ public abstract class DictionaryUtil {
for (Map.Entry<PackageInfo,Boolean> entry : infos().entrySet()) {
final PackageInfo info = entry.getKey();
if (!entry.getValue() ||
PackageUtil.canBeStarted(context, getDictionaryIntent(info, "test"))) {
PackageUtil.canBeStarted(context, getDictionaryIntent(info, "test"), false)) {
list.add(info);
}
}
@ -188,7 +188,7 @@ public abstract class DictionaryUtil {
}
public static void installDictionaryIfNotInstalled(final Activity activity) {
if (PackageUtil.canBeStarted(activity, getDictionaryIntent("test"))) {
if (PackageUtil.canBeStarted(activity, getDictionaryIntent("test"), false)) {
return;
}
final PackageInfo dictionaryInfo = getCurrentDictionaryInfo();

View file

@ -42,7 +42,7 @@ abstract class Util implements UserRegistrationConstants {
"android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING";
private static boolean testService(Activity activity, String action, String url) {
return url != null && PackageUtil.canBeStarted(activity, new Intent(action, Uri.parse(url)));
return url != null && PackageUtil.canBeStarted(activity, new Intent(action, Uri.parse(url)), true);
}
static boolean isRegistrationSupported(Activity activity, INetworkLink link) {
@ -59,7 +59,7 @@ abstract class Util implements UserRegistrationConstants {
REGISTRATION_ACTION,
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
);
if (PackageUtil.canBeStarted(activity, intent)) {
if (PackageUtil.canBeStarted(activity, intent, true)) {
activity.startActivityForResult(new Intent(
REGISTRATION_ACTION,
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
@ -109,7 +109,7 @@ abstract class Util implements UserRegistrationConstants {
intent.putExtra(entry.getKey(), entry.getValue());
}
}
if (PackageUtil.canBeStarted(activity, intent)) {
if (PackageUtil.canBeStarted(activity, intent, true)) {
activity.startActivity(intent);
}
} catch (ActivityNotFoundException e) {

View file

@ -54,18 +54,20 @@ public abstract class PackageUtil {
public static boolean isPluginInstalled(Activity activity, String pkg) {
return canBeStarted(
activity,
new Intent("android.fbreader.action.TEST", homeUri(pkg))
new Intent("android.fbreader.action.TEST", homeUri(pkg)),
true
);
}
public static boolean isPluginInstalled(Activity activity, String pkg, String version) {
return canBeStarted(
activity,
new Intent("android.fbreader.action.TEST", homeUri(pkg, version))
new Intent("android.fbreader.action.TEST", homeUri(pkg, version)),
true
);
}
public static boolean canBeStarted(Context context, Intent intent) {
public static boolean canBeStarted(Context context, Intent intent, boolean checkSignature) {
final PackageManager manager = context.getApplicationContext().getPackageManager();
final ResolveInfo info =
manager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
@ -76,6 +78,9 @@ public abstract class PackageUtil {
if (activityInfo == null) {
return false;
}
if (!checkSignature) {
return true;
}
return
PackageManager.SIGNATURE_MATCH ==
manager.checkSignatures(context.getPackageName(), activityInfo.packageName);