mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-23 13:59:29 +00:00
Can get calls configuration
This commit is contained in:
parent
d73152dab6
commit
0a8ecf3fdf
@ -0,0 +1,112 @@
|
|||||||
|
package org.communiquons.android.comunic.client.data.helpers;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.data.models.APIRequest;
|
||||||
|
import org.communiquons.android.comunic.client.data.models.APIResponse;
|
||||||
|
import org.communiquons.android.comunic.client.data.models.CallsConfiguration;
|
||||||
|
import org.json.JSONException;
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calls helper
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class CallsHelper extends BaseHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Debug tag
|
||||||
|
*/
|
||||||
|
private static final String TAG = CallsHelper.class.getSimpleName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* We consider that it is not required to get call configuration twice on single
|
||||||
|
* application lifetime
|
||||||
|
*/
|
||||||
|
private static CallsConfiguration mCallsConfiguration = null;
|
||||||
|
|
||||||
|
public CallsHelper(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get call configuration if required
|
||||||
|
*/
|
||||||
|
public void getCallConfigurationIfRequired(){
|
||||||
|
|
||||||
|
//If call configuration has already been retrieved, nothing to be done
|
||||||
|
if(mCallsConfiguration != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
APIRequest request = new APIRequest(getContext(), "calls/config");
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
//Execute request
|
||||||
|
APIResponse response = request.exec();
|
||||||
|
|
||||||
|
//Parse response
|
||||||
|
mCallsConfiguration = JSONObjectToCallConfiguration(response.getJSONObject());
|
||||||
|
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Calls configuration, if available
|
||||||
|
*
|
||||||
|
* @return Calls configuration
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
public static CallsConfiguration getCallConfiguration(){
|
||||||
|
return mCallsConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checkout whether call system is currently available now or not.
|
||||||
|
*
|
||||||
|
* Notice : this value may return false even if call system is enabled, based
|
||||||
|
* on the fact that call configuration may have not been already retrieved
|
||||||
|
*
|
||||||
|
* @return TRUE if call system is available / FALSE else
|
||||||
|
*/
|
||||||
|
public static boolean isCallSystemAvailable(){
|
||||||
|
return mCallsConfiguration != null && mCallsConfiguration.isEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Turn a {@link JSONObject} object into a {@link CallsConfiguration} object.
|
||||||
|
*
|
||||||
|
* @param object Object to convert
|
||||||
|
* @return The result of the operation
|
||||||
|
* @throws JSONException Exception thrown in case of failure
|
||||||
|
*/
|
||||||
|
private static CallsConfiguration JSONObjectToCallConfiguration(JSONObject object)
|
||||||
|
throws JSONException {
|
||||||
|
|
||||||
|
CallsConfiguration config = new CallsConfiguration();
|
||||||
|
config.setEnabled(object.getBoolean("enabled"));
|
||||||
|
|
||||||
|
//Get further information only if required
|
||||||
|
if(config.isEnabled()){
|
||||||
|
config.setMaximumNumberMembers(object.getInt("maximum_number_members"));
|
||||||
|
config.setSignalServerName(object.getString("signal_server_name"));
|
||||||
|
config.setSignalServerPort(object.getInt("signal_server_port"));
|
||||||
|
config.setSignalServerSecure(object.getBoolean("is_signal_server_secure"));
|
||||||
|
config.setStunServer(object.getString("stun_server"));
|
||||||
|
config.setTurnServer(object.getString("turn_server"));
|
||||||
|
config.setTurnUsername(object.getString("turn_username"));
|
||||||
|
config.setTurnPassword(object.getString("turn_password"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return config;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
package org.communiquons.android.comunic.client.data.models;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Calls configuration object
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class CallsConfiguration {
|
||||||
|
|
||||||
|
//Private fields
|
||||||
|
private boolean enabled;
|
||||||
|
private int maximumNumberMembers;
|
||||||
|
private String signalServerName;
|
||||||
|
private int signalServerPort;
|
||||||
|
private boolean isSignalSererSecure;
|
||||||
|
private String stunServer;
|
||||||
|
private String turnServer;
|
||||||
|
private String turnUsername;
|
||||||
|
private String turnPassword;
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEnabled(boolean enabled) {
|
||||||
|
this.enabled = enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMaximumNumberMembers() {
|
||||||
|
return maximumNumberMembers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaximumNumberMembers(int maximum_number_members) {
|
||||||
|
this.maximumNumberMembers = maximum_number_members;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSignalServerName() {
|
||||||
|
return signalServerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSignalServerName(String signalServerName) {
|
||||||
|
this.signalServerName = signalServerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSignalServerPort() {
|
||||||
|
return signalServerPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSignalServerPort(int signalServerPort) {
|
||||||
|
this.signalServerPort = signalServerPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSignalSererSecure() {
|
||||||
|
return isSignalSererSecure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSignalServerSecure(boolean signalSererSecure) {
|
||||||
|
this.isSignalSererSecure = signalSererSecure;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getStunServer() {
|
||||||
|
return stunServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStunServer(String stunServer) {
|
||||||
|
this.stunServer = stunServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurnServer() {
|
||||||
|
return turnServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurnServer(String turnServer) {
|
||||||
|
this.turnServer = turnServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurnUsername() {
|
||||||
|
return turnUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurnUsername(String turnUsername) {
|
||||||
|
this.turnUsername = turnUsername;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurnPassword() {
|
||||||
|
return turnPassword;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurnPassword(String turnPassword) {
|
||||||
|
this.turnPassword = turnPassword;
|
||||||
|
}
|
||||||
|
}
|
@ -37,6 +37,7 @@ import org.communiquons.android.comunic.client.data.runnables.FriendRefreshLoopR
|
|||||||
import org.communiquons.android.comunic.client.data.services.NotificationsService;
|
import org.communiquons.android.comunic.client.data.services.NotificationsService;
|
||||||
import org.communiquons.android.comunic.client.data.utils.PreferencesUtils;
|
import org.communiquons.android.comunic.client.data.utils.PreferencesUtils;
|
||||||
import org.communiquons.android.comunic.client.ui.asynctasks.FindVirtualDirectoryTask;
|
import org.communiquons.android.comunic.client.ui.asynctasks.FindVirtualDirectoryTask;
|
||||||
|
import org.communiquons.android.comunic.client.ui.asynctasks.GetCallConfigurationTask;
|
||||||
import org.communiquons.android.comunic.client.ui.asynctasks.SafeAsyncTask;
|
import org.communiquons.android.comunic.client.ui.asynctasks.SafeAsyncTask;
|
||||||
import org.communiquons.android.comunic.client.ui.fragments.ConversationFragment;
|
import org.communiquons.android.comunic.client.ui.fragments.ConversationFragment;
|
||||||
import org.communiquons.android.comunic.client.ui.fragments.ConversationsListFragment;
|
import org.communiquons.android.comunic.client.ui.fragments.ConversationsListFragment;
|
||||||
@ -181,6 +182,11 @@ public class MainActivity extends BaseActivity implements
|
|||||||
//Receive broadcasts
|
//Receive broadcasts
|
||||||
IntentFilter intentFilter = new IntentFilter(NotificationsService.BROADCAST_ACTION);
|
IntentFilter intentFilter = new IntentFilter(NotificationsService.BROADCAST_ACTION);
|
||||||
LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, intentFilter);
|
LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, intentFilter);
|
||||||
|
|
||||||
|
//Get calls configuration
|
||||||
|
GetCallConfigurationTask callConfigurationTask = new GetCallConfigurationTask(this);
|
||||||
|
callConfigurationTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
|
getTasksManager().addTask(callConfigurationTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package org.communiquons.android.comunic.client.ui.asynctasks;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.data.helpers.CallsHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get call configuration task
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class GetCallConfigurationTask extends SafeAsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
|
public GetCallConfigurationTask(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Void[] objects) {
|
||||||
|
|
||||||
|
new CallsHelper(getContext()).getCallConfigurationIfRequired();
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user