/*******************************************************************************
* Software Name : RCS IMS Stack
*
* Copyright (C) 2010 France Telecom S.A.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package com.orangelabs.rcs.ri.messaging;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Data;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Spinner;
import com.orangelabs.rcs.ri.R;
import com.orangelabs.rcs.ri.utils.Utils;
/**
* Initiate chat
*
* @author jexa7410
*/
public class InitiateChat extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Set layout
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.messaging_initiate_chat);
// Set title
setTitle(R.string.menu_one_to_one_chat);
// Set contact selector
Spinner spinner = (Spinner)findViewById(R.id.contact);
spinner.setAdapter(Utils.createRcsContactListAdapter(this));
// Set button callback
Button inviteBtn = (Button)findViewById(R.id.invite_btn);
inviteBtn.setOnClickListener(btnInviteListener);
// Disable button if no contact available
if (spinner.getAdapter().getCount() == 0) {
inviteBtn.setEnabled(false);
}
// Select the corresponding contact from the intent
Intent intent = getIntent();
Uri contactUri = intent.getData();
if (contactUri != null) {
Cursor cursor = managedQuery(contactUri, null, null, null, null);
if (cursor.moveToNext()) {
String selectedContact = cursor.getString(cursor.getColumnIndex(Data.DATA1));
if (selectedContact != null) {
for (int i=0;i<spinner.getAdapter().getCount();i++) {
MatrixCursor cursor2 = (MatrixCursor)spinner.getAdapter().getItem(i);
if (selectedContact.equalsIgnoreCase(cursor2.getString(1))) {
// Select contact
spinner.setSelection(i);
spinner.setEnabled(false);
break;
}
}
}
}
cursor.close();
}
}
/**
* Invite button listener
*/
private OnClickListener btnInviteListener = new OnClickListener() {
public void onClick(View v) {
// Build participant list
Spinner spinner = (Spinner)findViewById(R.id.contact);
MatrixCursor cursor = (MatrixCursor)spinner.getSelectedItem();
String remoteContact = cursor.getString(1);
// Display chat view
OneToOneChatView.startOneToOneChatView(InitiateChat.this, remoteContact, null, null);
// Exit activity
finish();
}
};
}