| /* |
| * 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(); |
| } |
| }); |
| } |
| } |
| } |
| } |
| } |