Merge "fm: Handle seek event properly"
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index 2b45049..523bb1c 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -410,7 +410,11 @@
            displayValues[i] = String.valueOf((min + i * step) / 1000.0f);
        }
        mPicker.setDisplayedValues(displayValues, true);
-       mPicker.setWrapSelectorWheel(true);
+       try {
+           mPicker.setWrapSelectorWheel(true);
+       } catch (IllegalStateException e) {
+           e.printStackTrace();
+       }
        mPicker.invalidate();
    }
    protected int valueToFrequency(int value) {
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index ad0458b..ddb556a 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -685,7 +685,7 @@
          // an in-progress call ends, so don't stop the service now.
          return true;
       }
-      gotoIdleState();
+      stopSelf(mServiceStartId);
       return true;
    }
 
diff --git a/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
index 8a89a85..ac886bb 100644
--- a/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
+++ b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
@@ -1487,6 +1487,7 @@
         int[] selectorIndices = mSelectorIndices;
         for (int i = 0; i < selectorIndices.length; i++) {
             int selectorIndex = selectorIndices[i];
+            float fNumber = 0;
             String scrollSelectorValue = mSelectorIndexToStringCache
                     .get(selectorIndex);
                 if(i - mSelectorMiddleItemIndex > 0 ){
@@ -1499,7 +1500,11 @@
                     mSelectorWheelPaint.setColor(Color.RED);
                     mSelectorWheelPaint.setAlpha(SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE);
                 }
-                float fNumber = Float.valueOf(scrollSelectorValue).floatValue();
+                try {
+                    fNumber = Float.valueOf(scrollSelectorValue).floatValue();
+                } catch(NumberFormatException e) {
+                    e.printStackTrace();
+                }
 
                 boolean bShowNumber = false;
                 float fWidthOfScale = mScaleWidth ;
diff --git a/jni/android_hardware_fm.cpp b/jni/android_hardware_fm.cpp
index 7068b83..4dcb51a 100644
--- a/jni/android_hardware_fm.cpp
+++ b/jni/android_hardware_fm.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2012, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2009-2013, The Linux Foundation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -415,7 +415,7 @@
 {
     char value[PROPERTY_VALUE_MAX] = {'\0'};
     int init_success = 0,i;
-    char notch[20] = {0x00};
+    char notch[PROPERTY_VALUE_MAX] = {0x00};
     struct v4l2_control control;
     int err;
     /*Enable/Disable the WAN avoidance*/