mirror of
				https://github.com/pierre42100/ComunicAndroid
				synced 2025-10-31 09:34:47 +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