Updated account creator to use language and domain parameters

This commit is contained in:
Sylvain Berfini 2016-10-12 10:26:04 +02:00
parent 1f28e348db
commit 8958eaa2b5
6 changed files with 42 additions and 0 deletions

View file

@ -146,6 +146,7 @@ static void _linphone_account_creator_destroy(LinphoneAccountCreator *creator) {
if (creator->display_name) ms_free(creator->display_name);
if (creator->phone_country_code) ms_free(creator->phone_country_code);
if (creator->activation_code) ms_free(creator->activation_code);
if (creator->language) ms_free(creator->language);
}
BELLE_SIP_DECLARE_NO_IMPLEMENTED_INTERFACES(LinphoneAccountCreator);
@ -374,6 +375,11 @@ LinphoneAccountCreatorStatus linphone_account_creator_set_activation_code(Linpho
return LinphoneAccountCreatorOK;
}
LinphoneAccountCreatorStatus linphone_account_creator_set_language(LinphoneAccountCreator *creator, const char *lang) {
set_string(&creator->language, lang, FALSE);
return LinphoneAccountCreatorOK;
}
LinphoneAccountCreatorStatus linphone_account_creator_set_transport(LinphoneAccountCreator *creator, LinphoneTransportType transport){
if (!linphone_core_sip_transport_supported(creator->core, transport)) {
return LinphoneAccountCreatorTransportNotSupported;
@ -528,6 +534,7 @@ LinphoneAccountCreatorStatus linphone_account_creator_is_account_used(LinphoneAc
request = linphone_xml_rpc_request_new_with_args("get_phone_number_for_account", LinphoneXmlRpcArgString,
LinphoneXmlRpcArgString, creator->username ? creator->username : creator->phone_number,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
@ -562,6 +569,8 @@ static LinphoneXmlRpcRequest * _create_account_with_phone(LinphoneAccountCreator
LinphoneXmlRpcArgString, creator->username ? creator->username : creator->phone_number,
LinphoneXmlRpcArgString, creator->password ? ha1_for_passwd(creator->username ? creator->username : creator->phone_number, creator->password, creator->domain) : "",
LinphoneXmlRpcArgString, linphone_core_get_user_agent(creator->core),
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgString, creator->language,
LinphoneXmlRpcArgNone);
return request;
}
@ -576,6 +585,7 @@ static LinphoneXmlRpcRequest * _create_account_with_email(LinphoneAccountCreator
LinphoneXmlRpcArgString, creator->email,
LinphoneXmlRpcArgString, ha1_for_passwd(creator->username ? creator->username : creator->phone_number, creator->password, creator->domain),
LinphoneXmlRpcArgString, linphone_core_get_user_agent(creator->core),
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
return request;
}
@ -636,11 +646,13 @@ LinphoneAccountCreatorStatus linphone_account_creator_activate_account(LinphoneA
LinphoneXmlRpcArgString, creator->phone_number,
LinphoneXmlRpcArgString, creator->username ? creator->username : creator->phone_number,
LinphoneXmlRpcArgString, creator->activation_code,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
} else {
request = linphone_xml_rpc_request_new_with_args("activate_email_account", LinphoneXmlRpcArgString,
LinphoneXmlRpcArgString, creator->username,
LinphoneXmlRpcArgString, creator->activation_code,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
}
linphone_xml_rpc_request_set_user_data(request, creator);
@ -676,6 +688,7 @@ LinphoneAccountCreatorStatus linphone_account_creator_is_account_activated(Linph
}
request = linphone_xml_rpc_request_new_with_args("is_account_activated", LinphoneXmlRpcArgString,
LinphoneXmlRpcArgString, creator->username ? creator->username : creator->phone_number,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _is_account_activated_cb);
@ -749,6 +762,8 @@ LinphoneAccountCreatorStatus linphone_account_creator_link_phone_number_with_acc
request = linphone_xml_rpc_request_new_with_args("link_phone_number_with_account", LinphoneXmlRpcArgString,
LinphoneXmlRpcArgString, creator->phone_number,
LinphoneXmlRpcArgString, creator->username,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgString, creator->language,
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _link_phone_number_with_account_cb);
@ -814,6 +829,7 @@ LinphoneAccountCreatorStatus linphone_account_creator_activate_phone_number_link
LinphoneXmlRpcArgString, creator->username,
LinphoneXmlRpcArgString, creator->activation_code,
LinphoneXmlRpcArgString, creator->ha1 ? creator->ha1 : ha1_for_passwd(creator->username, creator->domain, creator->password),
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _activate_phone_number_link_cb);
@ -851,6 +867,8 @@ LinphoneAccountCreatorStatus linphone_account_creator_recover_phone_account(Linp
}
request = linphone_xml_rpc_request_new_with_args("recover_phone_account", LinphoneXmlRpcArgString,
LinphoneXmlRpcArgString, creator->phone_number,
LinphoneXmlRpcArgString, creator->domain,
LinphoneXmlRpcArgString, creator->language,
LinphoneXmlRpcArgNone);
linphone_xml_rpc_request_set_user_data(request, creator);
linphone_xml_rpc_request_cbs_set_response(linphone_xml_rpc_request_get_callbacks(request), _recover_phone_account_cb);

View file

@ -196,6 +196,13 @@ LINPHONE_PUBLIC const char * linphone_account_creator_get_ha1(const LinphoneAcco
**/
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_activation_code(LinphoneAccountCreator *creator, const char *activation_code);
/**
* Set the language to use in email or SMS if supported.
* @param[in] creator LinphoneAccountCreator object
* @param[in] activation_code The language code to use
**/
LINPHONE_PUBLIC LinphoneAccountCreatorStatus linphone_account_creator_set_language(LinphoneAccountCreator *creator, const char *lang);
/**
* Set the transport.
* @param[in] creator LinphoneAccountCreator object

View file

@ -8285,6 +8285,14 @@ extern "C" jint Java_org_linphone_core_LinphoneAccountCreatorImpl_setActivationC
return (jint) status;
}
extern "C" jint Java_org_linphone_core_LinphoneAccountCreatorImpl_setLanguage(JNIEnv *env, jobject thiz, jlong ptr, jstring jlang) {
const char *lang = GetStringUTFChars(env, jlang);
LinphoneAccountCreator *account_creator = (LinphoneAccountCreator *)ptr;
LinphoneAccountCreatorStatus status = linphone_account_creator_set_language(account_creator, lang);
ReleaseStringUTFChars(env, jlang, lang);
return (jint) status;
}
extern "C" jint Java_org_linphone_core_LinphoneAccountCreatorImpl_setTransport(JNIEnv *env, jobject thiz, jlong ptr, jint jtransport) {
LinphoneAccountCreator *account_creator = (LinphoneAccountCreator *)ptr;
LinphoneAccountCreatorStatus status = linphone_account_creator_set_transport(account_creator, (LinphoneTransportType)jtransport);

View file

@ -1362,6 +1362,7 @@ struct _LinphoneAccountCreator {
char *activation_code;
char *ha1;
char *phone_country_code;
char *language;
};
BELLE_SIP_DECLARE_VPTR(LinphoneAccountCreator);

View file

@ -114,6 +114,8 @@ public interface LinphoneAccountCreator {
String getHa1();
Status setActivationCode(String activationCode);
Status setLanguage(String lang);
Status setTransport(TransportType transport);

View file

@ -100,6 +100,12 @@ public class LinphoneAccountCreatorImpl implements LinphoneAccountCreator {
return Status.fromInt(setActivationCode(nativePtr, activationCode));
}
private native int setLanguage(long ptr, String lang);
@Override
public Status setLanguage(String lang) {
return Status.fromInt(setLanguage(nativePtr, lang));
}
private native int setTransport(long ptr, int transport);
@Override
public Status setTransport(TransportType transport) {