169c182afb0e6d82a341a28b4317aa703af768906Gary Maipackage com.android.contacts.interactions; 2f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 3f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chenimport android.graphics.Point; 4f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 5f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen/** 6f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen * Singleton class to keep track of where the user last touched the screen. 7f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen * 8f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen * Used to pass on to the InCallUI for animation. 9f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen */ 10f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chenpublic class TouchPointManager { 11f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen public static final String TOUCH_POINT = "touchPoint"; 12f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 13f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen private static TouchPointManager sInstance = new TouchPointManager(); 14f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 15f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen private Point mPoint = new Point(); 16f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 17f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen /** 18f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen * Private constructor. Instance should only be acquired through getInstance(). 19f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen */ 20f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen private TouchPointManager() { 21f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen } 22f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 23f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen public static TouchPointManager getInstance() { 24f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen return sInstance; 25f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen } 26f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 27f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen public Point getPoint() { 28f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen return mPoint; 29f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen } 30f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen 31f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen public void setPoint(int x, int y) { 32f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen mPoint.set(x, y); 33f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen } 34aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen 35aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen /** 36aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * When a point is initialized, its value is (0,0). Since it is highly unlikely a user will 37aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * touch at that exact point, if the point in TouchPointManager is (0,0), it is safe to assume 38aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * that the TouchPointManager has not yet collected a touch. 39aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * 40aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * @return True if there is a valid point saved. Define a valid point as any point that is 41aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen * not (0,0). 42aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen */ 43aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen public boolean hasValidPoint() { 44aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen return mPoint.x != 0 || mPoint.y != 0; 45aca95b8c684a4cdc85faad878c8609aaebcabc33Nancy Chen } 46f4474e6a054dad17a55291ac26dc294b874354c4Nancy Chen} 47