Skip to content

Commit

Permalink
Fix the feel of Calculator buttons
Browse files Browse the repository at this point in the history
- Make them more responsive to clicks
- If you touch down on a button and then move onto another target, we should not show any feedback after the click

Change-Id: I129fad65fafd051d534ecde8a2b6cfb78d29df08
  • Loading branch information
mikejurka committed Oct 19, 2011
1 parent 9148908 commit 57ba0ae
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 3 deletions.
2 changes: 1 addition & 1 deletion res/layout-land/main.xml
Expand Up @@ -76,7 +76,7 @@
</FrameLayout>
</LinearLayout>

<android.support.v4.view.ViewPager
<com.android.calculator2.CalculatorViewPager
android:id="@+id/panelswitch"
android:layout_width="match_parent"
android:layout_height="0dp"
Expand Down
2 changes: 1 addition & 1 deletion res/layout-port/main.xml
Expand Up @@ -93,7 +93,7 @@
</FrameLayout>

</LinearLayout>
<android.support.v4.view.ViewPager
<com.android.calculator2.CalculatorViewPager
android:id="@+id/panelswitch"
android:layout_width="match_parent"
android:layout_height="0dp"
Expand Down
40 changes: 40 additions & 0 deletions src/com/android/calculator2/CalculatorViewPager.java
@@ -0,0 +1,40 @@
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.android.calculator2;

import android.content.Context;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;

public class CalculatorViewPager extends ViewPager {
public CalculatorViewPager(Context context) {
super(context);
}

public CalculatorViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

/**
* ViewPager inherits ViewGroup's default behavior of delayed clicks
* on its children, but in order to make the calc buttons more responsive
* we disable that here.
*/
public boolean shouldDelayChildPressedState() {
return false;
}
}
6 changes: 5 additions & 1 deletion src/com/android/calculator2/ColorButton.java
Expand Up @@ -120,7 +120,11 @@ public boolean onTouchEvent(MotionEvent event) {

switch (event.getAction()) {
case MotionEvent.ACTION_UP:
animateClickFeedback();
if (isPressed()) {
animateClickFeedback();
} else {
invalidate();
}
break;
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_CANCEL:
Expand Down

0 comments on commit 57ba0ae

Please sign in to comment.