package com.moez.QKSMS.ui.popup;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.view.View;
import android.widget.AdapterView;
import com.android.ex.chips.recipientchip.DrawableRecipientChip;
import com.moez.QKSMS.R;
import com.moez.QKSMS.common.utils.KeyboardUtils;
import com.moez.QKSMS.interfaces.ActivityLauncher;
import com.moez.QKSMS.interfaces.RecipientProvider;
import com.moez.QKSMS.ui.base.QKPopupActivity;
import com.moez.QKSMS.ui.view.AutoCompleteContactView;
import com.moez.QKSMS.ui.view.ComposeView;
import com.moez.QKSMS.ui.view.StarredContactsView;
public class QKComposeActivity extends QKPopupActivity implements ComposeView.OnSendListener, RecipientProvider,
ActivityLauncher, AdapterView.OnItemClickListener {
private final String TAG = "QKComposeActivity";
private Context mContext = this;
private AutoCompleteContactView mRecipients;
private StarredContactsView mStarredContactsView;
private ComposeView mCompose;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.title_compose);
mRecipients = (AutoCompleteContactView) findViewById(R.id.compose_recipients);
mRecipients.setOnItemClickListener(this);
// Get the compose view, and set it up with all the listeners.
findViewById(R.id.compose_view_stub).setVisibility(View.VISIBLE);
mCompose = (ComposeView) findViewById(R.id.compose_view);
mCompose.setActivityLauncher(this);
mCompose.setOnSendListener(this);
mCompose.setRecipientProvider(this);
mCompose.setLabel("QKCompose");
mStarredContactsView = (StarredContactsView) findViewById(R.id.starred_contacts);
mStarredContactsView.setComposeScreenViews(mRecipients, mCompose);
// Apply different attachments based on the type.
mCompose.loadMessageFromIntent(getIntent());
}
@Override
protected int getLayoutResource() {
return R.layout.activity_qkcompose;
}
@Override
protected void onPause() {
super.onPause();
KeyboardUtils.hide(mContext, mCompose);
}
@Override
public void finish() {
// Override pending transitions so that we don't see black for a second when QuickReply closes
super.finish();
overridePendingTransition(0, 0);
}
@Override
public String[] getRecipientAddresses() {
DrawableRecipientChip[] chips = mRecipients.getRecipients();
String[] addresses = new String[chips.length];
for (int i = 0; i < chips.length; i++) {
addresses[i] = PhoneNumberUtils.stripSeparators(chips[i].getEntry().getDestination());
}
return addresses;
}
@Override
public void onSend(String[] recipients, String body) {
// When the SMS is sent, close this activity.
finish();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (!mCompose.onActivityResult(requestCode, resultCode, data)) {
// Handle other results here, since the ComposeView didn't handle them.
}
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mRecipients.onItemClick(parent, view, position, id);
mStarredContactsView.collapse();
mCompose.requestReplyTextFocus();
}
}