blob: f7e0888339d4621af8cbca781e1e155fdcaeb8ed [file] [log] [blame]
Michael Chane98dca72012-06-16 08:22:47 -07001/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.calendar.alerts;
18
19import android.app.ListActivity;
20import android.content.ActivityNotFoundException;
21import android.content.Intent;
22import android.os.Bundle;
23import android.view.View;
24import android.widget.AdapterView;
25import android.widget.AdapterView.OnItemClickListener;
26import android.widget.ArrayAdapter;
27import android.widget.Toast;
28
29import com.android.calendar.R;
30import com.android.calendar.Utils;
31
32import java.util.Arrays;
33
34/**
35 * Activity which displays when the user wants to email guests from notifications.
36 *
37 * This presents the user with list if quick responses to be populated in an email
38 * to minimize typing.
39 *
40 */
41public class QuickResponseActivity extends ListActivity implements OnItemClickListener {
42 private static final String TAG = "QuickResponseActivity";
Sara Ting7da27672012-07-24 16:23:53 -070043 public static final String EXTRA_EVENT_ID = "eventId";
Michael Chane98dca72012-06-16 08:22:47 -070044
45 private String[] mResponses = null;
46 static long mEventId;
47
48 @Override
49 protected void onCreate(Bundle icicle) {
50 super.onCreate(icicle);
51
52 Intent intent = getIntent();
53 if (intent == null) {
54 finish();
55 return;
56 }
57
58 mEventId = intent.getLongExtra(EXTRA_EVENT_ID, -1);
59 if (mEventId == -1) {
60 finish();
61 return;
62 }
63
64 // Set listener
65 getListView().setOnItemClickListener(QuickResponseActivity.this);
66
67 // Populate responses
68 String[] responses = Utils.getQuickResponses(this);
69 Arrays.sort(responses);
70
71 // Add "Custom response..."
72 mResponses = new String[responses.length + 1];
73 int i;
74 for (i = 0; i < responses.length; i++) {
75 mResponses[i] = responses[i];
76 }
77 mResponses[i] = getResources().getString(R.string.quick_response_custom_msg);
78
79 setListAdapter(new ArrayAdapter<String>(this, R.layout.quick_response_item, mResponses));
80 }
81
82 // implements OnItemClickListener
83 @Override
84 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
85
86 String body = null;
87 if (mResponses != null && position < mResponses.length - 1) {
88 body = mResponses[position];
89 }
90
91 // Start thread to query provider and send mail
92 new QueryThread(mEventId, body).start();
93 }
94
95 private class QueryThread extends Thread {
96 long mEventId;
97 String mBody;
98
99 QueryThread(long eventId, String body) {
100 mEventId = eventId;
101 mBody = body;
102 }
103
104 @Override
105 public void run() {
106 Intent emailIntent = AlertReceiver.createEmailIntent(QuickResponseActivity.this,
107 mEventId, mBody);
108 if (emailIntent != null) {
109 try {
110 startActivity(emailIntent);
111 finish();
112 } catch (ActivityNotFoundException ex) {
113 QuickResponseActivity.this.getListView().post(new Runnable() {
114 @Override
115 public void run() {
116 Toast.makeText(QuickResponseActivity.this,
117 R.string.quick_response_email_failed, Toast.LENGTH_LONG);
118 finish();
119 }
120 });
121 }
122 }
123 }
124 }
125}