1 /**
2  * Copyright (c) 2013, Google Inc.
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 
17 package com.android.email.activity;
18 
19 import android.text.Editable;
20 import android.text.SpannableStringBuilder;
21 import android.view.Menu;
22 import android.view.MenuItem;
23 import android.widget.EditText;
24 
25 import com.android.email.R;
26 import com.android.mail.compose.ComposeActivity;
27 import com.android.mail.utils.LogUtils;
28 
29 public class ComposeActivityEmail extends ComposeActivity
30         implements InsertQuickResponseDialog.Callback {
31     static final String insertQuickResponseDialogTag = "insertQuickResponseDialog";
32     @Override
onCreateOptionsMenu(Menu menu)33     public boolean onCreateOptionsMenu(Menu menu) {
34         final boolean superCreated = super.onCreateOptionsMenu(menu);
35         if (mReplyFromAccount != null) {
36             getMenuInflater().inflate(R.menu.email_compose_menu_extras, menu);
37             return true;
38         } else {
39             LogUtils.d(LogUtils.TAG, "mReplyFromAccount is null, not adding Quick Response menu");
40             return superCreated;
41         }
42     }
43 
44     @Override
onOptionsItemSelected(MenuItem item)45     public boolean onOptionsItemSelected(MenuItem item) {
46         if (item.getItemId() == R.id.insert_quick_response_menu_item) {
47             InsertQuickResponseDialog dialog = InsertQuickResponseDialog.newInstance(null,
48                     mReplyFromAccount.account);
49             dialog.show(getFragmentManager(), insertQuickResponseDialogTag);
50         }
51         return super.onOptionsItemSelected(item);
52     }
53 
onQuickResponseSelected(CharSequence quickResponse)54     public void onQuickResponseSelected(CharSequence quickResponse) {
55         final int selEnd = mBodyView.getSelectionEnd();
56         final int selStart = mBodyView.getSelectionStart();
57 
58         if (selEnd >= 0 && selStart >= 0) {
59             final SpannableStringBuilder messageBody =
60                     new SpannableStringBuilder(mBodyView.getText());
61             final int replaceStart = selStart < selEnd ? selStart : selEnd;
62             final int replaceEnd = selStart < selEnd ? selEnd : selStart;
63             messageBody.replace(replaceStart, replaceEnd, quickResponse);
64             mBodyView.setText(messageBody);
65             mBodyView.setSelection(replaceStart + quickResponse.length());
66         } else {
67             mBodyView.append(quickResponse);
68             mBodyView.setSelection(mBodyView.getText().length());
69         }
70     }
71 }
72