+ /**
+ * Detects if a given contact array belongs to a legacy DFRN connection
+ *
+ * @param array $contact
+ * @return boolean
+ */
+ public static function isLegacyDFRNContact($contact)
+ {
+ // Newer Friendica contacts are connected via AP, then these fields aren't set
+ return !empty($contact['dfrn-id']) || !empty($contact['issued-id']);
+ }
+
+ /**
+ * Detects the communication protocol for a given contact url.
+ * This is used to detect Friendica contacts that we can communicate via AP.
+ *
+ * @param string $url contact url
+ * @param string $network Network of that contact
+ * @return string with protocol
+ */
+ public static function getProtocol($url, $network)
+ {
+ if ($network != Protocol::DFRN) {
+ return $network;
+ }
+
+ $apcontact = APContact::getByURL($url);
+ if (!empty($apcontact) && !empty($apcontact['generator'])) {
+ return Protocol::ACTIVITYPUB;
+ } else {
+ return $network;
+ }
+ }
+