mirror of
				https://github.com/pierre42100/ComunicAndroid
				synced 2025-11-04 11:34:06 +00:00 
			
		
		
		
	Can get calls configuration
This commit is contained in:
		@@ -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.utils.PreferencesUtils;
 | 
			
		||||
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.fragments.ConversationFragment;
 | 
			
		||||
import org.communiquons.android.comunic.client.ui.fragments.ConversationsListFragment;
 | 
			
		||||
@@ -181,6 +182,11 @@ public class MainActivity extends BaseActivity implements
 | 
			
		||||
        //Receive broadcasts
 | 
			
		||||
        IntentFilter intentFilter = new IntentFilter(NotificationsService.BROADCAST_ACTION);
 | 
			
		||||
        LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, intentFilter);
 | 
			
		||||
 | 
			
		||||
        //Get calls configuration
 | 
			
		||||
        GetCallConfigurationTask callConfigurationTask = new GetCallConfigurationTask(this);
 | 
			
		||||
        callConfigurationTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
 | 
			
		||||
        getTasksManager().addTask(callConfigurationTask);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user