1c6953b77552d4cb71776cf0537dc226029381628Tony Mantler/**
2c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * Copyright (c) 2013, Google Inc.
3c6953b77552d4cb71776cf0537dc226029381628Tony Mantler *
4c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * Licensed under the Apache License, Version 2.0 (the "License");
5c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * you may not use this file except in compliance with the License.
6c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * You may obtain a copy of the License at
7c6953b77552d4cb71776cf0537dc226029381628Tony Mantler *
8c6953b77552d4cb71776cf0537dc226029381628Tony Mantler *     http://www.apache.org/licenses/LICENSE-2.0
9c6953b77552d4cb71776cf0537dc226029381628Tony Mantler *
10c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * Unless required by applicable law or agreed to in writing, software
11c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * distributed under the License is distributed on an "AS IS" BASIS,
12c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * See the License for the specific language governing permissions and
14c6953b77552d4cb71776cf0537dc226029381628Tony Mantler * limitations under the License.
15c6953b77552d4cb71776cf0537dc226029381628Tony Mantler */
16c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
17c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerpackage com.android.email.activity;
18c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
19c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport android.text.Editable;
20c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport android.text.SpannableStringBuilder;
21c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport android.view.Menu;
22c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport android.view.MenuItem;
23c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport android.widget.EditText;
24c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
25c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport com.android.email.R;
26c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerimport com.android.mail.compose.ComposeActivity;
27b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantlerimport com.android.mail.utils.LogUtils;
28c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
29c6953b77552d4cb71776cf0537dc226029381628Tony Mantlerpublic class ComposeActivityEmail extends ComposeActivity
30c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        implements InsertQuickResponseDialog.Callback {
31c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    static final String insertQuickResponseDialogTag = "insertQuickResponseDialog";
32c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    @Override
33c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    public boolean onCreateOptionsMenu(Menu menu) {
34b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler        final boolean superCreated = super.onCreateOptionsMenu(menu);
35b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler        if (mReplyFromAccount != null) {
36b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler            getMenuInflater().inflate(R.menu.email_compose_menu_extras, menu);
37b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler            return true;
38b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler        } else {
39b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler            LogUtils.d(LogUtils.TAG, "mReplyFromAccount is null, not adding Quick Response menu");
40b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler            return superCreated;
41b0d82fecff0036a774f067a0389a1b0a834f8bffTony Mantler        }
42c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    }
43c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
44c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    @Override
45c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    public boolean onOptionsItemSelected(MenuItem item) {
46c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        if (item.getItemId() == R.id.insert_quick_response_menu_item) {
47c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            InsertQuickResponseDialog dialog = InsertQuickResponseDialog.newInstance(null,
48c6953b77552d4cb71776cf0537dc226029381628Tony Mantler                    mReplyFromAccount.account);
49c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            dialog.show(getFragmentManager(), insertQuickResponseDialogTag);
50c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        }
51c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        return super.onOptionsItemSelected(item);
52c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    }
53c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
54c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    public void onQuickResponseSelected(CharSequence quickResponse) {
55c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        final int selEnd = mBodyView.getSelectionEnd();
56c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        final int selStart = mBodyView.getSelectionStart();
57c6953b77552d4cb71776cf0537dc226029381628Tony Mantler
58c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        if (selEnd >= 0 && selStart >= 0) {
59c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            final SpannableStringBuilder messageBody =
60c6953b77552d4cb71776cf0537dc226029381628Tony Mantler                    new SpannableStringBuilder(mBodyView.getText());
61c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            final int replaceStart = selStart < selEnd ? selStart : selEnd;
62c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            final int replaceEnd = selStart < selEnd ? selEnd : selStart;
63c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            messageBody.replace(replaceStart, replaceEnd, quickResponse);
64c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            mBodyView.setText(messageBody);
65c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            mBodyView.setSelection(replaceStart + quickResponse.length());
66c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        } else {
67c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            mBodyView.append(quickResponse);
68c6953b77552d4cb71776cf0537dc226029381628Tony Mantler            mBodyView.setSelection(mBodyView.getText().length());
69c6953b77552d4cb71776cf0537dc226029381628Tony Mantler        }
70c6953b77552d4cb71776cf0537dc226029381628Tony Mantler    }
71c6953b77552d4cb71776cf0537dc226029381628Tony Mantler}
72