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:
parent
b1829640ce
commit
cd69a5ee98
3 changed files with 13 additions and 8 deletions
|
@ -96,7 +96,7 @@ public abstract class DictionaryUtil {
|
||||||
for (Map.Entry<PackageInfo,Boolean> entry : infos().entrySet()) {
|
for (Map.Entry<PackageInfo,Boolean> entry : infos().entrySet()) {
|
||||||
final PackageInfo info = entry.getKey();
|
final PackageInfo info = entry.getKey();
|
||||||
if (!entry.getValue() ||
|
if (!entry.getValue() ||
|
||||||
PackageUtil.canBeStarted(context, getDictionaryIntent(info, "test"))) {
|
PackageUtil.canBeStarted(context, getDictionaryIntent(info, "test"), false)) {
|
||||||
list.add(info);
|
list.add(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ public abstract class DictionaryUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void installDictionaryIfNotInstalled(final Activity activity) {
|
public static void installDictionaryIfNotInstalled(final Activity activity) {
|
||||||
if (PackageUtil.canBeStarted(activity, getDictionaryIntent("test"))) {
|
if (PackageUtil.canBeStarted(activity, getDictionaryIntent("test"), false)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final PackageInfo dictionaryInfo = getCurrentDictionaryInfo();
|
final PackageInfo dictionaryInfo = getCurrentDictionaryInfo();
|
||||||
|
|
|
@ -42,7 +42,7 @@ abstract class Util implements UserRegistrationConstants {
|
||||||
"android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING";
|
"android.fbreader.action.NETWORK_LIBRARY_SMS_REFILLING";
|
||||||
|
|
||||||
private static boolean testService(Activity activity, String action, String url) {
|
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) {
|
static boolean isRegistrationSupported(Activity activity, INetworkLink link) {
|
||||||
|
@ -59,7 +59,7 @@ abstract class Util implements UserRegistrationConstants {
|
||||||
REGISTRATION_ACTION,
|
REGISTRATION_ACTION,
|
||||||
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
|
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
|
||||||
);
|
);
|
||||||
if (PackageUtil.canBeStarted(activity, intent)) {
|
if (PackageUtil.canBeStarted(activity, intent, true)) {
|
||||||
activity.startActivityForResult(new Intent(
|
activity.startActivityForResult(new Intent(
|
||||||
REGISTRATION_ACTION,
|
REGISTRATION_ACTION,
|
||||||
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
|
Uri.parse(link.getUrlInfo(INetworkLink.URL_SIGN_UP).URL)
|
||||||
|
@ -109,7 +109,7 @@ abstract class Util implements UserRegistrationConstants {
|
||||||
intent.putExtra(entry.getKey(), entry.getValue());
|
intent.putExtra(entry.getKey(), entry.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (PackageUtil.canBeStarted(activity, intent)) {
|
if (PackageUtil.canBeStarted(activity, intent, true)) {
|
||||||
activity.startActivity(intent);
|
activity.startActivity(intent);
|
||||||
}
|
}
|
||||||
} catch (ActivityNotFoundException e) {
|
} catch (ActivityNotFoundException e) {
|
||||||
|
|
|
@ -54,18 +54,20 @@ public abstract class PackageUtil {
|
||||||
public static boolean isPluginInstalled(Activity activity, String pkg) {
|
public static boolean isPluginInstalled(Activity activity, String pkg) {
|
||||||
return canBeStarted(
|
return canBeStarted(
|
||||||
activity,
|
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) {
|
public static boolean isPluginInstalled(Activity activity, String pkg, String version) {
|
||||||
return canBeStarted(
|
return canBeStarted(
|
||||||
activity,
|
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 PackageManager manager = context.getApplicationContext().getPackageManager();
|
||||||
final ResolveInfo info =
|
final ResolveInfo info =
|
||||||
manager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
|
manager.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
|
||||||
|
@ -76,6 +78,9 @@ public abstract class PackageUtil {
|
||||||
if (activityInfo == null) {
|
if (activityInfo == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (!checkSignature) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return
|
return
|
||||||
PackageManager.SIGNATURE_MATCH ==
|
PackageManager.SIGNATURE_MATCH ==
|
||||||
manager.checkSignatures(context.getPackageName(), activityInfo.packageName);
|
manager.checkSignatures(context.getPackageName(), activityInfo.packageName);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue