Add support for gestures in Home.

Adds a new animation style for the gestures pad, and de-normalize
the scores in the recognition engine.
This commit is contained in:
Romain Guy
2009-06-09 12:56:34 -07:00
parent faf410443f
commit 0e1ca5749a
7 changed files with 104 additions and 20 deletions

View File

@@ -46850,6 +46850,17 @@
visibility="public" visibility="public"
> >
</method> </method>
<method name="getFadeOffset"
return="long"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
<method name="getGesture" <method name="getGesture"
return="android.gesture.Gesture" return="android.gesture.Gesture"
abstract="false" abstract="false"
@@ -47080,6 +47091,19 @@
<parameter name="fadeEnabled" type="boolean"> <parameter name="fadeEnabled" type="boolean">
</parameter> </parameter>
</method> </method>
<method name="setFadeOffset"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
<parameter name="fadeOffset" type="long">
</parameter>
</method>
<method name="setGesture" <method name="setGesture"
return="void" return="void"
abstract="false" abstract="false"

View File

@@ -274,6 +274,14 @@ public class GestureOverlayView extends FrameLayout {
return mCurrentGesture; return mCurrentGesture;
} }
public long getFadeOffset() {
return mFadeOffset;
}
public void setFadeOffset(long fadeOffset) {
mFadeOffset = fadeOffset;
}
public void setGesture(Gesture gesture) { public void setGesture(Gesture gesture) {
if (mCurrentGesture != null) { if (mCurrentGesture != null) {
clear(false); clear(false);

View File

@@ -26,6 +26,20 @@ import java.util.TreeMap;
*/ */
class InstanceLearner extends Learner { class InstanceLearner extends Learner {
private static final Comparator<Prediction> sComparator = new Comparator<Prediction>() {
public int compare(Prediction object1, Prediction object2) {
double score1 = object1.score;
double score2 = object2.score;
if (score1 > score2) {
return -1;
} else if (score1 < score2) {
return 1;
} else {
return 0;
}
}
};
@Override @Override
ArrayList<Prediction> classify(int sequenceType, float[] vector) { ArrayList<Prediction> classify(int sequenceType, float[] vector) {
ArrayList<Prediction> predictions = new ArrayList<Prediction>(); ArrayList<Prediction> predictions = new ArrayList<Prediction>();
@@ -55,31 +69,19 @@ class InstanceLearner extends Learner {
} }
} }
double sum = 0; // double sum = 0;
for (String name : label2score.keySet()) { for (String name : label2score.keySet()) {
double score = label2score.get(name); double score = label2score.get(name);
sum += score; // sum += score;
predictions.add(new Prediction(name, score)); predictions.add(new Prediction(name, score));
} }
// normalize // normalize
for (Prediction prediction : predictions) { // for (Prediction prediction : predictions) {
prediction.score /= sum; // prediction.score /= sum;
} // }
Collections.sort(predictions, new Comparator<Prediction>() { Collections.sort(predictions, sComparator);
public int compare(Prediction object1, Prediction object2) {
double score1 = object1.score;
double score2 = object2.score;
if (score1 > score2) {
return -1;
} else if (score1 < score2) {
return 1;
} else {
return 0;
}
}
});
return predictions; return predictions;
} }

View File

@@ -16,8 +16,6 @@
package android.widget; package android.widget;
import java.util.Map;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:toYDelta="0"
android:duration="@android:integer/config_longAnimTime" />

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 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.
-->
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0"
android:toYDelta="100%p"
android:duration="@android:integer/config_longAnimTime" />

View File

@@ -124,6 +124,12 @@
<item name="windowExitAnimation">@anim/shrink_fade_out_from_bottom</item> <item name="windowExitAnimation">@anim/shrink_fade_out_from_bottom</item>
</style> </style>
<!-- {@hide} -->
<style name="Animation.SlidingCard">
<item name="windowEnterAnimation">@anim/slide_in_up</item>
<item name="windowExitAnimation">@anim/slide_out_down</item>
</style>
<!-- Window animations that are applied to input method overlay windows. <!-- Window animations that are applied to input method overlay windows.
{@hide Pending API council approval} --> {@hide Pending API council approval} -->
<style name="Animation.InputMethod"> <style name="Animation.InputMethod">