1616import android .view .Menu ;
1717import android .view .MenuItem ;
1818import android .view .MotionEvent ;
19- import android .view .View ;
2019import android .widget .EditText ;
2120import android .widget .TextView ;
2221
23-
2422import com .lwjfork .code .block .BaseBlockDrawer ;
2523import com .lwjfork .code .block .NoneBlockDrawer ;
2624import com .lwjfork .code .block .SolidBlockDrawer ;
@@ -239,13 +237,7 @@ protected void onDraw(Canvas canvas) {
239237
240238 private void forbidCopyAndPaste () {
241239 setLongClickable (false );
242- setOnTouchListener (new OnTouchListener () {
243- @ Override
244- public boolean onTouch (View v , MotionEvent event ) {
245- clearFocus ();
246- return false ;
247- }
248- });
240+ setTextIsSelectable (false );
249241 setCustomSelectionActionModeCallback (new ActionMode .Callback () {
250242 @ Override
251243 public boolean onCreateActionMode (ActionMode mode , Menu menu ) {
@@ -278,6 +270,11 @@ public boolean onTouchEvent(MotionEvent event) {
278270 return super .onTouchEvent (event );
279271 }
280272
273+ @ Override
274+ public boolean onTextContextMenuItem (int id ) {
275+ if (id == android .R .id .paste ) return false ;
276+ return super .onTextContextMenuItem (id );
277+ }
281278
282279 private void setInsertionDisabled () {
283280 try {
@@ -289,6 +286,10 @@ private void setInsertionDisabled() {
289286 Field mInsertionControllerEnabledField = editorClass .getDeclaredField ("mInsertionControllerEnabled" );
290287 mInsertionControllerEnabledField .setAccessible (true );
291288 mInsertionControllerEnabledField .set (editorObject , false );
289+
290+ Field mSelectionControllerEnabledField = editorClass .getDeclaredField ("mSelectionControllerEnabled" );
291+ mSelectionControllerEnabledField .setAccessible (true );
292+ mSelectionControllerEnabledField .set (editorObject , false );
292293 } catch (Exception ignored ) {
293294 // ignore exception here
294295 }
0 commit comments