package com.orangelabs.rcs.connector; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; import android.database.MatrixCursor; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.Spinner; import android.widget.TextView; import com.orangelabs.rcs.connector.utils.Utils; import com.orangelabs.rcs.service.api.client.gsma.GsmaUiConnector; /** * Get contact capabilities * * @author jexa7410 */ public class GetContactCapabilities extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set layout setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); setContentView(R.layout.get_contact_capabilities); // Set title setTitle(R.string.menu_contact_capabilities); // Set the contact selector Spinner spinner = (Spinner)findViewById(R.id.contact); spinner.setAdapter(Utils.createContactListAdapter(this)); spinner.setOnItemSelectedListener(listenerContact); // Set buttons callback Button btn = (Button)findViewById(R.id.refresh_btn); btn.setOnClickListener(btnRefreshListener); // Display capabilities getCapabilities(); } /** * Request button listener */ private OnClickListener btnRefreshListener = new OnClickListener() { public void onClick(View v) { getCapabilities(); } }; /** * Spinner contact listener */ private OnItemSelectedListener listenerContact = new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // Get capabilities getCapabilities(); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }; /** * Returns the selected contact * * @param position Position in the adapter * @return Contact */ private String getSelectedContact() { Spinner spinner = (Spinner)findViewById(R.id.contact); MatrixCursor cursor = (MatrixCursor)spinner.getSelectedItem(); return cursor.getString(1); } /** * get capabilities of a contact */ private void getCapabilities() { String contact = getSelectedContact(); Intent intent = new Intent(GsmaUiConnector.ACTION_GET_CONTACT_CAPABILITIES); intent.putExtra(GsmaUiConnector.EXTRA_CONTACT, contact); sendOrderedBroadcast(intent, null, new ResultReceiver(), null, Activity.RESULT_OK, null, null); } /** * Result receiver */ public class ResultReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { // Get result Bundle result = getResultExtras(true); boolean capabilityIm = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_CHAT, false); boolean capabilityFt = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_FT, false); boolean capabilityIs = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_IMAGE_SHARE, false); boolean capabilityVs = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_VIDEO_SHARE, false); boolean capabilityPd = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_PRESENCE_DISCOVERY, false); boolean capabilitySp = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_SOCIAL_PRESENCE, false); boolean capabilityCsv = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_CS_VIDEO, false); boolean capabilityGeoloc = result.getBoolean(GsmaUiConnector.EXTRA_CAPABILITY_GEOLOCATION_PUSH, false); String[] capabilityExts = result.getStringArray(GsmaUiConnector.EXTRA_CAPABILITY_EXTENSIONS); // Show result CheckBox imageCSh = (CheckBox)findViewById(R.id.image_sharing); imageCSh.setChecked(capabilityIs); CheckBox videoCSh = (CheckBox)findViewById(R.id.video_sharing); videoCSh.setChecked(capabilityVs); CheckBox ft = (CheckBox)findViewById(R.id.file_transfer); ft.setChecked(capabilityFt); CheckBox im = (CheckBox)findViewById(R.id.im); im.setChecked(capabilityIm); CheckBox csVideo = (CheckBox)findViewById(R.id.cs_video); csVideo.setChecked(capabilityCsv); CheckBox presenceDiscovery = (CheckBox)findViewById(R.id.presence_discovery); presenceDiscovery.setChecked(capabilityPd); CheckBox socialPresence = (CheckBox)findViewById(R.id.social_presence); socialPresence.setChecked(capabilitySp); CheckBox geoloc = (CheckBox)findViewById(R.id.geoloc_push); geoloc.setChecked(capabilityGeoloc); if (capabilityExts != null) { TextView ext = (TextView)findViewById(R.id.extensions); String txt = ""; for(int i=0; i<capabilityExts.length; i++) { String value = capabilityExts[i]; txt += value.substring(Utils.FEATURE_RCSE_EXTENSION.length()+1) + "\n"; } ext.setText(txt); } } } }