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