From d4f46e890d604b0bfeff7ad1cafaa717c8935830 Mon Sep 17 00:00:00 2001
From: Jehan Monnier <jehan.monnier@linphone.org>
Date: Mon, 6 Dec 2010 11:36:19 +0100
Subject: [PATCH] add enablePubish java binding

---
 .../core/tutorials/TutorialBuddyStatus.java         |  1 +
 coreapi/linphonecore.h                              |  7 +++++++
 coreapi/linphonecore_jni.cc                         | 10 +++++++++-
 coreapi/proxy.c                                     |  1 -
 .../org/linphone/core/LinphoneProxyConfig.java      | 13 +++++++++++++
 5 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/coreapi/help/java/org/linphone/core/tutorials/TutorialBuddyStatus.java b/coreapi/help/java/org/linphone/core/tutorials/TutorialBuddyStatus.java
index 61855d9e53..6aa3f51ada 100644
--- a/coreapi/help/java/org/linphone/core/tutorials/TutorialBuddyStatus.java
+++ b/coreapi/help/java/org/linphone/core/tutorials/TutorialBuddyStatus.java
@@ -153,6 +153,7 @@ public class TutorialBuddyStatus implements LinphoneCoreListener {
 
 				// create proxy config
 				LinphoneProxyConfig proxyCfg = lcFactory.createProxyConfig(mySipAddress, domain, null, true);
+				proxyCfg.enablePublish(true);
 				lc.addProxyConfig(proxyCfg); // add it to linphone
 				lc.setDefaultProxyConfig(proxyCfg);
 				while (!proxyCfg.isRegistered()) {
diff --git a/coreapi/linphonecore.h b/coreapi/linphonecore.h
index 219b13a7e0..92aa86edd8 100644
--- a/coreapi/linphonecore.h
+++ b/coreapi/linphonecore.h
@@ -303,6 +303,13 @@ void linphone_proxy_config_enable_register(LinphoneProxyConfig *obj, bool_t val)
 #define linphone_proxy_config_enableregister linphone_proxy_config_enable_register
 void linphone_proxy_config_edit(LinphoneProxyConfig *obj);
 int linphone_proxy_config_done(LinphoneProxyConfig *obj);
+/**
+ * Indicates  either or not, PUBLISH must be issued for this #LinphoneProxyConfig .
+ * <br> In case this #LinphoneProxyConfig has been added to #LinphoneCore, follows the linphone_proxy_config_edit() rule.
+ * @param obj object pointer
+ * @param val if true, publish will be engaged
+ *
+ */
 void linphone_proxy_config_enable_publish(LinphoneProxyConfig *obj, bool_t val);
 void linphone_proxy_config_set_dial_escape_plus(LinphoneProxyConfig *cfg, bool_t val);
 void linphone_proxy_config_set_dial_prefix(LinphoneProxyConfig *cfg, const char *prefix);
diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc
index d52ce43966..b6d2d89ee8 100644
--- a/coreapi/linphonecore_jni.cc
+++ b/coreapi/linphonecore_jni.cc
@@ -714,7 +714,15 @@ extern "C" void Java_org_linphone_core_LinphoneProxyConfigImpl_setDialPrefix(JNI
 	linphone_proxy_config_set_dial_prefix((LinphoneProxyConfig*)proxyCfg,prefix);
 	env->ReleaseStringUTFChars(jprefix, prefix);
 }
-
+extern "C" void Java_org_linphone_core_LinphoneProxyConfigImpl_enablePublish(JNIEnv* env
+																				,jobject thiz
+																				,jlong proxyCfg
+																				,jboolean val) {
+	linphone_proxy_config_enable_publish((LinphoneProxyConfig*)proxyCfg,val);
+}
+extern "C" jboolean Java_org_linphone_core_LinphoneProxyConfigImpl_publishEnabled(JNIEnv* env,jobject thiz,jlong proxyCfg) {
+	return linphone_proxy_config_publish_enabled((LinphoneProxyConfig*)proxyCfg);
+}
 
 //Auth Info
 
diff --git a/coreapi/proxy.c b/coreapi/proxy.c
index b77ad94227..f49c59f12e 100644
--- a/coreapi/proxy.c
+++ b/coreapi/proxy.c
@@ -215,7 +215,6 @@ void linphone_proxy_config_expires(LinphoneProxyConfig *obj, int val){
 void linphone_proxy_config_enable_publish(LinphoneProxyConfig *obj, bool_t val){
 	obj->publish=val;
 }
-
 /**
  * Starts editing a proxy configuration.
  *
diff --git a/java/common/org/linphone/core/LinphoneProxyConfig.java b/java/common/org/linphone/core/LinphoneProxyConfig.java
index 729fd249d5..441ad51cfc 100644
--- a/java/common/org/linphone/core/LinphoneProxyConfig.java
+++ b/java/common/org/linphone/core/LinphoneProxyConfig.java
@@ -112,5 +112,18 @@ public interface LinphoneProxyConfig {
 	 * @return  the route set for this proxy configuration.
 	 */
 	public String getRoute();
+	/**
+	 * Indicates  either or not, PUBLISH must be issued for this #LinphoneProxyConfig .
+	 * <br> In case this #LinphoneProxyConfig has been added to #LinphoneCore, follows the linphone_proxy_config_edit() rule.
+	 * @param obj object pointer
+	 * @param val if true, publish will be engaged
+	 *
+	 */
+	public void enablePublish(boolean enable);
+	/**
+	 * returns publish state for this proxy config (see {@link #enablePublish(boolean)} )
+	 */
+	public boolean publishEnabled();
+	
 	
 }
-- 
GitLab