Merge pull request #1668 from annando/issue-1642

Better detection for the mobile client to avoid "{0}" in notifications
This commit is contained in:
fabrixxm 2015-06-14 15:58:52 +02:00
commit 42f4f3fce9
3 changed files with 13 additions and 5 deletions

View file

@ -379,6 +379,7 @@ if(! class_exists('App')) {
public $identities; public $identities;
public $is_mobile; public $is_mobile;
public $is_tablet; public $is_tablet;
public $is_friendica_app;
public $performance = array(); public $performance = array();
public $nav_sel; public $nav_sel;
@ -596,6 +597,9 @@ if(! class_exists('App')) {
$this->is_mobile = $mobile_detect->isMobile(); $this->is_mobile = $mobile_detect->isMobile();
$this->is_tablet = $mobile_detect->isTablet(); $this->is_tablet = $mobile_detect->isTablet();
// Friendica-Client
$this->is_friendica_app = ($_SERVER['HTTP_USER_AGENT'] == "Apache-HttpClient/UNAVAILABLE (java 1.4)");
/** /**
* register template engines * register template engines
*/ */
@ -906,6 +910,10 @@ if(! class_exists('App')) {
return(FRIENDICA_PLATFORM." '".FRIENDICA_CODENAME."' ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION."; ".$this->get_baseurl()); return(FRIENDICA_PLATFORM." '".FRIENDICA_CODENAME."' ".FRIENDICA_VERSION."-".DB_UPDATE_VERSION."; ".$this->get_baseurl());
} }
function is_friendica_app() {
return($this->is_friendica_app);
}
} }
} }

View file

@ -18,11 +18,8 @@ function notify_init(&$a) {
intval(local_user()) intval(local_user())
); );
// Friendica-Client
$friendicamobile = ($_SERVER['HTTP_USER_AGENT'] == "Apache-HttpClient/UNAVAILABLE (java 1.4)");
// The friendica client has problems with the GUID. this is some workaround // The friendica client has problems with the GUID. this is some workaround
if ($friendicamobile) { if ($a->is_friendica_app()) {
require_once("include/items.php"); require_once("include/items.php");
$urldata = parse_url($r[0]['link']); $urldata = parse_url($r[0]['link']);
$guid = basename($urldata["path"]); $guid = basename($urldata["path"]);

View file

@ -316,6 +316,8 @@ function ping_get_notifications($uid, $regularnotifications) {
$order = ""; $order = "";
$quit = false; $quit = false;
$a = get_app();
do { do {
$r = q("SELECT `notify`.*, `item`.`visible`, `item`.`spam`, `item`.`deleted` $r = q("SELECT `notify`.*, `item`.`visible`, `item`.`spam`, `item`.`deleted`
FROM `notify` LEFT JOIN `item` ON `item`.`id` = `notify`.`iid` FROM `notify` LEFT JOIN `item` ON `item`.`id` = `notify`.`iid`
@ -354,8 +356,9 @@ function ping_get_notifications($uid, $regularnotifications) {
// Replace the name with {0} but ensure to make that only once // Replace the name with {0} but ensure to make that only once
// The {0} is used later and prints the name in bold. // The {0} is used later and prints the name in bold.
// But don't do it for the android app. // But don't do it for the android app.
$pos = strpos($notification["msg"],$notification['name']); $pos = strpos($notification["msg"],$notification['name']);
if (($pos !== false) AND $regularnotifications) if (($pos !== false) AND $regularnotifications AND !$a->is_friendica_app())
$notification["msg"] = substr_replace($notification["msg"],"{0}",$pos,strlen($notification["name"])); $notification["msg"] = substr_replace($notification["msg"],"{0}",$pos,strlen($notification["name"]));
else else
$notification["msg"] = str_replace("{0}", $notification["name"], $notification["msg"]); $notification["msg"] = str_replace("{0}", $notification["name"], $notification["msg"]);