in ioXt/uraniborg/AndroidStudioProject/Hubble/app/src/main/java/com/uraniborg/hubble/PackageMetadata.java [205:247]
public boolean parseActivityInfo(PackageManager packageManager, boolean parseReceivers) {
final String TAG = "parseActivityInfo";
ActivityInfo[] activityInfos;
if (parseReceivers) {
this.receivers = new JSONArray();
activityInfos = ref.receivers;
} else {
this.activities = new JSONArray();
activityInfos = ref.activities;
}
if (activityInfos == null) {
return true;
}
for (ActivityInfo activityInfo : activityInfos) {
JSONObject resultJson = parseComponentInfo(activityInfo, packageManager);
if (resultJson == null) {
Log.e(TAG, String.format("Failed to parse %s", activityInfo.name));
continue;
}
// parse permission
String permName = activityInfo.permission;
if (permName != null && PERMISSION_PATTERN.matcher(permName).matches()) {
this.permissionsSpecial.add(permName);
}
try {
resultJson.put("permission", (activityInfo.permission == null) ? JSONObject.NULL :
activityInfo.permission);
} catch (JSONException e) {
Log.e(TAG, String.format("Failed to put value to JSON Object: %s", e.getMessage()));
return false;
}
if (parseReceivers) {
this.receivers.put(resultJson);
} else {
this.activities.put(resultJson);
}
}
return true;
}