public boolean parseActivityInfo()

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;
  }