/*
* Copyright 2011 David Brazdil
*
* 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 uk.ac.cam.db538.cryptosms.ui.activity;
import roboguice.inject.InjectView;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RadioButton;
import uk.ac.cam.db538.cryptosms.R;
import uk.ac.cam.db538.cryptosms.data.Contact;
import uk.ac.cam.db538.cryptosms.state.Pki;
import uk.ac.cam.db538.cryptosms.ui.UtilsContactBadge;
public class ActivityExchangeMethod extends ActivityAppState {
public static final String OPTION_PHONE_NUMBER = "PHONE_NUMBER";
private static final int ACTIVITY_TEXT_MESSAGE = 1;
private Contact mContact;
private String mPhoneNumber;
@InjectView(R.id.via_text)
RadioButton mTextMessageRadioButton;
@InjectView(R.id.back)
Button mBackButton;
@InjectView(R.id.next)
Button mNextButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.screen_exchange_method);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE |
WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
// set up the recipient
mPhoneNumber = getIntent().getExtras().getString(OPTION_PHONE_NUMBER);
if (mPhoneNumber == null)
this.finish();
mContact = Contact.getContact(this, mPhoneNumber);
if (mContact == null || !mContact.existsInDatabase())
this.finish();
// set up the contact badge
UtilsContactBadge.setBadge(mContact, getMainView());
// disable the Next button
mNextButton.setEnabled(false);
OnClickListener radioButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
mNextButton.setEnabled(true);
}
};
mTextMessageRadioButton.setOnClickListener(radioButtonListener);
// back button
mBackButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
ActivityExchangeMethod.this.onBackPressed();
}
});
// next button
mNextButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mTextMessageRadioButton.isChecked()) {
Intent intent = new Intent(ActivityExchangeMethod.this, ActivityExchangeViaText.class);
intent.putExtra(ActivityExchangeViaText.OPTION_PHONE_NUMBER, mPhoneNumber);
startActivityForResult(intent, ACTIVITY_TEXT_MESSAGE);
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (!Pki.isLoggedIn())
return;
switch (requestCode) {
case ACTIVITY_TEXT_MESSAGE:
if (resultCode == Activity.RESULT_OK)
this.finish();
break;
}
}
}