1 /*
2  * Copyright (C) 2022 The Android Open Source Project
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 androidx.test.uiautomator.testapp;
18 
19 import android.app.Activity;
20 import android.os.Bundle;
21 import android.view.GestureDetector;
22 import android.view.MotionEvent;
23 import android.widget.TextView;
24 
25 import org.jspecify.annotations.NonNull;
26 import org.jspecify.annotations.Nullable;
27 
28 public class SwipeTestActivity extends Activity {
29 
30     private GestureDetector mGestureDetector;
31 
32     @Override
onCreate(@ullable Bundle savedInstanceState)33     public void onCreate(@Nullable Bundle savedInstanceState) {
34         super.onCreate(savedInstanceState);
35         setContentView(R.layout.swipe_test_activity);
36 
37         TextView swipeRegion = findViewById(R.id.swipe_region);
38 
39         mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
40             @Override
41             public boolean onScroll(@Nullable MotionEvent e1, @NonNull MotionEvent e2,
42                     float distanceX, float distanceY) {
43                 boolean horizontal = Math.abs(distanceX) > Math.abs(distanceY);
44                 if (horizontal) {
45                     swipeRegion.setText(distanceX > 0 ? "swipe_left" : "swipe_right");
46                 } else {
47                     swipeRegion.setText(distanceY > 0 ? "swipe_up" : "swipe_down");
48                 }
49                 return true;
50             }
51         });
52     }
53 
54     @Override
onTouchEvent(MotionEvent event)55     public boolean onTouchEvent(MotionEvent event) {
56         return mGestureDetector.onTouchEvent(event);
57     }
58 }
59