CalculatorEditText.java revision de3eec25069ffdd5b83fbbca90277d4a1f0d232b
1de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov/*
2de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * Copyright (C) 2010 The Android Open Source Project
3de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov *
4de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * Licensed under the Apache License, Version 2.0 (the "License");
5de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * you may not use this file except in compliance with the License.
6de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * You may obtain a copy of the License at
7de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov *
8de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov *      http://www.apache.org/licenses/LICENSE-2.0
9de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov *
10de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * Unless required by applicable law or agreed to in writing, software
11de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * distributed under the License is distributed on an "AS IS" BASIS,
12de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * See the License for the specific language governing permissions and
14de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov * limitations under the License.
15de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov */
16de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
17de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovpackage com.android.calculator2;
18de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
19de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.content.ClipData;
20de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.content.ClipboardManager;
21de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.content.Context;
22de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.text.Editable;
23de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.text.TextUtils;
24de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.util.AttributeSet;
25de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.widget.EditText;
26de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovimport android.widget.Toast;
27de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
28de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikovpublic class CalculatorEditText extends EditText {
29de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
30de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov    public CalculatorEditText(Context context, AttributeSet attrs) {
31de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        super(context, attrs);
32de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov    }
33de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
34de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov    @Override
35de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov    public boolean performLongClick() {
36de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        Editable text = getText();
37de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        if (TextUtils.isEmpty(text)) {
38de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov            return false;
39de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        }
40de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov
41de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        setSelection(0, text.length());
42de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        ClipboardManager clipboard = (ClipboardManager) getContext().getSystemService(
43de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov                Context.CLIPBOARD_SERVICE);
44de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        clipboard.setPrimaryClip(ClipData.newPlainText(null, null, getText()));
45de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        Toast.makeText(getContext(), R.string.text_copied_toast, Toast.LENGTH_SHORT).show();
46de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov        return true;
47de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov    }
48de3eec25069ffdd5b83fbbca90277d4a1f0d232bDmitri Plotnikov}
49