blob: f7e0888339d4621af8cbca781e1e155fdcaeb8ed [file] [log] [blame]
/*
* Copyright (C) 2012 The Android Open Source Project
*
* 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.android.calendar.alerts;
import android.app.ListActivity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import com.android.calendar.R;
import com.android.calendar.Utils;
import java.util.Arrays;
/**
* Activity which displays when the user wants to email guests from notifications.
*
* This presents the user with list if quick responses to be populated in an email
* to minimize typing.
*
*/
public class QuickResponseActivity extends ListActivity implements OnItemClickListener {
private static final String TAG = "QuickResponseActivity";
public static final String EXTRA_EVENT_ID = "eventId";
private String[] mResponses = null;
static long mEventId;
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
Intent intent = getIntent();
if (intent == null) {
finish();
return;
}
mEventId = intent.getLongExtra(EXTRA_EVENT_ID, -1);
if (mEventId == -1) {
finish();
return;
}
// Set listener
getListView().setOnItemClickListener(QuickResponseActivity.this);
// Populate responses
String[] responses = Utils.getQuickResponses(this);
Arrays.sort(responses);
// Add "Custom response..."
mResponses = new String[responses.length + 1];
int i;
for (i = 0; i < responses.length; i++) {
mResponses[i] = responses[i];
}
mResponses[i] = getResources().getString(R.string.quick_response_custom_msg);
setListAdapter(new ArrayAdapter<String>(this, R.layout.quick_response_item, mResponses));
}
// implements OnItemClickListener
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String body = null;
if (mResponses != null && position < mResponses.length - 1) {
body = mResponses[position];
}
// Start thread to query provider and send mail
new QueryThread(mEventId, body).start();
}
private class QueryThread extends Thread {
long mEventId;
String mBody;
QueryThread(long eventId, String body) {
mEventId = eventId;
mBody = body;
}
@Override
public void run() {
Intent emailIntent = AlertReceiver.createEmailIntent(QuickResponseActivity.this,
mEventId, mBody);
if (emailIntent != null) {
try {
startActivity(emailIntent);
finish();
} catch (ActivityNotFoundException ex) {
QuickResponseActivity.this.getListView().post(new Runnable() {
@Override
public void run() {
Toast.makeText(QuickResponseActivity.this,
R.string.quick_response_email_failed, Toast.LENGTH_LONG);
finish();
}
});
}
}
}
}
}