From 56262fbb457c9277727a36541c1ab54c32a76d68 Mon Sep 17 00:00:00 2001
From: Venkateshwarlu Domakonda <Venkateshwarlu@codeaurora.org>
Date: Wed, 24 Jul 2013 19:56:59 +0530
Subject: [PATCH] fm: Move FM2 APP source tree to vendor project

- FM2 APP source moved from packages/apps to vendor/qcom-opensource/
  repository.
- Remove intent mechanism to receive meta data.
- Use remote service connection mechanism to receive meta data.

Change-Id: I74ba25b259ff93097db88644f4be9e5bae20131a
---
 Android.mk                                    |    2 +
 fmapp2/Android.mk                             |   25 +
 fmapp2/AndroidManifest.xml                    |  148 +
 fmapp2/fmtransmitter.xml                      |  223 ++
 fmapp2/res/anim/preset_select.xml             |   38 +
 fmapp2/res/drawable-hdpi/bg.png               |  Bin 0 -> 103618 bytes
 fmapp2/res/drawable-hdpi/bg_landscape.png     |  Bin 0 -> 71074 bytes
 .../drawable-hdpi/btn_arrow_left_default.png  |  Bin 0 -> 3951 bytes
 .../drawable-hdpi/btn_arrow_left_press.png    |  Bin 0 -> 4065 bytes
 .../drawable-hdpi/btn_arrow_left_selected.png |  Bin 0 -> 3881 bytes
 .../drawable-hdpi/btn_arrow_right_default.png |  Bin 0 -> 3955 bytes
 .../drawable-hdpi/btn_arrow_right_press.png   |  Bin 0 -> 4055 bytes
 .../btn_arrow_right_selected.png              |  Bin 0 -> 3843 bytes
 .../btn_strip_trans_left_normal.9.png         |  Bin 0 -> 588 bytes
 .../btn_strip_trans_left_pressed.9.png        |  Bin 0 -> 593 bytes
 .../btn_strip_trans_left_selected.9.png       |  Bin 0 -> 610 bytes
 .../btn_strip_trans_middle_normal.9.png       |  Bin 0 -> 708 bytes
 .../btn_strip_trans_middle_pressed.9.png      |  Bin 0 -> 715 bytes
 .../btn_strip_trans_middle_selected.9.png     |  Bin 0 -> 762 bytes
 .../btn_strip_trans_right_normal.9.png        |  Bin 0 -> 576 bytes
 .../btn_strip_trans_right_pressed.9.png       |  Bin 0 -> 587 bytes
 .../btn_strip_trans_right_selected.9.png      |  Bin 0 -> 614 bytes
 fmapp2/res/drawable-hdpi/count_down.png       |  Bin 0 -> 3152 bytes
 .../drawable-hdpi/ic_btn_earphone_default.png |  Bin 0 -> 4612 bytes
 .../drawable-hdpi/ic_btn_earphone_diable.png  |  Bin 0 -> 4589 bytes
 .../drawable-hdpi/ic_btn_earphone_select.png  |  Bin 0 -> 4651 bytes
 .../drawable-hdpi/ic_btn_onoff_default.png    |  Bin 0 -> 5218 bytes
 .../drawable-hdpi/ic_btn_onoff_disable.png    |  Bin 0 -> 5184 bytes
 .../res/drawable-hdpi/ic_btn_onoff_press.png  |  Bin 0 -> 5289 bytes
 fmapp2/res/drawable-hdpi/ic_btn_spaker.png    |  Bin 0 -> 5699 bytes
 .../drawable-hdpi/ic_btn_spaker_select.png    |  Bin 0 -> 5798 bytes
 .../res/drawable-hdpi/ic_launcher_fmradio.png |  Bin 0 -> 7052 bytes
 fmapp2/res/drawable-hdpi/recorder_start.png   |  Bin 0 -> 4791 bytes
 fmapp2/res/drawable-hdpi/recorder_stop.png    |  Bin 0 -> 4930 bytes
 fmapp2/res/drawable-hdpi/stat_notify_fm.png   |  Bin 0 -> 3328 bytes
 fmapp2/res/drawable-mdpi/bg.png               |  Bin 0 -> 103618 bytes
 fmapp2/res/drawable-mdpi/bg_landscape.png     |  Bin 0 -> 71074 bytes
 .../drawable-mdpi/btn_arrow_left_default.png  |  Bin 0 -> 3743 bytes
 .../drawable-mdpi/btn_arrow_left_press.png    |  Bin 0 -> 3824 bytes
 .../drawable-mdpi/btn_arrow_left_selected.png |  Bin 0 -> 3676 bytes
 .../drawable-mdpi/btn_arrow_right_default.png |  Bin 0 -> 3760 bytes
 .../drawable-mdpi/btn_arrow_right_press.png   |  Bin 0 -> 3847 bytes
 .../btn_arrow_right_selected.png              |  Bin 0 -> 3678 bytes
 .../btn_strip_trans_left_normal.9.png         |  Bin 0 -> 519 bytes
 .../btn_strip_trans_left_pressed.9.png        |  Bin 0 -> 491 bytes
 .../btn_strip_trans_left_selected.9.png       |  Bin 0 -> 511 bytes
 .../btn_strip_trans_middle_normal.9.png       |  Bin 0 -> 604 bytes
 .../btn_strip_trans_middle_pressed.9.png      |  Bin 0 -> 581 bytes
 .../btn_strip_trans_middle_selected.9.png     |  Bin 0 -> 616 bytes
 .../btn_strip_trans_right_normal.9.png        |  Bin 0 -> 483 bytes
 .../btn_strip_trans_right_pressed.9.png       |  Bin 0 -> 488 bytes
 .../btn_strip_trans_right_selected.9.png      |  Bin 0 -> 515 bytes
 .../drawable-mdpi/ic_btn_earphone_default.png |  Bin 0 -> 4317 bytes
 .../drawable-mdpi/ic_btn_earphone_diable.png  |  Bin 0 -> 4220 bytes
 .../drawable-mdpi/ic_btn_earphone_select.png  |  Bin 0 -> 4254 bytes
 .../drawable-mdpi/ic_btn_onoff_default.png    |  Bin 0 -> 4775 bytes
 .../drawable-mdpi/ic_btn_onoff_disable.png    |  Bin 0 -> 4663 bytes
 .../res/drawable-mdpi/ic_btn_onoff_press.png  |  Bin 0 -> 4696 bytes
 fmapp2/res/drawable-mdpi/ic_btn_spaker.png    |  Bin 0 -> 4879 bytes
 .../drawable-mdpi/ic_btn_spaker_select.png    |  Bin 0 -> 4809 bytes
 .../res/drawable-mdpi/ic_launcher_fmradio.png |  Bin 0 -> 5782 bytes
 .../res/drawable-mdpi/recorder_selected.png   |  Bin 0 -> 4016 bytes
 fmapp2/res/drawable-mdpi/recorder_start.png   |  Bin 0 -> 4791 bytes
 fmapp2/res/drawable-mdpi/recorder_stop.png    |  Bin 0 -> 4930 bytes
 fmapp2/res/drawable-mdpi/stat_notify_fm.png   |  Bin 0 -> 3136 bytes
 fmapp2/res/drawable/album_border_large.1.png  |  Bin 0 -> 1349 bytes
 fmapp2/res/drawable/alert_dialog_icon.png     |  Bin 0 -> 3645 bytes
 fmapp2/res/drawable/application_border.xml    |   33 +
 fmapp2/res/drawable/bg.png                    |  Bin 0 -> 103618 bytes
 fmapp2/res/drawable/bg_landscape.png          |  Bin 0 -> 71074 bytes
 fmapp2/res/drawable/btn_arrow_left.xml        |   40 +
 .../res/drawable/btn_arrow_left_default.png   |  Bin 0 -> 1203 bytes
 fmapp2/res/drawable/btn_arrow_left_press.png  |  Bin 0 -> 1545 bytes
 .../res/drawable/btn_arrow_left_selected.png  |  Bin 0 -> 1581 bytes
 fmapp2/res/drawable/btn_arrow_right.xml       |   41 +
 .../res/drawable/btn_arrow_right_default.png  |  Bin 0 -> 1228 bytes
 fmapp2/res/drawable/btn_arrow_right_press.png |  Bin 0 -> 1634 bytes
 .../res/drawable/btn_arrow_right_selected.png |  Bin 0 -> 1663 bytes
 fmapp2/res/drawable/btn_earphone.xml          |   39 +
 fmapp2/res/drawable/btn_onoff.xml             |   39 +
 fmapp2/res/drawable/btn_recorder.xml          |   39 +
 fmapp2/res/drawable/btn_speaker.xml           |   37 +
 fmapp2/res/drawable/btn_strip_trans_left.xml  |   43 +
 .../btn_strip_trans_left_normal.9.png         |  Bin 0 -> 588 bytes
 .../btn_strip_trans_left_pressed.9.png        |  Bin 0 -> 593 bytes
 .../btn_strip_trans_left_selected.9.png       |  Bin 0 -> 610 bytes
 .../res/drawable/btn_strip_trans_middle.xml   |   43 +
 .../btn_strip_trans_middle_normal.9.png       |  Bin 0 -> 708 bytes
 .../btn_strip_trans_middle_pressed.9.png      |  Bin 0 -> 715 bytes
 .../btn_strip_trans_middle_selected.9.png     |  Bin 0 -> 762 bytes
 fmapp2/res/drawable/btn_strip_trans_right.xml |   43 +
 .../btn_strip_trans_right_normal.9.png        |  Bin 0 -> 576 bytes
 .../btn_strip_trans_right_pressed.9.png       |  Bin 0 -> 587 bytes
 .../btn_strip_trans_right_selected.9.png      |  Bin 0 -> 614 bytes
 .../res/drawable/ic_btn_earphone_default.png  |  Bin 0 -> 4612 bytes
 .../res/drawable/ic_btn_earphone_diable.png   |  Bin 0 -> 4589 bytes
 .../res/drawable/ic_btn_earphone_select.png   |  Bin 0 -> 4651 bytes
 fmapp2/res/drawable/ic_btn_forward.png        |  Bin 0 -> 1228 bytes
 fmapp2/res/drawable/ic_btn_forward_dis.png    |  Bin 0 -> 1182 bytes
 fmapp2/res/drawable/ic_btn_onoff.png          |  Bin 0 -> 1709 bytes
 fmapp2/res/drawable/ic_btn_onoff_default.png  |  Bin 0 -> 5218 bytes
 fmapp2/res/drawable/ic_btn_onoff_disable.png  |  Bin 0 -> 5184 bytes
 fmapp2/res/drawable/ic_btn_onoff_press.png    |  Bin 0 -> 5289 bytes
 fmapp2/res/drawable/ic_btn_preset.png         |  Bin 0 -> 807 bytes
 fmapp2/res/drawable/ic_btn_search.png         |  Bin 0 -> 1747 bytes
 fmapp2/res/drawable/ic_btn_search_stop.png    |  Bin 0 -> 2290 bytes
 fmapp2/res/drawable/ic_btn_spaker.png         |  Bin 0 -> 5699 bytes
 fmapp2/res/drawable/ic_btn_spaker_select.png  |  Bin 0 -> 5798 bytes
 fmapp2/res/drawable/ic_launcher_fm_tx.png     |  Bin 0 -> 3612 bytes
 fmapp2/res/drawable/ic_launcher_fmradio.png   |  Bin 0 -> 1289 bytes
 fmapp2/res/drawable/ic_menu_record.png        |  Bin 0 -> 798 bytes
 fmapp2/res/drawable/ic_signal_2.png           |  Bin 0 -> 1358 bytes
 fmapp2/res/drawable/ic_silent_mode.png        |  Bin 0 -> 1362 bytes
 fmapp2/res/drawable/ic_silent_mode_off.png    |  Bin 0 -> 1555 bytes
 fmapp2/res/drawable/ic_status_fm_tx.png       |  Bin 0 -> 802 bytes
 fmapp2/res/drawable/ic_stereo.png             |  Bin 0 -> 742 bytes
 fmapp2/res/drawable/icon.png                  |  Bin 0 -> 3180 bytes
 .../res/drawable/image_border_bg_normal.9.png |  Bin 0 -> 3423 bytes
 fmapp2/res/drawable/preset_page_button.xml    |   35 +
 fmapp2/res/drawable/recorder_selected.png     |  Bin 0 -> 4239 bytes
 fmapp2/res/drawable/recorder_start.png        |  Bin 0 -> 4006 bytes
 fmapp2/res/drawable/recorder_stop.png         |  Bin 0 -> 4172 bytes
 fmapp2/res/drawable/stat_notify_fm.png        |  Bin 0 -> 350 bytes
 fmapp2/res/drawable/station_border.xml        |   33 +
 fmapp2/res/layout-800x480/fmradio.xml         |  202 ++
 fmapp2/res/layout-800x480/fmtags.xml          |   40 +
 fmapp2/res/layout-800x480/fmtransmitter.xml   |  220 ++
 fmapp2/res/layout-800x480/navigate.xml        |  188 +
 fmapp2/res/layout-800x480/station_info.xml    |  185 +
 .../layout-land-finger-800x480/fmradio.xml    |  199 ++
 .../fmtransmitter.xml                         |  222 ++
 .../layout-land-finger-800x480/navigate.xml   |  128 +
 .../station_info.xml                          |  174 +
 fmapp2/res/layout-land-finger/fmradio.xml     |  190 ++
 .../res/layout-land-finger/fmtransmitter.xml  |  223 ++
 fmapp2/res/layout-land-finger/navigate.xml    |  128 +
 .../res/layout-land-finger/station_info.xml   |  172 +
 fmapp2/res/layout/alert_dialog_list.xml       |   39 +
 fmapp2/res/layout/alert_dialog_text_entry.xml |   50 +
 fmapp2/res/layout/delete_dialog.xml           |   67 +
 fmapp2/res/layout/fmradio.xml                 |  202 ++
 fmapp2/res/layout/fmstats.xml                 |  107 +
 fmapp2/res/layout/fmtags.xml                  |   40 +
 fmapp2/res/layout/fmtransmitter.xml           |  223 ++
 fmapp2/res/layout/frequency_picker.xml        |   46 +
 fmapp2/res/layout/frequency_picker_dialog.xml |   27 +
 fmapp2/res/layout/navigate.xml                |  158 +
 fmapp2/res/layout/rename_dialog.xml           |   67 +
 fmapp2/res/layout/station_info.xml            |  192 ++
 fmapp2/res/layout/station_list.xml            |   43 +
 fmapp2/res/layout/station_list_item.xml       |   76 +
 fmapp2/res/layout/statusbar.xml               |   56 +
 fmapp2/res/values-zh-rCN/arrays.xml           |  203 ++
 fmapp2/res/values-zh-rCN/strings.xml          |  119 +
 fmapp2/res/values-zh-rTW/strings.xml          |  101 +
 fmapp2/res/values/arrays.xml                  |  354 ++
 fmapp2/res/values/strings.xml                 |  235 ++
 fmapp2/res/values/styles.xml                  |   61 +
 fmapp2/src/com/caf/fmradio/FMAdapterApp.java  |   64 +
 .../fmradio/FMMediaButtonIntentReceiver.java  |   71 +
 fmapp2/src/com/caf/fmradio/FMRadio.java       | 3037 +++++++++++++++++
 .../src/com/caf/fmradio/FMRadioService.java   | 3009 ++++++++++++++++
 fmapp2/src/com/caf/fmradio/FMStats.java       | 1346 ++++++++
 .../caf/fmradio/FMTransmitterActivity.java    | 1563 +++++++++
 .../fmradio/FMTransmitterConfigReceiver.java  |   81 +
 .../com/caf/fmradio/FMTransmitterService.java | 1221 +++++++
 .../com/caf/fmradio/FmSharedPreferences.java  | 1114 ++++++
 fmapp2/src/com/caf/fmradio/FmTags.java        |   99 +
 .../caf/fmradio/HorizontalNumberPicker.java   | 2223 ++++++++++++
 .../src/com/caf/fmradio/IFMRadioService.aidl  |   57 +
 .../caf/fmradio/IFMRadioServiceCallbacks.aidl |   48 +
 .../caf/fmradio/IFMTransmitterService.aidl    |   23 +
 .../IFMTransmitterServiceCallbacks.aidl       |   42 +
 fmapp2/src/com/caf/fmradio/PresetList.java    |  323 ++
 fmapp2/src/com/caf/fmradio/PresetStation.java |  951 ++++++
 fmapp2/src/com/caf/fmradio/Settings.java      |  397 +++
 .../com/caf/fmradio/StationListActivity.java  |  341 ++
 .../com/caf/hc_utils/A2dpDeviceStatus.java    |  105 +
 .../src/com/caf/hc_utils/FrequencyPicker.java |  429 +++
 .../caf/hc_utils/FrequencyPickerDialog.java   |  186 +
 .../src/com/caf/utils/A2dpDeviceStatus.java   |   88 +
 fmapp2/src/com/caf/utils/FrequencyPicker.java |  407 +++
 .../com/caf/utils/FrequencyPickerDialog.java  |  159 +
 183 files changed, 23022 insertions(+)
 create mode 100644 fmapp2/Android.mk
 create mode 100644 fmapp2/AndroidManifest.xml
 create mode 100644 fmapp2/fmtransmitter.xml
 create mode 100644 fmapp2/res/anim/preset_select.xml
 create mode 100644 fmapp2/res/drawable-hdpi/bg.png
 create mode 100644 fmapp2/res/drawable-hdpi/bg_landscape.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_left_default.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_left_press.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_left_selected.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_right_default.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_right_press.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_arrow_right_selected.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_left_normal.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_left_selected.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_right_normal.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/btn_strip_trans_right_selected.9.png
 create mode 100644 fmapp2/res/drawable-hdpi/count_down.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_earphone_default.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_earphone_diable.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_earphone_select.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_onoff_default.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_onoff_disable.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_onoff_press.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_spaker.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_btn_spaker_select.png
 create mode 100644 fmapp2/res/drawable-hdpi/ic_launcher_fmradio.png
 create mode 100644 fmapp2/res/drawable-hdpi/recorder_start.png
 create mode 100644 fmapp2/res/drawable-hdpi/recorder_stop.png
 create mode 100644 fmapp2/res/drawable-hdpi/stat_notify_fm.png
 create mode 100644 fmapp2/res/drawable-mdpi/bg.png
 create mode 100644 fmapp2/res/drawable-mdpi/bg_landscape.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_left_default.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_left_press.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_left_selected.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_right_default.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_right_press.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_arrow_right_selected.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_left_normal.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_left_selected.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_right_normal.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/btn_strip_trans_right_selected.9.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_earphone_default.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_earphone_diable.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_earphone_select.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_onoff_default.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_onoff_disable.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_onoff_press.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_spaker.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_btn_spaker_select.png
 create mode 100644 fmapp2/res/drawable-mdpi/ic_launcher_fmradio.png
 create mode 100644 fmapp2/res/drawable-mdpi/recorder_selected.png
 create mode 100644 fmapp2/res/drawable-mdpi/recorder_start.png
 create mode 100644 fmapp2/res/drawable-mdpi/recorder_stop.png
 create mode 100644 fmapp2/res/drawable-mdpi/stat_notify_fm.png
 create mode 100644 fmapp2/res/drawable/album_border_large.1.png
 create mode 100644 fmapp2/res/drawable/alert_dialog_icon.png
 create mode 100644 fmapp2/res/drawable/application_border.xml
 create mode 100644 fmapp2/res/drawable/bg.png
 create mode 100644 fmapp2/res/drawable/bg_landscape.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_left.xml
 create mode 100644 fmapp2/res/drawable/btn_arrow_left_default.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_left_press.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_left_selected.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_right.xml
 create mode 100644 fmapp2/res/drawable/btn_arrow_right_default.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_right_press.png
 create mode 100644 fmapp2/res/drawable/btn_arrow_right_selected.png
 create mode 100644 fmapp2/res/drawable/btn_earphone.xml
 create mode 100644 fmapp2/res/drawable/btn_onoff.xml
 create mode 100644 fmapp2/res/drawable/btn_recorder.xml
 create mode 100644 fmapp2/res/drawable/btn_speaker.xml
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_left.xml
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_left_normal.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_left_pressed.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_left_selected.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_middle.xml
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_middle_normal.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_middle_pressed.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_middle_selected.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_right.xml
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_right_normal.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_right_pressed.9.png
 create mode 100644 fmapp2/res/drawable/btn_strip_trans_right_selected.9.png
 create mode 100644 fmapp2/res/drawable/ic_btn_earphone_default.png
 create mode 100644 fmapp2/res/drawable/ic_btn_earphone_diable.png
 create mode 100644 fmapp2/res/drawable/ic_btn_earphone_select.png
 create mode 100644 fmapp2/res/drawable/ic_btn_forward.png
 create mode 100644 fmapp2/res/drawable/ic_btn_forward_dis.png
 create mode 100644 fmapp2/res/drawable/ic_btn_onoff.png
 create mode 100644 fmapp2/res/drawable/ic_btn_onoff_default.png
 create mode 100644 fmapp2/res/drawable/ic_btn_onoff_disable.png
 create mode 100644 fmapp2/res/drawable/ic_btn_onoff_press.png
 create mode 100644 fmapp2/res/drawable/ic_btn_preset.png
 create mode 100644 fmapp2/res/drawable/ic_btn_search.png
 create mode 100644 fmapp2/res/drawable/ic_btn_search_stop.png
 create mode 100644 fmapp2/res/drawable/ic_btn_spaker.png
 create mode 100644 fmapp2/res/drawable/ic_btn_spaker_select.png
 create mode 100644 fmapp2/res/drawable/ic_launcher_fm_tx.png
 create mode 100644 fmapp2/res/drawable/ic_launcher_fmradio.png
 create mode 100644 fmapp2/res/drawable/ic_menu_record.png
 create mode 100644 fmapp2/res/drawable/ic_signal_2.png
 create mode 100644 fmapp2/res/drawable/ic_silent_mode.png
 create mode 100644 fmapp2/res/drawable/ic_silent_mode_off.png
 create mode 100644 fmapp2/res/drawable/ic_status_fm_tx.png
 create mode 100644 fmapp2/res/drawable/ic_stereo.png
 create mode 100644 fmapp2/res/drawable/icon.png
 create mode 100644 fmapp2/res/drawable/image_border_bg_normal.9.png
 create mode 100644 fmapp2/res/drawable/preset_page_button.xml
 create mode 100644 fmapp2/res/drawable/recorder_selected.png
 create mode 100644 fmapp2/res/drawable/recorder_start.png
 create mode 100644 fmapp2/res/drawable/recorder_stop.png
 create mode 100644 fmapp2/res/drawable/stat_notify_fm.png
 create mode 100644 fmapp2/res/drawable/station_border.xml
 create mode 100644 fmapp2/res/layout-800x480/fmradio.xml
 create mode 100644 fmapp2/res/layout-800x480/fmtags.xml
 create mode 100644 fmapp2/res/layout-800x480/fmtransmitter.xml
 create mode 100644 fmapp2/res/layout-800x480/navigate.xml
 create mode 100644 fmapp2/res/layout-800x480/station_info.xml
 create mode 100644 fmapp2/res/layout-land-finger-800x480/fmradio.xml
 create mode 100644 fmapp2/res/layout-land-finger-800x480/fmtransmitter.xml
 create mode 100644 fmapp2/res/layout-land-finger-800x480/navigate.xml
 create mode 100644 fmapp2/res/layout-land-finger-800x480/station_info.xml
 create mode 100644 fmapp2/res/layout-land-finger/fmradio.xml
 create mode 100644 fmapp2/res/layout-land-finger/fmtransmitter.xml
 create mode 100644 fmapp2/res/layout-land-finger/navigate.xml
 create mode 100644 fmapp2/res/layout-land-finger/station_info.xml
 create mode 100644 fmapp2/res/layout/alert_dialog_list.xml
 create mode 100644 fmapp2/res/layout/alert_dialog_text_entry.xml
 create mode 100644 fmapp2/res/layout/delete_dialog.xml
 create mode 100644 fmapp2/res/layout/fmradio.xml
 create mode 100644 fmapp2/res/layout/fmstats.xml
 create mode 100644 fmapp2/res/layout/fmtags.xml
 create mode 100644 fmapp2/res/layout/fmtransmitter.xml
 create mode 100644 fmapp2/res/layout/frequency_picker.xml
 create mode 100644 fmapp2/res/layout/frequency_picker_dialog.xml
 create mode 100644 fmapp2/res/layout/navigate.xml
 create mode 100644 fmapp2/res/layout/rename_dialog.xml
 create mode 100644 fmapp2/res/layout/station_info.xml
 create mode 100644 fmapp2/res/layout/station_list.xml
 create mode 100644 fmapp2/res/layout/station_list_item.xml
 create mode 100644 fmapp2/res/layout/statusbar.xml
 create mode 100644 fmapp2/res/values-zh-rCN/arrays.xml
 create mode 100644 fmapp2/res/values-zh-rCN/strings.xml
 create mode 100644 fmapp2/res/values-zh-rTW/strings.xml
 create mode 100644 fmapp2/res/values/arrays.xml
 create mode 100644 fmapp2/res/values/strings.xml
 create mode 100644 fmapp2/res/values/styles.xml
 create mode 100644 fmapp2/src/com/caf/fmradio/FMAdapterApp.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMMediaButtonIntentReceiver.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMRadio.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMRadioService.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMStats.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMTransmitterConfigReceiver.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FMTransmitterService.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
 create mode 100644 fmapp2/src/com/caf/fmradio/FmTags.java
 create mode 100644 fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
 create mode 100644 fmapp2/src/com/caf/fmradio/IFMRadioService.aidl
 create mode 100644 fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
 create mode 100644 fmapp2/src/com/caf/fmradio/IFMTransmitterService.aidl
 create mode 100644 fmapp2/src/com/caf/fmradio/IFMTransmitterServiceCallbacks.aidl
 create mode 100644 fmapp2/src/com/caf/fmradio/PresetList.java
 create mode 100644 fmapp2/src/com/caf/fmradio/PresetStation.java
 create mode 100644 fmapp2/src/com/caf/fmradio/Settings.java
 create mode 100644 fmapp2/src/com/caf/fmradio/StationListActivity.java
 create mode 100644 fmapp2/src/com/caf/hc_utils/A2dpDeviceStatus.java
 create mode 100644 fmapp2/src/com/caf/hc_utils/FrequencyPicker.java
 create mode 100644 fmapp2/src/com/caf/hc_utils/FrequencyPickerDialog.java
 create mode 100644 fmapp2/src/com/caf/utils/A2dpDeviceStatus.java
 create mode 100644 fmapp2/src/com/caf/utils/FrequencyPicker.java
 create mode 100644 fmapp2/src/com/caf/utils/FrequencyPickerDialog.java

diff --git a/Android.mk b/Android.mk
index 53064ac..7ba73d6 100644
--- a/Android.mk
+++ b/Android.mk
@@ -15,4 +15,6 @@ include $(BUILD_JAVA_LIBRARY)
 include $(LOCAL_PATH)/jni/Android.mk
 LOCAL_PATH := $(LOCAL_DIR_PATH)
 include $(LOCAL_PATH)/fmapp/Android.mk
+LOCAL_PATH := $(LOCAL_DIR_PATH)
+include $(LOCAL_PATH)/fmapp2/Android.mk
 endif # is-vendor-board-platform
diff --git a/fmapp2/Android.mk b/fmapp2/Android.mk
new file mode 100644
index 0000000..3985572
--- /dev/null
+++ b/fmapp2/Android.mk
@@ -0,0 +1,25 @@
+ifeq ($(BOARD_HAVE_QCOM_FM),true)
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src/com/caf/fmradio) \
+	src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl \
+	src/com/caf/fmradio/IFMRadioService.aidl \
+	src/com/caf/fmradio/IFMTransmitterServiceCallbacks.aidl \
+	src/com/caf/fmradio/IFMTransmitterService.aidl \
+
+
+ifeq ($(call is-android-codename-in-list,JELLY_BEAN ICECREAM_SANDWICH HONEYCOMB),true)
+LOCAL_SRC_FILES +=  $(call all-java-files-under, src/com/caf/hc_utils)
+else
+LOCAL_SRC_FILES +=  $(call all-java-files-under, src/com/caf/utils)
+endif
+LOCAL_PACKAGE_NAME := FM2
+LOCAL_CERTIFICATE := platform
+LOCAL_JNI_SHARED_LIBRARIES := libqcomfm_jni
+LOCAL_JAVA_LIBRARIES := qcom.fmradio
+
+include $(BUILD_PACKAGE)
+
+endif
diff --git a/fmapp2/AndroidManifest.xml b/fmapp2/AndroidManifest.xml
new file mode 100644
index 0000000..4cef8c0
--- /dev/null
+++ b/fmapp2/AndroidManifest.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.caf.fmradio"
+    android:sharedUserId="android.uid.system" >
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+
+    <application
+        android:icon="@drawable/ic_launcher_fmradio"
+        android:label="@string/app_name"
+        android:name=".FMAdapterApp">
+        <activity android:icon="@drawable/ic_launcher_fmradio"
+            android:name=".FMRadio"
+            android:label="@string/app_name"
+            android:clearTaskOnLaunch="true"
+            android:taskAffinity=""
+            android:launchMode="singleTop"
+            android:excludeFromRecents="true" >
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="com.caf.fmradio.FMRADIO_ACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+        </activity>
+
+        <receiver android:name="com.caf.fmradio.FMMediaButtonIntentReceiver">
+            <intent-filter>
+                 <action android:name="android.intent.action.MEDIA_BUTTON" />
+            </intent-filter>
+        </receiver>
+
+        <activity android:name=".Settings"
+            android:label="@string/settings_menu">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+
+        </activity>
+
+        <activity android:icon="@drawable/ic_launcher_fm_tx"
+            android:name=".FMTransmitterActivity"
+            android:label="@string/tx_app_name"
+            android:clearTaskOnLaunch="true"
+            android:taskAffinity=""
+            android:excludeFromRecents="true">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+
+            <intent-filter>
+                <action android:name="com.caf.fmradio.FMTRANSMITTER_ACTIVITY" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+
+        </activity>
+
+        <receiver android:name="FMTransmitterConfigReceiver">
+
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+            </intent-filter>
+
+        </receiver>
+
+        <service android:name=".FMTransmitterService"
+            android:exported="true" />
+
+        <activity android:name=".FMStats"
+            android:label="@string/test_menu">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+
+        </activity>
+
+        <activity android:name=".FmTags"
+            android:label="@string/rt_plus_tags">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+
+        </activity>
+
+       <activity android:name=".StationListActivity"
+            android:label="@string/app_label_all_channels"
+            android:configChanges="orientation|keyboardHidden|screenSize|fontScale">
+
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+
+       </activity>
+
+       <service android:name=".FMRadioService"
+            android:exported="true" />
+
+    </application>
+
+</manifest>
diff --git a/fmapp2/fmtransmitter.xml b/fmapp2/fmtransmitter.xml
new file mode 100644
index 0000000..5e65620
--- /dev/null
+++ b/fmapp2/fmtransmitter.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+	android:orientation="vertical"
+	android:layout_width="fill_parent"
+	android:layout_height="fill_parent">
+
+	<!--
+		This LinearLayout contains Station Information display and the
+		function buttons
+	-->
+	<LinearLayout android:layout_width="fill_parent"
+		android:layout_height="wrap_content"
+		android:layout_weight="1"
+		android:orientation="horizontal">
+
+		<LinearLayout android:background="@drawable/station_border"
+			android:layout_width="fill_parent"
+			android:layout_height="wrap_content"
+			android:layout_weight="1"
+			android:orientation="vertical"
+			android:gravity="top|fill_vertical">
+
+			<RelativeLayout android:id="@+id/station_layout"
+				android:layout_width="fill_parent"
+				android:layout_height="fill_parent">
+
+				<!-- This included layout contains Station Information to display -->
+				<LinearLayout android:id="@+id/stationinfo_layout"
+					android:layout_width="fill_parent"
+					android:layout_height="wrap_content"
+					android:layout_marginTop="5px"
+					android:layout_marginLeft="5px"
+					android:layout_marginRight="5px"
+					android:orientation="vertical"
+					android:gravity="fill_vertical">
+
+					<LinearLayout android:id="@+id/station_frequency_row"
+						android:layout_width="fill_parent"
+						android:layout_height="wrap_content"
+						android:orientation="vertical"
+						android:paddingTop="25px"
+						android:paddingBottom="25px"
+						android:gravity="fill_vertical|center">
+
+						<TextView android:id="@+id/transmit_msg_tv"
+							android:textAppearance="?android:attr/textAppearanceSmall"
+							android:layout_width="wrap_content"
+							android:layout_height="wrap_content"
+							android:textSize="15px"
+							android:layout_centerHorizontal="true"
+							android:layout_alignWithParentIfMissing="true"
+							android:text="@string/transmit_msg_string" />
+
+						<TextView android:id="@+id/prog_frequency_tv"
+							android:textAppearance="?android:attr/textAppearanceLarge"
+							android:layout_width="wrap_content"
+							android:layout_height="wrap_content"
+							android:layout_centerHorizontal="true"
+							android:layout_alignWithParentIfMissing="true"
+							android:layout_alignParentTop="true"
+							android:layout_alignParentLeft="true"
+							android:textSize="56px"
+							android:text="@string/frequency_string" />
+					</LinearLayout>
+
+					<!-- Station Radio Text information display -->
+					<TextView android:id="@+id/radio_text_tv"
+						android:layout_width="fill_parent"
+						android:layout_height="wrap_content"
+						android:textAppearance="?android:attr/textAppearanceMedium"
+						android:textSize="16sp"
+						android:singleLine="true"
+						android:textStyle="bold"
+						android:paddingBottom="2px"
+						android:paddingLeft="5px"
+						android:paddingRight="5px"
+						android:gravity="center_horizontal"
+						android:text="@string/radio_text_string" />
+					<!-- android:gravity="center_horizontal" -->
+				</LinearLayout>
+
+				<ImageView android:id="@+id/btn_back"
+				    android:clickable="true"
+					android:focusable="true"
+					android:layout_width="wrap_content"
+					android:layout_height="fill_parent"
+					android:paddingLeft="10px"
+					android:paddingRight="2px"
+					android:layout_alignParentLeft="true"
+					android:layout_centerVertical="true"
+					android:visibility="visible"
+					android:src="@drawable/btn_arrow_left" />
+
+				<ImageView android:id="@+id/btn_forward"
+					android:clickable="true"
+					android:focusable="true"
+					android:layout_width="wrap_content"
+					android:layout_height="fill_parent"
+					android:paddingLeft="2px"
+					android:paddingRight="10px"
+					android:layout_alignParentRight="true"
+					android:layout_centerVertical="true"
+					android:visibility="visible"
+					android:src="@drawable/btn_arrow_right" />
+
+			</RelativeLayout>
+		</LinearLayout>
+		<LinearLayout android:layout_width="wrap_content"
+			android:layout_height="wrap_content"
+			android:orientation="vertical"
+			android:layout_gravity="center"
+			android:layout_marginLeft="5px"
+			android:layout_marginRight="5px"
+			android:layout_marginBottom="2px">
+			<!-- On-Off button -->
+			<ImageButton android:id="@+id/btn_onoff"
+				android:layout_width="75px"
+				android:layout_height="75px"
+				android:src="@drawable/ic_btn_onoff"
+				android:layout_marginTop="15px"
+				android:layout_marginBottom="15px" />
+		</LinearLayout>
+
+	</LinearLayout>
+     <View
+        android:layout_width="fill_parent"
+        android:layout_height="1px"
+        android:background="#ffffffff" />
+
+	<!--
+		Layout contains the Next/Previous Presets and Tune buttons and status
+		msg text
+	-->
+     <LinearLayout android:id="@+id/presets_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+    		android:layout_weight="0"
+            android:layout_gravity="center"
+            android:layout_marginTop="15dip"
+            android:layout_marginBottom="10dip"
+            android:gravity="center_horizontal">
+
+         <Button android:id="@+id/presets_button_1"
+         android:text="@string/default_station"
+         android:layout_marginLeft="20dip"
+         android:layout_marginRight="20dip"
+         android:textSize="24sp"
+         android:singleLine="true"
+         android:layout_width="110dip"
+         android:layout_height="65dip" />
+
+         <Button android:id="@+id/presets_button_2"
+             android:text="@string/default_station"
+             android:layout_marginRight="20dip"
+             android:textSize="24sp"
+             android:singleLine="true"
+             android:layout_width="110dip"
+             android:layout_height="65dip" />
+
+         <Button android:id="@+id/presets_button_3"
+         android:text="@string/default_station"
+         android:layout_marginRight="20dip"
+             android:textSize="24sp"
+             android:singleLine="true"
+             android:layout_width="110dip"
+             android:layout_height="65dip" />
+
+         <Button android:id="@+id/presets_button_4"
+             android:text="@string/default_blank"
+             android:layout_marginRight="20dip"
+             android:textSize="24sp"
+             android:singleLine="true"
+             android:layout_width="110dip"
+             android:layout_height="65dip" />
+
+         <Button android:id="@+id/presets_button_5"
+             android:text="@string/default_blank"
+             android:layout_marginRight="20dip"
+             android:textSize="24sp"
+             android:singleLine="true"
+             android:layout_width="110dip"
+             android:layout_height="65dip" />
+
+            <Button android:id="@+id/presets_button_6"
+                android:text="@string/default_blank"
+                android:layout_marginRight="20dip"
+                android:textSize="24sp"
+                android:singleLine="true"
+                android:layout_width="110dip"
+                android:layout_height="65dip"/>
+
+        </LinearLayout>
+
+
+</LinearLayout>
diff --git a/fmapp2/res/anim/preset_select.xml b/fmapp2/res/anim/preset_select.xml
new file mode 100644
index 0000000..8fcf768
--- /dev/null
+++ b/fmapp2/res/anim/preset_select.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<scale xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromXScale="0.75"
+    android:toXScale="1.5"
+    android:fromYScale="0.75"
+    android:toYScale="1.5"
+    android:pivotX="50%"
+    android:pivotY="50%"
+    android:startOffset="0"
+    android:duration="500"
+    android:fillBefore="true" />
diff --git a/fmapp2/res/drawable-hdpi/bg.png b/fmapp2/res/drawable-hdpi/bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd10f0b2837f6a656e9f35695671392de488ea1f
GIT binary patch
literal 103618
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
L{an^LB{Ts57CT<j

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/bg_landscape.png b/fmapp2/res/drawable-hdpi/bg_landscape.png
new file mode 100644
index 0000000000000000000000000000000000000000..83bfb23a078584742cf90aebd78bd6961d9ebbbd
GIT binary patch
literal 71074
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
WNxK<sYRXGNZuWHbb6Mw<&;$UVh8PI|

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_left_default.png b/fmapp2/res/drawable-hdpi/btn_arrow_left_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..857fb7a5647759ecbc34f4213eb6a9a2347c4c48
GIT binary patch
literal 3951
zcmeAS@N?(olHy`uVBq!ia0y~yV6bFhU@+%kV_;y|CiLhl0|NtRfk$L90|U1(2s1Lw
znj^u$z~!Im>>Ln~kzbNuoRMFk;OXqFP*9YgmYI{vz)*2(Zg6@?@Jlh<@Atkqd3Q8S
z@y-tt<xmK6>TVF3sHUaJDd5$ixbUWE;6XuGR~G3L3p$wl`Wkvf19f=1xNfjNQC!s5
zytt$5)bEGYi?gro`Tp$ezpdBpp0D{lck_An0~|clJd6WP8+cYa$q7DaK7Qob!zX$U
zja(`P3<4aRQxuE;Dl;<tsI#%rRyx4GkAbn`GB*dq0pHmN3}o8>^S^SM8N=An!g!!$
zqJ=j{g9w8|RiD!`1_w9BhPgA;f*BUDFeIE#PI}A`pv#b;UjOVeL&Mx3GpiXHqNgZ|
zGA@|Npdg&u;lhw%&9LTtSeGk9gaLy{n)eY)h8wyJ2A<(*9t<0{GaNW4z`coqgNMN&
zu%lIzfu))u;e@hs1w+eB1`)SU;Wi(&*9kn=VqmD4xyfdyilu8~G>2{>dw95>oW?m%
zacvQ^M5e@94tj?wXG$71n(#mPe1?Hx!9-EP2hE@VR-EHockY~7-!{H@-B<hB{wpOV
zJ^uIf{OSS+28M?vbr=8X=x>&4ux4w>{kKT<9ZN<W_kz;z-D#Wn9kwzoczG-Qa{(x9
zTo+E*dGqGeCr@s89dU|IJQZI1Fa1#bf$+aMKkID%eE<4j-y@Yqqu54wmLCreo%!Ok
zROb97&X%M*&-&f}Z0G*}NA|MP5znNZ5n3XT1BD9vTxRurHd?CG=`>06sOqKvDUa^!
z{ARYhZ_2PC%Z{;nqV9^=Wae+)>H-lZ2OfQAVED8<|KJr34(5i8=7;CY|G&5Y>%Ksh
zp&`w4QXvCFoQsNH$f?ct$2k}nToyEHZE%$Sa!^9&0GrG~);kBe|0I~TIH?>t<Rsw4
zmC_(nl%Tn$$w{N_>;_q_1pO-xvL*)tGukE>@aY{2-N9#D!2c_eW8OiHJ&l|!jwd*T
z6BTcDFeY_HDED!Q&usmnc+i7Is9QzhWQRzglJ`VY55u6Y5QR_=*-y4bOqT62Zo4L0
zpI|U*`qQ?@-Ed0dra;>(JX@W2t}vHsaa+WFA*IA{R=?PS*%ykoNZIz7Eqs1qbq4>f
zemm#m1_xe9up1xAG0;19*lDAM4(H_L(;Jo6@T@*2wIOT`^X|^C$>%qgvj{c19^f=%
zDR)vxlymfm@QLud;juzNM#V(%7N<EUb4%bMb*0HGytk<B68w2YBFV_GJ;Fmr`I=C_
zu)aWbhw~A06`@XNBlVpVm^?Qw3ArS6$?Z~Jkn&5Nm9tGeq?9M0yp@u@iQRIFj)L}y
z)+ckH9DZW_MEZ&1r)aLZNe+ceegr?#2s)MJCHYj~smW8e)EP#Op^Ik)-CeOTM9{Q9
z%4zMwZ9(e;+gAvil+Lm|+brhky>#uOsh6cP#52BUu76RoOYrVgIlt)_!Y`eE>HcE+
z3+6B7JiKk9&Br^^H6&+CuuG&%mP@Rk;j>Kga<}C15Ce0=*E62a<e!-z8lkmKt44I<
zDXytrQ`M$QYw3rqT(xY~y;a<ypF>ZF^skHyu3hIAY8?D{CFhlCt3y}K4R{?a9h|<>
zdPV!H^cDFb_Dkv_|8}xP9`-rx@4O^%!N&N<dyXk^CrfUw&{53hUENmNXnI6#<Jp@v
zWm>yu{FU9^ZM$maLQ7|3FXQmdL7%6j*|R^MQTSs{i67^4jpfrn*LB?!d9V3MQ+k<+
z&rZYCnCw;4rcaAl?Xfy=wfpP6X6xQApSx_Y>+Z<kjeL&Bz0_mW-P8NevCe%Sd^7m&
za<1iKzP46h*XgawUMjtCw@dl{yyfp^%-a{&FwZA{`Mt`$&wt6(>i-S-oBM0|S9hKW
zw#_^$Y`1yNN!T1UEzGx()jxjwW1w^FVF%}>iBl7&KWv$}^P<h-t8Tq+{5_e+VjinJ
z&OMfUY_S@fnxdMw?<?PTvx0ngF4J6Q?PKk8{Op;ti_Tt~X*%21@Ve3S+0SQRpM8IO
zLR3YR&bAfXcBFc4dJ?rP^4+#Qd96{FkxL^&qhdF^t)078_1f;WyO#?t-|08mZ}q%u
z>4!Ib+;(!?%I%UHp59=)y>46Xw%Ww>B=Pj^N7o&GH+k>m+FiB1e{I=$+i&u%mW`6F
zE8bEhVijg}Z`Qdv@9b-jewp@CKRx2S!1)`-kGBb*);y9qH+c4C_jK{}oyE<cJGwi)
zn@;OZx6_*~eeCXuy-&PKz81zlth)4d?(EI854~M+d;L4JcbV_n@611AGGB9Eq;c_u
z!zY{{1U|iJ&pm&tLH7MMb^gx&jp<vTE9)ogPYhpseZ%&p<*U9Yz8AOqW>+--vE5@E
z^Ls}3BID1PAJ~3k`)U8f`Sapi?>pBk|4;c}_5UKn@&;ALbmq=R$Hr);-#@Bq6!-Vp
zTis6mw&~_u$DRc{9Yr1co7OfxJ-Aje<HVZ@YZbpgpK)&DxlF#+fVvmgF0dy)OYA;e
z$D`ib-WuL!-&fEPA$8Gkx@q~vJI=-TU4FStbGbJ=-O%51y{?z3mfb47ESp>AyG(Z3
zAJa>VJaaW-ZiHu!w~VEp);hDioPGEIy#3t%XznBK$JOF9^iRYVR4zPs=u7Kzv6Xs4
zI#$yhd^-FrrhIS|&{`qZqxwm>T(ys@@{sJIbS3?ZW*0kdILBzo`F--x@~xWmX5t>x
zN|mF=OLd;^Y*Al1VUG{5&)wNp^TcMADdZa2TJ1G#o-}bnq0=fw-^tt3U!^}wD?7a=
zwRO|Kqj}xi_2s6rpUmDoVGV1fF4s1vWiLXaG_Gs0Z%R)MPuqXC^OWVZ)$_E^zCE+~
z)a?o8bKcMY|5oUb(8EdFmbQ6^>&iwv+q)*qa+6JA<!!FVqO96&VQgz`c64pi%Dw8p
z`fd31b#;5ys(iB>;|`u`I=GcF`!#nc*VES8*LSYJjrEVvkG#J%@mJeiX*<!*u5}`}
z#ixtb-_W>I@l?7!|J44OccyGvx%$Y?l=Eqq(q2Bhr#mm2Z`!Kq&!+R`@!q_(h4+5g
zmbYKOx!%^Fepci5?&fXII~VV_*|8^e`N?x<t?fgWgnSA46=L@8(%r3z*MH<)d?#JK
z=bOo!tGA=~eE(~Aa^LMx#!%m@X;)K!d;Z@1-F{u?s+T{e{mzYD>z7;j_Bit;=D+O9
zeA}+?ymD3cl5I#(|26H`?tI7P_x+puzFe2rj5oA*&ap?z1um6OUVi7i|6PvP>Q-4#
z^_qw5m*vZ3(`EIuoMwHR<u*Hb*6-+~=w1G2>@Hq=b+77=`)zstIVLudm0q7iPG;VE
z*>rhw`ls_fbEnR&t<(E?C*k&@ZPm|{&)v`B&wsy5pyc5t*Z<wmt@l`;i}|#p<kP0x
zPldyGgwI-U6`%X6<dx08$(Q|)@1C=J*1DZB**o7=?cG|P_Wh;wJo9sRzwE92DE9x_
z)p?e-clUm-%Kv`!``7zock7DO|DHR&`)0ZNyS01#_r!m3c<Xr6`EL7F`{;jnZoI!!
zpLL*o!RL#2+`qH6HlP1D@oPW7Gi(3M{?l!|ZLjB9*jZXWvM>7k^3QVT^C{=m=86AX
z^zZaKaWVb6A6H*rKX-A)#f8&9O`p6!w`S?zR|j58uD^Zk&@s7vCo7B%<GzIbetWR|
zPPy#+#rOIBpVTPSYy8jnx$$f8h2_5|OHQ8rpM`nG=Re8Dy0;k^7!;B{f_xbms#F;m
z8k!jxe*R}*Xn4uMP-?)y@G60U!D<ErgLwX=_@izN3@o!eT^vIyZrzy`?V+45a@>E`
zgc}(=5l!D0E$z@yndUa@;*291k5pIii$!U)P7|GWLT_3}s`pdvx{z&dkM6QfYke2|
z@>09gN6n+{v)J`rI^8-=`IS@_Y8=!IJX3l}ocmgAY^hqI8vD7!2hJSG|9AiYocw1z
z`cu6a=XSU#ZCQ8z<jJ4+4V^r=7}6LvB=`JhWP7B$%iLpW(3Vd^3*;E)3A20*Q4yN>
z{J<9H11u`SjRHp8t%u~Tt*saC+9hRXX4bGWfmOxnMfJ*%U%C1D`X^G1j>*X+Pbf*s
z$$68@upulY#OBq@mz787&k4VjwN;2AVcq)m|6`V4X6!$n9CNU`RYqREUO|9ko^-F<
zinVJ~uiVaTT%z$R?D_2+vnliE+h4kSm$$XGb^E?~SH1jvd_FK92n!1{OE8+LU~X={
z_EoA(QBlz+X9k1oSFhS$$S^tZ{IfCJ48apCSFY6mQS;BgYOkI0zta{^zI-te>OQI*
z8yg!C5;CQ5#}?;vXU_PDii`8l@KF=!KDwPP<x`^ppQW{RG&4hgR#w&-tGRlQ|9M+K
zxpU`^dX3%x>Bo+_O*sAZ`=k9^oX(v;Z!g$=)c^LaTML#fX%Q{x$zyv{w%b>2a^$Vs
zw-xpE^_6+;k|%I1{LXkFC^R(nT84>&07t}9g<Ox83&(Bb-iJ^1I;!>GkgZcdN~qH%
ztoh&ptN(^fodTOgMMNTa*qA+3gs%PU7gKS15z9~!6d9R$Eo<wV7xg_(N-et>53C8%
zx_$HAerrdi79FRB7nWUqxnRqdDZvHiO)eafOM_kpczbiF|0z%QXqmvn;CAZt>9fAR
zzH8prmrOM|{j_Ma)50C*|5G37w$x95ZypnTY2VhZs@8UPX2L9tOpOY^6%3EnGdtKj
zy-<<i<6n6-Yl4T$oYp;M51I}C%~Cn(*nXJtV8VoN1<%(tFWBNVui5WN(#Cm9m#TiK
z+UpP);%2mX!t(|Dmj|u<Zf0)&_Vnq~6FgKbmOkm#<~mmK|IYIChXpsB1XwzbCcUfv
z#C5}QlFI(bn3$Huix<E7@I-Wh{gI@N{&W4*f7I*)^Yw#QhHO3lc;ou@>z!@n(sfnV
z>h&A`%g)VRTc4QtP)CL@dWx57a&w5<bRA`Tw;4Xm94D!?&-GJpaa#E1!;`1}lSEt{
z-QAC8m`MH2DJ>P{<Kx?Oc=B{b&90_x+qTWu?D~~ZUHyCJ@yCrWN(XEG_notLTYQn1
zfnS#I_|20iPc}F$WSHo2WUXE0+)3h_w{HEaJxOJMbYvvsB$dtSJLCNJ#`Q10_+q-=
zbZ(|bhH}OGA*!=y&yEie`8x6X>)MUmx3i157H;1aH$7@?885@HKXw1-+<w~@p))Pk
z>)&*#UbU4MGvp?#SiUOSsUX9bK7EpS@Y*nb_r(|6^R`R#@$>JDuUL1gt*tFx#Pwxa
zd3pT1_wSvJX4X8Fxt9C--6R&rKb#D;jSdOtUVnA6kxPGHv~;t5=*kdviO0uPJo~C_
z<ScA$&+_^2J6A37_@Rf&rTv>XGcOG2*nRb@Z>UIej=$PuxB2J4&%Xcuyq&6k!#_rb
v+JgxN7BhYJ9lp~4%|?&EC{OA?A481ny}y&rcNsA-Ffe$!`njxgN@xNAeY{ia

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_left_press.png b/fmapp2/res/drawable-hdpi/btn_arrow_left_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..438e3924cb94b72867dd5678059f5b08438025c6
GIT binary patch
literal 4065
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
UwhV_i3=9kmp00i_>zopr00mXC+5i9m

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_left_selected.png b/fmapp2/res/drawable-hdpi/btn_arrow_left_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..fab8ee482dc189799af5d14eed4d06516a51e228
GIT binary patch
literal 3881
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_right_default.png b/fmapp2/res/drawable-hdpi/btn_arrow_right_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..547e50522ffe8b5b9eb90f7d96f021a54d726dd1
GIT binary patch
literal 3955
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
E02!fXIsgCw

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_right_press.png b/fmapp2/res/drawable-hdpi/btn_arrow_right_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..96eacae5a2d7cb2690a3a8411d6d7c5dacb084e1
GIT binary patch
literal 4055
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
HoD!M<I<%qj

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_arrow_right_selected.png b/fmapp2/res/drawable-hdpi/btn_arrow_right_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..67a86f5af113c2c94abecb74bed8812705f9878e
GIT binary patch
literal 3843
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_left_normal.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_left_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..31b39701fa4a2313217158861425414ca4e5a5aa
GIT binary patch
literal 588
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?J5LwKkcwMx=2{muI|#T)+HuYOkz?1S|8#Z%
zN1pQM_K!}PKVAA<MDN;i25tGes=6xOweif|$*WJFndbWT)Yj`q4;`Au5T5Ym&)1*U
z2iMIP-Lh(xe#oIsI`-xlmSskTTv+$|*VA21*Gm6(b4lH>GrREo^UVcKY}?D+U9A%?
zOfIc{ASY{n!NHcH*-tv-_BLUy7Y01m8TY?$Sn$~5mtYAS+g$St3i>)POnlW{=N{VS
z7`QyZq^8k!+1bxIA`3ni$U6#aR@Gl<IlAjuQmkgz>I@&XA8%EIvgP;gES+x6{BvT|
zHPIJm9b|9pHt9N+6maF|n(jS&bt<NG9r~UzYl6sOjve1Kaw0Uj0!nPT_U|>&cokyH
zHGh}SwX5G2UGA<5xfUwn8OY1SrF?eR99yk`My`+rOrkHW9pd@d25Dq%(i74+JZJS4
z(G?D?P|2k%vGvzk>rbEO>#7OqexJ1{aLPLOiEF)u-Hr*lwREj=pStV2tVBv|>qTGD
z(0-?-d9xm!`!;7K_qrEVjqJQRZi`<O@mtsj9sZs%E%n4T+s0iYtid9ZSAL3|{d^}i
z*1%QNEg;e5@?w)~wKj4af@=i~?>clZYGCF4ne6UrtXWkbu=vHrgjgrn#r+QtbHrRU
p&CvfjdE5VaYdhEH*QNjEG+>y_ZXuooN+S#m44$rjF6*2Ung9@>0uBHG

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_left_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b13559aba9d858f88f5c838a57011fe2b0b5664
GIT binary patch
literal 593
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?XHOT$kcwMx=0^J+4&ZTlJG<eAe0D<M24S-U
zOgC7aoIJiPK6Tnezd-AwbnDEWp;!O8x~IQ+ZI<~;FtJ*{T%P|`wOqB;ji(3l4!k}j
z@%7WcgBz}2W|3O|y?;f^dHsCOEk6(R=6*Nbd+uWHy+Y^P^XeQI|70<%@>_71^Lobh
zv<t@TE+%>`sO{#y<<9oDaXG8^f`<n#`YtfD=)Txw^IR<;W3i;k1k1UHU#RV3%lWcO
zlC`Q+NMh>)gI%3^n=U;tk-Fe|>S}5CM4cak1#2#TJj3wEPD*<5kIzhpQ(S@;AIuCf
zUA0bov3u+X<phJ?h8AaA$CAt*tzAZ10jA25qAMI&wE`NsL=vx=J~-WTZN6)P<k5eI
z9NmHHD+6b}C^A!i@nY95y|ms-C3lVDW*G%7wkz)a^_21dRlW0eR<Z0mwA^a{NnAa!
z;H~TAiHoXRUhG=5I&I0x7Z)yu8ejURw0KqE+r_^NPHANIKB{|dd4Gdm*y0z`nv5^5
z2E3OseWkPD!r2pSUW<PO+uE#{{rm;fe6_EQ2D|v~md-u3LimbC;C0#ajQZb=oy?*<
z)E4I&FIsu=P~sKdpUvfpCSD<nO${=pI%@aTiriWeI_2WtM8>6^dYdj<HO}f;CHZ&$
zQK4A5#nKn76Bcj(d|J+2Fz%ngyYr&fe{4@~XJBUdJ#m5TpPhF*85kHCJYD@<);T3K
F0RaA_63zes

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_left_selected.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_left_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0607d2343d31bda1fc7def1077f36aac163bf0d5
GIT binary patch
literal 610
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdxci>HfYNX4x;b7TDu8wj-Q{kd|2g}V9!lL8SH
zzXPf}7@ZuhPCDXUC$p>e(Mr*olHQ@W)xTdpQ*qt%?yTL*v-yo@t8L9bXX|g~m%~}n
z({pdi^>WT?n{x|({`|){^~1}jUs+zYm&e?$t3P|5`^7(A@h?9rna;NJC%AqWEaB&#
zwL6(XH(x>Y?QV`+54CRbGj2J*V}T|6g*Q8{=}PG>U^ZIOZq@brPVohs2b0!GFHs8;
zj+o9Wa%<PZJr<v`L_~chB}`lc$`j7XI8NkVY25To=XFzL`GiFrU4G?kQvw%U>rh>6
zQaZ)$qR&c=v+rDeZMzm|X9#JWny_d>S5p0VH_4+RTb#l#oioyMEo9@>sHxnj^7_=S
zpb*KarKxwh&A+m=PFb^Zdg)e)+;h9TOP6ZgNIDV_x8>C#j$LLvPcLY-F1l<Ox%`BN
z>tO@=TD>(B_|05TzFKjxc$IOG+tiEo_n21gIk9WgJGM31yBc`YVlS^+-Mf8__Ul!N
z0d7+RQ$wzSY*~9fkoo+I^<9hFzle)eL}#5#ygMl{T4b%(gPvoH&p(L$Tf)C1V!F!W
z8{L6vjB727c7=)j=}}v}Mb9WBWJ_Lw<LVEWFRaXJ6n(3#v1ySn%U#CiGQ-6uuC4Vn
zs!F?CwY(=!ev4}0l?;)kCo@j3$f)k-j=HZCxcAunEq_b5rTyU%zyI?;hXKQSiHk9N
UU&Y!oFfcH9y85}Sb4q9e0Or;dA^-pY

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9f4f84fed7ef5f5f4415c3f8b917eebf31763c8
GIT binary patch
literal 708
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyHnx~6nNX4x;bG`GL9Ryq?C8}rozMG!PH+A+8
zg?*jL|4MclHXpAL)C|hmxoV=4li7=xq2kRGJq0E{x){xI&`(OP^4-srsz(6~`KL5E
zzX;2G(Y~dB{PD-dnX{w>KNVQ)dHs&*R%vYT_0ndJTibHee@k9bIRE^!xzdWFy=xap
z-F{YL<>(f!y3I0U^%Gr<7pA*rJ&tp<z91=Ebiwgtb-;x}*0;awuKeihSa57wvtLzb
zBa3XCV_1N#!39o{l3k3Zt2-7vwzwxDYO2L^QPfoHgWK{<u3zjYqD_;d9eIUBP43=N
zU(6Q0<KlI;y~bTqcdZw*HeYl|6xq|0mu|9E_|H?-iHn<^rcbn$?CAU@*{?P)F+^ig
zHoM6JrdfA&HF8QWA4~XB^?0ug_vxNR%cfn|_|h|NXWX=Fx)XYjy}jThefB`&cB6bX
zw#6T^W81DxT^rbUntRpN+>({2IR1Y+6z2BB_|%4k4@RGis!A7&aI<~5!S%G~*VChp
zvRA<93;%-C)5A1-*!uN^G!8H4zPF3-)dD!0vf%aeT@Uhq?QGDSFk#8dSl`0pH^yAT
zu^~%2yA^jeF75H?{nb<Tdf&SyM*Cgefn7#iKB+DCi%+C($-NseZN}?rsl~UixtdwM
zPYY;vVGUiET{6+}><U}vxO9_=&gWO$T(gSHbXWNTru-{8Mv|_qQ}3(@kT5+Vu{faN
z(wP-fOFPzWm?C(-C&(pS@$}z1{++ALw~3Z)zdiL^Gsmh--kld0xM^1`E^ElTqVg=2
z#d`5Ew@i~II*X?VvgVZN-E99edE5Pc(Uaru|CxWgpMjad`Pz{l=iZ;o7#J8BJYD@<
J);T3K0RT-*L%{$5

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cc35e73a751a577edc1cd2862017a30567fa083
GIT binary patch
literal 715
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyHuBVG*NX4x;b7TDu8wj+N&;3vwC}$ybr-i$K
zZ5@M00E^QFlSrB8%eQIADbI-X4x6<+<ICA~$9*TSntAe?bLjEzSJSThiFb>KG0Ful
z-un5u_CdMro-1r)?w|O_8T9b(-(<Bdw>#g&8{}43_#Z#H>-Tkw`G&r?Yh_w*J=Ep8
z+bHz+R7=@>rFMRwMeTZ<^ZxJEYFD=6k-WIiTR12qf98c1w|>c)=z6GKG4b_zo#vE!
zA+tz;cZKD4AujJNVp%J!OxFiCszybAkJxhIY=(_t!276+rIUji-EQe^;@u`4dd<}}
z%ktvKmX;NqZ=AGTSxkPclWs}b^5NXpm**U!#dS0EPfZdmi&HqUi#1U2L9Uc;;QGKN
z>rOj`aAcWq>^OG$0K>nzf{`o4f9Nw-cI+yhyMp^`+7p-972Kr@^{%w;3TRoQZRLMp
zqm9@>*OHLlzYZMCfvPJnZj$6&SK6J{5;vbUFyi$!Q?HAq6J1wriYQl{B^PxyIm2Og
zWp7{q$yw_cYrM|*#k+v(n~u}o_wJ3;#9jHmdR^-AGrK2pt@Ye49Vh=;69ZM0#a=53
zhi>aF-+iHUQQYEveg9nN`iX3HGZi|z=f26_4d=ubY2DDDq%08CR>gU7S6BSv3)hxr
zx*1&%I_mdTJMhYp1(UdC{T;JIN)~L%Yfz1fnBK4=?X<VThII+$cR$K~$hkYCG_YRG
z!g^}L?63&)HK#Zy1s+hhDvi0)TfSnq9^*xoNsHZPn_55M%*|TJd)VsMBcZ8n7k52&
zJTH+o<=CzhF1JtZdgQWK@^AmeFqfm##g|C!?f5J-<;BmE8;@8IeU?A;*D9xZzuHg1
b1cs1+r;^9lZjWYQU|{fc^>bP0l+XkK*7QP1

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_middle_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..736e9b2b45194df4c2415c1a3190b27eb4f6db72
GIT binary patch
literal 762
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdzy98VX=kcwMx=3dOb?I7S%-alocLhH`STPE-Y
zxny~;YAV=gDv2H`n4>Yt^WL*>E;CR6J{itZ@r*-&>8G>(nKSp~{L@#?Jh_%X^lSSo
z-TATdVRCDjYDC<2H|=9*{~O}?_O<)u%lsZE^zZLG{kQ$R)wR{1C*OD}7<~5m{jZyw
zo?Z5z_?TJk#n0<(uf)r$m_oluh}izuT;T3;!DcS=i!VCc?llCL%wu|CBYuH1_+lle
zWNgvSiH45Fd|hd))t8ip{|$5He$&L2Rqe`qd1rON{uA74FH4)gFlF785IL)}Ago=&
z=XKk|qxw8srCeRJlZ-W1ym9y(HqXJj%{TByqlwn5ZA%$SPt1{A<GpxAtkv&zFJ6aT
z31_QvYm8bfR?@gNk0G|f*lV$d@71N6Zf>_FQ&SwnFBC9KUuke`Wt|cf7<+!5hL0QP
zs=TH)o{4viZiybXm^48q`E}}*9<`Jcd9f9)6BVak-sP1PE9E*hL7_D~<ff4o*GY%2
z`%GEcv23m@y99rIX!^fvvg^g{x1O(;g?5Qu*nV=BQOcA>i96nK+)Lsr*E;>d>GJD$
z#{wUSP1tO#q_JyuX|Ge@lb#?x{c|_gcBjO?NK#ShdKaI-yn5x^)gp--*KG)iO<cL_
z?yii_7v}}8SQhs|eCCg5iw_yezrFVMTJ6*YS}Xof_}Y{ztx@Ljc2;1#Im=(G=3}{2
zQ~#~Kku9_<(p>dI&ohfX3Hp`4r9P}$5j|aT@zz(1nvTW(=Huj^73CTz&DMLABO)-+
z>$Os|o9kr-qn;THGCLPMRhD%Sof{nx;(A={3!g|y*Mg(lm{*myvx%54u7161Q8~+k
zyyzP}avmaAukGqQxQownL&S8aiyzmXcqps(;=?nctI>ZvZtwqg?Z^39f8XzaxSoNT
a;l)(53X9tdD;XFV7(8A5T-G@yGywqeTVQDb

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_right_normal.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_right_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e83fd4680283b9031c3197bb585e2364218726d
GIT binary patch
literal 576
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?BTpB{kcwMx=6dHfI|#V!W`C2MHr@Ma+`i7_
ze?Gf7`zD2kZFCOZnsRdY$IGv?3^ER6ul@F-=zGi+`JLakMd-X?i#Zr^`|t17iPvwl
zRqc$4`?c@=1IOcqZ+5SHJ#lK@0?x|ackexPT%7y+_19a54Sb0u4eYXQiCh;ZGM4ns
z@%ymgvWf1+eca41q}nBFE>zAFE?LUpyP9W#X-^o}1%odBUF%lspMLaV0jDRUl$-Fi
z6p=F;zHYq-SF{PrWJIMhE<LHClX6e;hQsHqzs7mKHit8oX58K4$sBdC`a54#st9Mv
z^r*<5Sv^{dkFP8;&wAiGJ+NZ+{q~6m(?w)IxxdbO#U%CAV$XtTUAG{UwceIJAB;~G
z99odLByq|9OewchE0(QuVATp}<O*59&Un{+ZIDFiRy`q&!<>5&5=^2RsxPjW#(q%$
zThsJz!np*Izc+nTBz<SU@XCw|KkOknHBj<zx!c^M8m_N*MTH-Jv0!bqm!ag;i-)J=
zFW~gNxa-A&O8y_(iy2>uxXoT>C>HSN@8ZnKCs!Cstkqd?ZQEKSuBjIdR`qBtW@kNW
zE;Zq4jh%SKh08BPJ{?ZDayY~J;w}-lWQoF*DJNH`>oi|vyZgd9?$Wp0_h$Xzt*_hr
e%DI7&f$N3M@gpAs^cff!7(8A5T-G@yGywo}um!yU

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_right_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..10766812c7fffc380ad53511d18486c2fa7b3e11
GIT binary patch
literal 587
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?TTd6qkcwMx=EnLRHV|k@zZ_N|*>{xN{Si-0
zhjsvGSBt<G_3pPzmQH<Onw56!(zoX)rD`|7-Wp>*apsIF7nivv%jWF%4O8P2=wD<w
z{qghag8t(N?auRezU5wjX7}<8m*VY=+tzQf%8ui^c6Z;@h~VmSg<bXfPUe4HiobKd
zvH#Ke=tJy^I?jmi8?q1TZ+YK+p}FBgkJul}TgL^YT&x8bTDdHousA?5Dqf@`?e-il
zfm|=uj%92Y8<%yIx^}231op5LP1$|$@9M+^wkUtLY0LAC=1%M?HSJ)Mx^1Gn=v<)i
z+?VfKV=|XJeBP88ps?!l74941Z7bGhFA~dIh(KN&KlT~=Olis3%Oj-rN@niDfR2di
zu}@e7d0)4!&3=8ZFJt!>sr|mp$ugbSvNydfopN;7Tk{6ScRMm(-F-bN_i{{+&y~IF
zTH{(vFT40&aaliI!{>@+)*`j6MZrS7PE&sFS!plCJK_JtIWsOegs;h7r01qqb=SqU
zNJPjfaP94zyIiil^_h}#<mRVE8~P@_zx+z_L&n`puMf=?oLss)tkTs=x%25#=HHAj
zBd<=~u+FDX&u?#Y!-dwS3rmFpSr>lQ4cn$S^TO1Q(!@o2Zl6`S^!0sQ^1bc^anF6C
onEROd;Xhf+gNr@uSR@!swAT7FANat^z`(%Z>FVdQ&MBb@02?X_YybcN

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/btn_strip_trans_right_selected.9.png b/fmapp2/res/drawable-hdpi/btn_strip_trans_right_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0cf2192ab7d82ea42902886118b7d59b9085f2b
GIT binary patch
literal 614
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdxcho_5UNX4x;a~=H-8wj`__lxE%)P8p;G@_7+
z??|CTK#0_>stuDJ5|4JRnE74T^{rm*ulzTKlee6_oBM8JP?oxH@w{q_NZZ0q2NoOs
z%Brf*-gx}*gcbJpcD|i|C}`R2-zI9e^3Q(PFLZou*f8zy>YMK@x9nzK@jc)4Vs6BV
zch(pG?QMGZNIi;A{#m;mLzPX~1?B~A{!0&uIV?Kb&O9Nb)z(ruus`?Rl#Jl-ArcGv
zR$L6ySYW4P_|fsT&l5g|t>31)IW|la6q~5wba&a>;44qBXrx}tox4{k_FG0cTgc)@
zM?ur7phc?!8@WPuPygw_9-*wF70{?BWa8T{bal<{ITJZ2?9UGAbYn8@*u@qRXT%uv
z$}4u|Zjn-9msp=goB=CVUEJ|IuxS_P(sgQ!6FS|#i+?LsZ!q!aU#pb0#a8WgXTai)
zw#1q*KVy~&^56U96i^=H&Zw*4AM28SWlL$-u2mN^c8jlEebS>dE-kn}!iBfQlj#~$
z(zQU<RW4IsJbmwemB}mi>#m^iSLfJf>3rkg^h@#z$AZVDhfi!bp0d78kv;tSrO3N7
zzuBhBzdGi-C6;-fQ0^-xA=&g;mW*W$$MVaTpVaV<1$n4E?QR!CRQ#t|OkJKO&J1gB
zm1T2eENduZDV@D-j?~fyBcZz*7b6y|*53TJG~+_#za?+ir)R%P|M5Nc|8fRqhSNE>
WR*JG->|kJEVDNPHb6Mw<&;$VM$`CIA

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/count_down.png b/fmapp2/res/drawable-hdpi/count_down.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c5f921b4cddcab926545689dd92ac853b84a8e0
GIT binary patch
literal 3152
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_earphone_default.png b/fmapp2/res/drawable-hdpi/ic_btn_earphone_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a5b8db9adccc1a809d9f5e0993563e7b301883d
GIT binary patch
literal 4612
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
T)K#(!3=9mOu6{1-oD!M<Ak)XU

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_earphone_diable.png b/fmapp2/res/drawable-hdpi/ic_btn_earphone_diable.png
new file mode 100644
index 0000000000000000000000000000000000000000..f32b96edcd55ddc771b350397e4093ce2408cdbc
GIT binary patch
literal 4589
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_earphone_select.png b/fmapp2/res/drawable-hdpi/ic_btn_earphone_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..67afd3e460fc669696cb642403faae9478901cfe
GIT binary patch
literal 4651
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
J%Q~loCIHsY<O2Wz

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_onoff_default.png b/fmapp2/res/drawable-hdpi/ic_btn_onoff_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c0f511be39842050478845e4d09b4e3272a8401
GIT binary patch
literal 5218
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_onoff_disable.png b/fmapp2/res/drawable-hdpi/ic_btn_onoff_disable.png
new file mode 100644
index 0000000000000000000000000000000000000000..12b2d28acbbfc43fce520003e766efb79e94d2d4
GIT binary patch
literal 5184
zcmeAS@N?(olHy`uVBq!ia0y~yV6X&X4mJh`h8~ILRt5$J&H|6fVg?3oVGw3ym^DX&
zfq~0E)7d#7AS1sdzc?emK*7`5S)rgPKP@vSm4Tt+*4*Iqkl>eMw%_l4aq{kHnBtuu
zB+8)><ka0DGEq%SkyF5{Lvi6v(ZGX(uC6T7Cl+)t_w_aOhz9ELbaCBaf1<dkuX%At
z*QwtRs~2Zq+w=X|*?(KF+dW_NdG6-(><2h_rg<0#nl|vPbdnQ%(0u&Jv4>Ce92&V)
z3K#@9Hm4{S|5avW_)%wLqpfs+eIEm3#bs^|h6BE{4;aX_|L1?@G&6>=p@s24$wUip
zjs_71hpIlOWeg5(j16;Vs0A}DU|~o&ot*TTAwZWQLB0OjWrl{iKW0`lGDJ^N6lGj6
zkwHN?wZnxW!<u2u`LHfmh6n=&ku>ikmJBy^84Ntb(>xe9Y-c!dPJnw80|yU-L10I#
zCId?~L&6DV<qC$DnG7OspTccEYOfP`uEoGmF>{m6P8Cbn#%K=RLiX@*JvohYp5odf
zW{FIRvmEpeRnC+&YBb@0@c9e_!-9#Tf)AQM|E)O3x9;3Iv%YP7@w%_}v;9{}N_zb7
z>G{<K4h#$rOX@EE)6w57)nLumko#|u>N}Q<IPL|d-@DT`@jGl~Sn%>z_~!yp*tjm7
zu=D24r%#^T@H*lYop>s|_Fwv;_ygg8bAHy@{Q3U%!M;Z-jYhGJ?kqnZ96IyGXQ|Bj
zNt`W7cb@gT|Jly{|Bvitr6Zn6J0rA29tR2)_PNaJ`E0aQsncna=26v4|5F~_*ZIwC
zci)s@LzW$5^+eqjvB}KeywwFFN)9~w&cN_#cmBaE8XU|G8O;yRm;Zln|JQwiDnmn>
z=cGaghBy}$y^vFz?T>RXFt{ve)Y{-E{pFy9&H*-=gRFNBa{oy%YjILJa>z-*i7TZ+
zrYJ#kO_P&G+u04WS_%4B9Ar%n1ZK2NF5uHU6uN`Ywt)XvBFDUg8haW!SsYJr2q!Au
z>R?Rjics$35TDulL-C*oi%_?U!pRPiKqc>qrXGetT_Fmg9<rZoi<m6iW88L4v_8RL
z)byuqkGtWN#!Z2?S9rEM?_6On)#A2@`$9^I;jDhK1+y;{ZIQC=F<bcj!s-nETm5#<
z#|;j=kYG1Hl4GEE?6A{D3mwkM$)`6et>IaHOlm{e8s^=dUz5*oEN2mFbUnan#!~L2
zkSOQq5#bZzcf(_af{coZ;4MybPUe=tL+VPCS9otx+a>t(h(wZ+VS9v!j`B63eqnuq
z>JH~4<|;y+&PM7xCop+#ToQ6g=#tx|yddS5IxA<Jct|NvK6xu8dlS3m6deWa6Rl6?
zJ~{lv_=)rr#ZS>(bCVnjm;4BRq!Dx~%S-a9z*Cc_Y^gJh977k+3c9;uVThn<f0WbO
zh1-JG2ez*eHYuHDdA3>1(|hUKMN=<JWr$~d&s_haWS8LGsd9ePFN9w@{nGu#^cT!u
z%6WL(M4OLyq-#jdmSC4imn@f9Kf`C4<mGP3;~@s-hOcKlpUFQnKQuyXn^ukJ#8X^T
zy{4*7mDbV^S-EQ2s(Y)rLqCU}4(VSR7hJo}Ez~&p@k-7s(^iMBnj7#sSUNa;rS*#T
zRp~48L+qE-MgHw%i#+Ue*xz|c;DU|ukM|r?;7*p@T%n_w&AYm-w9)j4+QzdtYs$2C
z&-g35yW4iv%7vEB#$LwZn}a@2Nwa5vJfrZ(oDx6I=NikWf3EAgC-PqNk*4%A6Q7-i
zsWI8BrcIv~vD#yG;A;2Rd(GCpT|Rf&Uf11`zZ>}+k9(=dsJo~4pJSc-Joskt-Q`@%
z#e8k8zOK_-mAzDY;cl1m{dvpZ&6u|@u3?@}{_=a3d!PT3sn!1*@;CR_@~`eZ5p0`z
zRM>9woRhFQYFe0YBddS>_Qycy*uxIaOB1IiPJh@kapy&w#aG>W-S~SlkHtJzd7OJJ
z_t;`JHZ?^xZ{JtG?`8%0?p&t1%-YA==lIz(XBVBlHq&&rt>JZ}=d+*BzCQc@_JpX4
zD4lI9w(Usu-1H=BS>(HId-7VNEF+gjghs_~c3V4lt?ISiYj-afT)xw9vft`?*U}Gf
z__*!lww2o@H$1(;c6;5n+-<dq=}F@0+mEh0{BH8z$+f#`d;i+9^S0mQTP+(UTUWfL
zNW?14>fWq#bKcq49{n=yrG9$Ed4cmcj2~|kKCO8qb8hhL%kJso={t*?KX-I@dN-Zc
zn{KB!Tl(1D6MLU{m3%FXeOPtr>)hF!XCHdI;`aJ?X74iJwcnY4#$>+cyh!8X3x`iQ
zKL~t!(Vlz$RD<mMYwG-+{TtJ_K3CRH)}I)@_WFkHOUqY%Pkb+K_sy<o{$snxHs<$?
z?nTC*F+Z^V#P-wvhx6yfx88TISN@;!zv}-*hUE>ajOomsjgF1cOuv6r)hO=ov$wjP
z`fbzAw~jpvb~=hW_BX9<dU|lJV#bL#6V@tze?H^f#B-T^tpRl}u3cbHe3saKxQ<7?
zwY@dG&AzXoBSPw;;dImTi+7xh@4NhRndWkDcDkXz<$7H&Q!TqydRaEN%y*gWvOlJm
z7J24s#M}ta9B&y*J*{<Sc{%&;|9Shl{n6Y<+>fipXXu}ZEvQ_0?$DRk<zg%KgmkQ?
zIrwz=SxouhD4?}MtVi{eaJgz9SLGquL+MKT7tJnq+;EQ3lJooIq2*gO>CMDFrj;s3
zjhE^?-PxkPa>5=TUZ1<Ot>%f%DpSZcvbEZ4*gR?CghHoPioTP#rN2slmR5FpO=|0=
ze@FAWx9iJIWj~p{dBPgjNL{XNPRm||L}^^tV&9aW8lJZQZ09M<X{+aHpM85~^Qqet
z%;&tH|NpJfA)$wpwk>V*4%d~9c(!*<mgOd!!phrRk40Iv+rrq^*zD-qrj>iufA!n&
z>FetDs#W=BH^v=2)pT$xWA<zAP_Cz~wXg47e;ex`p&xmFYvQlAxzcu`on7lhZi`PB
zt-qmhr{bw}d;Y2YGw)2<vU2s2ohj$jE~UMEc29R+G~cvU)1OV}%j3OyYYXrFuq|)D
zesjI8KmDx6?cL4WoOdqXZ?j`h>hhE4&RW}tED8A%@+-vb-KD!*6R-csyZBDJde1kL
zH&<^*@A>}M?&QAPp^TxvSJSSh{`UO6`MdqP&Q&jeO#7W1yVfta@a=KtOU!@SmHD<^
z-+AS#>?PZfp#E#xuig2M%kTR)_kFo8uNiM>@0??glnY!cpS=9edH=f{uhp%xp6WFZ
z*)PkN$)?NdXF1LKG|O#v@T}j_NzuFf&)8kO_Uc~MANSkx{BulfA}hT<hn&p3^|I;m
z<n&MHd*)7^TU)31^G?F;Mcb;MC!f2Y#h?Fvmq5wGORoRBpIh&-J{R+8N6Dv6x1S1!
z?+Bl@-YP!#Rmm%xf0Hl!AKyJ^_pEh0W3qR?tJ=G@I_>*Q>3Qbo?ta-@`BCiuwX5?i
zZSU^=T$TU*==ZPp#qQP>ssBB9diTw8^>=Ic`0t7T;_%k-rt{tQtM<|V?%a5Pr#|aI
z`GU_E@3?<wYi&ONZ{pW}erMMHnf<5Rc-vmjv#_(Yd}Lqr_vN4E&gWCktIZStx9H#L
zb>d?Bbw94YzJBiFjEf7Wf0{mde{RjvzpoCwmRx`P*r8)``%YFE8^(PJ`~CJ{`JHmv
z_lxiI`#-5ssMq+P@pI$X;0w!tPnMiK`9BNujL(0PjdgD`Ffb@2dj$D1FjT2BFf=qX
zF#P<_z|ioLfuYoZf#FpG1B2BJ1_tr`N%2SB7#KLSJzX3_DsH`r%JvD47W?<6F-T4~
z=#+Mpx2EvKhK9%d0UssR944+v@KHE4*QaS^oIsXd(c+z(=kf@;bQlWHzLR3)CbOWe
z!;s01XQl+Nl(T|^llK)i)>fw0q(-sdGwgMXG(5atC(DFy`nP85cgx?_+3UAnk4j&^
zIYQ^hz0St}%)b~vv7h*__$k7(@clj8cDWA^54VRNpE7;=e;x-Wg{p}a5)E(e>@0q|
zj^V?XFDwixDJd5Gmja6nth~9nxE58~+-q`JemQqX)z?)=k~U7M*S}rLJp1f2&Od+t
zFeDrfzq_t)(#@Q*iaSNgvUC53I_fR$>gtMMuxIRGRnXSf&Mr#un{YM#FJp|pw)X44
z%N%aiY}&NRNVq{oLqo&V%uLMD(Q(4*ryC-4e76;z{<%I>?dHzn=dAkr`d_|%^U~JR
zddECru5I<Vcjk;BePRtNDk?6Us=w!Pv^p^yxN$>*q2*S?S|+0_*RP9z{P^+4zFO-L
zt<YDC-TQ;IwY5_jQkE`Vx;I|;gMgEYkJ@H+RaMtX)2Fw8_)uVN;O(gQZ0eVX4<DX5
zecIW}tE=T?%D0$ZC7zq^)VP1nYvX39e_UX3y{M>2KwSK}2#5RE!otE6Cr>iAAKn=j
z8v6CNIIAbe&O^^X>pyw+Ov%8Y;3jKdUmugh_GX39sI_G`4I3L9Pn<o=I{*Csf}fwB
zYR9vvC@zUo5t@7M)TyTa{{FfD-rnB6V)bh0?Cfk^hMCR%Q*G=2#e_vicON|HXuY(*
zpMTS)O$tJte&ONa;q})JICE%n^YTvZI+|o4!E<Z6iBxaJhX;%zT(0a4Gefl2#^zb;
ziB~KMTFH0d<g8h<wjDd>*6E?*<>~FsJo)6G3|=<oq>U2W^X^Ux3lH!2TzZLXJG-3I
z2|2Ou(m)-t=0zH}rd`b1I^p!w01XjSRaI4MFE6jG>9?n8=Y~s9pEAW{>Xa#eUOqiN
zJ=8q^UW?n}g)cR`nj&=Ax{vOP2oB!-zc?rS<iEea52kI-)SowJj*GK1vzxnny{?{~
z-RG4LHb{9$i;Ig-_w)6go0*XTiZ<WlX`2fl9AIRautQWuafyS5h+KD1PmIU;Gik<O
zs%+og+1WgE=1gN(S69*Q((cN_sOKGba?BR5Sh2!w{q^}dSy@ef%NM_NQ4(x%O8hoe
zJ6z@6mL)2Nh8O*Qe0b>W<LetLA}V@y$I7UMfq{V&bJEhDt^fZ1{`SkNs;UQPaqZ%p
zB%mb5)%wv!u76u@h?Z#Fo{Ebx5fMLLd$E6w+WtC8Pe<p^?F$z!ysxdTEpzV<(CATZ
z>A0JCa=(kK>&?A?PEJ;5P>9Z*Xl9VMxzbl*?c<d5^K6?hW-K|mc=2M!1qW0ov<T>R
zAGOjE;CQoU#l?(SoQh}rnqpR~>WXpu&9%B}Yi#`4e`%2CWNsFw4H0X6oH(wFdN2F*
z^G~bs#baEpObqL+6FH~rWXeXb4$ye>?DNkW29HwKl%R|ZjkgEYCUYJ>e3;?FJ06d4
zolM!^6)7n!#l^)Yl^Gct3@SUBjLZ}i8pQUgtEnxx{(3j3;w*nz#&vRv-an6Y3af3t
zd1qPJ>da3K4Ga<7Urd{Oo)lP^9K3Qxgh9hT_;9xAtE(9%CXJ=F6W2Xi7o#@W^Y!5u
zC05ba7hlTtN>|w=7Z(?AvAp)DEVr>;z{ya8C%<dawCF2;!Z$4`tDE;P>-Dca*SRij
znIzA+U|QM3u+N^|M;}e{k2?OlvZ7+mmSv{Dm)xEH`P(<Ph70RcJnN&6-*LP4H8b|(
z$;7#S&-d5;{k7Ehp@({{m$|+D`}Yq&ek@g+%*pU<&X<#|8T*5JBDhb)^|}eaegFQy
zp-|z@4<9~wD791wJ3W)xGGWcqrBB~?cPG5I7nwO(?4R=V(@WoSWp8;~n!3A8UpGdQ
zht0{!i6NnXaeHN5UER;$-`^{%si|$dT~Sr_i~r}(pXoBbZ0q9p%bkB(WL{BSefde)
zguCk^KK=Xf;lt6E7M58CN=i(J4<A0xc&Ge|P-SJM7K4`fpDz_IE-iQGY|p>X<S<*C
zvueBB;y_=2|I3Rc=bvYvefFGU%bP+qt94WJ@9Ypfo3wF>clWoKFEf37d{%HM&RsVx
zYU}#Ay_>jiMsLq!WjHyVfzv@qSeTiu*>Upzs;^uOS$6~dPfhVs{ZeInR@^N27K>be
z`I>d>-if>a&C-nt4_AL!U}4|wqBJXJ{dMP+A%`YzTdq8}QLy=7z`gtT^S`$W3kyGd
z`Lc55zI}Gjiz7Dd+h;d*(TZ&AvNs#NWq$qsooFC&ic?Yf-K&owygWP!Wo6UUzI^@a
zT2y4D(e-P4jNbo~bNAnVQuOm->FaA-)l^jzKMJxjY~H+CLPCO}L94v%^%k|sFKg1%
zm*2h4$HQ~v-rnkiNgMyEPCtG6PNL(^7`?BbKJA)2XHL(C4F=Y=>FMe|YL|a5cJI%U
zjr_lB>Y*P+;>sL~*B32Xq+)1jShnlt&B&6Hl7yn7Pvs1o-n@B}m%jG;jT<{88;+bm
z|NhIm*xfldMSFk!`n4cHBjx7Jo9c`QwuzO;^;oPA(AXiv_x#4OUg=COvF_H|-`^aU
z28n+8{$1R}%<LcYfxF7?eOuOkyKsAZ{(Hs=CsT};MsLe$4A6+_Skj%Dk-@>$x`^*U
zW%?z@<vN+aV;uso)C&m<3(Cmsc_Xp-V#oFM@sIEBE)Q6JRqA!(+O1-@t+F#kcn|P9
zaP=SO=HljVc2GEQiRF%4)>bM1`F5=*Q@reIetbxtZKJ1`7wT=rdx`6dLG!^Kb0<tl
z$W~eF@%i)TfYnzGq<SyBEHRMkU7*30V<s))s%T*$5f>LXzvkF%^ZW}}ud;5wS@Yz=
zLgy{k93MY^oX@^QG((7?(?P*PPFT2k>Cvs$CsK?Su3yjJ+}ymCA!X*wnX=x;b8c@t
z`_^u!L<)NYpVJ8t(4TFd-{zoDAbsHAK}U_LUJ^WQtD4#Qr|k-wysIWsQ(1ZOl>~#F
zw=Z8#+`4^xaz@69b(i02NcXz&@bWI)yI0oM*4C)`;09BWx`}1WZ`U1K7xJ<D=%Y9W
z_1Uv$zuvWLmkJM?a{KYeiYh8BHgfql?Jsrr&-?hXu&1vtsisCIZSzjP1|J<U`?7HN
zgKNuQU%Gr*p1I=ArAwdEw?@rf6t>!!aS4M!RYk>t>(|Q@-<&za)8nSR=4rTe!)}IK
zmo8s^e)oo6p}mLn(xpq!GG}ZvVpy<s>(%(xSM}cY@AL5XzFfB~ZbI_Kuhom>&8OEl
i{9*ibd(nSBhPp>j`D6;G3o$S-FnGH9xvX<aXaWE`2CDr4

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_onoff_press.png b/fmapp2/res/drawable-hdpi/ic_btn_onoff_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..efeebd3c7a886d80470ec0a8f96db188161385c5
GIT binary patch
literal 5289
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_spaker.png b/fmapp2/res/drawable-hdpi/ic_btn_spaker.png
new file mode 100644
index 0000000000000000000000000000000000000000..f439e2e9baad07fbf3f4cca343e10d89dd68de2e
GIT binary patch
literal 5699
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_btn_spaker_select.png b/fmapp2/res/drawable-hdpi/ic_btn_spaker_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd5d57be0efebaefdd80cec6762b7bff294eeb7d
GIT binary patch
literal 5798
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
O7(8A5T-G@yGywptcnZ@1

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/ic_launcher_fmradio.png b/fmapp2/res/drawable-hdpi/ic_launcher_fmradio.png
new file mode 100644
index 0000000000000000000000000000000000000000..4815bce3f98fa2e6b27e955c738d418648aaa6d1
GIT binary patch
literal 7052
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/recorder_start.png b/fmapp2/res/drawable-hdpi/recorder_start.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4425e2e0e48a39365e9300b4bfb69069e5c3d7c
GIT binary patch
literal 4791
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
E02)Cq0RR91

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/recorder_stop.png b/fmapp2/res/drawable-hdpi/recorder_stop.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8b32b06f2af57bdd7e3e5ff1f4b881974333e8
GIT binary patch
literal 4930
zcmeAS@N?(olHy`uVBq!ia0y~yU{C{L4mJh`h84Ci*D)|~S!Oyr2Lxo~m*f{`<QFJ-
zIy);A6y>L7=A<$(cpRTQtvn>;x>)=9z2#L4&l)fVwcXo&fZ<a0<T%&F8IlPa%zVZs
z8x<EZ3A(z>Qt}8m(r__ACCp``fJn#&b`=f{LkZUqoqV@z-Rsuu`TptC@5gKM-){cC
z^Y@#*=cB|KCN0;WKAp{*al$F#56w1nUJ6bOEP2Dwz$ll{pvmA9=C&(-Lp6uM$<t?B
z=P4F3#j`MesEXLbRB-u%af2WG|M^QIU)D6fn86@8d$Xmaj-Yslg{t=iy=~{aW=Kuf
zNs~}b+o$0uc)HUvaU!qXZ=FqxXWU$Av#sN(<?_wJH<R9pe%$7x=zgSQeFwMk&N(`Q
z_k}jPbs0?6eq{dWMhKrVGlPg{j(9;tr;?eVVW+&%6QxH_86J3W#uwfR*Lje_ePnu(
zr}z1X#lk|YC9>1>?q0by%kle@l%)kMOotiNv}c}7zZ`oh=<>`xG7Mtx|3n%+x^>Cb
zb(_i7ZCgxCjE(-T3ix08Ip6EfZPzNvA3M_p*8cB)yZ+B5DTahIomrbdck8a>YB;CM
zaN_Roq{|iz4NF$!%U<8Vi{IBqzmv&vSMSEcu&`-@(+?X7iGSh$>)*bA;re~)Dt7Ps
zKV68m{OFU|)u6XdT3c7u_r&t_CB~65yB^MO{~^!*uT+lBaZUx_{KLYoEuG7HPJ0V%
zoqhZn*N#jZtLfk8&-%fC_}`MFJH<LL{SXXD?rFGEs^w7kmR*BOP~qb5qp|-N=kNPr
zpio!&P-}8`@&EVcf71^xeWcnv`-9~<RgIQ&LZ6JqzaKd-w1AP(gGp-w`zZ(67Yxn`
zY-<{H3s~|FNdIUS5a0}B7V}_P*}%WaLGA_%m!shg&TkD_0qjza#u==~9n~#Z&oz5L
zklMkR*Zey{#HS%WL2M5jw*X6`qLEAE6Gc%E;Y;mj6xdSucRKD15D?)!>clC)FXU8t
zA#H_(R`aTbRVyTa$yssEZC~fmd?7Z2XI5KX`@Mr4K20k(2(4k2KFo82^IN0ygU|w|
zJ#6P%xgW?DsNP|aZ?%5#`Ge^XGaD}Z=H~(p0)kSDx+Ii%j<9}oUo@ejrGJfk*95L5
zjG3;xCfYqwGwM2{kRK=^!s_ZSxhN-a-iiPb?yYQF<wBcQxyibfE~pAL4@_PWdBxpC
za&5;o_uC8hUJ!i2QX;lXAht2jY5QXRMfr=>FRV9|;Ne}|yYWy(l9Hk4jIA?-&e-`#
zKa)ulFz%aqIBDajh}t!>*W^zh;o8u8L+ef8o5(i;WlX=>+>fk$aHinh4h<Rp>HVt@
z$R3<~koTclA$Nu59<_UH@B7mq7k^m#!>z{rpH&^xeuoKa8NzQk6kAjdsX3`GoLVsP
zL&Jwj9xAH@*LF6#=oKn&oK(?MG1J1W#(R?D%ZV`_7gZE9*<T90lzFN5Qgx=!H6`mw
zi%&3p;wv)#$@Ek3XD^HEA&*1eO}ZN$7r8BRPV#uPQzb4a_>yPQ)|7QAtxq^lzMf<p
zRH3P>DXzKfO4UlKm6L;%gNiSSWCmx}zYKXP^iug!_>$!*8;qii@{Dq3GR<r@5>Gj%
z$>BQpkyB!zS+JC*xTbIjPw4DduD*-Jg7+`x3rJ5*O__eO?PS{NYbWMSlU=H4qB~1m
zw>8Ym+E04f-snYJj%0GCpZun}*1K)mnbW#ci>Ew3A$oG_$-C34)%~ZJPxha7U-iD`
z{{Y6N3ziG4n6Pw1{KG|u&IG**y1jJGQdjSO{k_XMv|nkmX|4;kS#e{%#quR<o-CZQ
zE@WwmW2W28Wp7r@SrW6Z#;r1{by3p#L!p}Cma9Ka(eo}}wETkh%e`MBLtR7tLl<W4
zebw-)Y1X!=6;b=5X5VryZL)H<joTZu*S$8(+4Zo$vj1Y&$Me+UCNG@1VrTef|Kd3B
zXziHn)nUu8P1!bQ+w`(^W!>MHWjFOTpOc!)HaB{gL~L8$rgwICrK>i~YmHkJ*L$zD
zHsXHJ{MGyY>n||mCgdJ4&M=TLRFSljOq1Fs(I<Jar>6H)uT}3n>1+vi$@fO@jQ?dM
zB~D7Zlu>j)<k*$lCil18{!(siYdkHo_oi;~rk%TgvVGS3EPndS^ulRx<I9dWB|S{v
zcy-b7N6ky8s@~spwdj`DVXbScu4T12rm`4#NlagR@!Gj-(rf%9_ix>}Mev5q_Md03
zT`;@(t>f*LqPI`yJncPw{Oy%DGs?b}E&f*WJK{I<x5a#`_<Y*g+K>0W>dQH<cHC1v
zcDc&(#eV1K`p)@z?(MnHdS-gBW6teVS|_*8bsck_QQpG5t9ku*uHF&86MZM$R>$UA
z)tt{R)xRp<eUkYY^eL&*wEApSbmjWb@4hPjWceNP+veNV&rg4s{XSTCuWt8WxiuGJ
z4n|*m$^U2XpYq@KJQw&Pgg+!Js2M11Q2XFHAu}K@Al^XLLhXmght~qnCtRBFd!g0B
zLl@>5oZRqY!?O)P3$B0I^x-1M<Bn3n>q??ZJ152l-dM3=#j+JUr{-yYUo)p;TZdkc
zT-?&VTGdylUgcUH95%miVo&0+IUTOY+m6e1)}H^8Zf5ZO(Vj<HkJBRc*6dxAp5tC-
zSv@QHxaMP@W4Dh^KkBb~L-mc{48IbOH6C*w?kZTlQ-6}p<X4lPP5wKXU$x$g(?8Su
z=+a}$<~=$2VN&JZ%u|^+Gn-%jdfEDNadytNH<8Atzdtljb&y<bw2LL=;`xyM0q#3o
zEv9A8kDUBdO<U)+%eE3T{oVHN`svl@Qr1<!+nybm9hqJIDde-+)84hkQQ`aLqU5*l
zOK<+w*2F6;ZEGfX&*jFHJujEnO#ZX!Px$P^=H=oVqB%Me_aALsx-?+Xgm{ZhSIe^R
znq4t_x2^H*v)ik;)$1gQ$LgACuG6TCKcuzuSMN*nsrPGc3GPo`aAi};f4?(+_s%_x
z<=f3S-E;cWX}#~i-M$;>r?0P7zg0c${M4>g(b8(p>egy^?ON^Kt4vmvh3#GMw`O1L
z<Cx1~t0Q*rEvu8SzJH<a_}{gqUZqD%-}4pl-&y&6#rup4St~3$EN4`H@Jx<KzQ4UE
zfA(yVSzWX3WFE;%*~*mc*nV@>&YvBRCSDTT;d;ZU*5ucV-uE&4UuT)-tj%A%RaBn&
zc+2s5b@IReekh#(*j8OaJ*xh~pM~4zUW&WISo);oOqp6)Uzuwe@4PQ|H!tVjzWZ<S
z#r}4`mGf3v>Q?Xi!t>DQ;7tGY;`8U`dfS^9+dceK;qP<)FSnq0-dDD7d@)~kR{Wgw
zdntFVUv0Yn?O40gqt8yAT-~#J?sc8@rC*}IZ2zC~G5B}GQ-|ZFt6#^OugNdr*ORv~
zeqvDaZ`td!-rM)&#qQqw=-Y#W7a!(Md@=E&^&9Kp^5A#-c1*9#fB5eh`wMng{-ttZ
zHbFI4K5Tw>K6ml7#mkS!9RDTHZokj|oK*cc?_>J!)w$+Pm>=S^%E!!qrtjQYW%Kua
zEO~mlGyUaxu{5swssFZq+j;J@d|mOMwe@C6Wsg|@A6<UmJMPqen=e^6SI^tou+x2g
zaJ>E*@x2r4i+|`o&b`0;L-}Ox$oCuHYumr5d-3nZ=Z^=MU-6&+kCl1G=RdoSytvH3
zz`&N|?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETHB*iVkZ~0LB
zF#`ifm#2$kNW|g2Gw$cd92Groe}86m`P;1<_eS3CEKEw$5K!k*$ngmY;qr=?T5>`B
z%D+z6x6O?LUs+w1x<s6WE^^4s5i=<Cc%#-W{QpLLdAgtcw{?+CjVzb?Om6MnRi3u5
z_+0t9IiFkEGt!PN&JugfTs!^Gq?5@#izl@;Ixe_>Cdkw7z5|1iXQ}aRrgxUl-`Tv8
z`X$N0F`@YG^GQqg9#DMXX>85#W~xa_nyV*+Z^Gd-*HqRr#52uL-lq0Ei@}g(Lcz~H
z{5(2s4UG4Gzx%vl$@0c@pQ<o}R0GW!3|iMV#yB=OdT(G2X^cK#exTGideTkP=6cKb
z?-^Ulq&;`k%$?7YmiEM2Jtb1<{co22%zjFH8Q!QLvvcy`R6MG4^bGUex9&?CraY`&
zZhhTgv-AOb*7p)~whFwm^F91G``xLH5{J&Qr!A8><e0$slK;T!1Hm&auU%gl)%vyc
z#;v9>Zl@PMkM=GODB$5+Hs!Q|71vXvNpkF34aajhUM`wht9epI(CNm<3;ZYN&$lxc
z-XQ*x_kr#M55JP**TiCWGELV%{75Ng|2@VVIc3i@#1_W1t<<!rkw{BVtdsLnWtU-b
zYfPW;kMED}^F@DGXeakrJm-j<rXcH5<$OtA^=xw3w%gkuo)UfZ^YgJwLOS|~U#*IW
zZ;#@=^|od;=M*p5g5TdH+4&Eh;d%FT`q9tl7heo)C^i0l;>^Fso0?~)?auq#cy!lB
zuY2Daiw{Ik;)~``zO%DAc3)0mVq?WCkt?rdxl<#Lx9;7jdD`l|nc0J9zCYd=TNJbH
zuDctvn^%9I#<w?;6Tj;-_bc9=RKm=$_nnW^Iql~%iY<u`w!bQP)iJZT;5pyJGm_lg
z+((L^_sll0KELB_)u!YYiC!Jytx{{&3;WIQ%S(3t_b&GH`n_t>^7`IZOfu%1vp60q
zzyBL{y}0xLzrb3l3S;$O3-0do-BWXOQ!DGO_xrfN?vhjDtNVZVR9D4wSs`NyDI;@h
z?cRQVrv2=<4#YkPGT)|ZD<jP?k2Q{A9#hPYqSkANnBEpY*C}&&y71NW=FhcZZ)@UL
zN7|I1dvv0MtCi{9kB=(xucJNNlX~V`Ki`(zW4)2x^S8=bk6Za^=dw(r#PuQ`|NWkM
zZ^uKU0JdrWwV35LtS-+fPCaVsH+NC#!=}i!Z8KFTE&H_fJELs)vuje!X${O`PVq7E
z>br|tuRT&a`!@HH^Ni<?XP$4{UfA9J<MVUR`PF>kdf!j}W<Ib`;&EH?yRu2q**DHC
zQ}q=}mRc1$OI-g_MBK8gSznocoBr6syym7$d~NIQ3PE$rPH8#6k9C*M%$u@><<7gJ
z9EVGc3G-Vgw0$jo)!l6p7Jl`d(VOFb_w`L?ZSvW+t4mB=bI&g=PmYzBO5_U;oMEdv
zX`hhR?=7W%%p@ldWJly$A*;q<n_X(Ra-FtzO`9%x=T3`6aDvVLZTr~Q_+QcpFx#wh
z<@J^8*D~_*>@KNn{Qm0lGqr8o+*VvS+{~iEyg2RJb?!5>Blj;+@poSnx%y&H;D^^I
zw?@BFa9eS8&2eSVzJuSHx+g{5^~k$-Sx@A|lDXY~Cz^A{Yb4xftvGFXL^dJq8e7&R
zDUaG|DqYOXTPC;M$olKA^K4R!g@J;%(2Ept-UZW=7fS0z9k5Mc)(qV^Bjdc>qXP_)
z(`>6&doE#S&Nwd@qSGYO!22MsFZKA;(gfZWO1wJ{9#ok-t7-jywcEFp(q`^-Puarp
zY?4dnP9H1NR%sa)&C|gjx5}J8H+2i^8iwspYNt&({YBocXa0;0I=*W;vuuBeep$Tt
z>dKHQOIQBv<a}*kGh<1N+r9M4+6|MEUosePuC6rw+&kwq*HkX$;$o5I%R7%Mt*yBv
z7IFT6`&;Ye<c%JMRkJ4UwB(w~Rit;idzyZ+j%>oYowpB!Cb-@+=bFm3_;{b8g)#F|
zp|>{rKevj#KIgph$b&OHi;wq}HdNj}v9{Fo_@~&i#I)6EWmnJSd2sCuS!86tzEfEJ
z#r!!vr5oP9-^7w_uQ1`=_uC7sBK|)~nPXAdbn4HZnw2d}64J~+Z4KXj^NXL|vpKi<
z6k{fT;oQJJL(Z<s<mUa1fc@qEx8Lt|UmUmn+hKX8QqTAo@0Wi%rG2aZlgeTD{z=LI
zxqciuv##>}_RkuQLZ54F&&y12X#KP0-CKES=~ZXWt=hRUQ82=~{M@^`&%L{DwlNEP
z>^`E!+^ul>u91;tW_5g}YjFNP&(yN8zsboArVkF+oLzcvkw)SDssAmWo9P_eoEFB`
zcVegW-^Y&+_wWC=>(W9+@3yupcD1*pzFIB3d1RB%wY=oC``+2Aj+0I-UHLO<V$#YZ
zPdbHX*;P*3cr)^AfB)<`yVKL=Gs|<FvwFXM_kuFf&?FAuCH)icvH4lNkJoy8*V@R;
zTwRol$L3?p-Pow4<jR?Eqqk>-tWLRoTh^AT;NE0Do(thC4GatqUie~C%_p1m{?8sQ
z_x?-vW^R11l8vo>pKt#;nbnzx@%dlBgVM==x|i5{Tk%Y3Sh98J$y-ak|2)5>x@vyi
zsbimvzGh8b6K347B_ybR>7fe;n?w3!5^M7MI)7G93R-!3<*b>yvu@r#w{t&J_9UGx
zw|}VIl#R%bo$k%ze{$z^71{S*ENRcA?$>!Qj#|2LpI>(I<O>-Bw{uUwclf!_j;r6+
zEq<rZ{}&oZ`&<MX^&9xlzG3eEnEd>&_+70(>Wy#JR$097z9ty@PvvE0LVeH1^G+HO
z94n9B5DndOxK{JTPM>?}=YCJCauH2%EHG=k@FnxsJJmnuueB;Z_r6}G*rMope#K%-
z8*UrMH_MfsdzlV97|P!}Biv;D)3liR$E`Ed&b*N-I9t7c<Lo<M0}jRdYrGVFm)3B9
z#?8h(Pqdz&QkwMYfYpYqH0??Mcw<aAn_d@v_ipz0g`!9A-kELRKlA2>B?oO@>wKH@
uVcSg8_mi#i@9W>Qc@%Q@Uw-m`?(miS-Ykp{sAOPZVDNPHb6Mw<&;$T0(s6<S

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-hdpi/stat_notify_fm.png b/fmapp2/res/drawable-hdpi/stat_notify_fm.png
new file mode 100644
index 0000000000000000000000000000000000000000..d729ffb21cc19227fe5c78321958d26fd055bce9
GIT binary patch
literal 3328
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
Oz~JfX=d#Wzp$PyPP9hrs

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/bg.png b/fmapp2/res/drawable-mdpi/bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd10f0b2837f6a656e9f35695671392de488ea1f
GIT binary patch
literal 103618
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
L{an^LB{Ts57CT<j

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/bg_landscape.png b/fmapp2/res/drawable-mdpi/bg_landscape.png
new file mode 100644
index 0000000000000000000000000000000000000000..83bfb23a078584742cf90aebd78bd6961d9ebbbd
GIT binary patch
literal 71074
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
WNxK<sYRXGNZuWHbb6Mw<&;$UVh8PI|

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_left_default.png b/fmapp2/res/drawable-mdpi/btn_arrow_left_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..da077e66eb3ee87b114630ec98d294cbad5643dc
GIT binary patch
literal 3743
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_left_press.png b/fmapp2/res/drawable-mdpi/btn_arrow_left_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..b18c85961a06d10d397b09dce2e04181b5ba3d1c
GIT binary patch
literal 3824
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
Z3|<eeByCptwieWf^>p=fS?83{1ORfIIluq_

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_left_selected.png b/fmapp2/res/drawable-mdpi/btn_arrow_left_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa5ebe42b013ffbdc1267d4035b29da88bf7b525
GIT binary patch
literal 3676
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
Wgn3r^(?#1s{Y6h#KbLh*2~7YWncG?b

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_right_default.png b/fmapp2/res/drawable-mdpi/btn_arrow_right_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..696f53a91f3437624b3b9621326ece249827e7a5
GIT binary patch
literal 3760
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
Hr-UW|={yk0

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_right_press.png b/fmapp2/res/drawable-mdpi/btn_arrow_right_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..069df33790db4b26620df47604d4087b2b429461
GIT binary patch
literal 3847
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_arrow_right_selected.png b/fmapp2/res/drawable-mdpi/btn_arrow_right_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7d797b16d5fb8c19c856e48c539c652635aba93
GIT binary patch
literal 3678
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
Y92G5CWVgTkDX7Qj>FVdQ&MBb@09P&Lb^rhX

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_left_normal.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_left_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..2d7db2b965501442d7c6c404d2debe0d38e58b9d
GIT binary patch
literal 519
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?N>3NZkcwMxW_#x~8wfb$DhPVKsoHXHVf(AV
zqUJkle^{PAzr|u5@@kRNimK3bGd}6pFVFTISLrf4wqmhU_FJ>d?r(SIq?p$RZ`cs?
zzVmm%-ne+rgz2ZB9@Q(~ar<r9ga@ZKow>8?fT(NW<Oi>I<uS*EhRSlT%baC*Ao3Ew
zP|Wqx<c93qWl9IX*4ndL_;<B1&zimcS(?xt10J;lkwI5VW-O~#nmjdx`woBdymZ+I
z#|oFse0(UfIE#DvhRm;0p3m+aHN9EJ{$kO}ZO?eNJ^RCaV$RJ&k~vXlC$3NUe_)Pa
zvH$fs)oRN_1)HOaPfKa06<qGJYpMOyxy8%*jjh*?f&-k5X6YYH)eD%uzb<&~?-WrS
zb!iuSpVh7<(X4(CSl*qOy+Jl{h33Obn>jOXXZNu!Kap8Gqk9oYZeMh<Lvg&6lG5zt
z-nCQH8@nIRm>niH$2dJ+eoMRa@~PbAR&#e0curdIphj)4Wpk_b{PQNoZf9fzi(_`^
zoDN{0J5`i*hly`s!L~CjdHGR~bGI*g@a9O>jMJZOR1e-{i#@l^`Cr7xyXK$X*?oJn
eZ$1+bgW|2PCmL4FO=DnSVDNPHb6Mw<&;$Th!tQPW

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_left_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..ceddd76973edc77cfd4084adf6516da514f80c6f
GIT binary patch
literal 491
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyXucwP+NX4x;vmE^n8wj|jtFf*-FwuguylHj;
z<29K^(<DxhOey}tNsB%jtx}EC+TC?&>eny-dfsXTmQRmz4*i@Gm3^*qQRXH0#@^1?
zKMnp@R#zxB?%h-O>^9f;&*v^(t3SV;b>062S1TUIcR!9cSubTMx7zf;jkAFB+Dgp>
zO9OWn%;RBuF36X5Zn0&=nn@>k181z>@iY8Z_|5{SHtjPXyVk9+l#908q4e;^Go?8j
zu3I|xId|-sdHasQBM-A}mckzr%vwx}r}Hk^8GGc`1F1XvbyS(Emxb{btkS*4`|7|(
zG1KKwW*we+S$4+eKPhX2qbID(@LN8Ad)p1E*PoL70>XEmldRAT{1W73oWA>}VvmgW
zFPrqWitCa!Z~Ct>Decy=pS@UgF1tm<y3^tAotb{7NApyV{n}nDn0$0r_r^zOB4eIc
z{J#F>$AauNvOIYz<}F9t7R+S6E^~X1$g>k0Z|U;nbv#QbxHkFhU6<nW4Q&dCGn;q+
zn)Ui!WKQh<dDpaSLKZzQE|vIcQ}%MtekLA<uV*K%=*(dhXJBAp@O1TaS?83{1OO)v
B;XVKW

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_left_selected.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_left_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc40887ebbf52b5ca9236308a2453bd8c8f1697b
GIT binary patch
literal 511
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?LQfaRkcwMxW;^;FHV|;N^;{x$M0AH7cOHwm
zX8Hp$k2kwCHMrKkRrC!u5?npSV^2u3X4dYF^X`4`k&P4$<t^qFwDeOeK6}&mir+7R
zgvC#**6q^Q@Ap^PaQ5}>kBi%H@7=uS>g{)%o4w~pi^SxWF~{U(iQV~^-O&A;nfsl9
z@0!5K0?io_%By>ythpA`HZwT8Pjq$PgP>=}R%sqQld2aJz+C>1@zm7=shcd#WY%&o
zfA`?k#<&aKCpPv)d47pd-*Y#jIAsUVZAFua;)4(MnkK(_rgm7A(L&`$#N9hz0wa63
zMBJS-`?t77*18v_+Zl>4xE{X~EuOe;x6mZJ^b^Tvx7KVBp4+hcYx-}i*fXqG4(F*Z
zj^NH$y}r?z!}8kG8K1NEp3735&7F7dY^8AAnQupf%A?Y%%-prZWgoC`ET6R`UsZLD
z!lqnR*6j*T2aT@p6TT(eB)0liMB=kIvko8C`qsBUX5#~|-OscnVhoM8x6SOnCc~ST
z|1d9Mqgld^P1_2#8|>hZ7BDH+W-c#3-xPiP-xHI=^4czS@kh3Q{`a%uukHbcuSZs1
Vm2u_ZWME)m@O1TaS?83{1OWI<<YWK<

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..77ee4bea901d4954e5d163f2376c77b78dc094e7
GIT binary patch
literal 604
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?KTj9OkcwMxX5Y_iG7xExUco2y{#(`Vd(LkI
zYk2Ovu%D1$Xw9y9=u4V(q@D1r8A1B9^zW~47wfrJoj)z>TGZS#dZy|26McT=CHU^J
zn-eF)*S>wT3D=Ff{q<AdaZOLXxqQnUrgE#fL2sF33T@<!x#oPB<Gy2&hL>S@(1TAl
z>)m&3(ve=cR-@ohvE;*7yYiOGMRCpf)Kd@|y0uY^o!#WR??WrY>wynuE&HfEhet$U
zv-Os@rY`0@YZ#(b?mR7WJXji=o?h^aapvaB5xks!XU<-qb3ig>O_tt@B{MEJujXzJ
zP@K^GO!pe&IpynfcxrwyCB56`{9-GUQu0^l#j`#e6#uh4^K!<XXTSKe`KG+O;a0rC
z^!oQeiOX?QeUeR=M7-x}+VSGY#!K8xH-CJ$ytS)3WbKY7hxI!}^ICtG?|7)LxW;n#
zv0u^_kG5?Md(E}|(Aom;`7Np3m-*9{bLhOgU19oNxwtGt!NR$(G*7QfX_;lh8slQN
zw0G+ilyv6Ic$^c>+%3&!)|Z^N#>=ZISgx{WL$F2Knk-)K=W{;KKFgNv$7oofcr@W$
zhh=|D@P@Z#-bT;oAD(mQ;F+^Yrc1Ks9_-wz;TwFW*U!Z@c!!0j5YL=bRZ=@TSkyNj
zyPVZ~Rqk2k)t$2~HQT1&&6^(Zpk?{~^}3&qce&?3`D*j+dgXo=2?mSo*k*aQD?AJg
O3=E#GelF{r5}E+E4-T>b

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..19b33af1bfa53b4658f1da53957310456d2114e3
GIT binary patch
literal 581
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?b59q?kcwMxX8HOZHV|-2SJU0gz@Bn+?gO=$
z2IT@KF^*Es4wEZsZ`6(yMo#tE<FPSi>%9p7`{wnziwxanX0OcJ<@0=(ar~3%_qcK_
zum4r6uiUkB@?mbaHxCQv+g0s2pFVMm=IYw>^0O}|>Tj%l8gZ*sIp&R>irhVmg80N1
zZg=&+Rs|3Gf;6V{F-}>zu!Z|o16Lb2TT{2{oKy!t#(5g*8qujq*;nM}SDyNrd5$rm
zZC_Lghs2yI1qDx=HZ<i46(<V>-MI9it7W!^y2;b5Xw`;?0o%NCR|iZLE^tcO(2<;+
z_Szx+kkH%dEe(u(I;)GO>nUrAoh;aNXl=p&D6cK|CoGM+Y8kp>t%U*WZL7|mOXegc
z_br>F=U{odzeQ+HVcE(#pFNMLwFKna+RhNZVz<7SO;^=Y;NsGjC3AF_IZNbhy1Z1w
zz1wnSZYZ<1dP?+8&cu5^9VHk3z3)By;Sx8lT^5Hlbz=SVWm^x1u^S7;Xe<}n9-6uB
zR7SSRthEtOog%$54AYmceOB6cb^o8|&0^ck6m}#pmAM)=uSj?Y+cm{iEdrB@ik8V-
z4ZHnoAJf6orA2(p6)du~Ev6LR7CLvZgx!n7XpSCx-gd3>$TOzb_c<yDU;cLa7mxmw
n7Y5<t+GmsN_kNFVU}PxVd~CDerJ33c3=9mOu6{1-oD!M<>N)oQ

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_middle_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..33ca95cd8361113bd083667eeb06081df5570681
GIT binary patch
literal 616
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdxcm#2$kNX4x;vwi&z8wj|i&vD?s)4*KB&BtV(
zcy?O!1}09$kHVLZ%}jhVEp1j_#_XfvC#S73i;VEkH+t;3cGId$A<Z){C)r$`RjC;L
zrR_jl;oa*$Pd|Pu`*+X523s53<^862u4`ZX&fT{)O;zi#=jXfzi)TyzN<8?rO*Kne
zX2;V*GhbWnzWDG!>BX7dUP7Ym>(tZF>8U)LA}IK^AnO~;i92F*99l!SKR6S`)WWm6
zOCpy)#joHYPe#M(m#dnltdsL=d&HFPSDmmUhi@g<_nn2dti>4xd)vD+X1~@@G?|w3
z_xbI!J2(~}TFT9MOL2<Lor1*&-ZD?Gb4k#A_N|HgA5*Hq&kgIGqtCoGWGik+<Ylqx
z+PV0QYKR-3c2bPu*<8^?C$r;wW@RuNMgLSe^Hf=}Y^p>;Rq-+RQzw?PXhxggzWyqq
zZ^5%XLAQ0qQeK*t1^KB7#U6>aip7k3<|{wRX?^!R;cTGBGd>gczh_uCwC&A_pFD$m
zPIaloHXX13XIPEfr>wI&FtO24Vouiiug8?b9XJ*36rHxQ&l2F|J3eQxa8>cty`jpj
zSLaL3GIcY0K7Xf7kcLJ5G5K>Ht0ehio*s^xf19O=`(DhZu(OS4T=~-zOoi?grL5b>
zz?J=a{!UA=n5#X9t2kM{TQ;qpaOSMcovT|#?H07mI9~eP<e<FvjB@^mxpx;wzm8{Q
aV@P`SYTuOWj)e>i3=E#GelF{r5}E*bOAqh>

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_right_normal.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_right_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..2de79b549890f86fbf8dbe66789793b21ffa1d43
GIT binary patch
literal 483
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyXtEY=&NX4x;w|(=P4FuW}Z#!@axxd-f{%Ye6
zPOYVXB&{B+XmziP5nI1%W6PweUtdV`8@hcwUbtg*+xIy2&*5ihs!j5|FO$>pdhZqe
z*z0@iPB#2}w<A%)E~VzurRqn=_Pu9U$&)$mIcfHU9htMjJoDWiO-t>(#4p%6`?;l8
z)oj)2jki^I%63Ly4{hY@>^7`otWwFlZD!`DpA{)9x%_0Jv=XDI!QCBdclN#K?C^Ql
zXuV>GbEC%`J9mu<UEa*yo1YXFyi!)5Znxni<LY0NWdg<LowR(Q;m@ufcI|&?SXEKq
z9f3Q)WlHbPy*_8NX}ZPXiG}^)PB)(HnQF@JzUODucByj(ZM&;BYuYDP8TS8rZ<l}a
z>4QB}P0e=-G)*;Kt@z?3>!(@CW-ZgUXmI%-wUqLclm8=mTxa#Nwxd&1D?>tCef=75
zJei|%+~#J;jkjf+pKL0)@nlQz#=BZ8TbE^WX{}rF`c^??>d{9_qPczfJ13`AWZvGk
s?4jPz<fHlOpLWUre!b^D6A!})<?kK5RXeR27#J8lUHx3vIVCg!0P{fF?f?J)

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_right_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..41d2650a5ee28678eb15c1eeba684fd827303c26
GIT binary patch
literal 488
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyXm#2$kNX4x;vmN~oJMg&XvcF*6!JeLU*||`#
z?-1)QhYnRIliVbm$t+E~vSuA!{7K_pU)=xi-+e?~@5Ww>S`}q>dF!_|(nps?H?Dn9
zB~|zI^kVPdrxsOLT$}CnbE~i>Ym`*z!<7Ge`|6Vq{d^d_=kJ28cNwmivrkMu-ST;z
z0GG(R>kJ_VG5H}Ds~Z9=7;nFdVq93DmmS9t)+%fy6SFg}!`EEPT;$b*{%&otyfkfz
zbxmI<*=|1*wops`%e>QD=56<xvFPlSW~OCD;+pQUoYM<9%Z<EBbY9H~ZoTEj@>_nJ
z*wc{Uov#DWz0zLDl)h%x6mGjh#qTngu01?D=fSJ|sNPv&%;zny-fwv_$69->+dIp%
z^P=;#tpr{~b5?L1KiTiy;(vVlQRm6)X6L9LD{azVCHcj)YHMiktZN)DTH7<GG*qu!
z@yy`qqxa3{a&ixx+Q@t{;Gxu$xi620C2G63Zoa+3dQ}nQ@)V18MU2a4x9m3C;j6Ws
xXWh>JN3!v&Ya$HmmJ}Ar?=HEY&&bA*V=|H9!p7~B85kHCJYD@<);T3K0RSAa*i--j

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/btn_strip_trans_right_selected.9.png b/fmapp2/res/drawable-mdpi/btn_strip_trans_right_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a65e65f555acb145eb5891ffa93dd5021b75abfb
GIT binary patch
literal 515
zcmeAS@N?(olHy`uVBq!ia0y~yU{GgZU<l%1V_;yo?sL|ifq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?QcoAhkcwMxW(WEmHsEo1yQGKF{DECeYjOd1
zody4NM$V7Six=hgOfHlDaQ$Mx`&5sAy>auCk4J}^8b@ZW%(~|@{nqB3C$sNy<yc-n
z{9{UgxthGb&aT<jxm-_gZ$9x`xXag;E9TZ-D}~cBo7<&tg)O;zvF~omy4NbTWf~jK
z9*oJKRMk97+NNsZp_#Y6Lw2zEt&Tq3;9=qInIoZfCuc{{x@jv4GFe;>-DGIfeijjH
z!N2bRK^dua?s4mmZ;6Uu{q=}i&)Z_NZNh4IL`3t{V*Uv`2Ai5^w=&NOxNNm_+brvo
za{|tKnr?S0j+{N|ve%NwvxPTVUNy|xy6#v^rRtLVR)(r-#pl$QJqdGKbIoAi4B?nR
zIftIur7zqzN%;M>S=X-4<o;0Ucj9W-yyqL9se}~2p5@iIc8S@;tFiHpr`Mc|+GZ|(
zN5=Q=26OQ}8W9C)d;M4+CP=Mh73{Lja7?jSv-8FNRmxXmz9h4^3G3aN>0#4;$W)qN
zD`uP6_7Ds9>}?6fXIa0V$vs%0x^{ZP4iD4v(zoRj>lMU)Zb<s&@%Xw;TD{!b{VWm;
Zd*?51+2NYl#K6G7;OXk;vd$@?2>>!i<Wv9v

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_earphone_default.png b/fmapp2/res/drawable-mdpi/ic_btn_earphone_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..c729ed0e7a7437cd8252132e0ae10adfb490b998
GIT binary patch
literal 4317
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
WGx1iu%P9s11_n=8KbLh*2~7Y~%se3g

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_earphone_diable.png b/fmapp2/res/drawable-mdpi/ic_btn_earphone_diable.png
new file mode 100644
index 0000000000000000000000000000000000000000..c0929ba678b6fb88806c8ecd0ccd387b578dd9de
GIT binary patch
literal 4220
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
P1_lOCS3j3^P6<r_uR_lE

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_earphone_select.png b/fmapp2/res/drawable-mdpi/ic_btn_earphone_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb51ce1bc8b087a6e5f12f3523b2e4a53bb7edd1
GIT binary patch
literal 4254
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
E0CVy6w*UYD

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_onoff_default.png b/fmapp2/res/drawable-mdpi/ic_btn_onoff_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..9303cfbe9b7e448dcbb054e9b4b84c67f29885eb
GIT binary patch
literal 4775
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_onoff_disable.png b/fmapp2/res/drawable-mdpi/ic_btn_onoff_disable.png
new file mode 100644
index 0000000000000000000000000000000000000000..57e060a6d338641d5133f47c2ff09d23dbdfc4b5
GIT binary patch
literal 4663
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
YEy1m4tW*sc7#J8lUHx3vIVCg!0Hgrq`v3p{

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_onoff_press.png b/fmapp2/res/drawable-mdpi/ic_btn_onoff_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..1228a66b3ffdb5599fc1ea1f34bbbc42d8177015
GIT binary patch
literal 4696
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
B#329x

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_spaker.png b/fmapp2/res/drawable-mdpi/ic_btn_spaker.png
new file mode 100644
index 0000000000000000000000000000000000000000..b72fab9cac20a83f9687793fa736661ecda2aad8
GIT binary patch
literal 4879
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_btn_spaker_select.png b/fmapp2/res/drawable-mdpi/ic_btn_spaker_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..250baea7d9f15dfdc8352c4f4571652477fec737
GIT binary patch
literal 4809
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
S9T^xH7(8A5T-G@yGywoRs0=g!

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/ic_launcher_fmradio.png b/fmapp2/res/drawable-mdpi/ic_launcher_fmradio.png
new file mode 100644
index 0000000000000000000000000000000000000000..3361ad56278bd5ba658dd3df9f7d37abf5de99a9
GIT binary patch
literal 5782
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
B^ydHo

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/recorder_selected.png b/fmapp2/res/drawable-mdpi/recorder_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..1886ba815cce6541a06181907e236a42de35e5be
GIT binary patch
literal 4016
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
S{{0LL3=E#GelF{r5}E+XQ=&xx

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/recorder_start.png b/fmapp2/res/drawable-mdpi/recorder_start.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4425e2e0e48a39365e9300b4bfb69069e5c3d7c
GIT binary patch
literal 4791
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
E02)Cq0RR91

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/recorder_stop.png b/fmapp2/res/drawable-mdpi/recorder_stop.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb8b32b06f2af57bdd7e3e5ff1f4b881974333e8
GIT binary patch
literal 4930
zcmeAS@N?(olHy`uVBq!ia0y~yU{C{L4mJh`h84Ci*D)|~S!Oyr2Lxo~m*f{`<QFJ-
zIy);A6y>L7=A<$(cpRTQtvn>;x>)=9z2#L4&l)fVwcXo&fZ<a0<T%&F8IlPa%zVZs
z8x<EZ3A(z>Qt}8m(r__ACCp``fJn#&b`=f{LkZUqoqV@z-Rsuu`TptC@5gKM-){cC
z^Y@#*=cB|KCN0;WKAp{*al$F#56w1nUJ6bOEP2Dwz$ll{pvmA9=C&(-Lp6uM$<t?B
z=P4F3#j`MesEXLbRB-u%af2WG|M^QIU)D6fn86@8d$Xmaj-Yslg{t=iy=~{aW=Kuf
zNs~}b+o$0uc)HUvaU!qXZ=FqxXWU$Av#sN(<?_wJH<R9pe%$7x=zgSQeFwMk&N(`Q
z_k}jPbs0?6eq{dWMhKrVGlPg{j(9;tr;?eVVW+&%6QxH_86J3W#uwfR*Lje_ePnu(
zr}z1X#lk|YC9>1>?q0by%kle@l%)kMOotiNv}c}7zZ`oh=<>`xG7Mtx|3n%+x^>Cb
zb(_i7ZCgxCjE(-T3ix08Ip6EfZPzNvA3M_p*8cB)yZ+B5DTahIomrbdck8a>YB;CM
zaN_Roq{|iz4NF$!%U<8Vi{IBqzmv&vSMSEcu&`-@(+?X7iGSh$>)*bA;re~)Dt7Ps
zKV68m{OFU|)u6XdT3c7u_r&t_CB~65yB^MO{~^!*uT+lBaZUx_{KLYoEuG7HPJ0V%
zoqhZn*N#jZtLfk8&-%fC_}`MFJH<LL{SXXD?rFGEs^w7kmR*BOP~qb5qp|-N=kNPr
zpio!&P-}8`@&EVcf71^xeWcnv`-9~<RgIQ&LZ6JqzaKd-w1AP(gGp-w`zZ(67Yxn`
zY-<{H3s~|FNdIUS5a0}B7V}_P*}%WaLGA_%m!shg&TkD_0qjza#u==~9n~#Z&oz5L
zklMkR*Zey{#HS%WL2M5jw*X6`qLEAE6Gc%E;Y;mj6xdSucRKD15D?)!>clC)FXU8t
zA#H_(R`aTbRVyTa$yssEZC~fmd?7Z2XI5KX`@Mr4K20k(2(4k2KFo82^IN0ygU|w|
zJ#6P%xgW?DsNP|aZ?%5#`Ge^XGaD}Z=H~(p0)kSDx+Ii%j<9}oUo@ejrGJfk*95L5
zjG3;xCfYqwGwM2{kRK=^!s_ZSxhN-a-iiPb?yYQF<wBcQxyibfE~pAL4@_PWdBxpC
za&5;o_uC8hUJ!i2QX;lXAht2jY5QXRMfr=>FRV9|;Ne}|yYWy(l9Hk4jIA?-&e-`#
zKa)ulFz%aqIBDajh}t!>*W^zh;o8u8L+ef8o5(i;WlX=>+>fk$aHinh4h<Rp>HVt@
z$R3<~koTclA$Nu59<_UH@B7mq7k^m#!>z{rpH&^xeuoKa8NzQk6kAjdsX3`GoLVsP
zL&Jwj9xAH@*LF6#=oKn&oK(?MG1J1W#(R?D%ZV`_7gZE9*<T90lzFN5Qgx=!H6`mw
zi%&3p;wv)#$@Ek3XD^HEA&*1eO}ZN$7r8BRPV#uPQzb4a_>yPQ)|7QAtxq^lzMf<p
zRH3P>DXzKfO4UlKm6L;%gNiSSWCmx}zYKXP^iug!_>$!*8;qii@{Dq3GR<r@5>Gj%
z$>BQpkyB!zS+JC*xTbIjPw4DduD*-Jg7+`x3rJ5*O__eO?PS{NYbWMSlU=H4qB~1m
zw>8Ym+E04f-snYJj%0GCpZun}*1K)mnbW#ci>Ew3A$oG_$-C34)%~ZJPxha7U-iD`
z{{Y6N3ziG4n6Pw1{KG|u&IG**y1jJGQdjSO{k_XMv|nkmX|4;kS#e{%#quR<o-CZQ
zE@WwmW2W28Wp7r@SrW6Z#;r1{by3p#L!p}Cma9Ka(eo}}wETkh%e`MBLtR7tLl<W4
zebw-)Y1X!=6;b=5X5VryZL)H<joTZu*S$8(+4Zo$vj1Y&$Me+UCNG@1VrTef|Kd3B
zXziHn)nUu8P1!bQ+w`(^W!>MHWjFOTpOc!)HaB{gL~L8$rgwICrK>i~YmHkJ*L$zD
zHsXHJ{MGyY>n||mCgdJ4&M=TLRFSljOq1Fs(I<Jar>6H)uT}3n>1+vi$@fO@jQ?dM
zB~D7Zlu>j)<k*$lCil18{!(siYdkHo_oi;~rk%TgvVGS3EPndS^ulRx<I9dWB|S{v
zcy-b7N6ky8s@~spwdj`DVXbScu4T12rm`4#NlagR@!Gj-(rf%9_ix>}Mev5q_Md03
zT`;@(t>f*LqPI`yJncPw{Oy%DGs?b}E&f*WJK{I<x5a#`_<Y*g+K>0W>dQH<cHC1v
zcDc&(#eV1K`p)@z?(MnHdS-gBW6teVS|_*8bsck_QQpG5t9ku*uHF&86MZM$R>$UA
z)tt{R)xRp<eUkYY^eL&*wEApSbmjWb@4hPjWceNP+veNV&rg4s{XSTCuWt8WxiuGJ
z4n|*m$^U2XpYq@KJQw&Pgg+!Js2M11Q2XFHAu}K@Al^XLLhXmght~qnCtRBFd!g0B
zLl@>5oZRqY!?O)P3$B0I^x-1M<Bn3n>q??ZJ152l-dM3=#j+JUr{-yYUo)p;TZdkc
zT-?&VTGdylUgcUH95%miVo&0+IUTOY+m6e1)}H^8Zf5ZO(Vj<HkJBRc*6dxAp5tC-
zSv@QHxaMP@W4Dh^KkBb~L-mc{48IbOH6C*w?kZTlQ-6}p<X4lPP5wKXU$x$g(?8Su
z=+a}$<~=$2VN&JZ%u|^+Gn-%jdfEDNadytNH<8Atzdtljb&y<bw2LL=;`xyM0q#3o
zEv9A8kDUBdO<U)+%eE3T{oVHN`svl@Qr1<!+nybm9hqJIDde-+)84hkQQ`aLqU5*l
zOK<+w*2F6;ZEGfX&*jFHJujEnO#ZX!Px$P^=H=oVqB%Me_aALsx-?+Xgm{ZhSIe^R
znq4t_x2^H*v)ik;)$1gQ$LgACuG6TCKcuzuSMN*nsrPGc3GPo`aAi};f4?(+_s%_x
z<=f3S-E;cWX}#~i-M$;>r?0P7zg0c${M4>g(b8(p>egy^?ON^Kt4vmvh3#GMw`O1L
z<Cx1~t0Q*rEvu8SzJH<a_}{gqUZqD%-}4pl-&y&6#rup4St~3$EN4`H@Jx<KzQ4UE
zfA(yVSzWX3WFE;%*~*mc*nV@>&YvBRCSDTT;d;ZU*5ucV-uE&4UuT)-tj%A%RaBn&
zc+2s5b@IReekh#(*j8OaJ*xh~pM~4zUW&WISo);oOqp6)Uzuwe@4PQ|H!tVjzWZ<S
z#r}4`mGf3v>Q?Xi!t>DQ;7tGY;`8U`dfS^9+dceK;qP<)FSnq0-dDD7d@)~kR{Wgw
zdntFVUv0Yn?O40gqt8yAT-~#J?sc8@rC*}IZ2zC~G5B}GQ-|ZFt6#^OugNdr*ORv~
zeqvDaZ`td!-rM)&#qQqw=-Y#W7a!(Md@=E&^&9Kp^5A#-c1*9#fB5eh`wMng{-ttZ
zHbFI4K5Tw>K6ml7#mkS!9RDTHZokj|oK*cc?_>J!)w$+Pm>=S^%E!!qrtjQYW%Kua
zEO~mlGyUaxu{5swssFZq+j;J@d|mOMwe@C6Wsg|@A6<UmJMPqen=e^6SI^tou+x2g
zaJ>E*@x2r4i+|`o&b`0;L-}Ox$oCuHYumr5d-3nZ=Z^=MU-6&+kCl1G=RdoSytvH3
zz`&N|?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETHB*iVkZ~0LB
zF#`ifm#2$kNW|g2Gw$cd92Groe}86m`P;1<_eS3CEKEw$5K!k*$ngmY;qr=?T5>`B
z%D+z6x6O?LUs+w1x<s6WE^^4s5i=<Cc%#-W{QpLLdAgtcw{?+CjVzb?Om6MnRi3u5
z_+0t9IiFkEGt!PN&JugfTs!^Gq?5@#izl@;Ixe_>Cdkw7z5|1iXQ}aRrgxUl-`Tv8
z`X$N0F`@YG^GQqg9#DMXX>85#W~xa_nyV*+Z^Gd-*HqRr#52uL-lq0Ei@}g(Lcz~H
z{5(2s4UG4Gzx%vl$@0c@pQ<o}R0GW!3|iMV#yB=OdT(G2X^cK#exTGideTkP=6cKb
z?-^Ulq&;`k%$?7YmiEM2Jtb1<{co22%zjFH8Q!QLvvcy`R6MG4^bGUex9&?CraY`&
zZhhTgv-AOb*7p)~whFwm^F91G``xLH5{J&Qr!A8><e0$slK;T!1Hm&auU%gl)%vyc
z#;v9>Zl@PMkM=GODB$5+Hs!Q|71vXvNpkF34aajhUM`wht9epI(CNm<3;ZYN&$lxc
z-XQ*x_kr#M55JP**TiCWGELV%{75Ng|2@VVIc3i@#1_W1t<<!rkw{BVtdsLnWtU-b
zYfPW;kMED}^F@DGXeakrJm-j<rXcH5<$OtA^=xw3w%gkuo)UfZ^YgJwLOS|~U#*IW
zZ;#@=^|od;=M*p5g5TdH+4&Eh;d%FT`q9tl7heo)C^i0l;>^Fso0?~)?auq#cy!lB
zuY2Daiw{Ik;)~``zO%DAc3)0mVq?WCkt?rdxl<#Lx9;7jdD`l|nc0J9zCYd=TNJbH
zuDctvn^%9I#<w?;6Tj;-_bc9=RKm=$_nnW^Iql~%iY<u`w!bQP)iJZT;5pyJGm_lg
z+((L^_sll0KELB_)u!YYiC!Jytx{{&3;WIQ%S(3t_b&GH`n_t>^7`IZOfu%1vp60q
zzyBL{y}0xLzrb3l3S;$O3-0do-BWXOQ!DGO_xrfN?vhjDtNVZVR9D4wSs`NyDI;@h
z?cRQVrv2=<4#YkPGT)|ZD<jP?k2Q{A9#hPYqSkANnBEpY*C}&&y71NW=FhcZZ)@UL
zN7|I1dvv0MtCi{9kB=(xucJNNlX~V`Ki`(zW4)2x^S8=bk6Za^=dw(r#PuQ`|NWkM
zZ^uKU0JdrWwV35LtS-+fPCaVsH+NC#!=}i!Z8KFTE&H_fJELs)vuje!X${O`PVq7E
z>br|tuRT&a`!@HH^Ni<?XP$4{UfA9J<MVUR`PF>kdf!j}W<Ib`;&EH?yRu2q**DHC
zQ}q=}mRc1$OI-g_MBK8gSznocoBr6syym7$d~NIQ3PE$rPH8#6k9C*M%$u@><<7gJ
z9EVGc3G-Vgw0$jo)!l6p7Jl`d(VOFb_w`L?ZSvW+t4mB=bI&g=PmYzBO5_U;oMEdv
zX`hhR?=7W%%p@ldWJly$A*;q<n_X(Ra-FtzO`9%x=T3`6aDvVLZTr~Q_+QcpFx#wh
z<@J^8*D~_*>@KNn{Qm0lGqr8o+*VvS+{~iEyg2RJb?!5>Blj;+@poSnx%y&H;D^^I
zw?@BFa9eS8&2eSVzJuSHx+g{5^~k$-Sx@A|lDXY~Cz^A{Yb4xftvGFXL^dJq8e7&R
zDUaG|DqYOXTPC;M$olKA^K4R!g@J;%(2Ept-UZW=7fS0z9k5Mc)(qV^Bjdc>qXP_)
z(`>6&doE#S&Nwd@qSGYO!22MsFZKA;(gfZWO1wJ{9#ok-t7-jywcEFp(q`^-Puarp
zY?4dnP9H1NR%sa)&C|gjx5}J8H+2i^8iwspYNt&({YBocXa0;0I=*W;vuuBeep$Tt
z>dKHQOIQBv<a}*kGh<1N+r9M4+6|MEUosePuC6rw+&kwq*HkX$;$o5I%R7%Mt*yBv
z7IFT6`&;Ye<c%JMRkJ4UwB(w~Rit;idzyZ+j%>oYowpB!Cb-@+=bFm3_;{b8g)#F|
zp|>{rKevj#KIgph$b&OHi;wq}HdNj}v9{Fo_@~&i#I)6EWmnJSd2sCuS!86tzEfEJ
z#r!!vr5oP9-^7w_uQ1`=_uC7sBK|)~nPXAdbn4HZnw2d}64J~+Z4KXj^NXL|vpKi<
z6k{fT;oQJJL(Z<s<mUa1fc@qEx8Lt|UmUmn+hKX8QqTAo@0Wi%rG2aZlgeTD{z=LI
zxqciuv##>}_RkuQLZ54F&&y12X#KP0-CKES=~ZXWt=hRUQ82=~{M@^`&%L{DwlNEP
z>^`E!+^ul>u91;tW_5g}YjFNP&(yN8zsboArVkF+oLzcvkw)SDssAmWo9P_eoEFB`
zcVegW-^Y&+_wWC=>(W9+@3yupcD1*pzFIB3d1RB%wY=oC``+2Aj+0I-UHLO<V$#YZ
zPdbHX*;P*3cr)^AfB)<`yVKL=Gs|<FvwFXM_kuFf&?FAuCH)icvH4lNkJoy8*V@R;
zTwRol$L3?p-Pow4<jR?Eqqk>-tWLRoTh^AT;NE0Do(thC4GatqUie~C%_p1m{?8sQ
z_x?-vW^R11l8vo>pKt#;nbnzx@%dlBgVM==x|i5{Tk%Y3Sh98J$y-ak|2)5>x@vyi
zsbimvzGh8b6K347B_ybR>7fe;n?w3!5^M7MI)7G93R-!3<*b>yvu@r#w{t&J_9UGx
zw|}VIl#R%bo$k%ze{$z^71{S*ENRcA?$>!Qj#|2LpI>(I<O>-Bw{uUwclf!_j;r6+
zEq<rZ{}&oZ`&<MX^&9xlzG3eEnEd>&_+70(>Wy#JR$097z9ty@PvvE0LVeH1^G+HO
z94n9B5DndOxK{JTPM>?}=YCJCauH2%EHG=k@FnxsJJmnuueB;Z_r6}G*rMope#K%-
z8*UrMH_MfsdzlV97|P!}Biv;D)3liR$E`Ed&b*N-I9t7c<Lo<M0}jRdYrGVFm)3B9
z#?8h(Pqdz&QkwMYfYpYqH0??Mcw<aAn_d@v_ipz0g`!9A-kELRKlA2>B?oO@>wKH@
uVcSg8_mi#i@9W>Qc@%Q@Uw-m`?(miS-Ykp{sAOPZVDNPHb6Mw<&;$T0(s6<S

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable-mdpi/stat_notify_fm.png b/fmapp2/res/drawable-mdpi/stat_notify_fm.png
new file mode 100644
index 0000000000000000000000000000000000000000..6861a44646f9fbb08c37875f36bf4e0886f7655b
GIT binary patch
literal 3136
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
XOq-G(vqzkPfq}u()z4*}Q$iB}t)S6C

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/album_border_large.1.png b/fmapp2/res/drawable/album_border_large.1.png
new file mode 100644
index 0000000000000000000000000000000000000000..e5ffbc750af370c5431c6aa1abefa11b527075bc
GIT binary patch
literal 1349
zcmeAS@N?(olHy`uVBq!ia0y~yU|0ph9Bd2>47O!gniv=uBuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztusrv4aSW-r_2yP!(Pa;j*2JxEEI4<cxV%Q|c7otd
zx3VKa&lo*qyptWd^Q`V}n%NcP`sr`z_Lf{pu8+lj+ozcHCAVK!Tw1bcPI8fI*p6+J
zR~+ZQ^XJcz><9mi=KYK_x7-ywVRKndE!&^Y8Oas4^OWC~IbO1;eSCe%(Vb0wy^>Pz
zmutM<rkE+;_c^EQ`bwh%nx5^aWSTZO|2U@~ncaCSoaOGbn=LCjxv!+iYA2ohJjHfa
ze0l4d^Fmw0z6M_CHn{yEa^?mHPoGm7&+X*pKO36vyRNJHYMH<nqx0(~m@Qi!;;QYN
z-1P3V&9j%EH~xwHlBsijg=ygWPchFQ>%3VPAtWGb8rZJny1eql=e3uPIoIVEUYEbV
zw0Kh7-TU|JJvDQ)cK<e(m#F!g|83pRl2<LK_WpYL@PvwgeRcJ3|K!DAtBp-<eKl8E
zFMFx->g&;?N58#$mv?nPhn<Xl&F?=yi>KeVT9-I~>6<4R^W}doO*(F`{z~t<?FO~*
zM9rNmbya^0&(>V@NOy;hi*M?xZ|OP9%GN1|spXyd?bTo={55jbFHY?>Wzi3oM?Zag
zPQ3p`c4yS?hx}_iH8bn8dT)7!CitE@{wX&64%^z$|J~LMtK_xA>wlIQZ@sqSY5USO
z2WDNVlgckN4qcXgy;7&^tL0DOioZ<@Qf-*CL;puk<o+X?&HSLYW7V&PzZg5YI=MVT
zJVIc!!&l~2@<O4DoE9+&iOL%Xc5+?i2gy4ua$4jS;t_&O3yH3h5BNJ_MT1MLi>g+L
z{eoYLVD&5NK<b#xf&>0GylTggTI2+_W9ka9^egrddxgM-zZe%at<V!)6Uca#e-RVN
zT(B&X=0!}`R%~#C>6*SG;IG1}SM4C}5TC&GDQGSD#dwwfDnG~>AaC99X<V^N9%Lj~
zs*|fzD=^WRb<wK26?G0EZwiS{SOM|{>peBF`_cUicFu$qLZUE*tu9knROEMR*?kNT
z{r|&y?#}Me)%84^HL@x%{i!;^yyj%U39ETtS2ilWJXm_<l#JG<d0X9jC)us6TNCrQ
zUEy`WZSAkznZKMb*&LYlrg=^B#C2z1$#VtD$GY!nT(NXbvd^`B8yjb-&fWKC#jlM;
zU+vqzt;>55-6?hX%kI;iQ!6<(P5b)a=gKX=di!oGp2Pdssa|{V;+kT6qR7@Y|MQ|(
z{)_lM`Q=~3dF%7@^8Ai|KXZM`rRB!wkFtL^`Taq+d)NDU_gBrD>zQfwQ6ucs%UkJ{
z`k&tP6;FL`C9nVa_wJf^CbJ(ev2n=O+{w@QV*=~ndFku^i=VXG7<<FV_2aYe-+!9V
zb-nlGWoK90isT9J1XAWM)nS!A<)XWK{~!5)--o{`I&N2Nt)8?f^nGi%VeI@a+5f>C
z?f!1{yUQl&9l84$oA$B{pP)ranxXB7mTKhI{B`fVRr*yuwAMLb(IVB%vr88$<@wwz
z^t@tt+HAf|{oVG`?45GD{RcE7y$iG7m#@7YymZaSuMU2DCT)myJ+`sXZ}YF+T}wW4
zA2}lRNN?}=;626p2bNE{v-0@s+g5$)t@rDhco;HOX055XY>~>qz`)??>gTe~DWM4f
D`tXw_

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/alert_dialog_icon.png b/fmapp2/res/drawable/alert_dialog_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a7de04767eef7e88ef8e47c30076b29e2db639b
GIT binary patch
literal 3645
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/application_border.xml b/fmapp2/res/drawable/application_border.xml
new file mode 100644
index 0000000..eaf0918
--- /dev/null
+++ b/fmapp2/res/drawable/application_border.xml
@@ -0,0 +1,33 @@
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke android:width="1dp" android:color="#A0000000" />
+    <padding android:left="1dp" android:top="1dp"
+            android:right="1dp" android:bottom="1dp" />
+    <corners android:radius="1dp" />
+</shape>
diff --git a/fmapp2/res/drawable/bg.png b/fmapp2/res/drawable/bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd10f0b2837f6a656e9f35695671392de488ea1f
GIT binary patch
literal 103618
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
L{an^LB{Ts57CT<j

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/bg_landscape.png b/fmapp2/res/drawable/bg_landscape.png
new file mode 100644
index 0000000000000000000000000000000000000000..83bfb23a078584742cf90aebd78bd6961d9ebbbd
GIT binary patch
literal 71074
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
WNxK<sYRXGNZuWHbb6Mw<&;$UVh8PI|

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_left.xml b/fmapp2/res/drawable/btn_arrow_left.xml
new file mode 100644
index 0000000..e64966c
--- /dev/null
+++ b/fmapp2/res/drawable/btn_arrow_left.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_arrow_left_press" />
+
+    <item android:state_window_focused="true" android:state_focused="true"
+        android:drawable="@drawable/btn_arrow_left_selected" />
+
+    <item
+        android:drawable="@drawable/btn_arrow_left_default" />
+
+</selector>
diff --git a/fmapp2/res/drawable/btn_arrow_left_default.png b/fmapp2/res/drawable/btn_arrow_left_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a359523ea5c117212f7674dd83d3a912a393c47
GIT binary patch
literal 1203
zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU<l=4V_;wqWp97Lz`!6`;u=vBoS#-wo>-L1
z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@4)YHW=q~g|_Io|%lfg;DP`BnA>Ja&rZ?n<g*
zSu8E0DcZYa57)~k*82z6z7ud#u!-h)$jd3uV9!{X`{>+}xw|g4cJA8XTREl7X8FDD
z?bBzzWXOH)SFQeYdFnF7&$ItqKA%?|6u@)%!_><Qf1P?W;eb#ClXn8APNV7umTAZw
zy}i!Q{WZECo$3|I-nOiZ;q|J+m3ALE=P`sfo|{lyctQSxo>a8g0gh^}645IhyFAYQ
zXWGkL%b2@+l66RBn=S7u_PtTj(YJk6gxI+5AKp2A!RaT(?C%y&&|)#*{#{jCT52rU
zFTFA1%z<!`IrYrD4qls(#Q2((>v7bD%TuRLb@2E1FSeR{uRV!Nxz3My>E2m~BR8Br
zeL8Z3ns(zmH~9tP%+r=}Z-0}S!&l8|!CjV_sVTtKIxBePmBu!v#=CK^zt$Ym)6+{!
zs7&`>`td|lY(xY{Nona!t7tC1^n>TlpJ%tSw$4r5%QJ`7+T474<57dMP4iZ-dZn2l
zwk@@+%<RI&ix1t?&nBGZ5<8iHl>30ro6R$4N|tQvEWehxFvyiXEpfj4;)~C|efzd7
z#pvY@-KBh!Cy3oj6#M3?BJ`2@jqqxNZMQB2Cltj+v`5~!cJicWOK!=e&6ZkQCh!GE
z+_}1?uebN-?OV6xta+2Q+g;B+^a|kBu&}ba#j>IQ+qZ8ziN&@ITs{k0nUC$>)o`_<
zqT+@;51aIg%{w2wnZ>6QvFMor>pmuLf97XvE+0E|vZVFRloqCA(yJWQ1*S0tzfk_V
z=)d-s)qJbX_})J#DNIg&{5SDgQr|PLCb6{=FP!V^|3?;tHHv*&=$Rp>)jl))p_9~m
zE5=`3tE40(0vKHyO@A<Qr+mHlhOywlA<H>RihqT_aOM{j6a+9Y57kKeZa7_&;r+J5
zGUAsW#tL22dfU_1)+WM}f8)jV&7rqX-qP81n60pK_JMcXJvQiNGc@_#f4s2xse$pb
zt1dcGB30e{4UCK?6-q65e{1I%Yn`IU6NRO2`S!Mamwgqt?ikDZiHr?uS{r1y7}?p)
z<18=uWwzV$LHm2P(=$IXGk7m&oE7#yTIAZ9%)BFuJNa_Bd4H#{Ue9b;ci3iY)3-^7
zEf+3dw#?`(=aVnKljl60u6~~3wv)S(U`v?u!T?>~{JhHwIgbldUSyce$_!!nwJS1P
z^V5;X5f>!x-MxGF`i~9Yl02-VHZ5DeT-4^!!vbF2q=*Y9zMoAth<<T@wPoFFul)Rc
z)3fPp7EePHqF;1&a<VR{t*x!S%CTqPzJHQ_^`HO#{uOkQ|7ebT@tphaS|2<wSYA*K
zkX^z0Jo$<7eaHO59S+;(Tesf`<9fVd>g6xb<rjQ@^8EghL>Yr6d!;UgUHD?#man>V
zpX;}qxAUG9F5K67{N3`)PqsG2cuz7Yd%C*)=efkqbCy-EE#N<#(71Qj;WR(#yeF%a
v9~AwlXZYmLpn{fz!P$Ab@`rdvHU@dkj4N-W!`Cn{Ffe$!`njxgN@xNA)}||D

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_left_press.png b/fmapp2/res/drawable/btn_arrow_left_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b72f0a72de293367b2c9088e4b550744f38714a
GIT binary patch
literal 1545
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_left_selected.png b/fmapp2/res/drawable/btn_arrow_left_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..6cd3c9fa8bcd4d9aceef525c01414d8f782c5cd4
GIT binary patch
literal 1581
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
Y$?n329Vd+#7#J8lUHx3vIVCg!01lhs^Z)<=

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_right.xml b/fmapp2/res/drawable/btn_arrow_right.xml
new file mode 100644
index 0000000..e4ab6f9
--- /dev/null
+++ b/fmapp2/res/drawable/btn_arrow_right.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_arrow_right_press" />
+
+    <item android:state_window_focused="true" android:state_focused="true"
+        android:drawable="@drawable/btn_arrow_right_selected" />
+
+    <item
+        android:drawable="@drawable/btn_arrow_right_default" />
+
+</selector>
diff --git a/fmapp2/res/drawable/btn_arrow_right_default.png b/fmapp2/res/drawable/btn_arrow_right_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae6fd538c53d6c228c15079569b1dee3905e3dec
GIT binary patch
literal 1228
zcmeAS@N?(olHy`uVBq!ia0y~yV6b6eU<l=4V_;wqWp97Lz`!6`;u=vBoS#-wo>-L1
z;Fyx1l&avFo0y&&l$w}QS$HzlhJk@4&(p;*q~g|_Ig$Rtfg;DPgI7gNKcX7AIN$DP
zPEB!Z`Zl3`jMW~@iVNG+6<M5a*fZ>z=y2#$!j&CrQoan1Vvd0q)rC#77HwJC6l=45
zp7*-PTS{hri#s*<$$ZIoCAa?lvj0A>IDdJ@!-5;zW}DsJcG`?}O@rtLrmzEC5scai
z$eagnZWkH-Oq#Wfv+>FGw_kGFMPC`5=fA~l#bV`<Yj?paL)iDE*@L|cj2GBk2+aD;
zR>e}q{%JX{)MIO5qaD>uPvoSecD?`p`>=*hn;HKLnGAc|b46}~2Q2dDu*QD>S(7;B
z`s>~|?Ck7<zh+&%@aMOH;H9z&lk1h=>{zo#NB;ZMr%&H(TpiZFog-oH-aHKvqh0%1
zV*>*xioK9=RNnG;|3251-Il%e%bBCDXyiVYeHNScbJvzFCXY%|Q<pBi;M91Q&D18%
z&-lfvRa&PPEG@qAV$12LT@K;l;n7UGx(58QK|w-|>sGGxl#H@4$l5I>b96y=c6M-+
z80VUge6x9D++I9-^r&Ws+v?S;FHdR}<6Psu`dH7090ld&p9OBcEmLRJz4P$xuZ=S=
zySloDf86!!*RPg^tyVHTY>S!PXWM_iP|$nr!i5FuOna4O`mQZ!{KeH)o}8R~$B(;I
zBJtu=7a21raWS#Dw&xdS&6;JR6&-)HNsLb>U*7CD!v@~<>@U0}?#cDDAGUVz`#*`#
zLV)8&#S53~hi+Kj5f>4Oaalfl_Uwyy&oA&#)9a2|w)Obtf&+E}#v2{`IfJgTR@|Gs
z;P6E;{v|ICZ<Og%4}G~S&*Y+G@P!L~8a6^NkN+{Vv$J#6o-b`=mGk_t;XJ#XH3xna
z3kwTh*45QDF8IOoWU862WMi-1tgV}q!;1X;{LXFJwoU1U&WpWkGEd6o1|B$*xNlxs
z?u~NBvTbYE=Jq9oJH%@)X|_J}Fe5RiL@sgR`Ey&hZ&!X{k}>m=VB6<qQ}~Xr+H$5y
zck<ml_ZvU^`ud(1WOX&iE^kuSNL_mL`K<^(>4l7C3pZ~TKKw(I{WtR$W3e?Ne8-LD
zpRsP}j*X4|T=2?s(S}RU6W=Vi(OEK2wW)Rv&l(fH*-sPA3=jPCay?q)?|**L+xO-@
z`jZ-`UQ2wYQ7kbh_T}5Ru?@le!HuGPIbm8x9(NWqd`pdwm$&+@5E}84i~nBasm-hZ
z{{8D+@M@muhC{Mur?<+y$!^-4EV?E{@$BKg-rl{E5)uw4ZigM>VlT6h5p<C0mHhDH
z#f#{sy{V>aJQ8XiSLNls3(M@>aQN`yY=L7l;`5uPt!We8d8B!}My-UTWMr|`Tr&}i
z-Pi8k?cHF0iB<Zg)y!X|n%Cn$PFtG1;Io4G3z4n$EO(b`&Re?S|C0*F13T`um@k%P
zpUWn@@ac^AEWcXQY^PajOGT(p7yPA=A-^?0V8!okvmY&G(n-3&b(ux>VBO@$W>)u9
zBH6SLYxF887MUDatJh|EVa@LAMrRt+OHNB{(D|S3@R!8_En|ao`G-7~f650K&i(u!
V#eL-9b_NCp22WQ%mvv4FO#u6oG^qdp

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_right_press.png b/fmapp2/res/drawable/btn_arrow_right_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4ae45b8ec161f20a8ecfac34fe8b13dde6c13e1
GIT binary patch
literal 1634
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_arrow_right_selected.png b/fmapp2/res/drawable/btn_arrow_right_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..93bcc779ddd33574fff531c31c958697bc00716c
GIT binary patch
literal 1663
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
KxvX<aXaWEQ{1?Ii

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_earphone.xml b/fmapp2/res/drawable/btn_earphone.xml
new file mode 100644
index 0000000..5a185ed
--- /dev/null
+++ b/fmapp2/res/drawable/btn_earphone.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true"
+        android:drawable="@drawable/ic_btn_earphone_select" />
+    <item android:state_enabled="true"
+        android:drawable="@drawable/ic_btn_earphone_default" />
+    <item android:state_enabled="false"
+         android:drawable="@drawable/ic_btn_earphone_diable" />
+</selector>
diff --git a/fmapp2/res/drawable/btn_onoff.xml b/fmapp2/res/drawable/btn_onoff.xml
new file mode 100644
index 0000000..a024238
--- /dev/null
+++ b/fmapp2/res/drawable/btn_onoff.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true"
+        android:drawable="@drawable/ic_btn_onoff_press" />
+    <item android:state_enabled="true"
+        android:drawable="@drawable/ic_btn_onoff_default" />
+    <item android:state_enabled="false"
+         android:drawable="@drawable/ic_btn_onoff_disable" />
+</selector>
diff --git a/fmapp2/res/drawable/btn_recorder.xml b/fmapp2/res/drawable/btn_recorder.xml
new file mode 100644
index 0000000..88a5302
--- /dev/null
+++ b/fmapp2/res/drawable/btn_recorder.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true"
+        android:drawable="@drawable/recorder_selected" />
+    <item android:state_enabled="true"
+        android:drawable="@drawable/recorder_stop" />
+    <item android:state_enabled="false"
+         android:drawable="@drawable/recorder_start" />
+</selector>
diff --git a/fmapp2/res/drawable/btn_speaker.xml b/fmapp2/res/drawable/btn_speaker.xml
new file mode 100644
index 0000000..a22e62a
--- /dev/null
+++ b/fmapp2/res/drawable/btn_speaker.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_pressed="true"
+        android:drawable="@drawable/ic_btn_spaker_select" />
+    <item android:state_enabled="true"
+        android:drawable="@drawable/ic_btn_spaker" />
+</selector>
diff --git a/fmapp2/res/drawable/btn_strip_trans_left.xml b/fmapp2/res/drawable/btn_strip_trans_left.xml
new file mode 100644
index 0000000..0a30f34
--- /dev/null
+++ b/fmapp2/res/drawable/btn_strip_trans_left.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_strip_trans_left_pressed" />
+
+    <item android:state_focused="true"
+        android:drawable="@drawable/btn_strip_trans_left_selected" />
+
+    <item android:state_enabled="true"
+        android:drawable="@drawable/btn_strip_trans_left_normal" />
+
+</selector>
diff --git a/fmapp2/res/drawable/btn_strip_trans_left_normal.9.png b/fmapp2/res/drawable/btn_strip_trans_left_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..31b39701fa4a2313217158861425414ca4e5a5aa
GIT binary patch
literal 588
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?J5LwKkcwMx=2{muI|#T)+HuYOkz?1S|8#Z%
zN1pQM_K!}PKVAA<MDN;i25tGes=6xOweif|$*WJFndbWT)Yj`q4;`Au5T5Ym&)1*U
z2iMIP-Lh(xe#oIsI`-xlmSskTTv+$|*VA21*Gm6(b4lH>GrREo^UVcKY}?D+U9A%?
zOfIc{ASY{n!NHcH*-tv-_BLUy7Y01m8TY?$Sn$~5mtYAS+g$St3i>)POnlW{=N{VS
z7`QyZq^8k!+1bxIA`3ni$U6#aR@Gl<IlAjuQmkgz>I@&XA8%EIvgP;gES+x6{BvT|
zHPIJm9b|9pHt9N+6maF|n(jS&bt<NG9r~UzYl6sOjve1Kaw0Uj0!nPT_U|>&cokyH
zHGh}SwX5G2UGA<5xfUwn8OY1SrF?eR99yk`My`+rOrkHW9pd@d25Dq%(i74+JZJS4
z(G?D?P|2k%vGvzk>rbEO>#7OqexJ1{aLPLOiEF)u-Hr*lwREj=pStV2tVBv|>qTGD
z(0-?-d9xm!`!;7K_qrEVjqJQRZi`<O@mtsj9sZs%E%n4T+s0iYtid9ZSAL3|{d^}i
z*1%QNEg;e5@?w)~wKj4af@=i~?>clZYGCF4ne6UrtXWkbu=vHrgjgrn#r+QtbHrRU
p&CvfjdE5VaYdhEH*QNjEG+>y_ZXuooN+S#m44$rjF6*2Ung9@>0uBHG

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_left_pressed.9.png b/fmapp2/res/drawable/btn_strip_trans_left_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3b13559aba9d858f88f5c838a57011fe2b0b5664
GIT binary patch
literal 593
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?XHOT$kcwMx=0^J+4&ZTlJG<eAe0D<M24S-U
zOgC7aoIJiPK6Tnezd-AwbnDEWp;!O8x~IQ+ZI<~;FtJ*{T%P|`wOqB;ji(3l4!k}j
z@%7WcgBz}2W|3O|y?;f^dHsCOEk6(R=6*Nbd+uWHy+Y^P^XeQI|70<%@>_71^Lobh
zv<t@TE+%>`sO{#y<<9oDaXG8^f`<n#`YtfD=)Txw^IR<;W3i;k1k1UHU#RV3%lWcO
zlC`Q+NMh>)gI%3^n=U;tk-Fe|>S}5CM4cak1#2#TJj3wEPD*<5kIzhpQ(S@;AIuCf
zUA0bov3u+X<phJ?h8AaA$CAt*tzAZ10jA25qAMI&wE`NsL=vx=J~-WTZN6)P<k5eI
z9NmHHD+6b}C^A!i@nY95y|ms-C3lVDW*G%7wkz)a^_21dRlW0eR<Z0mwA^a{NnAa!
z;H~TAiHoXRUhG=5I&I0x7Z)yu8ejURw0KqE+r_^NPHANIKB{|dd4Gdm*y0z`nv5^5
z2E3OseWkPD!r2pSUW<PO+uE#{{rm;fe6_EQ2D|v~md-u3LimbC;C0#ajQZb=oy?*<
z)E4I&FIsu=P~sKdpUvfpCSD<nO${=pI%@aTiriWeI_2WtM8>6^dYdj<HO}f;CHZ&$
zQK4A5#nKn76Bcj(d|J+2Fz%ngyYr&fe{4@~XJBUdJ#m5TpPhF*85kHCJYD@<);T3K
F0RaA_63zes

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_left_selected.9.png b/fmapp2/res/drawable/btn_strip_trans_left_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0607d2343d31bda1fc7def1077f36aac163bf0d5
GIT binary patch
literal 610
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdxci>HfYNX4x;b7TDu8wj-Q{kd|2g}V9!lL8SH
zzXPf}7@ZuhPCDXUC$p>e(Mr*olHQ@W)xTdpQ*qt%?yTL*v-yo@t8L9bXX|g~m%~}n
z({pdi^>WT?n{x|({`|){^~1}jUs+zYm&e?$t3P|5`^7(A@h?9rna;NJC%AqWEaB&#
zwL6(XH(x>Y?QV`+54CRbGj2J*V}T|6g*Q8{=}PG>U^ZIOZq@brPVohs2b0!GFHs8;
zj+o9Wa%<PZJr<v`L_~chB}`lc$`j7XI8NkVY25To=XFzL`GiFrU4G?kQvw%U>rh>6
zQaZ)$qR&c=v+rDeZMzm|X9#JWny_d>S5p0VH_4+RTb#l#oioyMEo9@>sHxnj^7_=S
zpb*KarKxwh&A+m=PFb^Zdg)e)+;h9TOP6ZgNIDV_x8>C#j$LLvPcLY-F1l<Ox%`BN
z>tO@=TD>(B_|05TzFKjxc$IOG+tiEo_n21gIk9WgJGM31yBc`YVlS^+-Mf8__Ul!N
z0d7+RQ$wzSY*~9fkoo+I^<9hFzle)eL}#5#ygMl{T4b%(gPvoH&p(L$Tf)C1V!F!W
z8{L6vjB727c7=)j=}}v}Mb9WBWJ_Lw<LVEWFRaXJ6n(3#v1ySn%U#CiGQ-6uuC4Vn
zs!F?CwY(=!ev4}0l?;)kCo@j3$f)k-j=HZCxcAunEq_b5rTyU%zyI?;hXKQSiHk9N
UU&Y!oFfcH9y85}Sb4q9e0Or;dA^-pY

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_middle.xml b/fmapp2/res/drawable/btn_strip_trans_middle.xml
new file mode 100644
index 0000000..b6b95a6
--- /dev/null
+++ b/fmapp2/res/drawable/btn_strip_trans_middle.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_strip_trans_middle_pressed" />
+
+    <item android:state_focused="true"
+        android:drawable="@drawable/btn_strip_trans_middle_selected" />
+
+    <item android:state_enabled="true"
+        android:drawable="@drawable/btn_strip_trans_middle_normal" />
+
+</selector>
diff --git a/fmapp2/res/drawable/btn_strip_trans_middle_normal.9.png b/fmapp2/res/drawable/btn_strip_trans_middle_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9f4f84fed7ef5f5f4415c3f8b917eebf31763c8
GIT binary patch
literal 708
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyHnx~6nNX4x;bG`GL9Ryq?C8}rozMG!PH+A+8
zg?*jL|4MclHXpAL)C|hmxoV=4li7=xq2kRGJq0E{x){xI&`(OP^4-srsz(6~`KL5E
zzX;2G(Y~dB{PD-dnX{w>KNVQ)dHs&*R%vYT_0ndJTibHee@k9bIRE^!xzdWFy=xap
z-F{YL<>(f!y3I0U^%Gr<7pA*rJ&tp<z91=Ebiwgtb-;x}*0;awuKeihSa57wvtLzb
zBa3XCV_1N#!39o{l3k3Zt2-7vwzwxDYO2L^QPfoHgWK{<u3zjYqD_;d9eIUBP43=N
zU(6Q0<KlI;y~bTqcdZw*HeYl|6xq|0mu|9E_|H?-iHn<^rcbn$?CAU@*{?P)F+^ig
zHoM6JrdfA&HF8QWA4~XB^?0ug_vxNR%cfn|_|h|NXWX=Fx)XYjy}jThefB`&cB6bX
zw#6T^W81DxT^rbUntRpN+>({2IR1Y+6z2BB_|%4k4@RGis!A7&aI<~5!S%G~*VChp
zvRA<93;%-C)5A1-*!uN^G!8H4zPF3-)dD!0vf%aeT@Uhq?QGDSFk#8dSl`0pH^yAT
zu^~%2yA^jeF75H?{nb<Tdf&SyM*Cgefn7#iKB+DCi%+C($-NseZN}?rsl~UixtdwM
zPYY;vVGUiET{6+}><U}vxO9_=&gWO$T(gSHbXWNTru-{8Mv|_qQ}3(@kT5+Vu{faN
z(wP-fOFPzWm?C(-C&(pS@$}z1{++ALw~3Z)zdiL^Gsmh--kld0xM^1`E^ElTqVg=2
z#d`5Ew@i~II*X?VvgVZN-E99edE5Pc(Uaru|CxWgpMjad`Pz{l=iZ;o7#J8BJYD@<
J);T3K0RT-*L%{$5

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_middle_pressed.9.png b/fmapp2/res/drawable/btn_strip_trans_middle_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3cc35e73a751a577edc1cd2862017a30567fa083
GIT binary patch
literal 715
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84FdyHuBVG*NX4x;b7TDu8wj+N&;3vwC}$ybr-i$K
zZ5@M00E^QFlSrB8%eQIADbI-X4x6<+<ICA~$9*TSntAe?bLjEzSJSThiFb>KG0Ful
z-un5u_CdMro-1r)?w|O_8T9b(-(<Bdw>#g&8{}43_#Z#H>-Tkw`G&r?Yh_w*J=Ep8
z+bHz+R7=@>rFMRwMeTZ<^ZxJEYFD=6k-WIiTR12qf98c1w|>c)=z6GKG4b_zo#vE!
zA+tz;cZKD4AujJNVp%J!OxFiCszybAkJxhIY=(_t!276+rIUji-EQe^;@u`4dd<}}
z%ktvKmX;NqZ=AGTSxkPclWs}b^5NXpm**U!#dS0EPfZdmi&HqUi#1U2L9Uc;;QGKN
z>rOj`aAcWq>^OG$0K>nzf{`o4f9Nw-cI+yhyMp^`+7p-972Kr@^{%w;3TRoQZRLMp
zqm9@>*OHLlzYZMCfvPJnZj$6&SK6J{5;vbUFyi$!Q?HAq6J1wriYQl{B^PxyIm2Og
zWp7{q$yw_cYrM|*#k+v(n~u}o_wJ3;#9jHmdR^-AGrK2pt@Ye49Vh=;69ZM0#a=53
zhi>aF-+iHUQQYEveg9nN`iX3HGZi|z=f26_4d=ubY2DDDq%08CR>gU7S6BSv3)hxr
zx*1&%I_mdTJMhYp1(UdC{T;JIN)~L%Yfz1fnBK4=?X<VThII+$cR$K~$hkYCG_YRG
z!g^}L?63&)HK#Zy1s+hhDvi0)TfSnq9^*xoNsHZPn_55M%*|TJd)VsMBcZ8n7k52&
zJTH+o<=CzhF1JtZdgQWK@^AmeFqfm##g|C!?f5J-<;BmE8;@8IeU?A;*D9xZzuHg1
b1cs1+r;^9lZjWYQU|{fc^>bP0l+XkK*7QP1

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_middle_selected.9.png b/fmapp2/res/drawable/btn_strip_trans_middle_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..736e9b2b45194df4c2415c1a3190b27eb4f6db72
GIT binary patch
literal 762
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdzy98VX=kcwMx=3dOb?I7S%-alocLhH`STPE-Y
zxny~;YAV=gDv2H`n4>Yt^WL*>E;CR6J{itZ@r*-&>8G>(nKSp~{L@#?Jh_%X^lSSo
z-TATdVRCDjYDC<2H|=9*{~O}?_O<)u%lsZE^zZLG{kQ$R)wR{1C*OD}7<~5m{jZyw
zo?Z5z_?TJk#n0<(uf)r$m_oluh}izuT;T3;!DcS=i!VCc?llCL%wu|CBYuH1_+lle
zWNgvSiH45Fd|hd))t8ip{|$5He$&L2Rqe`qd1rON{uA74FH4)gFlF785IL)}Ago=&
z=XKk|qxw8srCeRJlZ-W1ym9y(HqXJj%{TByqlwn5ZA%$SPt1{A<GpxAtkv&zFJ6aT
z31_QvYm8bfR?@gNk0G|f*lV$d@71N6Zf>_FQ&SwnFBC9KUuke`Wt|cf7<+!5hL0QP
zs=TH)o{4viZiybXm^48q`E}}*9<`Jcd9f9)6BVak-sP1PE9E*hL7_D~<ff4o*GY%2
z`%GEcv23m@y99rIX!^fvvg^g{x1O(;g?5Qu*nV=BQOcA>i96nK+)Lsr*E;>d>GJD$
z#{wUSP1tO#q_JyuX|Ge@lb#?x{c|_gcBjO?NK#ShdKaI-yn5x^)gp--*KG)iO<cL_
z?yii_7v}}8SQhs|eCCg5iw_yezrFVMTJ6*YS}Xof_}Y{ztx@Ljc2;1#Im=(G=3}{2
zQ~#~Kku9_<(p>dI&ohfX3Hp`4r9P}$5j|aT@zz(1nvTW(=Huj^73CTz&DMLABO)-+
z>$Os|o9kr-qn;THGCLPMRhD%Sof{nx;(A={3!g|y*Mg(lm{*myvx%54u7161Q8~+k
zyyzP}avmaAukGqQxQownL&S8aiyzmXcqps(;=?nctI>ZvZtwqg?Z^39f8XzaxSoNT
a;l)(53X9tdD;XFV7(8A5T-G@yGywqeTVQDb

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_right.xml b/fmapp2/res/drawable/btn_strip_trans_right.xml
new file mode 100644
index 0000000..512c963
--- /dev/null
+++ b/fmapp2/res/drawable/btn_strip_trans_right.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"
+        android:drawable="@drawable/btn_strip_trans_right_pressed" />
+
+    <item android:state_focused="true"
+        android:drawable="@drawable/btn_strip_trans_right_selected" />
+
+    <item android:state_enabled="true"
+        android:drawable="@drawable/btn_strip_trans_right_normal" />
+
+</selector>
diff --git a/fmapp2/res/drawable/btn_strip_trans_right_normal.9.png b/fmapp2/res/drawable/btn_strip_trans_right_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e83fd4680283b9031c3197bb585e2364218726d
GIT binary patch
literal 576
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?BTpB{kcwMx=6dHfI|#V!W`C2MHr@Ma+`i7_
ze?Gf7`zD2kZFCOZnsRdY$IGv?3^ER6ul@F-=zGi+`JLakMd-X?i#Zr^`|t17iPvwl
zRqc$4`?c@=1IOcqZ+5SHJ#lK@0?x|ackexPT%7y+_19a54Sb0u4eYXQiCh;ZGM4ns
z@%ymgvWf1+eca41q}nBFE>zAFE?LUpyP9W#X-^o}1%odBUF%lspMLaV0jDRUl$-Fi
z6p=F;zHYq-SF{PrWJIMhE<LHClX6e;hQsHqzs7mKHit8oX58K4$sBdC`a54#st9Mv
z^r*<5Sv^{dkFP8;&wAiGJ+NZ+{q~6m(?w)IxxdbO#U%CAV$XtTUAG{UwceIJAB;~G
z99odLByq|9OewchE0(QuVATp}<O*59&Un{+ZIDFiRy`q&!<>5&5=^2RsxPjW#(q%$
zThsJz!np*Izc+nTBz<SU@XCw|KkOknHBj<zx!c^M8m_N*MTH-Jv0!bqm!ag;i-)J=
zFW~gNxa-A&O8y_(iy2>uxXoT>C>HSN@8ZnKCs!Cstkqd?ZQEKSuBjIdR`qBtW@kNW
zE;Zq4jh%SKh08BPJ{?ZDayY~J;w}-lWQoF*DJNH`>oi|vyZgd9?$Wp0_h$Xzt*_hr
e%DI7&f$N3M@gpAs^cff!7(8A5T-G@yGywo}um!yU

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_right_pressed.9.png b/fmapp2/res/drawable/btn_strip_trans_right_pressed.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..10766812c7fffc380ad53511d18486c2fa7b3e11
GIT binary patch
literal 587
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdz?TTd6qkcwMx=EnLRHV|k@zZ_N|*>{xN{Si-0
zhjsvGSBt<G_3pPzmQH<Onw56!(zoX)rD`|7-Wp>*apsIF7nivv%jWF%4O8P2=wD<w
z{qghag8t(N?auRezU5wjX7}<8m*VY=+tzQf%8ui^c6Z;@h~VmSg<bXfPUe4HiobKd
zvH#Ke=tJy^I?jmi8?q1TZ+YK+p}FBgkJul}TgL^YT&x8bTDdHousA?5Dqf@`?e-il
zfm|=uj%92Y8<%yIx^}231op5LP1$|$@9M+^wkUtLY0LAC=1%M?HSJ)Mx^1Gn=v<)i
z+?VfKV=|XJeBP88ps?!l74941Z7bGhFA~dIh(KN&KlT~=Olis3%Oj-rN@niDfR2di
zu}@e7d0)4!&3=8ZFJt!>sr|mp$ugbSvNydfopN;7Tk{6ScRMm(-F-bN_i{{+&y~IF
zTH{(vFT40&aaliI!{>@+)*`j6MZrS7PE&sFS!plCJK_JtIWsOegs;h7r01qqb=SqU
zNJPjfaP94zyIiil^_h}#<mRVE8~P@_zx+z_L&n`puMf=?oLss)tkTs=x%25#=HHAj
zBd<=~u+FDX&u?#Y!-dwS3rmFpSr>lQ4cn$S^TO1Q(!@o2Zl6`S^!0sQ^1bc^anF6C
onEROd;Xhf+gNr@uSR@!swAT7FANat^z`(%Z>FVdQ&MBb@02?X_YybcN

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/btn_strip_trans_right_selected.9.png b/fmapp2/res/drawable/btn_strip_trans_right_selected.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b0cf2192ab7d82ea42902886118b7d59b9085f2b
GIT binary patch
literal 614
zcmeAS@N?(olHy`uVBq!ia0y~yV6b9fV5s6?V_;x-_t?ROfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdxcho_5UNX4x;a~=H-8wj`__lxE%)P8p;G@_7+
z??|CTK#0_>stuDJ5|4JRnE74T^{rm*ulzTKlee6_oBM8JP?oxH@w{q_NZZ0q2NoOs
z%Brf*-gx}*gcbJpcD|i|C}`R2-zI9e^3Q(PFLZou*f8zy>YMK@x9nzK@jc)4Vs6BV
zch(pG?QMGZNIi;A{#m;mLzPX~1?B~A{!0&uIV?Kb&O9Nb)z(ruus`?Rl#Jl-ArcGv
zR$L6ySYW4P_|fsT&l5g|t>31)IW|la6q~5wba&a>;44qBXrx}tox4{k_FG0cTgc)@
zM?ur7phc?!8@WPuPygw_9-*wF70{?BWa8T{bal<{ITJZ2?9UGAbYn8@*u@qRXT%uv
z$}4u|Zjn-9msp=goB=CVUEJ|IuxS_P(sgQ!6FS|#i+?LsZ!q!aU#pb0#a8WgXTai)
zw#1q*KVy~&^56U96i^=H&Zw*4AM28SWlL$-u2mN^c8jlEebS>dE-kn}!iBfQlj#~$
z(zQU<RW4IsJbmwemB}mi>#m^iSLfJf>3rkg^h@#z$AZVDhfi!bp0d78kv;tSrO3N7
zzuBhBzdGi-C6;-fQ0^-xA=&g;mW*W$$MVaTpVaV<1$n4E?QR!CRQ#t|OkJKO&J1gB
zm1T2eENduZDV@D-j?~fyBcZz*7b6y|*53TJG~+_#za?+ir)R%P|M5Nc|8fRqhSNE>
WR*JG->|kJEVDNPHb6Mw<&;$VM$`CIA

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_earphone_default.png b/fmapp2/res/drawable/ic_btn_earphone_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a5b8db9adccc1a809d9f5e0993563e7b301883d
GIT binary patch
literal 4612
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
T)K#(!3=9mOu6{1-oD!M<Ak)XU

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_earphone_diable.png b/fmapp2/res/drawable/ic_btn_earphone_diable.png
new file mode 100644
index 0000000000000000000000000000000000000000..f32b96edcd55ddc771b350397e4093ce2408cdbc
GIT binary patch
literal 4589
zcmeAS@N?(olHy`uVBq!ia0y~yV6X&X4mJh`h8~ILRt5$J&H|6fVg?3oVGw3ym^DX&
zfq~0E)7d#7AS1sdzc?emK*7`5S)rgPKP@vSm4Tt+*4*Iqkl>eMw%_l4aq{kHnBtuu
zB+8)><ka0DGEq%SkyF5{Lvi6v(ZGX(uC6T7Cl+)t_w_aOhz9ELbaCBaf1<dkuX%At
z*QwtRs~2Zq+w=X|*?(KF+dW_NdG6-(><2h_rg<0#nl|vPbdnQ%(0u&Jv4>Ce92&V)
z3K#@9Hm4{S|5avW_)%wLqpfs+eIEm3#bs^|h6BE{4;aX_|L1?@G&6>=p@s24$wUip
zjs_71hpIlOWeg5(j16;Vs0A}DU|~o&ot*TTAwZWQLB0OjWrl{iKW0`lGDJ^N6lGj6
zkwHN?wZnxW!<u2u`LHfmh6n=&ku>ikmJBy^84Ntb(>xe9Y-c!dPJnw80|yU-L10I#
zCId?~L&6DV<qC$DnG7OspTccEYOfP`uEoGmF>{m6P8Cbn#%K=RLiX@*JvohYp5odf
zW{FIRvmEpeRnC+&YBb@0@c9e_!-9#Tf)AQM|E)O3x9;3Iv%YP7@w%_}v;9{}N_zb7
z>G{<K4h#$rOX@EE)6w57)nLumko#|u>N}Q<IPL|d-@DT`@jGl~Sn%>z_~!yp*tjm7
zu=D24r%#^T@H*lYop>s|_Fwv;_ygg8bAHy@{Q3U%!M;Z-jYhGJ?kqnZ96IyGXQ|Bj
zNt`W7cb@gT|Jly{|Bvitr6Zn6J0rA29tR2)_PNaJ`E0aQsncna=26v4|5F~_*ZIwC
zci)s@LzW$5^+eqjvB}KeywwFFN)9~w&cN_#cmBaE8XU|G8O;yRm;Zln|JQwiDnmn>
z=cGaghBy}$y^vFz?T>RXFt{ve)Y{-E{pFy9&H*-=gRFNBa{oy%YjILJa>z-*i7TZ+
zrYJ#kO_P&G+u04WS_%4B9Ar%n1ZK2NF5uHU6uN`Ywt)XvBFDUg8haW!SsYJr2q!Au
z>R?Rjics$35TDulL-C*oi%_?U!pRPiKqc>qrXGetT_Fmg9<rZoi<m6iW88L4v_8RL
z)byuqkGtWN#!Z2?S9rEM?_6On)#A2@`$9^I;jDhK1+y;{ZIQC=F<bcj!s-nETm5#<
z#|;j=kYG1Hl4GEE?6A{D3mwkM$)`6et>IaHOlm{e8s^=dUz5*oEN2mFbUnan#!~L2
zkSOQq5#bZzcf(_af{coZ;4MybPUe=tL+VPCS9otx+a>t(h(wZ+VS9v!j`B63eqnuq
z>JH~4<|;y+&PM7xCop+#ToQ6g=#tx|yddS5IxA<Jct|NvK6xu8dlS3m6deWa6Rl6?
zJ~{lv_=)rr#ZS>(bCVnjm;4BRq!Dx~%S-a9z*Cc_Y^gJh977k+3c9;uVThn<f0WbO
zh1-JG2ez*eHYuHDdA3>1(|hUKMN=<JWr$~d&s_haWS8LGsd9ePFN9w@{nGu#^cT!u
z%6WL(M4OLyq-#jdmSC4imn@f9Kf`C4<mGP3;~@s-hOcKlpUFQnKQuyXn^ukJ#8X^T
zy{4*7mDbV^S-EQ2s(Y)rLqCU}4(VSR7hJo}Ez~&p@k-7s(^iMBnj7#sSUNa;rS*#T
zRp~48L+qE-MgHw%i#+Ue*xz|c;DU|ukM|r?;7*p@T%n_w&AYm-w9)j4+QzdtYs$2C
z&-g35yW4iv%7vEB#$LwZn}a@2Nwa5vJfrZ(oDx6I=NikWf3EAgC-PqNk*4%A6Q7-i
zsWI8BrcIv~vD#yG;A;2Rd(GCpT|Rf&Uf11`zZ>}+k9(=dsJo~4pJSc-Joskt-Q`@%
z#e8k8zOK_-mAzDY;cl1m{dvpZ&6u|@u3?@}{_=a3d!PT3sn!1*@;CR_@~`eZ5p0`z
zRM>9woRhFQYFe0YBddS>_Qycy*uxIaOB1IiPJh@kapy&w#aG>W-S~SlkHtJzd7OJJ
z_t;`JHZ?^xZ{JtG?`8%0?p&t1%-YA==lIz(XBVBlHq&&rt>JZ}=d+*BzCQc@_JpX4
zD4lI9w(Usu-1H=BS>(HId-7VNEF+gjghs_~c3V4lt?ISiYj-afT)xw9vft`?*U}Gf
z__*!lww2o@H$1(;c6;5n+-<dq=}F@0+mEh0{BH8z$+f#`d;i+9^S0mQTP+(UTUWfL
zNW?14>fWq#bKcq49{n=yrG9$Ed4cmcj2~|kKCO8qb8hhL%kJso={t*?KX-I@dN-Zc
zn{KB!Tl(1D6MLU{m3%FXeOPtr>)hF!XCHdI;`aJ?X74iJwcnY4#$>+cyh!8X3x`iQ
zKL~t!(Vlz$RD<mMYwG-+{TtJ_K3CRH)}I)@_WFkHOUqY%Pkb+K_sy<o{$snxHs<$?
z?nTC*F+Z^V#P-wvhx6yfx88TISN@;!zv}-*hUE>ajOomsjgF1cOuv6r)hO=ov$wjP
z`fbzAw~jpvb~=hW_BX9<dU|lJV#bL#6V@tze?H^f#B-T^tpRl}u3cbHe3saKxQ<7?
zwY@dG&AzXoBSPw;;dImTi+7xh@4NhRndWkDcDkXz<$7H&Q!TqydRaEN%y*gWvOlJm
z7J24s#M}ta9B&y*J*{<Sc{%&;|9Shl{n6Y<+>fipXXu}ZEvQ_0?$DRk<zg%KgmkQ?
zIrwz=SxouhD4?}MtVi{eaJgz9SLGquL+MKT7tJnq+;EQ3lJooIq2*gO>CMDFrj;s3
zjhE^?-PxkPa>5=TUZ1<Ot>%f%DpSZcvbEZ4*gR?CghHoPioTP#rN2slmR5FpO=|0=
ze@FAWx9iJIWj~p{dBPgjNL{XNPRm||L}^^tV&9aW8lJZQZ09M<X{+aHpM85~^Qqet
z%;&tH|NpJfA)$wpwk>V*4%d~9c(!*<mgOd!!phrRk40Iv+rrq^*zD-qrj>iufA!n&
z>FetDs#W=BH^v=2)pT$xWA<zAP_Cz~wXg47e;ex`p&xmFYvQlAxzcu`on7lhZi`PB
zt-qmhr{bw}d;Y2YGw)2<vU2s2ohj$jE~UMEc29R+G~cvU)1OV}%j3OyYYXrFuq|)D
zesjI8KmDx6?cL4WoOdqXZ?j`h>hhE4&RW}tED8A%@+-vb-KD!*6R-csyZBDJde1kL
zH&<^*@A>}M?&QAPp^TxvSJSSh{`UO6`MdqP&Q&jeO#7W1yVfta@a=KtOU!@SmHD<^
z-+AS#>?PZfp#E#xuig2M%kTR)_kFo8uNiM>@0??glnY!cpS=9edH=f{uhp%xp6WFZ
z*)PkN$)?NdXF1LKG|O#v@T}j_NzuFf&)8kO_Uc~MANSkx{BulfA}hT<hn&p3^|I;m
z<n&MHd*)7^TU)31^G?F;Mcb;MC!f2Y#h?Fvmq5wGORoRBpIh&-J{R+8N6Dv6x1S1!
z?+Bl@-YP!#Rmm%xf0Hl!AKyJ^_pEh0W3qR?tJ=G@I_>*Q>3Qbo?ta-@`BCiuwX5?i
zZSU^=T$TU*==ZPp#qQP>ssBB9diTw8^>=Ic`0t7T;_%k-rt{tQtM<|V?%a5Pr#|aI
z`GU_E@3?<wYi&ONZ{pW}erMMHnf<5Rc-vmjv#_(Yd}Lqr_vN4E&gWCktIZStx9H#L
zb>d?Bbw94YzJBiFjEf7Wf0{mde{RjvzpoCwmRx`P*r8)``%YFE8^(PJ`~CJ{`JHmv
z_lxiI`#-5ssMq+P@pI$X;0w!tPnMiK`9BNujL(0PjdgD`Ffb@2dj$D1FjT2BFf=qX
zF#P<_z|ioLfuYoZf#FpG1B2BJ1_tr`N%2SB7#P?kJY5_^DsH`*mFp25Db+B4hQ!v+
zgU7nIEz{P_ZoAgux_0f=TlTVBOgy+-W35Ek#KfGoUR|MjZPT6BiyYV9`bA2Kl_kt*
zP2`@cdFas;M(<2-*Qj5I<*)q`TrHNY{LMKz%Wlta^^>bYlT9yLO=e~<KEGG}edW2|
zh4;+EJ2krg+=}Me-ze7F<K(8ec*5*^DUJL;fBt;^tEsK6ZNhmIGqYukFC8A_^FLs#
zl9H0TBhA>++Z+3F-ob<jo}Kr$-LbrV<%$aXK9*CBMXgQ~mj$g1&=65kQ+rfk@!@C9
zp1QxYjvYI;{DA*~x7y+BzPN@=e%P=jLdR=?qt?_}TcdPm&YYQ&mbNHBBWzCo_S>K1
z_Eb!~e*5-s-{9cO!3Uz^<Nx1H=e&96PR_KGDbx1svFVeu^@@qPv+5S#mMd36f`WrB
z%ic(o?Y3RNdGqIZvF@ij38u5pzJ1s*g+**b+<X>3CbzwD|DR8qBov}`wN2dA#Ka{%
zU48Q8$+~Hqe}2k3f9&}2_Ae)Uo&Gs$P5t-$NT=|VCr@fhE<Y@|aR2`K4<8KtmQOa%
zzsI03)yvb<({W|UqRTIDY|odsE_)MUa{ckgg6HRCbIfkrH>{qnA78iq4%4)A+~!Yy
zwzRa!`^~rObz2-+ayV^s;s1ZNGJNj+_ACA{-FW@#6&piTRMZoPZT6SuG5Wpy`fJLf
zMT=agDRe3E%iAqkz4|m)$hE6ie@@d&GOfR#QKCD+YpMMl%i=cM>TfKyc~w=j`uh0X
z+}!He)@<Fn_3i1O`MJ4kr7K>&f6H)vU97Qv{l7bt=Fj&J3=|aVWNCQxDCya=XFccV
z*?#U^6tOeXPLus#WLVg@(y*|wf`Xi!o^RjEV)VjmeSLjDSBYJ|b!!#dzg^|;?{$6p
z^l8EV&P5*4(bD?y`*PN;T)8sdLfz2NaEaRW$shlynwx)r&CJfH(519U!^q6cEjn6S
zZ~E(gwaF_j4gRgXn_}cU(`VVKix)2*yS+XC@yCj$Tjmlx8dJTBv$L}w9<rS1@p{Y0
zj~{v4`Q`bzX3m?pZ0}y#_1AxgmX>~9`;|%W&DE<{!`0Q){$0CxQBY>`>8B#%;>;4t
zyp=C6EOb6{^r&K&lHGj$ghk=2SFNh!VNX~P9vXV}%lGfm^KB}HWG=rfS+Zowoc(ow
zt0I>uT%PLnbm^QqGS8krpE-a2^5x6hJ3BdFAMF;GW=?+i#=$#0T>SFo%Z=H6GL}pU
zF&}&)6wkjbu~HG@T%_^nYt_ql@7Ol91vhh7r=~7F`}ku_?25BJJv<^@u0MOF%`Yi0
zJXvftS5M<i{ek}>fq@r=H9hQGwys~#zy7+kiT~O#?f|(wkJ6f&KaN|YWJT-@3>XTm
zCp9e6D0+CPbtS*N-JkN5l$42PjhhOb(^g-7^<bu`g;~Qn59eQwb&|5Oym7y;7a81{
z5U--D%F5hy`e{;GSsB*`cclk9!VSOf?W>jE6Q&_@B4yM4yL&2)73VAs^LlWDp}=Y`
z!?%Fc5Q*EXXU?4Iy6MrQM<1&8W<3bqp)hsh#*GIjye-?!nATw0{*iZEdEWNwi8?Do
zq&y4{C#~Z=&~yCp&;RF6q%fRX`={{K^Un|0Cz<7}OPlGFb}_?b$@1mw<(Kw%pYpw;
z;+^{PYgJo&yF5qJ1>Oi&#~=TK73=wDY>8UCalrzGh|Rjs>t}yGl#wYled<)#urM*c
z_Qek_E_P>aQb^%$3fLT09Llt;sfp?F$H&J#Jv<^bAF-B~3om-zwQ17i$(E(BL?k68
z)f@%>?F&1R|D|eg;s1Ys7oJ<^YAy4yxF|Hz(9m$olqnNt&8qSgU<uYZ;WX82s|IKM
z`FDBC)Wq$ABO*L}e0)|baD2L2b7{uhxxOnJHWid_*ZQDyU4)A@YVEXx2M-n>_<q{a
zOI7IP&n;WFOo-oBQf@Eq!O-h=_`!n*H>WCWo;+z%M{h5$q@g(1?K9UuW>1_tXAV!m
zj!8RLJuUh<t1MglOsL3F)02}<rg*3bZB^h1YCiZNn(Jrat1WkHggCCuHEvS)G41k_
zvoA}G?Cs_MoGrGV_4>>io&yKGo>@ID+b!?s=O_02ZB;beypJCX8|H^wJFRhcc0St3
zRH<vdD>U=2m*?*f9}EtZuXg-rVP+P#@M;!!`MWzi-_~r}zh8d&<)3R6IG7h+vdS(m
zH{ZN@^KG@Y!mfh5@A}2Z%R8KoS~a2m{MoZh?JGVUm^6F#>7r%7cm7;*Hf{0t?c#wV
zyiE#wqOw<BwJ|qOum1C6W8wFAcaNJ&@$N2r8)fz?FSO)q)m{r3J~npt%K!iNiv9=_
zXxZnlJ1d`Y`?2H4&-eBB|L6P>v^2<5Rftn>I`@HHkrUMY=gGW$@nXZh-R0*srk^g{
zeRoI9y7GS-S)wct|7Cr)|9bVVqXSnD17E|XOP72vKe@ZRd~1W$3@u&Vt*l!8Q*XKF
y&#FJG`zt>^@PtN+h!K}$Ymd{vV~YRH8T?Q8E?w;L;}Qb{1B0ilpUXO@geCw5hP224

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_earphone_select.png b/fmapp2/res/drawable/ic_btn_earphone_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..67afd3e460fc669696cb642403faae9478901cfe
GIT binary patch
literal 4651
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
J%Q~loCIHsY<O2Wz

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_forward.png b/fmapp2/res/drawable/ic_btn_forward.png
new file mode 100644
index 0000000000000000000000000000000000000000..0936fac4e49aa7fc5879b869ec189c38ac509245
GIT binary patch
literal 1228
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<YIk|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+Sn@nw978H@y@~YCxtu2Qf6|V%XD=l>tKZaOx4Gq|
z`AFafqrbM$o$3fJ2k)(N%d*%zCNyw$Zfj_%dK#pvpynv(;Tqg;yMFeO`P>|fWoK?N
z$keg)$qwKyQ@pb0`_tk_E~Sqwbh8h7&bNDR`SVZR``>%-e}B`ab6P3-rzjT#3j-4a
zV*|s1G*$s7?q=5;AGK~+o8@sbNLcWzZFsCSgK^s-hlts-4(vC+U7UDP-R<Iwu<9!(
zSDp^ue&D;%nUvKRKOH?R?csl>s$HY|Zr7R#fA0TWdGh1Q%MWfdZsYAqzH(~|gTW57
zdCxmnt-A85_0P>KD?_CISRb@I{CRB?M?J?<2Z2v|GmlgyM{qW;ln*ZcmHgM+LX<T-
zU$w8Gna67Ck^ZUA^rxwXxU{Y?6g^q2@HzO|x_=?}nctlYb7*<}!*ZFzjHTymBc}Yj
zccjbo<r20%M^|_xZIpOuxliAC?$4*k&h$D*yz$wn^m?h2$&Z^eZ|>b$Uu;{F)R%hc
zF~^q7_Qw;}y}thVqs7v|O4A3{%Q7duk&g`05Sex*?(3l=KRYd#1!$kum?F)vXO=}t
zjt2Y8PyTg%7ng;vWq6=9<<QiVsl_Vu&nNfBFwNY1(m^85aR;Nr%->0G&fF;Woa80`
zHTu8=2D?+j+g)b3GE6+Z@XVv{X_qg*EG!T|5NEt1tXXEKn88xsv~_d#ip5E+kalnl
z?6{ydA;)aC&s>jEzJ8wgD|}h?h64Gox5}4l&v#cVT#|I;@W-gM^IMN)FbnT?*%j`P
z%d>3#vifgYn@br3zG_VBDwOMsJ;S#pYt7F-jjoV1R=*dgW6qvQTbIfvbuy>;R`i#G
zHxIw(l`PUe*j;w<yX~IuAIutl%<AmoXW-kqVe6feJ%8)meqEWTzuw~ZPQjKds->^`
zzgVv^>@f*G5_(i!?C2`)n~XpHzFCs-)^fT2KK;JmE&t<IoC)78c4O6==g*DiW}SQ7
zr|Z(1{&D@I!+qa&{}j~_m;7n4SogNXo@JSyrQ3haVT|}1%j{Q|_u|AiS&llnCVRev
z|2daWd;OM`H=IG*V3wr&!?i~f*Vk<qyvkml!(;a|_LImC@x5=3<!L7bo)eY)Cbe!?
z;f?P7a=8wr>l{9)AN(D^dM%6I^{z!u%4)0kRWEcco+z|nL(Gb-N2^NgqfYHn@fH_u
z?wo!0p7HhE<>Ga*H@K7ezi0|BnZ%I4Uir+0JP9|Byr^}vPp2J?7q&6s_Wu3-?SICq
z`M)1T6^Z0{zui(Re(l%+ml_=gx822W?%a64#XvAdx}ie*LS*Gc_j~^@%fI%|yr01z
z@ge`tlS}-qI@?|-&Nsg&al-739n%8shJ%OYgV;9xe{<rY@?jsf>5(6N?Z2!#p0_&f
z3v+_#`#l#jy!EDVg>`D}&t$$O$srg0EW9@=Z9l`cuc{nOPxq*JeLneqrH`1*-+k}d
zW289`Y;uiwH6`Oi*P0kl8DF2x4|w&Be%3QNaIJNy|L^o}(r(4ilRNW;U;oQ6tl06}
r&_3?|r~eN)pqbpC;XpMb8^e!76@2e+%fDt|U|{fc^>bP0l+XkKP@qWc

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_forward_dis.png b/fmapp2/res/drawable/ic_btn_forward_dis.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd9a2f5bb8da3cb15859f5116aed80338b2fa739
GIT binary patch
literal 1182
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<YIjKx9jP7LeL$-HD>U|>mi
z^mSxl*x1kgCy|wbfq}EYBeIx*f$uN~Gak=hk;1^hAX(xXQ4*Y=R#Ki=l*-_klAn~S
z;F+74o*I;zm{M7IGS!BGfrZc0#W5tq`EA5qKPg9%bz!U52INlFUAgJfv4l&zw%U7m
zM!D)IWG_-U#^vjCU`dtcMDB~Tr1oxCRIF{aYuMuuzd--M-de`^gsOdsZ4Z`doYr%j
zq-r_yZfe=H-{<Cho;!1I@$sLQas@UIDh_;Xc-&}Ku^>jTeBxcz-Q{Iv*W7dUBg>_i
zWu2eE;D3O9h3vv_oHq?(?FE+Xx@Ek&ck!XuDP2Y@=IoBmGy9tLYQj7B&W7$a?Aj@h
zOTO{5<_jmpCm0=I5@uZ1qv2D%aPFnzsq^eb6icf;J3dsd^Ue0@f2AYBW0>lb_-aSg
zvj6i08x@}%UmM$5#nkzf#al&KXOlqUs~M+4*8h6`;>8Qyua!DNcm6#Q(_&J6Db~sE
znt4k=Ek!t@@kr8C2dkNB6Emi^9DluX&YU@C6i%M}l^d$TD7C5G!flV8QTCU6!A8Eb
zmk2~%v1H8T(3}v^HnqFLXdl<qNnEMkW=^UZ0pEYUs;a0ft4n@&I3_Kx@r;YN!uF)@
zjk!lx$EYbB;#^WuB;5JncY>cl+ncCxjg3q0-TN2E#+h@o?T*d^{tqh8Disc#&aRD2
zzvaDlRlwz2f)gd0AL~pOSZK`0?`Z4v@S3iX^vZP&DhU}M<v+2g)YRSAS2FPX%pWx=
za;3tB0=@>DjFTKH4gbzN@SNXyMu@XCL|2@v_4<jO(?nOPHBM=mu<zCp1*JxlU3n~1
zrgW@tS-4hR)pG~?-KmcsKQ2%Dofx-JY8}IYlUFlJYOiLUEPr+1^b7ylu<%31k5;<a
zyM}XgAK!B3mYfsYgcYpettv%)Mz5s`Vqff<ClI=Od1mKY!38RAd<jmLEB9<G;{R~$
zyT0w>4NpUF$FCJlGQWLYh_S*segWsv1vctAd(8Vn?d^o-$lS1EtYBcVs91A^cN@ce
zujN`hWAY+TtokYNh{fZc#Sdwt$S(~0er!H5^~9Drr(_(IJedO6CuC%MYoD?GuNta1
z)obnbrYfeWfYoh*GY)ij<viUL80xO)@j=9>&iiUao@&PZbEj?QhvaGAx}dZ@;K8QZ
zH-qOq(wTqbNgCgQjqU#Rd1p67HmB=PG`Dc5vioiNdv3$+;<RbEU)I>kpL<#?&0ftu
zbMD@`Ju|m`Si52C?%lh2-#0PvyEd#hZs^xNs`rim`}GXJ^&GJ>v)0U=`qt(`g7b;P
z1yK_gOyg!2J^mx;kG`d<=K;}8zb!tR#;#fSnnR!CwOR3$DYZ{03VE?HO=1yeVVWP|
z8Pat$X~M7D^-K2j#TfthRy}-d%{Hz@8q2~j?f16#%3tCCoA2w{hCQqLCo<fhbU{vI
z>ole1#WVNZogdmF@_PeQM`gqLycFwKhsFMHvG`p0OeS90X!gv$-&=0nlrL{>Dt-67
pbhXlhJ@3IelkqsS`J=}A+eteLJQuCpz`(%3;OXk;vd$@?2>_D+7lQx*

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_onoff.png b/fmapp2/res/drawable/ic_btn_onoff.png
new file mode 100644
index 0000000000000000000000000000000000000000..4405b437e59c37607c357c985529aeeefe094fd5
GIT binary patch
literal 1709
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_onoff_default.png b/fmapp2/res/drawable/ic_btn_onoff_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c0f511be39842050478845e4d09b4e3272a8401
GIT binary patch
literal 5218
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_onoff_disable.png b/fmapp2/res/drawable/ic_btn_onoff_disable.png
new file mode 100644
index 0000000000000000000000000000000000000000..12b2d28acbbfc43fce520003e766efb79e94d2d4
GIT binary patch
literal 5184
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_onoff_press.png b/fmapp2/res/drawable/ic_btn_onoff_press.png
new file mode 100644
index 0000000000000000000000000000000000000000..efeebd3c7a886d80470ec0a8f96db188161385c5
GIT binary patch
literal 5289
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_preset.png b/fmapp2/res/drawable/ic_btn_preset.png
new file mode 100644
index 0000000000000000000000000000000000000000..35449b308fa3d40d2dca57acf9db909891fe833d
GIT binary patch
literal 807
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+m`-}SIEGZ*dNciewv?mD@y)9ZLoRbMn!1^Mbgz?f
z%Isb)bLElZ1P>m?xE3#cC&dfF3opn`N}e4oxM%B)W#Yf(MP@CIaPmIk`l#Q<#nW|V
z(-Oh8yR-KxFKcltFk8EoU7pAKOmX_Y_h)~fS>v<$rp&A58=Y&nH8%VYZaA8BQG$of
z`#wugZ?7$rY`&VB+Pv3ae_f2@nouSc6Bn1JH1Wjr7`^iKQES__M!o%AWB32zA$wcf
zwa0e!J+^2oTR3r|pyKSaasiwZJXCZR>1UbDdjGN{DqcfG&d1mHW~$N6Fr%3|vwW7R
z_N+IR;+0&>(3Uu>xVYH=(Z`B4s~KF(T27wy-g7bIi~{q0KR>@MX0y+-lo!_4#_rs`
zTY9S3Qk%66j~_qwTz@^=W&3W1dCxmL;@y|r&D+0o*RCw5#A~-+J_%5^5!6&-mSN!z
ziEd!6n{;yGD`{zI>GF?f5`Gxo68!kPW}k8U;llWoy(a|^+}1v1b(gi%<<ZfXFIV2n
z+A8D~w@9{R#)m!+MteP`7g`H!e_Gr+9yg!)Olh98DNpngVU|WI=S}|?Xt2&Xzw4Sq
zwIHilWoy!&UZzz%{QUXTyq2Cn!fq5L;nX0(v-9T7o4O_YgE$MU=C&O^d{{-y(#dv3
zsMb}XwrHk1dE1R-_}n9>Ej_j&M$cbQPp>aH&>^R~I(p;g&5KutXvM4zOSX|azt;Pu
zOOi$0nQe*!d`+x|rVj5KmcLcsSUx?YVush!m_>TB)27Zo`z(FG@X<d9)g%24|D>z!
zJ?CwqdG$uHET;ntD^t{}xb>G4Io^nzIG1fw#Q3qIQn>Yd=Z}IVdZ|V;O@FK~Jd(fj
z=g-P29&s_TFV)r6zhAsljxxPbzTm#lhE1Cm@vt=qD*3RmPS%^=Eq6FT!$gXM#l)h9
zqey7~efz4Fi(HdEj6Q@L_8d)GWN>8Ksr0loHVM9eGk92HHWo9oF-$LWICJP?!(Ijk
O1_n=8KbLh*2~7YnG+b-|

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_search.png b/fmapp2/res/drawable/ic_btn_search.png
new file mode 100644
index 0000000000000000000000000000000000000000..7eea584a2c6299e45969bbdf6ef5d7d1b879cde0
GIT binary patch
literal 1747
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+*h)QJ978H@9SN_`5Kfo)H%aa5x?Gd(TW3kHofVWQ
zx!QQHY_@q}*s2E-Nv`c>zq2*05;cOqw-=WLs9!F9$3NHL1e=qn+FGNwL%Skn%mleS
zKf13!v+MHK+pN;QTQ2V2=DGX%-a7Tj=R&e2-j$wJ_xrzB&VOHd|GV|=BS%<%+uQeP
z{=c127GbwWz-+SQo0SJT4_sOy6)R!>s5oQNffhs0Y3r_Cy;Ax!{@eG*7j17C__Qxg
z=$D<U+ss%rk6pWA=heEcHXlkK#Fhrs&YjoE_fem_^b>3NB!#cn^j6yL`uMij{?W%=
zz7!F&e<}<*&qcnzIbhy+^|{sgT9)N{{u|pBqtrN>GS$)xa#VPyd8o~>T3}?m(s*aY
zzs%?F=E_&u%#)rmu_8u5jN$apIn$bTqYq6#d^>e}&i7w?e2To!#6C%Lnz*3T=g(Bj
z$Vq;Rb~5o95^W;=M<Y$dQeT-)J@9u^`uBNf?{VeFvvqXFFyuVjXcX3T;(EK4^ZY6=
z+p_me@9w;{i;s@2p1_dMchKB~QQP*El)(m8pEF7d6FpkWxa9x+`Cy&!TFt&MM32E`
z)smP%F*ErLJJsrx@X%CI*P83Ezt%mBf0BRrhwP1Jp2mp*=@UEz|89Qx?!!D6rNHE-
z7kvijnfw=2=6_a~=r2nAr_4R=QTn#}+xtAVCdKSywOeGw`rNmmPA0i|gQB0N>y#(=
zS+ux%zpPmm|J6>3PdItrPdPE!j&<!F&x;&yZ#Hyjc2b%(W9_jkS2yX*Zf`v6ces-M
zSYBaza`2)B_cP`0<}%2A`Th6zM9H@8XS`p>zE!_%UJz?p#FSxudz*-p@Etkxxt}b~
z{gLSZP}jFd?zz+M*K^;8PB49bQkLb+mc+NA=NgQ~8~(WHZ1gDd3`uwqDev+l+AZ+p
zS49EkBO)xfUA0-JJ7}NY=~rarAl!9w`$VOQ##8fusEGDH>uaiO&0=0J*>q|7lmhu}
zISd&W6fIcV_NYle?3=&E)91kR+FQ+bi!?69Ro<Kv&2Y(MXSIv{`aGfZqw}&qPO1GA
zApGpb;a|>|YDM=|tjqG?K0cxDI`46nBHzpNo<Ev7QM=WsiesmUvhBp_I&24Cyytjh
zcYfNM(u5<=KeMhpmdJR~O|+18-tLOt6GxjukEw<RhWovm5y-mtNUP1XZpOp=Z`6yP
ztM;_<aBFkh!Z~&Aly4^wwTN0;>bvn*YR~JLetJ@lmr&-<ShufdxEfr_#h-r_wViPK
z4DYjrn`?Q(p3Rgz6e0LtoKMd1>9!M$r{1dHdfj~Y;98BxYTYxg28YLAKgzhIIIE#Z
zg1fFk%qo+4LHb9Rn#jk`jw!zo)K8joYE^rbsj2S2zdSkr_Wk|6ZOgozzdWfH@mdo-
zPPpBjv}^I6!liQCWrJPvF2r3dTlH3=Bw!(LhR@6J6=o7IzQ&&TsGYHSujy4&=7sMr
z?74S(@6}hlUro>GPVZ86Q=ReS;I1j_FJ0f1`+D2tC7JiE*X){fu1s;^<}!Eo#phX_
z4>m{ntY%WUHR0iQ$^L^q?c6K#X5>t*ni<3N>TVOG_)ia4Yp#G*+m>xx`mndn&o#8f
zMEmuvW&W%aD^)jJJ=Ss2Ww&m6zwqk5&f9*DCW5I`?uT^+F4@s#Sl(F~xUkxp|JQNB
znEP56W|a$aZ1tC2zR8VG`nqY}@u_Qt_a_IJCeAL>-uC&ihRMwi*XQ5ds?1e-jwA`}
z<dD8)EOFt%9(LI&R_PNi+k8HA)A;p**|E1Kq^Tc>x{{J#@pji%YsN*%S{%2P*FC-V
z*I>T*5~p<)n>Rk_=(@P3twQ`t<?$_2*L5}oNd7P?kka9NCOpGvg-=t&=W>DmS0TcZ
zO_C44Gpe(vwii#Ge!Xy><IG2=m=6SgX*ArR9FTeacuBDOtp(4Vw#gitBRf;!)2vyu
zHknE6`>Da6oHAqSn~!ILqQj!T9hmw2jr=a-koJj^$5tGa;bRx(c9~`rbne}}cTcxX
zc^mbVd+HR$#XA}P%syXn^UkK|mnFZf9CXTW&G8dv`RC%8a+2LM{Yg;D&WQ%UR;^l{
zcWc?ht7ocqYWBtSTwzx}=xou&6!Td9zPf^sSN`1#?9u((_dS}?c73mjcm&V-T-g(I
zWIfJ0Cwb{yD4pv$>Bx$tMek!4?A(@FW4U#P24^hKS`PO^x&eNSTWjw~?r#^cKX5~S
zTV|d0HU}HoT>?>UOk2e#{=c(f*+Yi?h4(lAWncfia?fP3Pf<y-f;Vr>XX0US^k$Kq
U-@93ofq{X+)78&qol`;+06%R!3IG5A

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_search_stop.png b/fmapp2/res/drawable/ic_btn_search_stop.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b8c4e8f99ab406208fd8b65732371c0381e7d1d
GIT binary patch
literal 2290
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
P7#KWV{an^LB{Ts5(ke1o

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_spaker.png b/fmapp2/res/drawable/ic_btn_spaker.png
new file mode 100644
index 0000000000000000000000000000000000000000..f439e2e9baad07fbf3f4cca343e10d89dd68de2e
GIT binary patch
literal 5699
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_btn_spaker_select.png b/fmapp2/res/drawable/ic_btn_spaker_select.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd5d57be0efebaefdd80cec6762b7bff294eeb7d
GIT binary patch
literal 5798
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
O7(8A5T-G@yGywptcnZ@1

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_launcher_fm_tx.png b/fmapp2/res/drawable/ic_launcher_fm_tx.png
new file mode 100644
index 0000000000000000000000000000000000000000..c6e41b205adf9eded727dba04cd4bfcd30907cf3
GIT binary patch
literal 3612
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
GXaWGI@Bdx^

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_launcher_fmradio.png b/fmapp2/res/drawable/ic_launcher_fmradio.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b1250cc5cba92eb9782af10ca0144702138d375
GIT binary patch
literal 1289
zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?F<YIjKx9jP7LeL$-HD>U|>t~
zc6VX81A_ZDRQE72FmM)lL>4nJa0`PlBg3pY5)2Fs>?NMQuIx9t*#(5uFIjb{GcYi4
zl(<HeIOpf)rskC}d^<C3KLZ0xsi%u$NXEUlGva+Fhl?DjclFAiSf4ieVL;6f9;<-o
zho@L5L@Eia{NR|LB(PPB>&%M_FXpx1K3sA{<FJNE?3abFE|gt!S@J_ki)Yfw?mUU_
zwi!$&9ZTnKi_M(+&M~v$YDSXv>1&_Ae4TUq^WFP<pWi8d$1Yg8U1|2J2`ZV20em&G
zX~nh-G2$!_cd2;3=WO~Qp-^?`$X2Pq96^?c{j=`w?mkqoQUAKR$(MaK+xoQ^tMmNO
zQ&c=y^z6(`R_;ref({8R_|!aQ3bUuDr|W_B4(~%6ru0wOH~;^%=wo75mPK3j)m5RZ
zSM{(lum1e$&qI0ByOS-L1Q>tpXLi}Ymbq7h?TWOon#rOQZ*Fe3TzFY=`su&hHf}V`
zDtnuhkif9`<d;0gW9q-PK344AGW+a`>+8P0-eqN7`RU2YFC2;+m#{28*l_$Y<ALX&
z3qKxW^)i|Dk})76qT~AOrF+-%Hq3jM_r^>*n~VFfGJD)q_Q#2)!AloKh!{%oJP{Qs
z*toQH(xsp&Ua3DA_UH*-%`%;?AG_$?1;sUC+SylLy)5lH7qU`AOK;itZ@EV<1&MIE
zzUaF+@7=qPX__k*>1ie9<mhB<{O{G!Z)D`OiCb%G*Vok4h3k(L78W{o|G)n9*ln?m
z9{M7T9SklEP1oz%*G!%9!)a-d=dVSsA#ZLtW(n+z$#D62e<#0$uUd_ryx#K3^XAFz
zv#*#S-zUpm$uD{(%};Hzpmny`{IvAN**SAkelOZIY2rk|dG_^wul7{FS+Pb%+4!^T
z`}>y;UA-12!^hq&uFtoFId1)QdH;D&p7lyIq&$BXw6XU0lIT0p%s*=EWcb+UZqNI8
zvP*Pwj(Uj|!#vw+x7{~=oNH}+&z_Ajn^{qRPR8#=iHoai;rjLc*5&X19R41;cixjH
zDSmV9cn@6F4!2l-eRJjMX%AF3x{3VUv!vy1^!B8U5i9QPH2#p~;yyV(;J{+{euj+f
z+|<-CF|JmooiXPoE%j#p_dd;?z4GTz4G}I8F4onbKkvMFQSgt9MNIhdJ3EUzdwaj$
zc3TtXqbB_Q*RKj2n=_Y}`~Thc@Zm%AT{~{PEejE@Srwx7rmVW4KX9hcvFX*{K6r<V
z^UK?Oc)fq+T2(i_<*RnhI_%!R$iDtwes_QW@ux+5ua!F`Dd{c0{QvgLl1VdWNc^!9
z5EeeX@9%HR)z=@F?T&xbaQ4`w)YCKOPiwpVcG=FAC++J}!^EziNwbmTR}Rx&K5I7f
zud^plK8&iiUc7j5PhVfr*&H=>b90kc9X-2wYehx>d?{M`{motP%O4-FiQnFrpPlXL
z@Bh93?vkrT|NqsR<=!|D{`;Gux~1iU^SsjLMj0D7_^wW!9d`P{1%cG3PxHkjAM;OA
z`T43}Mp4<=SjBu(!U>0Zd$;DsyQZcbO#(mn$T4;>{JGA+$HT|>>Gs{-m$?#>v_I}X
zo2K16&oKG3Lw$Xwg<n}l#*6gnr<XFzv8`ebZBj6KyJp=y&FQCO6L&q}el0Df;yGzb
zlfsVWOeReAOq>p(Gni`F?yx@NZo1&@a>(Hyn^F6mpq+O!{TLV+7(8A5T-G@yGywqG
C&03oP

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_menu_record.png b/fmapp2/res/drawable/ic_menu_record.png
new file mode 100644
index 0000000000000000000000000000000000000000..60f7a01afcea0bfbcc9f4c21bc5e3b9b4b7841c7
GIT binary patch
literal 798
zcmeAS@N?(olHy`uVBq!ia0y~yV31;9U=ZP8V_;yI?4Y}kfq_A?#5JNMI6tkVJh3R1
z!7(L2DOJHUH!(dmC^a#qvhZZ84Fdzy0Z$jlkcwM-LSsE92TIiKdw;wCcj0|6^Xbw$
z=IsI|CW+yt!7LMV!W+w3C7TmC?scWGG=?9FaBT}JQIF$kS@-JL>;yNV%`DgJW~mfU
zlg^f({o8h~@?DqWy0D4|4<FC@Z1=u+-}gQ5D=nQk{E{@DNcHvha(XQ-nvpc&Z1&b$
zReR&=?d|R3ryhRZ_e**I{q>h#fBo(f$RokS7P$DL%$n(^Q$@O6R|aU<OjgOv%FA2#
z=ekp)L&Aj|v;A9czkOa^U48N9O-@t&hHRk_i$g6FPNq!oTW-Gj=9{wt8e6Jz7It=a
zI%<8m_OvMT*A}I!Mez%we=_Wgu)2}|$|_*ji(~It)q_MiH%6@SV%0x;?%cXlVp8(*
z;g)mH`R8rly?_6OhL<0We%$Gw#-26L?7{C?eW6$_m&F&~R@l7bVr#B%nV9do?BOSV
z9-c4OC2lj)rX4uG*<sxsp`7)<A1cYrVVjbidMC^-n(JoHw!qa_xsolI?4~htJ>B*o
zc(=gx`;B*%AD<GMHE*7nj#zhlnxvIj9CMJX*p>758ww?+{|b<ebT_G8xp&1S2Znu5
z6?V@l4$bf~mFRVITzxg_#i_7p#a5@lu+>+;XfJ5{wQ*Iv0E@voucebxQt#fn6?N%h
z!56{f8Xj?zR1ZmRd2q?wV`)&dv$Jzq<VlCs|3VjEbh!N9S=2W&<DMkrV}o^X*4(~*
zn>)xUw6dC|G}>J2N}%<XGfGpouS>44-+yq&rq&v}_&Gvy6Xpe9(DhlAXnZkv^0bUO
zFPr`y6)CuOh|l8j*DCYqW7F<lO!QC@Qv5Y<Vp2_a&i#5XGoA30R^~Mgyq85c+5YSh
zv8z)%qc+pWj<fynp~QW+xC}3tzlpM&??25;)yes@bVdc|-QTBj`aT^#nOQT@!^NNb
zW1HXd-9EoB?u`GNF}Z8~n>TNCs%+*Rvj4vLziGvs3qLduFgQiOQ*Q8S<X~W6VDNPH
Kb6Mw<&;$T>%x~8K

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_signal_2.png b/fmapp2/res/drawable/ic_signal_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..efe4b5fa48572a8c9878a17b315ed70458851599
GIT binary patch
literal 1358
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+SUz~VIEGZ*x)K(fArmTM*Lk^w?Yfolwq4FqXQr@h
zKG?KUX_?!v1^hy5m%9DAxm3wl>%_74S+AU9yKlKn6pDJI*J!qJflElwA_XliA&y?%
zEumSP7o;vXT)BChqOlpbv9Hoc>&@1)_vhW%5_?oS@7<ZZ#@}nc&v{?-ecG8bXD-y=
z^qR)J;N`_-p(+zLCER-Vd&~PnrR)sp+8#@+T^!d;bMb6`>}4}OsYH6-$(dyx%T7wW
zzsdY9WBEn<o<H-H+E9jB^D<Tmxqhs34SD4f8ME@v5`lZgf4zDcEiy}vD;6Jm@;uWx
zcizG3`uoRg)47-!j!!Mv75eS8Y1g6&I;T~BxlCf=ynXgf#mQ;CEpKn=NoeOzth}gl
zdQ%(Yv(GgSF$@pW5B0C8E8V;)YGH%D!zBMx79!6qXB_%(|3Ia;(8l_8bF8JCeNKK1
zi(0NRgOQ$8%90-Ws{61176>+6xUA?Hy;wHDw6s-8`}3h50kw@cINxYp+_U)SpCHB#
z`M&#$I8MFoxTdydW7#<=J%QNkp7zVPf2+G-y;Xy0?r-b+Y#cZ58kTkSvk7c_uXNu1
zn9bp7&!Z-AuW|?%|FP{r-@_XVZ>Z)kdS2i!+VNYV;Y#XtmD-T~7q)GFd$sjItIjFr
z6VZ!(zgZmncY=H3$2GyC^7pw{TebWO+cwR0rp!Ub!l*NX7m9SYJ<YFkv%gon;<wJR
z%^%lQSUTh!+1ygPUw;SB;oFC|d#c#730*Ugyz9lFDE=|YZ=dCrzD_NV***sn|9p~c
zP?;9nrh7Yj+kwc%t5%6jFm6d%9$sR{&SHMq(D-Rbo&=llhvV<cclV3%D9CWF54yhM
zcT>~^mB?ATwg>M%Ws&J!{GadO!vcQ=ucr!g<<GxPc>Vp;SwTbH$vuM2o!_N8(w{IJ
z<on-voBHO@rbppnN%C=h!Vzy~pXfU==^@L<YmF8B3>WV5$fTaV@3-_=(DZ3jo6c>w
zTK%NqkHCVzodJ9cgkrvY{QHsN#B~O>E6IuR*Z$;xaXiE8Qs!22UC(*X?+EENhO76#
zUApawsjQpE#cF|TwhxXT?#gGB6jWKqz-R7JA!977u~mQF?aYo085fhNg@Q-4G=HZ!
z%_u&}EFL2e!?>nw<wX(gd+HYahu-FI@fTxKkYB$tIp4i@gW8Q%tfuDk*EywmKI`4Y
z;Je^VC&xX3@V*%W^5u1fRS6%znld{4{l7F*Dw9z+oz<^~JMvw-^SSRT&$I<5vMou`
z4k~WeYN)u{acspzEerNJO*MaCJh+&vu{8PQ#3u(A20Oq0d~>c%=_aL>>hbMw!+$)x
zx%67h4ex*9;hV0BN3Rxmm-gYI-kxb6JvndI+JEzVvwRWrjjh$!C(l|X8_2xs$n)lE
zo=2A&Yc{{xcjsT)?|q9HJKpu(TN#>tJga$YYE9xpX`z%Gy3QK1FZaJRnIciewe<VN
zB1Vo@iIv$`!_8RCr>vZs<<}DNUi8mKy$>?0lKFk6^DfvTpv-YmjpI^|<sr*27p^k+
ze@_gSzAGIYE5fj2$-Osmez9LmpWW~HDSJT0RVgN`)|Ihg_N9P#cgoZHW8Pc-mW~fQ
zFV4!4XJr`vJ$-KKxyCgrpF{7=+pxRfldl-7!{cYi<Yd;yZwh{Yel^oOjpLVBhG<op
zrba}qNObbgVeHT-vzh75ZnZ8pR^xE*!rX-?7illN&c@DmeY4Ot^DFazgfHD8@m8LZ
Zjp5w86ZtJghM>}t!PC{xWt~$(69BUKf&Tyi

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_silent_mode.png b/fmapp2/res/drawable/ic_silent_mode.png
new file mode 100644
index 0000000000000000000000000000000000000000..c89291a2073168c418a91fb0045a0adb5dd8c09a
GIT binary patch
literal 1362
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+SiX3=IEGZ*dJ>-Pu_RQ&?*18z$EkaoE2LY4E>B~1
z6#oCli)&?qQqy$#Q<E+%5}Eqo{IA3S#hH4$^lqkwbyuF2{u>dYv;K$o^ngTHb(N`C
zuk5j2Y<$k#_WgCsPnOcAuZ?~zX4ZfHoA0^x`|5emEAJQEoqSocX?2cN+0nPBm@mYB
zvhHNp|5*MgaNWw4g|pB9`t{43eZj-~k`?-g{SwP&9KI}ap~m)1eNvLrx<!i?$$zuG
zSDO&!AEcnLJoa~adHH@bE2}F1X{o^p2@52X?-{&KHS&7CtXQ{P=)$E-llE`f@}*Tj
zs-nWe+R{?+wZ}XMheyRViH%#gZZ-Y=`}g~nmX?gB=4Q!xS3loK6`T-q=+dgPBEH|B
zJ{3h|XTMHgzI=JUo2#o~QQp?5nccxF7cO*sbl=m)c+S<USI-?gb}aqaPE9{knK=7<
zs{=3k`ue(l|MJBo(_~h*p`oFUf`UUK*T3^;T^CgS^N~z!E}ofxru#eJJj0Yteb!&J
z_4WUY*0x0WuD)utH|{(STXWLJjT_J0z8zh-g0DeYVb1R>SFhfUiHXrUb@F7Uj+WN1
zUh7NSw{G2QWoh{{E-LEQ^w7}Ie#0^!My?xsA3uJq{O8Y~8Ghf*8E$O+q~kd$>B^Bj
zSB5K}88Ue9FI%>3_UF%^zn?#Mu7;hBE$_#VA9qfjKK*;|_U+%Ne*E|`|7}_IiyJp?
zypCAEXVa#lt_uQE7ZQz{H_R98Jaw|wu#th^&)US~%ch$-`{c#Mo_S}lUAxxx+t;tP
z+js5yb@I)dH^&_v9T&RX|MjcNU_wPhr8yTj_u1z)yFdI~@5|!q782Oq(J?_-SU6Q*
zUw_;7?aME0+q_x0b3s&qw#3pkXVa417EhFwmp{$%B1vjear@ziWeg_a5{{gC(<e%9
z-}rcaXW!z*%Fo`vUmu{kPqF3V`(?|P-8*&WOpRBb={gRZ^^M`jrq)iHIMGm2Qu3$X
zG2N`Y4#HlylAiB&SgED0-Ob`JdgkLH#tV;D3194t+Q@%nt;h_AsSB1b+PYyw0ZSL3
z3-68siIs|_*F&~U6yTXVckXq?J?jJJImbQ^THtWt%AGrRZr#8CU&ub(M8BuuMAO8H
z6IVQZ_>g^t=t6-dhio|~8Z}*--Lp#Ln6Ip?ti6xFKl`O}tLs;)?&%09F`scPEG%RU
zS<{hU#3%S}md~=?+S=MzXC$ep2nh*Eut@FNyEj)P^1+j<r`{^Kh^+_;KX>k29n*37
zoZQ^Ijkoq1?3+DhO31`{^Zv0MWoLhJ$u=ZR`B}uI$&>H9Ev?b=GMrc;B`dqP$yx2#
zRY8}de0+R29zI+c@Tb-3$Z?O(YfVi}^6c#FxdJhgpZ*0~sBgVJQMO-4>~!?(*|Xm#
z|Iy>Rpl>q2#yi4iwN($#p9>cDLS|-WD{8JSTCvA*XK$;>@e=+83pOYhS65eyJ$v`T
z;Y-YvFFB8;udF;KTXRS4Rl}L$Nqpb!6YE#xFbnEWoigPP+jRLwRgo*^1bzM8E~NX}
z_2mT1mdF=-*Q|Ndb6@i455xNK9h3h(7E;V}Zs{pZOMCX~&Ye554mG?n#zr0f3L8SB
zqOwZAD_y#J_35>xS2Ta9wgd$Q$vuDmTwLkwzJqH!I;+k-x3I0$6b;X3m$}{D-ECj>
z<HJLVkiV9nYT_MUt@K{0Ep_B=WM1Aoe~Y5}W2L_OB5z+ZxCrolRBpOr+tzv5V;>Le
irT_ol|IlY-W0;nks2t)k{X7E$1B0ilpUXO@geCx{`Iu|~

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_silent_mode_off.png b/fmapp2/res/drawable/ic_silent_mode_off.png
new file mode 100644
index 0000000000000000000000000000000000000000..4748b9ed7a6c4e2ef684286a5a6a352ab80a912d
GIT binary patch
literal 1555
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
Xy7XktB8v$O3=9mOu6{1-oD!M<X{+7>

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_status_fm_tx.png b/fmapp2/res/drawable/ic_status_fm_tx.png
new file mode 100644
index 0000000000000000000000000000000000000000..29383c9d46749511196cfe3591da9e5acf6f3f43
GIT binary patch
literal 802
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N|
z?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETF!z3)F!V+}w9RmXc
zM~Q1hiF1B#Zfaf$!?!cj_A@Xr^?ABDhFF}=owV0`Q=r7L`u?bdj0InKodR9rT?BXq
z1x;2q=AGsH%NXeB=<V(7Xd>d`y~T|;H_*i7OGiSJi$ec}02ikzSDXcHi_ZP!+js2t
z?CTZhcGkyyFO_w6X{lFHl4x@@4c+}Yq*_7g$>&NrIk^C@i#Kj~R99O!Iy?}6!S0~x
zsy6xIix(Zsm#goI)0gXKzrAhc>eb0PIXx9NezmoK&5umjbRlZ<_U-OQGgA^08Zu10
zG(-+P{urPmwsX%Om8o6}rzEAOKE2%=cv4~V$qjq=`dY}S33X05o3?ZRes>oRwq_na
zz90<|3mcmyTenW#xzmy%W-3pAfB(z3Z&jswi^|H}f`f(gw$Fa{EKTP4!T^m6*RCDA
zaz*6&_3L-;-kr+WmiXb{zjL2I8!Ia--`IBc#}A8>DU%{}j=gxHu`r<H`t|U<{Cr6%
zsYTniO{=l{Z|%Zx*q}g$egFOQuU=_w%Qd#O?Y;imRr6^5+UemRe%6?nm`w0n&dI{G
zBuMj5oxQxg{FW_S3W|%HgS!6xtJ`!_r|<EFyLbQI-P_R-6C3NPG;u<6GxJ6r@3!{#
zr=LFu%N(EB*~w|>8+_^I79Aa(6UUCZrTWxe&6uV3{Q2{kn3xBje_n|C{PpY6Cr?y9
zR>%mhj7xUi7}2wRyZN>2*EOel?TFFaa&67pwShWfhQ6Pl=ZgqljOy+<ap}^eoV>iQ
zjuW3gecFEZ=uuZe!J9X4PW<_^@@M(63sK#P5_9Iwn{@i=jJb1J4{Xwrla~+lx_I%T
zV|uzeLv(a>NolEIr^_il7Z;t=N-}(#_wVmN{gi3JvSn>|@5bKAGdDIip5mp-u;rSH
z5T~D?-;0+oHJOWc%INFsXRNI+`y(Fq)<%No()H`d<wJf>b+tbbD9ymYz~JfX=d#Wz
Gp$Py(LuUE_

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/ic_stereo.png b/fmapp2/res/drawable/ic_stereo.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9bfec6d04d50b7053f77f430e53cdba103b1bee
GIT binary patch
literal 742
zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoBuiW)N`mv#O3D+9QW+dm
z@{>{(JaZG%Q-e|yQz{EjrrIztFm-skIEGZ*dNcKW_M-rS<MBybwq@~NT_tiPV5!^^
zf&a|>_sX^ZF@B4RUi81g{)582FZLIT^~(egIww|tS-~!N<dz)E(V)%?-x6{+8z%+_
zwdS6E7dK6|V#1TNziaN#HaA|V;;B@Bc}0EngEwz_j3szBu3fuUUu|+{d%Dx*EjHhO
z{kk>l{PX*A^77t0WBg*G6()M5tO;BFplIify?bpp?cVKuCe1ie!fjr>j@Xlj4;y{d
zgbOWX()|7Xz2}R0s7+2?ep%Am!b0Kq@83o>#l@Rl14FpW&NXo_zx=YILe1abU&D#5
z*-=%hS8n}*00&zZM~!EnD_6#?_r8Ap`lY{rYb#Bp3QyOaO`H6>Z1>fV6+L!A`|nTB
z+8UL1^Zi{;g=dPp@BW+nyt1gG!eiU^?fnn;ep>ClXV0FVLYeTi$Z2QNj4$PFZ=UF}
zWa*j9S<icWd$-(vs}{Fj{Nc_12N@3wb}(HKn$vV(uHgLh)5Fg1=bSTVPQe2Kr^dN+
z=SDZA+s*Ep>!*JE^;ee@8cCaP?lY6(Epuhi=PhSQ@HyIDT4X!btJB=vT)e!zyl5I@
zbG+b%*I)M>O*)vPsIRZTu$0?N#8r-Moh#dSKLxpdaYda>ANL*XOfOGlYedN{YRH}#
zxGrq9>z@-2Z;bicl^=fp-Ff`6qT6D@!&}W{ofofZJ$3w-=bZWT&r4)5GNti~iN;J&
z`w@Nh&^uAX9<~_`Ohwua0w-(PRtI-$wk}=cE@lwvR%^1hU~9*$MjyAe|I{CxmXW&j
z>ebJmk?;CmEa<t<Ink)0($(4Arip3i(QB*UIGoO$Hd|)Hgi052E>=OSL;<%ltGQht
zgb#WKHaGkzetyCs%s_yn<I4Z}|J=VhH!w1+PHnsL{-Qi10|Nttr>mdKI;Vst0JC3H
AvH$=8

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/icon.png b/fmapp2/res/drawable/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..75024841d327c4fbaefef7c8e9c8d0e892895f93
GIT binary patch
literal 3180
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

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/image_border_bg_normal.9.png b/fmapp2/res/drawable/image_border_bg_normal.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..18e360791ee9414e6939cf54df3840303d180524
GIT binary patch
literal 3423
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
I=akR{0D}%|6951J

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/preset_page_button.xml b/fmapp2/res/drawable/preset_page_button.xml
new file mode 100644
index 0000000..cb1457b
--- /dev/null
+++ b/fmapp2/res/drawable/preset_page_button.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+ <selector xmlns:android="http://schemas.android.com/apk/res/android">
+     <item android:state_enabled="false"
+           android:drawable="@drawable/ic_btn_forward_dis" /> <!-- disabled -->
+     <item android:state_enabled="true"
+           android:drawable="@drawable/ic_btn_forward" /> <!-- enabled -->
+     <item android:drawable="@drawable/ic_btn_forward" /> <!-- default -->
+ </selector>
diff --git a/fmapp2/res/drawable/recorder_selected.png b/fmapp2/res/drawable/recorder_selected.png
new file mode 100644
index 0000000000000000000000000000000000000000..24e79ad0f43429ce5997a04040c50e1f73557a29
GIT binary patch
literal 4239
zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANM^mYL4Z0Rb8LCHch}`2`A|
z&dv%2Mfqu&IjIZ`9>?cSD-Q{|F4lg2Z+X?ivj$8-ZTEH`V7OF0InFh4hGc>UGoP`^
zM#V);g03#Jlsp2CG+Yc&33J&fAQG~HU4=u#P{K7tC*SQ__qsKEzJL1k`|+Cmx0}E3
z{QYL{`6zLQNz3)8PiOOHoN!9`L$l4Cmx2=mOWrUvFv=w~XfpVOx$TPIP|YE5^7Pr(
zd5T3$@hprVsv`C<6<oex+~CLlfBurlmo<$qW-tiO-fStUBPiZsq3S(BZ`=8<8B)`A
z(j-*V_Gvf@p6;|voXBhUTW8ba88=tjZ0k5`xqNf*&7^mtAGi4^x*zFS-@$FXbB>PS
zeW8tRT?SLNADKV85yEH8%pl^KBVG{EsbnT-*eNgcMCs8}h6f&;@r8H7bsnT}ADLd{
z>3#lTv9J(piR?7JyH{?_a{T@zWoZEm(_scR?U^UjFUMXAx;%4_41?JFKaoa{Ze4P9
z-Da|N+ZGcOW23*T0{)kN&iA@=+qFva$If(twg0={uK#mMiXq`lXV&J=-MZ_z8qVo5
zoVfct>9Pew!;%&Gve)<T;`g=D?__e^)w{7UENq(K^utC%;$Qgx`nT_2xPD){iru^Z
zPZwe>Kl&tgHR!FA*49<^J+VA}iE*UNu7~s6f5@}{E0tq&oKwL!|FE!YOXsql)7}DG
zXCHsYwIkEUYWny2vwrX&{<q}lPO;8QKLi7kdm65kYB|)sW!K;mRJi#2Xzc&R`TKqt
zDAZLx)SBE~{QtfA-}Hk^AE`Fa{$P1dRiovc&?jT@??=uHEnsByVA7hve#$}i1%q<}
z+nNU50+zf3(m$F71USQ(#XMM6Ht=t9kh{Uc<!E?=^IJn!0K1f<aR%#gM|BI<bIsll
zq;@doHUCZ!@o7j;5ZlAXEx?kfXynrPL{Zd3_)_~B1-2CaosRng1VlKGI&li{3prI@
zNLwMH)x2t9)e6a9a#oyk+t)cXUx>}%nblU;e(xZMPt(c`LTgy15A)pM{MP9FAhdvK
z58Js`?gz33s&^RVTdf~_{$TpU%!bRp`ME%YfS}Z(E(s-`Bdj0Y7fq;W>0jgCHGyjh
zW2Wn_iFQxajJnP!<OfQKu)4ZSF3Jg<w<17<dn?;kxzMInZnAEr3#tOm1Cv)oUU4^(
zT-$NY{q};r7X)9hl!)yTh;7Vs+P+wSQT}4}3+oLfcz750Zah?xq-5whW9tl|Gj=}G
z&t%dBjQeIDPTKe>qIQk!HTly=xHh!j(0UX2Ci0Cy8Pjhz_aiGGoGEy>LqmptdjIMJ
zvIplL<b9}C$X%hiN9`Wl`~LLD#UGabaH}!@XI00v-(iAUhVUB>#TJ!AYEG&Prxr~7
z(C}fBhsr9!wVjPFdWFgxCsp)R%(QT;@t&mka$=0fMHR(N_Ll-LWnSvNRGsN_P04!F
z;uB1t_==2wGW`_%*~{X3$m5WAlkP^xMQ)3nlRO^nREY};zT{c7HDz5&>l4nCuO}G?
zRcPvJifb;rQngZQ<>VmcpyEp+nZcR$FGF4my;QywzGQjI2BRpWJfobMOf#E}#8ZxG
za=6ZY<dhg_7A&PHt|=VC6FU2qtM4MQ;QfpF0@71cQ>LG6JDGO++KGA7WS1(M=*|+?
zZ4L9X_LE+=H+s>QBbl7(C%>t#^=_MX=CtnA;wg_$h@RYf^6s>1b^qz*ll`aNSG}+K
zKY(%Rg5?4$CM?|$|8UWvGeNI{ZZBQ4)YZFRfA4Y*?N^#?n(IPsR@_)`v3$vzCkv;n
z3t3v?nCUii*_#z}mc*>9ajT4KU6i!`P^f0O<?2sU^t{U#Ex(}sa_^VOP}flZ(1lrh
zUp2gHnzb!zMby5i*|(fao2;B|<Mzhvb*~L`c0KH`?7!Ic@jSJ-$qQ$$*crarzc|i2
zT016tb=dN2Q?||7Hoa_JS@$<)*-d@T=cMMc&5hnA5!;rx>7CtO>8cI$TH_YQ_1-J3
zjkq5)fAxO<`U?!X3AqQ1GYljQRV1w>)1<aZ^hsXqsp<XHYt=hXI$OeB^1abJ<9``R
ziIb8pWfa{HId<i?$^9+2zmyx>8c&Pty{TKgY3J^rY@hW$i=X~7y>Qyw__E_oNe|OE
zUR`wjQS;KNs`octExP4(SnJxVYgsLhsVoLw64TdSyms!I^cw%j{aZI~5xgO@{pZ<h
z7tC&c>v(&m=<U-vPkT=ve|zQ4jIys~i@%lpj`+>|Z86^}KA(2B_Tzo8`f`q|9rsj^
zU9PfxvETW*zH@$_dwcG)o|)e3m~%Uo*2%4NUB{efl(#VNYF_`Ht9OL&MBhob)v>u&
zHRrQS^{<L|pJYA;eM+h{tv*{7UAg}AyRV8rS$>E7w)uAT^V8pDzYo^ktK0ooZq0?5
zgV7gX^8eZUr~J1)&jr2+;Sb3QY6c1$)INAl$P9=Jh&NERQ2XKW;kCf?3701PUTC%O
z(1m#hCpWy<@NC1+g6khPeYnW+xT93?x{|2U&WW*sH&$#|v24Z8sd?Jp*UahI)}hxU
z7q@h;R`u1XSGiUPht2Ps*pql{PKWF9w&QZ0wdcR2n;ATRwC7RQ<FrV<HG9{j=eU<y
zR?kX4uKC#K*zKd!kNT_LP<`V!!>`0+jmMmay9!qC)SqNC`PHOnlmAZUSFQKr^w0D@
zy7btxc~4G$m{hqp^Hk=|%;uNBUbenmoSk#+O{DSZ?+?vW9VAy9?P3YJcs^u*fcp+t
zi)oqjBPah<)7E+IvaQ5Sf49B6etPw}ly%kbwr2-sM`l-l3i)jIw0CWBRQP_mDEaOC
z(wl#^HSr2d+nUMUbGb2P&&%aClmBe`6F&Q}dAYcTXpWA={YM*@E)7^TA>Lxs)w1ln
zW>?JKZEJk{?Dpzy^*Tx7vASlO>on@(4{7cE)%((X>iwEqg8P#fT-j9e-|vjyy>ky^
z`F8V7_niK8TJQUBx9<k}>FaCNZ&gn_Kea1Ww6vPDy0zL}yH<PmDw9=ZVSCs6t=Sj*
zIOcNL>WJNY%j)E-?_a1p{&#JuSLxBx_k0EXcUFF1@jl~1)(VRb%Ndm)Jd-1m?{DwP
zpFLY-R@ZDhnMblxwlXC<w%=T}^JmASiI>E7xZW_THTm_T_kGO%*IA}HYx5Ux6_sZ`
z-g10io&4{=9}4F`wpEu<kE*}$XW_QFm*TE4mOd#tQ>IqdSLRyAJMW9#&C9vB@BUkS
zvA^AK<-Apvy4AbB@I3T6IMYA9`24xK-uC9jb`Sql`1_py%PlCL_m%A%U(A=C6+b8a
zUdmnTSDUVXJJzoB=(AHNSNE)*dtGOJ>6hp)+yAG04F28l)ZuvP>esR6Yw}C@_2g}g
zpBR+<TlV^__x3$`vAg#^`u3pU#fP~QUrfAc{l+@DJow$d9n&lGAO1VW{({|=f2mxU
zO;F9151Zee&s{ui@$%y_$A8JQ+wZeKCsqH=`<VWFb*_06=7;#K@-g$D={t8;+5CMU
zOP*ftOn-S^ERCyv>c6eucAonzUswERZM|7i*(28fN0;CCjytvA=1bPi)$?{X>~vor
z9It;yeDB2i;vc$?bMNo|P(GPE^8Lp5+V(H%Ui^FU`QyRmSN!MyV`ZN4`OmH+FD^4M
zFt8<gySp&_2f+n<mrrJ3VBjq9h%9Dc;1&j9Muu5)Bp4VN*h@TpUD@w4Gm7x=D7$RP
zXJBBx?&;zf5^;FzbpM=~aM5G+_iOWQ9!vUj6vqDV)VZ!(Dq-GnVHx+X3?)G&m6nJJ
ztX-R$Tsv=U5flxI<<}6Ny{fya)kT1*(^ce18>^6sQ`Rw$B|?#*4?LT$sI~2wXH<Hn
zFa6EW&+if+n!hvYmECUPUUeyB-npOW{+_G+KF9yg@uHtLOE;&VeEON8>wnnw_kEFn
z7$S}@FZuRn+s9_z#`wCKr~cSXO%iNqOrL*Np_hrhL7zFEk&iK+X&*-q<6j5<w6mxF
z)U1AdyR%gP^0wvm4_RNlJuATC?7`lk&ZEZC&%n&~(!xXb$NGc52YJu@<BU=7nid(o
zdg`-hW#=69<}VM@nKXMY>vOikceB;zPWpcT;G3Ccvzu3!+TO}Bypv^kA?M=#j7$6P
zC1@0wiJed@e3$uv;oR3tmxJXj%GQKcKJGnxBid*~<olPI?KhJx%2_NLzn`BGx$BzG
ziw`co!Rpgjn#XM4zjX4vncU7Xdnaz(mvZ~e&Ru8zwSB4Hqp!3#R!ij1-P(_xLQj@0
zmo@0QnOXd9x5VPc8l|kQrJ3KvOp7b@OQtWEv`9~RV)^fqgrm|Hj_WLWCx72poXdVs
zSCnht?enFxSZ*x1`^NB$-{U*mYmP)1J*=+#y4ZEE-R_L58VBA?e!w6!qccn7!>>1s
z{{A|?ed@_CDvQIuXq>B+-h6pR@AJ6I*1R(e3ykdj-~D`UZEBx)iNEH^V}5>>LpR^+
z-~4c|?V7TB=kHl8zWS+?1pWK&Z`}X?^=HRi-@jZYTA35mK7Tt9?0?mJ{k~lX9sblh
zTg_$M*LRb%=i<F3{Pjgy7mxi8&vfmZ+fc54vFnJq+bxlO;oI&l;Wu<Mv}Tl9yxsir
z%bf|It?jEycq~#cnKS*o7e6oZ%7=SxvjP|RGvAx*a@+g25pV6=lUntAHXX0r>F6l?
z{NAcF=hugHxgLtK<4=oJXgAS(e>w2VHIHq%tF4#RR;$S<-`wW9cAH2`twp)O=9s*y
zT|FVC4HMcXsC}%vpQU_d>CNar`ybr(T;rCfoTe;t@4fRZ7b&JEkNgV{BrFomJpZtB
zR@S$dS^FldWId~>O7dOnQO%>)(CEj+z|VQ?_3Kl9b7PMEj&<ojTRp=na@oFhYZ7EC
zRuuDd+~9swt`waA=G{yCB*!aKZNicX^*t*M>gKcjdSiDu)BID%^V0Yp&*dz+3)Zsp
z%71reUvJ&W7GSFUDoRVPC9)^5*Ras=f!2q4lG!hp9Dn1e;4D+kTcLk!3m>!gfwLu-
z!qfG59^QGE{$P$_abicwrSQhthR@WPQ=4CRPT*gE??i;#?$b?@DNlA*DJOSM;OAY(
z{FINm?dGO4Vg-3i^>1!_tlxW4yyAAR%9#cFAEXT@=N{fEI#V}c8&8BpzWUWWUrIPP
zvlhSWJkWY`Y1WE=IWF3l()Wp<Q4o~yz8dhcDQNOdrT{HbuB-k1k2R{qcj#=^p1AW`
zaq;3k!S6OcNl!V%GpTWV`6=6PckXCR+&S&cI)>@VYjz*|`0%i9Rn;jE!AAj`m%f?W
z>QnIIqv@~B6P5NCt68bn@1B$L%lz=FYt7rZzsTpVNv&TLw?DY@v#-|CNAB8@nR$Fc
zD~;}nKmB{u;L29(s|)@<`YE_Kp116d@Z4GZ<9RDS{^@uZ(p)C-YSy0p9p7DpRu*OE
z<rS;$z8<8Nz_MBXnD@(n4t9d3(YwBEKDut{6}xA3=a*iI;Vz867w_`RazlugNRD^x
zgwxM8MY(unEH`oKc>UVGVas&sDKS5~?d^Rs4UdMazpe@3USWRcnev0>`(>ZqIhyFL
z_91Sa+MD&0&Lw|iUlP64>EOF-Y`22A&z(8&>z6_SkHxLXh^XA!b=Lx}b(UNYeYZF8
zyh^R9;3vj&Yd2hcJH2uL1h1*y!NK3JblvveY@Dtz_11*6f&)vMZ(V5YXK?-)qP#C`
zdgE-i>nY#*eKWW1i__lw?bfx!nbw6-R^{t<n;Us3A5hr9e}ZY{kFQlW31JOJY2Hhn
u7H$h&BWt{&)#kd`zH7Rd%eBt`XMdLYoNaTL-X;bH1_n=8KbLh*2~7Z}=^<nQ

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/recorder_start.png b/fmapp2/res/drawable/recorder_start.png
new file mode 100644
index 0000000000000000000000000000000000000000..5297a31ed627638e03b96d516fee33eb34e364df
GIT binary patch
literal 4006
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
HB{Ts5Bo>q1

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/recorder_stop.png b/fmapp2/res/drawable/recorder_stop.png
new file mode 100644
index 0000000000000000000000000000000000000000..6017be916a62b7d423ab17095a062ae2c567be46
GIT binary patch
literal 4172
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
XP!sDnr3)Dt7#KWV{an^LB{Ts5M)clM

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/stat_notify_fm.png b/fmapp2/res/drawable/stat_notify_fm.png
new file mode 100644
index 0000000000000000000000000000000000000000..16ed9bcbbc82d7374eb255d47e0e0ec75021eff7
GIT binary patch
literal 350
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s77>k44ofy`glX=O&z`&N|
z?e4<x9|RZdT|SwCfq}EYBeIx*fm;}a85w5Hkzin8U@!6Xb!ETF%_(Rtxs5?QnSp_U
zqr^3$#5q4VH#M(>;oF&M`xzJ*PI<aGhFF}wI{9E%i-CYkyh^)AM>#9M(+BrI|2MOL
ze5Svpg44D=antO(XEr^^<YIE&6+G2XkXgh0LV@sh);HZ-a=kCtyj(hE$2#u!wn{-V
zpY9dUQ(txdrRW8zWtpe`q~G79!<Av^bpN|V@~0}xD-(i#{bh^2{&3D=%kZAVmv?DJ
zl&pQ-)uEttlQCi5^E1gk?^%<2BC<DLOX@lK`}VffeebJnTlcTyH0Vp-n)ZM8_d=Qc
xY|D89PJP@L1e^pPe!rI}ArkQUXZ^!%2bcwt8`)gVT0tSm;OXk;vd$@?2>_7wihlqA

literal 0
HcmV?d00001

diff --git a/fmapp2/res/drawable/station_border.xml b/fmapp2/res/drawable/station_border.xml
new file mode 100644
index 0000000..2aee777
--- /dev/null
+++ b/fmapp2/res/drawable/station_border.xml
@@ -0,0 +1,33 @@
+<!--
+ * Copyright (c) 2009, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <stroke android:width="1dp" android:color="#FFFFFFFF" />
+    <padding android:left="1dp" android:top="1dp"
+            android:right="1dp" android:bottom="1dp" />
+    <corners android:radius="1dp" />
+</shape>
diff --git a/fmapp2/res/layout-800x480/fmradio.xml b/fmapp2/res/layout-800x480/fmradio.xml
new file mode 100644
index 0000000..83b9f7c
--- /dev/null
+++ b/fmapp2/res/layout-800x480/fmradio.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmradio"
+    android:background="@drawable/bg"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout android:id="@+id/layout_on_off"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginTop="3dp"
+        android:layout_alignParentTop="true">
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/sleep_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:drawableLeft="@drawable/count_down"
+            android:layout_toRightOf="@+id/btn_onoff"
+            android:textSize="14sp"
+            android:layout_marginLeft="5dp"
+            android:textStyle="bold"
+            android:visibility="invisible"
+            android:text="@string/default_sleep" />
+
+        <TextView android:id="@+id/prog_service_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:layout_marginLeft="2dp"
+            android:layout_marginRight="2dp"
+            android:layout_toLeftOf="@+id/btn_silent"
+            android:layout_toRightOf="@+id/sleep_msg_tv"
+            android:textSize="16sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:text="@string/prog_service_string"/>
+
+        <ImageView android:id="@+id/btn_silent"
+            android:src="@drawable/ic_silent_mode_off"
+            android:layout_toLeftOf="@+id/btn_speaker_earphone"
+            android:layout_width="wrap_content"
+            android:layout_marginRight="10dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_height="wrap_content" />
+
+        <ImageView android:id="@+id/btn_speaker_earphone"
+            android:src="@drawable/btn_earphone"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+    </RelativeLayout>
+
+    <LinearLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginTop="5dp"
+        android:layout_below="@+id/layout_on_off">
+
+        <!-- This included layout contains Station Information to display -->
+        <include layout="@layout/station_info" />
+
+    </LinearLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="200dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@+id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="60dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout-800x480/fmtags.xml b/fmapp2/res/layout-800x480/fmtags.xml
new file mode 100644
index 0000000..352320f
--- /dev/null
+++ b/fmapp2/res/layout-800x480/fmtags.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_height="fill_parent"
+    android:layout_width="fill_parent">
+
+    <ListView
+        android:id="@+id/TagListView"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:textSize="30sp"/>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout-800x480/fmtransmitter.xml b/fmapp2/res/layout-800x480/fmtransmitter.xml
new file mode 100644
index 0000000..f12e808
--- /dev/null
+++ b/fmapp2/res/layout-800x480/fmtransmitter.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmtransmitter"
+    android:background="@drawable/bg"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <RelativeLayout android:id="@+id/on_off_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        android:layout_marginBottom="2dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" >
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/transmit_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:layout_centerInParent="true"
+            android:layout_alignWithParentIfMissing="true"
+            android:text="@string/transmit_msg_string"/>
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_marginTop="150dp" >
+
+        <RelativeLayout android:id="@+id/frequency_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/btn_back"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="15dp"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_left"/>
+
+            <TextView android:id="@+id/prog_frequency_tv"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="25dp"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/frequency_string"/>
+
+            <ImageView android:id="@+id/btn_forward"
+                android:clickable="true"
+                android:focusable="true"
+                android:paddingRight="15dp"
+                android:layout_alignParentRight="true"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_right"/>
+
+        </RelativeLayout>
+
+        <!-- Station Radio Text information display -->
+        <RelativeLayout android:id="@+id/radio_text_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/frequency_layout">
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="5dp"
+                android:layout_marginTop="20dp"
+                android:layout_marginBottom="10dp"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="200dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="60dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout-800x480/navigate.xml b/fmapp2/res/layout-800x480/navigate.xml
new file mode 100644
index 0000000..7e60d32
--- /dev/null
+++ b/fmapp2/res/layout-800x480/navigate.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+  <RelativeLayout android:id="@+id/message_row"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
+        android:paddingTop="5dp"
+        android:paddingBottom="5dp">
+
+     <TextView android:id="@+id/record_msg_tv"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentLeft="true"
+        android:textSize="28dp"
+        android:textStyle="bold"
+        android:gravity="fill"
+        android:text="@string/default_record" />
+
+     <Button android:id="@+id/btn_presets_list"
+        android:text="@string/default_preset_list_name"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textSize="24dp"
+        android:textStyle="bold"
+        android:singleLine="true"
+        android:layout_centerHorizontal="true"
+        android:layout_alignParentTop="true"
+        android:layout_gravity="center"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="10dp"
+        android:layout_marginBottom="10dp"
+        android:gravity="fill"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+     <TextView android:id="@+id/sleep_msg_tv"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_alignParentRight="true"
+        android:layout_alignBaseline="@+id/btn_presets_list"
+        android:textSize="28dp"
+        android:textStyle="bold"
+        android:gravity="fill"
+        android:text="@string/default_sleep" />
+  </RelativeLayout>
+
+  <RelativeLayout android:id="@+id/presets_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/message_row"
+        android:layout_centerInParent="true">
+
+   <!--  Upper Presets -->
+   <RelativeLayout android:id="@+id/presets_upper_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="top">
+
+     <Button android:id="@+id/presets_button_1"
+        android:text="@string/default_blank"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="24dp"
+        android:singleLine="true"
+        android:gravity="fill"
+        android:layout_width="120dp"
+        android:layout_height="65dp" />
+
+     <Button android:id="@+id/presets_button_2"
+        android:text="@string/default_blank"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="24dp"
+        android:singleLine="true"
+        android:layout_toRightOf="@id/presets_button_1"
+        android:layout_alignTop="@id/presets_button_1"
+        android:layout_alignBottom="@id/presets_button_1"
+        android:gravity="fill"
+        android:layout_width="120dp"
+        android:layout_height="65dp" />
+
+     <Button android:id="@+id/presets_button_3"
+        android:text="@string/default_blank"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="24dp"
+        android:singleLine="true"
+        android:layout_toRightOf="@id/presets_button_2"
+        android:layout_alignTop="@id/presets_button_2"
+        android:layout_alignBottom="@id/presets_button_2"
+        android:layout_width="120dp"
+        android:gravity="fill"
+        android:layout_height="65dp" />
+  </RelativeLayout>
+
+<!--  Lower Presets -->
+  <RelativeLayout android:id="@+id/presets_lower_layout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/presets_upper_layout"
+        android:layout_alignLeft="@id/presets_upper_layout"
+        android:layout_alignRight="@id/presets_upper_layout">
+
+     <Button android:id="@+id/presets_button_4"
+        android:text="@string/default_blank"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="24dp"
+        android:singleLine="true"
+        android:layout_width="120dp"
+        android:gravity="fill"
+        android:layout_alignLeft="@id/presets_button_1"
+        android:layout_alignRight="@id/presets_button_1"
+        android:layout_height="65dp" />
+
+     <Button android:id="@+id/presets_button_5"
+        android:text="@string/default_blank"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="24dp"
+        android:singleLine="true"
+        android:layout_toRightOf="@id/presets_button_4"
+        android:layout_alignTop="@id/presets_button_4"
+        android:layout_alignBottom="@id/presets_button_4"
+        android:layout_alignLeft="@id/presets_button_2"
+        android:layout_alignRight="@id/presets_button_2"
+        android:gravity="fill"
+        android:layout_width="120dp"
+        android:layout_height="65dp" />
+
+     <ImageButton android:id="@+id/btn_preset_page"
+        android:src="@drawable/ic_btn_forward"
+        android:layout_toRightOf="@id/presets_button_5"
+        android:layout_alignTop="@id/presets_button_5"
+        android:layout_alignBottom="@id/presets_button_5"
+        android:layout_alignLeft="@id/presets_button_3"
+        android:layout_alignRight="@id/presets_button_3"
+        android:gravity="fill"
+        android:layout_width="120dp"
+        android:layout_height="65dp" />
+   </RelativeLayout>
+ </RelativeLayout>
+
+ <RelativeLayout android:id="@+id/scanning_stoplayout"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:visibility="gone"
+        android:gravity="center">
+
+    <Button android:id="@+id/btn_scanning_stop"
+        android:clickable="true"
+        android:text="@string/stop_scanning"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:textSize="32dip"
+        android:singleLine="true"
+        android:padding="20dip"
+        android:gravity="fill"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content" />
+ </RelativeLayout>
+
+</merge>
diff --git a/fmapp2/res/layout-800x480/station_info.xml b/fmapp2/res/layout-800x480/station_info.xml
new file mode 100644
index 0000000..87a8f7e
--- /dev/null
+++ b/fmapp2/res/layout-800x480/station_info.xml
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout android:id="@+id/station_info"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="0"
+        android:orientation="vertical"
+        android:gravity="top">
+
+        <RelativeLayout android:id="@+id/top_most"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/signal_level"
+                android:src="@drawable/ic_signal_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:visibility="gone" />
+
+            <TextView android:id="@+id/record_msg_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/recorder_start"
+                android:layout_marginLeft="20dp"
+                android:textSize="14sp"
+                android:textStyle="bold"
+                android:clickable="true"
+                android:visibility="invisible"
+                android:text="@string/default_record"/>
+
+
+            <TextView android:id="@+id/stereo_text_tv"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="16dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:layout_alignBaseline="@id/signal_level"
+                android:textSize="13sp"
+                android:text="@string/default_audio"/>
+
+        </RelativeLayout>
+
+        <LinearLayout android:id="@+id/station_frequency_row"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingTop="5dp"
+            android:paddingBottom="5dp"
+            android:layout_alignWithParentIfMissing="true"
+            android:gravity="center">
+
+            <TextView android:id="@+id/call_sign_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:paddingTop="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="2dp"
+                android:paddingLeft="2dp"
+                android:text="@string/station_id_string" />
+
+            <TextView android:id="@+id/pty_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:paddingTop="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="2dp"
+                android:paddingLeft="2dp"
+                android:text="@string/pty_string" />
+
+        </LinearLayout>
+
+        <RelativeLayout android:id="@+id/second_layout"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="1dp"
+                android:layout_marginBottom="1dp"
+                android:layout_marginLeft="2dp"
+                android:layout_marginRight="2dp">
+
+                <TextView android:id="@+id/prog_frequency_tv"
+                     android:textAppearance="?android:attr/textAppearanceLarge"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="25dp"
+                     android:gravity="center"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_toLeftOf="@+id/btn_forward"
+                     android:layout_toRightOf="@+id/btn_back"
+                     android:text="@string/frequency_string"/>
+
+                <ImageView android:id="@+id/btn_back"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingLeft="15dp"
+                     android:layout_alignParentLeft="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_left"/>
+
+                <ImageView android:id="@+id/btn_forward"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingRight="15dp"
+                     android:layout_alignParentRight="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_right"/>
+
+         </RelativeLayout>
+
+
+        <!-- Station Radio Text information display -->
+        <TextView android:id="@+id/radio_text_tv"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textSize="15sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:paddingLeft="2dp"
+            android:paddingRight="2dp"
+            android:paddingBottom="5dp"
+            android:paddingTop="20dp"
+            android:gravity="center_horizontal"
+            android:text="@string/radio_text_string"/>
+
+        <TextView android:id="@+id/eradio_text_tv"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textSize="15sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:paddingLeft="2dp"
+            android:paddingRight="2dp"
+            android:paddingBottom="5dp"
+            android:gravity="center_horizontal"
+            android:text="@string/eradio_text_string"/>
+
+    </LinearLayout>
+
+</merge>
diff --git a/fmapp2/res/layout-land-finger-800x480/fmradio.xml b/fmapp2/res/layout-land-finger-800x480/fmradio.xml
new file mode 100644
index 0000000..4a4519a
--- /dev/null
+++ b/fmapp2/res/layout-land-finger-800x480/fmradio.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012-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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmradio"
+    android:background="@drawable/bg_landscape"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout android:id="@+id/layout_on_off"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true">
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:layout_width="wrap_content"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/record_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:drawableLeft="@drawable/recorder_start"
+            android:layout_marginLeft="25dp"
+            android:layout_toRightOf="@+id/btn_onoff"
+            android:textSize="14sp"
+            android:textStyle="bold"
+            android:clickable="true"
+            android:focusable="true"
+            android:visibility="invisible"
+            android:text="@string/default_record"/>
+
+        <TextView android:id="@+id/prog_service_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:layout_toRightOf="@+id/record_msg_tv"
+            android:layout_toLeftOf="@+id/btn_silent"
+            android:textSize="16sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:text="@string/prog_service_string"/>
+
+        <ImageView android:id="@+id/btn_silent"
+            android:src="@drawable/ic_silent_mode_off"
+            android:layout_toLeftOf="@+id/btn_speaker_earphone"
+            android:layout_width="wrap_content"
+            android:layout_marginRight="10dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_height="wrap_content" />
+
+        <ImageView android:id="@+id/btn_speaker_earphone"
+            android:src="@drawable/btn_earphone"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/layout_on_off">
+
+        <!-- This included layout contains Station Information to display -->
+        <include layout="@layout/station_info" />
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="175dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@+id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="50dp"
+        android:fillViewport="true"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_weight="1"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout-land-finger-800x480/fmtransmitter.xml b/fmapp2/res/layout-land-finger-800x480/fmtransmitter.xml
new file mode 100644
index 0000000..d32ffbc
--- /dev/null
+++ b/fmapp2/res/layout-land-finger-800x480/fmtransmitter.xml
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmtransmitter"
+    android:background="@drawable/bg_landscape"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <RelativeLayout android:id="@+id/on_off_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        android:layout_marginBottom="2dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" >
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/transmit_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:layout_centerInParent="true"
+            android:layout_alignWithParentIfMissing="true"
+            android:text="@string/transmit_msg_string"/>
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/on_off_layout"
+        android:layout_marginTop="20dp" >
+
+        <RelativeLayout android:id="@+id/frequency_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/btn_back"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="15dp"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_left"/>
+
+            <TextView android:id="@+id/prog_frequency_tv"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="25dp"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/frequency_string"/>
+
+            <ImageView android:id="@+id/btn_forward"
+                android:clickable="true"
+                android:focusable="true"
+                android:paddingRight="15dp"
+                android:layout_alignParentRight="true"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_right"/>
+
+        </RelativeLayout>
+
+        <!-- Station Radio Text information display -->
+        <RelativeLayout android:id="@+id/radio_text_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/frequency_layout">
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="2dp"
+                android:paddingRight="2dp"
+                android:layout_marginTop="20dp"
+                android:layout_marginBottom="10dp"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="167dp"
+        android:layout_marginBottom="55dp"
+        android:layout_below="@id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="50dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
+
diff --git a/fmapp2/res/layout-land-finger-800x480/navigate.xml b/fmapp2/res/layout-land-finger-800x480/navigate.xml
new file mode 100644
index 0000000..269793b
--- /dev/null
+++ b/fmapp2/res/layout-land-finger-800x480/navigate.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+     <View
+        android:layout_width="fill_parent"
+        android:layout_height="1dip"
+        android:background="#ffffffff" />
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dip"
+        android:layout_marginLeft="5dip"
+        android:layout_marginRight="5dip"
+        android:layout_marginBottom="2dip"
+        android:orientation="vertical"
+        android:gravity="bottom"
+        >
+            <RelativeLayout android:id="@+id/message_row"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView android:id="@+id/record_msg_tv"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_alignParentLeft="true"
+                    android:textSize="14dip"
+                    android:textStyle="bold"
+                    android:text="@string/default_record"
+                    />
+
+                <Button android:id="@+id/btn_presets_list"
+                    android:text= "@string/default_preset_list_name"
+                    android:textStyle="bold"
+                    android:singleLine="true"
+                    android:layout_gravity="center"
+                    android:layout_centerHorizontal="true"
+                    android:layout_marginLeft="10dip"
+                    android:layout_marginRight="10dip"
+                    android:layout_width="140dip"
+                    android:layout_height="45dip" />
+
+                <TextView android:id="@+id/sleep_msg_tv"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignBaseline="@+id/btn_presets_list"
+                    android:layout_gravity="center_vertical"
+                    android:textSize="14dip"
+                    android:textStyle="bold"
+                    android:text="@string/default_sleep"
+                    />
+            </RelativeLayout>
+         </LinearLayout>
+
+        <LinearLayout android:id="@+id/presets_upper_layout"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_gravity="center"
+            android:layout_marginBottom="5dip"
+            android:gravity="center_horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                android:text="@string/default_station"
+                android:layout_width="80dip"
+                android:layout_height="50dip" />
+
+            <Button android:id="@+id/presets_button_2"
+                android:text="@string/default_station"
+                android:layout_width="80dp"
+                android:layout_height="50dp" />
+
+            <Button android:id="@+id/presets_button_3"
+                android:text="@string/default_station"
+                android:layout_width="80dip"
+                android:layout_height="50dip"
+                android:visibility="visible" />
+
+            <Button android:id="@+id/presets_button_4"
+                android:text="@string/default_blank"
+                android:layout_width="80dip"
+                android:layout_height="50dip"  />
+
+            <Button android:id="@+id/presets_button_5"
+                android:text="@string/default_blank"
+                android:layout_width="80dip"
+                android:layout_height="50dip"  />
+
+            <ImageButton android:id="@+id/btn_preset_page"
+                android:src="@drawable/ic_btn_forward"
+                android:layout_marginRight="2dp"
+                android:layout_width="80dip"
+                android:layout_height="50dip"
+                android:visibility="visible" />
+        </LinearLayout>
+</merge>
diff --git a/fmapp2/res/layout-land-finger-800x480/station_info.xml b/fmapp2/res/layout-land-finger-800x480/station_info.xml
new file mode 100644
index 0000000..3f44573
--- /dev/null
+++ b/fmapp2/res/layout-land-finger-800x480/station_info.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <RelativeLayout android:id="@+id/station_info"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <RelativeLayout android:id="@+id/top_most"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/signal_level"
+                android:src="@drawable/ic_signal_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:visibility="gone" />
+
+            <TextView android:id="@+id/sleep_msg_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/count_down"
+                android:textSize="14sp"
+                android:layout_marginLeft="25dp"
+                android:textStyle="bold"
+                android:visibility="invisible"
+                android:text="@string/default_sleep" />
+
+            <TextView android:id="@+id/eradio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="5dp"
+                android:paddingRight="5dp"
+                android:layout_toLeftOf="@+id/sleep_msg_tv"
+                android:layout_toRightOf="@+id/stereo_text_tv"
+                android:layout_centerInParent="true"
+                android:text="@string/eradio_text_string"/>
+
+            <TextView android:id="@+id/stereo_text_tv"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="16dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:layout_alignBaseline="@id/signal_level"
+                android:textSize="13sp"
+                android:text="@string/default_audio"/>
+
+        </RelativeLayout>
+
+        <RelativeLayout android:id="@+id/station_frequency_row"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="1dp"
+            android:paddingBottom="1dp"
+            android:layout_below="@+id/top_most"
+            android:layout_alignWithParentIfMissing="true">
+
+            <TextView android:id="@+id/call_sign_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="16dp"
+                android:text="@string/station_id_string" />
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+            <TextView android:id="@+id/pty_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:paddingRight="16dp"
+                android:text="@string/pty_string" />
+
+        </RelativeLayout>
+
+        <RelativeLayout android:id="@+id/second_layout"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="1dp"
+                android:layout_marginBottom="1dp"
+                android:layout_marginLeft="2dp"
+                android:layout_below="@+id/station_frequency_row"
+                android:layout_marginRight="2dp">
+
+                <TextView android:id="@+id/prog_frequency_tv"
+                     android:textAppearance="?android:attr/textAppearanceLarge"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="25dp"
+                     android:gravity="center"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_toLeftOf="@+id/btn_forward"
+                     android:layout_toRightOf="@+id/btn_back"
+                     android:text="@string/frequency_string"/>
+
+                <ImageView android:id="@+id/btn_back"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingLeft="15dp"
+                     android:layout_alignParentLeft="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_left"/>
+
+                <ImageView android:id="@+id/btn_forward"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingRight="15dp"
+                     android:layout_alignParentRight="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_right"/>
+
+         </RelativeLayout>
+
+    </RelativeLayout>
+
+</merge>
diff --git a/fmapp2/res/layout-land-finger/fmradio.xml b/fmapp2/res/layout-land-finger/fmradio.xml
new file mode 100644
index 0000000..23d74fb
--- /dev/null
+++ b/fmapp2/res/layout-land-finger/fmradio.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmradio"
+    android:background="@drawable/bg_landscape"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout android:id="@+id/layout_on_off"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true">
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/record_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:drawableLeft="@drawable/recorder_start"
+            android:layout_marginLeft="2dp"
+            android:layout_toRightOf="@+id/btn_onoff"
+            android:textSize="14sp"
+            android:textStyle="bold"
+            android:clickable="true"
+            android:focusable="true"
+            android:visibility="invisible"
+            android:text="@string/default_record"/>
+
+        <TextView android:id="@+id/prog_service_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:layout_toRightOf="@+id/record_msg_tv"
+            android:layout_toLeftOf="@+id/btn_silent"
+            android:textSize="16sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:text="@string/prog_service_string"/>
+
+        <ImageView android:id="@+id/btn_silent"
+            android:src="@drawable/ic_silent_mode_off"
+            android:layout_toLeftOf="@+id/btn_speaker_earphone"
+            android:layout_width="wrap_content"
+            android:layout_marginRight="10dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_height="wrap_content" />
+
+        <ImageView android:id="@+id/btn_speaker_earphone"
+            android:src="@drawable/btn_earphone"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="1dp"
+        android:layout_below="@+id/layout_on_off">
+
+        <!-- This included layout contains Station Information to display -->
+        <include layout="@layout/station_info" />
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="175dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@+id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="50dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout-land-finger/fmtransmitter.xml b/fmapp2/res/layout-land-finger/fmtransmitter.xml
new file mode 100644
index 0000000..1e350b0
--- /dev/null
+++ b/fmapp2/res/layout-land-finger/fmtransmitter.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmtransmitter"
+    android:background="@drawable/bg_landscape"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <RelativeLayout android:id="@+id/on_off_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        android:layout_marginBottom="2dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" >
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/transmit_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:layout_centerInParent="true"
+            android:layout_alignWithParentIfMissing="true"
+            android:text="@string/transmit_msg_string"/>
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/on_off_layout"
+        android:layout_marginTop="20dp" >
+
+        <RelativeLayout android:id="@+id/frequency_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/btn_back"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="15dp"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_left"/>
+
+            <TextView android:id="@+id/prog_frequency_tv"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="25dp"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/frequency_string"/>
+
+            <ImageView android:id="@+id/btn_forward"
+                android:clickable="true"
+                android:focusable="true"
+                android:paddingRight="15dp"
+                android:layout_alignParentRight="true"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_right"/>
+
+        </RelativeLayout>
+
+        <!-- Station Radio Text information display -->
+        <RelativeLayout android:id="@+id/radio_text_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/frequency_layout">
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="5dp"
+                android:layout_marginTop="20dp"
+                android:layout_marginBottom="10dp"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="175dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="12sp"
+                android:singleLine="true"
+                android:layout_width="85dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
+
diff --git a/fmapp2/res/layout-land-finger/navigate.xml b/fmapp2/res/layout-land-finger/navigate.xml
new file mode 100644
index 0000000..269793b
--- /dev/null
+++ b/fmapp2/res/layout-land-finger/navigate.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+     <View
+        android:layout_width="fill_parent"
+        android:layout_height="1dip"
+        android:background="#ffffffff" />
+
+    <LinearLayout
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dip"
+        android:layout_marginLeft="5dip"
+        android:layout_marginRight="5dip"
+        android:layout_marginBottom="2dip"
+        android:orientation="vertical"
+        android:gravity="bottom"
+        >
+            <RelativeLayout android:id="@+id/message_row"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                >
+
+                <TextView android:id="@+id/record_msg_tv"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
+                    android:layout_alignParentLeft="true"
+                    android:textSize="14dip"
+                    android:textStyle="bold"
+                    android:text="@string/default_record"
+                    />
+
+                <Button android:id="@+id/btn_presets_list"
+                    android:text= "@string/default_preset_list_name"
+                    android:textStyle="bold"
+                    android:singleLine="true"
+                    android:layout_gravity="center"
+                    android:layout_centerHorizontal="true"
+                    android:layout_marginLeft="10dip"
+                    android:layout_marginRight="10dip"
+                    android:layout_width="140dip"
+                    android:layout_height="45dip" />
+
+                <TextView android:id="@+id/sleep_msg_tv"
+                    android:textAppearance="?android:attr/textAppearanceMedium"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignBaseline="@+id/btn_presets_list"
+                    android:layout_gravity="center_vertical"
+                    android:textSize="14dip"
+                    android:textStyle="bold"
+                    android:text="@string/default_sleep"
+                    />
+            </RelativeLayout>
+         </LinearLayout>
+
+        <LinearLayout android:id="@+id/presets_upper_layout"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:layout_gravity="center"
+            android:layout_marginBottom="5dip"
+            android:gravity="center_horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                android:text="@string/default_station"
+                android:layout_width="80dip"
+                android:layout_height="50dip" />
+
+            <Button android:id="@+id/presets_button_2"
+                android:text="@string/default_station"
+                android:layout_width="80dp"
+                android:layout_height="50dp" />
+
+            <Button android:id="@+id/presets_button_3"
+                android:text="@string/default_station"
+                android:layout_width="80dip"
+                android:layout_height="50dip"
+                android:visibility="visible" />
+
+            <Button android:id="@+id/presets_button_4"
+                android:text="@string/default_blank"
+                android:layout_width="80dip"
+                android:layout_height="50dip"  />
+
+            <Button android:id="@+id/presets_button_5"
+                android:text="@string/default_blank"
+                android:layout_width="80dip"
+                android:layout_height="50dip"  />
+
+            <ImageButton android:id="@+id/btn_preset_page"
+                android:src="@drawable/ic_btn_forward"
+                android:layout_marginRight="2dp"
+                android:layout_width="80dip"
+                android:layout_height="50dip"
+                android:visibility="visible" />
+        </LinearLayout>
+</merge>
diff --git a/fmapp2/res/layout-land-finger/station_info.xml b/fmapp2/res/layout-land-finger/station_info.xml
new file mode 100644
index 0000000..9383894
--- /dev/null
+++ b/fmapp2/res/layout-land-finger/station_info.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <RelativeLayout android:id="@+id/station_info"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <RelativeLayout android:id="@+id/top_most"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/signal_level"
+                android:src="@drawable/ic_signal_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:visibility="gone" />
+
+            <TextView android:id="@+id/sleep_msg_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/count_down"
+                android:textSize="14sp"
+                android:layout_marginLeft="25dp"
+                android:textStyle="bold"
+                android:visibility="invisible"
+                android:text="@string/default_sleep" />
+
+            <TextView android:id="@+id/eradio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="5dp"
+                android:paddingRight="5dp"
+                android:layout_toRightOf="@+id/sleep_msg_tv"
+                android:layout_toLeftOf="@+id/stereo_text_tv"
+                android:layout_centerInParent="true"
+                android:text="@string/eradio_text_string"/>
+
+            <TextView android:id="@+id/stereo_text_tv"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="16dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:layout_alignBaseline="@id/signal_level"
+                android:textSize="13sp"
+                android:text="@string/default_audio"/>
+
+        </RelativeLayout>
+
+        <RelativeLayout android:id="@+id/station_frequency_row"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="1dp"
+            android:paddingBottom="1dp"
+            android:layout_below="@+id/top_most"
+            android:layout_alignWithParentIfMissing="true">
+
+            <TextView android:id="@+id/call_sign_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="16dp"
+                android:text="@string/station_id_string" />
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+            <TextView android:id="@+id/pty_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:paddingRight="16dp"
+                android:text="@string/pty_string" />
+
+        </RelativeLayout>
+
+        <RelativeLayout android:id="@+id/second_layout"
+                android:layout_width="fill_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="1dp"
+                android:layout_marginBottom="1dp"
+                android:layout_marginLeft="2dp"
+                android:layout_below="@+id/station_frequency_row"
+                android:layout_marginRight="2dp">
+
+                <TextView android:id="@+id/prog_frequency_tv"
+                     android:textAppearance="?android:attr/textAppearanceLarge"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="25dp"
+                     android:gravity="center"
+                     android:layout_toLeftOf="@+id/btn_forward"
+                     android:layout_toRightOf="@+id/btn_back"
+                     android:text="@string/frequency_string"/>
+
+                <ImageView android:id="@+id/btn_back"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingLeft="15dp"
+                     android:layout_alignParentLeft="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_left"/>
+
+                <ImageView android:id="@+id/btn_forward"
+                     android:clickable="true"
+                     android:focusable="true"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:paddingRight="15dp"
+                     android:layout_alignParentRight="true"
+                     android:visibility="visible"
+                     android:layout_alignWithParentIfMissing="true"
+                     android:src="@drawable/btn_arrow_right"/>
+
+         </RelativeLayout>
+
+    </RelativeLayout>
+
+</merge>
diff --git a/fmapp2/res/layout/alert_dialog_list.xml b/fmapp2/res/layout/alert_dialog_list.xml
new file mode 100644
index 0000000..8b9ae52
--- /dev/null
+++ b/fmapp2/res/layout/alert_dialog_list.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <ListView android:id="@+id/list"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content">
+    </ListView>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/alert_dialog_text_entry.xml b/fmapp2/res/layout/alert_dialog_text_entry.xml
new file mode 100644
index 0000000..a54fc00
--- /dev/null
+++ b/fmapp2/res/layout/alert_dialog_text_entry.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <EditText
+        android:id="@+id/list_edit"
+        android:layout_height="wrap_content"
+        android:layout_width="fill_parent"
+        android:layout_marginLeft="20dp"
+        android:layout_marginRight="20dp"
+        android:scrollHorizontally="true"
+        android:hint="Enter a name"
+        android:singleLine="true"
+        android:inputType="text"
+        android:autoText="false"
+        android:capitalize="none"
+        android:gravity="fill_horizontal"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:saveEnabled="false"/>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/delete_dialog.xml b/fmapp2/res/layout/delete_dialog.xml
new file mode 100644
index 0000000..44df762
--- /dev/null
+++ b/fmapp2/res/layout/delete_dialog.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012, 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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation, Inc. nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <TextView android:id="@+id/prompt"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginBottom="8dp"
+        android:drawableLeft="@android:drawable/ic_dialog_alert"
+        android:drawablePadding="8dp">
+    </TextView>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="6dp">
+
+        <Button android:id="@+id/delete"
+            android:layout_width="120dp"
+            android:layout_height="wrap_content"
+            android:text="@string/button_delete"
+            android:layout_gravity="center_horizontal"
+            android:layout_alignParentLeft="true" />
+
+        <Button android:id="@+id/cancel"
+            android:layout_width="120dp"
+            android:layout_height="wrap_content"
+            android:text="@string/button_cancel"
+            android:layout_alignParentRight="true" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/fmradio.xml b/fmapp2/res/layout/fmradio.xml
new file mode 100644
index 0000000..4aef544
--- /dev/null
+++ b/fmapp2/res/layout/fmradio.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmradio"
+    android:background="@drawable/bg"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+    <RelativeLayout android:id="@+id/layout_on_off"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginTop="3dp"
+        android:layout_alignParentTop="true">
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/sleep_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:drawableLeft="@drawable/count_down"
+            android:layout_toRightOf="@+id/btn_onoff"
+            android:textSize="14sp"
+            android:layout_marginLeft="5dp"
+            android:textStyle="bold"
+            android:visibility="invisible"
+            android:text="@string/default_sleep" />
+
+        <TextView android:id="@+id/prog_service_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="center"
+            android:layout_marginLeft="2dp"
+            android:layout_marginRight="2dp"
+            android:layout_toLeftOf="@+id/btn_silent"
+            android:layout_toRightOf="@+id/sleep_msg_tv"
+            android:textSize="16sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:text="@string/prog_service_string"/>
+
+	<ImageView android:id="@+id/btn_silent"
+            android:src="@drawable/ic_silent_mode_off"
+            android:layout_toLeftOf="@+id/btn_speaker_earphone"
+            android:layout_width="wrap_content"
+            android:layout_marginRight="10dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_height="wrap_content" />
+
+        <ImageView android:id="@+id/btn_speaker_earphone"
+            android:src="@drawable/btn_earphone"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+    </RelativeLayout>
+
+    <LinearLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        android:layout_marginTop="5dp"
+        android:layout_below="@+id/layout_on_off">
+
+        <!-- This included layout contains Station Information to display -->
+        <include layout="@layout/station_info" />
+
+    </LinearLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="200dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@+id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="60dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout/fmstats.xml b/fmapp2/res/layout/fmstats.xml
new file mode 100644
index 0000000..d9306d5
--- /dev/null
+++ b/fmapp2/res/layout/fmstats.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2011, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:scrollbars="vertical"
+    android:layout_height="fill_parent"
+    android:layout_width="fill_parent">
+
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:orientation="vertical">
+
+       <Spinner
+           android:id="@+id/spinner"
+           android:layout_width="fill_parent"
+           android:layout_height="75dp"
+           android:prompt="@string/test_prompt"
+           android:textSize="25sp"/>
+
+       <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+           android:layout_width="fill_parent"
+           android:layout_height="100dp">
+
+           <Button
+               android:id= "@+id/Runbutton"
+               android:text="@string/test_run"
+               android:layout_width="wrap_content"
+               android:layout_height="100dp"
+               android:textSize="25sp"
+               android:visibility="gone"/>
+
+           <ProgressBar android:id="@+id/progressbar"
+               android:layout_width="100dp"
+               android:layout_height="100dp"
+               android:layout_toRightOf="@id/Runbutton"
+               android:visibility="gone"/>
+
+           <TextView
+               android:id="@+id/label"
+               android:layout_width="fill_parent"
+               android:layout_height="wrap_content"
+               android:textSize="15sp"
+               android:text="@string/enter_rssi"
+               android:visibility="gone"/>
+
+           <EditText
+               android:id="@+id/txtbox1"
+               android:layout_width="100dp"
+               android:layout_height="50dp"
+               android:text="@string/type_rd"
+               android:textSize="15sp"
+               android:layout_alignParentRight="true"
+               android:visibility="gone"/>
+
+           <Button
+               android:id= "@+id/Setbutton"
+               android:text="@string/set_rmmsi_delta"
+               android:layout_width="wrap_content"
+               android:layout_height="100dp"
+               android:layout_below="@id/txtbox1"
+               android:textSize="15sp"
+               android:visibility="gone"/>
+
+       </RelativeLayout>
+
+       <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
+           android:id="@+id/maintable"
+           android:layout_width="fill_parent"
+           android:layout_height="fill_parent"
+           android:scrollbars="vertical">
+
+           <TableRow
+               android:id="@+id/mainrow">
+           </TableRow>
+
+       </TableLayout>
+
+    </LinearLayout>
+
+</ScrollView>
diff --git a/fmapp2/res/layout/fmtags.xml b/fmapp2/res/layout/fmtags.xml
new file mode 100644
index 0000000..352320f
--- /dev/null
+++ b/fmapp2/res/layout/fmtags.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_height="fill_parent"
+    android:layout_width="fill_parent">
+
+    <ListView
+        android:id="@+id/TagListView"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:textSize="30sp"/>
+
+</RelativeLayout>
diff --git a/fmapp2/res/layout/fmtransmitter.xml b/fmapp2/res/layout/fmtransmitter.xml
new file mode 100644
index 0000000..b2ba8e5
--- /dev/null
+++ b/fmapp2/res/layout/fmtransmitter.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/fmtransmitter"
+    android:background="@drawable/bg"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <RelativeLayout android:id="@+id/on_off_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="2dp"
+        android:layout_marginBottom="2dp"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true" >
+
+        <ImageView android:id="@+id/btn_onoff"
+            android:src="@drawable/btn_onoff"
+            android:layout_alignParentLeft="true"
+            android:layout_marginLeft="15dp"
+            android:clickable="true"
+            android:focusable="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
+
+        <TextView android:id="@+id/transmit_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="15dp"
+            android:layout_centerInParent="true"
+            android:layout_alignWithParentIfMissing="true"
+            android:text="@string/transmit_msg_string"/>
+
+    </RelativeLayout>
+
+    <RelativeLayout android:id="@+id/stationinfo_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/on_off_layout"
+        android:layout_marginTop="150dp" >
+
+        <RelativeLayout android:id="@+id/frequency_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/btn_back"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_alignParentLeft="true"
+                android:paddingLeft="15dp"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_left"/>
+
+            <TextView android:id="@+id/prog_frequency_tv"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:textSize="25dp"
+                android:layout_centerInParent="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/frequency_string"/>
+
+            <ImageView android:id="@+id/btn_forward"
+                android:clickable="true"
+                android:focusable="true"
+                android:paddingRight="15dp"
+                android:layout_alignParentRight="true"
+                android:visibility="visible"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/btn_arrow_right"/>
+
+        </RelativeLayout>
+
+        <!-- Station Radio Text information display -->
+        <RelativeLayout android:id="@+id/radio_text_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@id/frequency_layout">
+
+            <TextView android:id="@+id/radio_text_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="20dp"
+                android:singleLine="true"
+                android:textStyle="bold"
+                android:paddingLeft="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="5dp"
+                android:layout_marginTop="20dp"
+                android:layout_marginBottom="10dp"
+                android:layout_centerInParent="true"
+                android:text="@string/radio_text_string"/>
+
+        </RelativeLayout>
+
+    </RelativeLayout>
+
+    <com.caf.fmradio.HorizontalNumberPicker
+        android:id="@+id/fm_picker"
+        android:layout_width="fill_parent"
+        android:layout_height="200dp"
+        android:layout_marginBottom="50dp"
+        android:layout_below="@id/stationinfo_layout"/>
+
+    <HorizontalScrollView
+        android:layout_width="fill_parent"
+        android:layout_height="60dp"
+        android:layout_alignParentBottom="true"
+        android:scrollbars="none">
+
+        <LinearLayout  android:id="@+id/favorite_list"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:orientation="horizontal">
+
+            <Button android:id="@+id/presets_button_1"
+                style="@style/ButtonStripLeft"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_2"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_3"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_4"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_5"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_6"
+                style="@style/ButtonStripMiddle"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+            <Button android:id="@+id/presets_button_7"
+                style="@style/ButtonStripRight"
+                android:text="@string/add_station"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textSize="15sp"
+                android:singleLine="true"
+                android:layout_width="80dp"
+                android:layout_weight="1"
+                android:layout_height="wrap_content"/>
+
+        </LinearLayout>
+
+    </HorizontalScrollView>
+
+</RelativeLayout>
+
diff --git a/fmapp2/res/layout/frequency_picker.xml b/fmapp2/res/layout/frequency_picker.xml
new file mode 100644
index 0000000..cef47f9
--- /dev/null
+++ b/fmapp2/res/layout/frequency_picker.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright (c) 2013, The Linux Foundation. All rights reserved.
+** Not a Contribution.
+**
+** Copyright 2007, 2012, 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.
+*/
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content">
+    <!-- MHz -->
+    <android.widget.NumberPicker
+        android:id="@+id/mhz"
+        android:layout_width="80dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="1dp"
+        android:layout_marginRight="1dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true" />
+
+    <!-- KHz -->
+    <android.widget.NumberPicker
+        android:id="@+id/khz"
+        android:layout_width="80dp"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="1dp"
+        android:layout_marginRight="1dp"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        />
+</LinearLayout>
diff --git a/fmapp2/res/layout/frequency_picker_dialog.xml b/fmapp2/res/layout/frequency_picker_dialog.xml
new file mode 100644
index 0000000..3d95123
--- /dev/null
+++ b/fmapp2/res/layout/frequency_picker_dialog.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+** Copyright (c) 2013, The Linux Foundation. All rights reserved.
+** Not a Contribution.
+**
+** Copyright 2007, 2012, 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.
+*/
+-->
+
+<com.caf.utils.FrequencyPicker xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/frequencyPicker"
+    android:padding="5dp"
+    android:layout_gravity="center_horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"/>
diff --git a/fmapp2/res/layout/navigate.xml b/fmapp2/res/layout/navigate.xml
new file mode 100644
index 0000000..5e6b665
--- /dev/null
+++ b/fmapp2/res/layout/navigate.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <RelativeLayout android:id="@+id/message_row"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="5dip"
+        android:orientation="horizontal">
+
+        <TextView android:id="@+id/record_msg_tv"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentLeft="true"
+            android:textSize="14dip"
+            android:textStyle="bold"
+            android:text="@string/default_record"/>
+
+        <Button android:id="@+id/btn_presets_list"
+            android:text="@string/default_preset_list_name"
+            android:textStyle="bold"
+            android:singleLine="true"
+            android:layout_centerHorizontal="true"
+            android:layout_alignParentTop="true"
+            android:layout_gravity="center"
+            android:layout_marginLeft="10dip"
+            android:layout_marginRight="10dip"
+            android:layout_width="140dip"
+            android:layout_height="45dip" />
+
+        <TextView android:id="@+id/sleep_msg_tv"
+           android:textAppearance="?android:attr/textAppearanceMedium"
+           android:layout_width="wrap_content"
+           android:layout_height="wrap_content"
+           android:layout_alignParentTop="true"
+           android:layout_alignParentRight="true"
+           android:layout_alignBaseline="@+id/btn_presets_list"
+           android:textSize="14dip"
+           android:textStyle="bold"
+           android:text="@string/default_sleep" />
+
+  </RelativeLayout>
+
+  <LinearLayout android:id="@+id/presets_layout"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_centerHorizontal="true"
+      android:orientation="vertical">
+
+      <!--  Upper Presets -->
+     <LinearLayout android:id="@+id/presets_upper_layout"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:orientation="horizontal"
+         android:layout_gravity="center"
+         android:layout_marginBottom="5dip"
+         android:gravity="center_horizontal">
+
+         <Button android:id="@+id/presets_button_1"
+             android:text="@string/default_station"
+             android:layout_marginLeft="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip" />
+
+         <Button android:id="@+id/presets_button_2"
+             android:text="@string/default_station"
+             android:layout_marginLeft="10dip"
+             android:layout_marginRight="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip" />
+
+         <Button android:id="@+id/presets_button_3"
+             android:text="@string/default_station"
+             android:layout_marginRight="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip"
+             android:visibility="visible" />
+
+     </LinearLayout>
+
+     <!--  Lower Presets -->
+     <LinearLayout android:id="@+id/presets_lower_layout"
+         android:layout_width="wrap_content"
+         android:layout_height="wrap_content"
+         android:orientation="horizontal"
+         android:layout_gravity="center"
+         android:layout_marginBottom="5dip"
+         android:gravity="center_horizontal">
+
+         <Button android:id="@+id/presets_button_4"
+             android:text="@string/default_blank"
+             android:layout_marginLeft="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip" />
+
+         <Button android:id="@+id/presets_button_5"
+             android:text="@string/default_blank"
+             android:layout_marginLeft="10dip"
+             android:layout_marginRight="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip" />
+
+         <ImageButton android:id="@+id/btn_preset_page"
+             android:src="@drawable/preset_page_button"
+             android:layout_marginRight="10dip"
+             android:layout_width="90dip"
+             android:layout_height="55dip"
+             android:visibility="visible" />
+
+     </LinearLayout>
+
+  </LinearLayout>
+
+  <LinearLayout android:id="@+id/scanning_stoplayout"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:visibility="gone"
+      android:gravity="center">
+
+      <Button android:id="@+id/btn_scanning_stop"
+          android:clickable="true"
+          android:text="@string/stop_scanning"
+          android:singleLine="true"
+          android:padding="20dip"
+          android:layout_width="fill_parent"
+          android:layout_height="wrap_content" />
+
+  </LinearLayout>
+
+</merge>
diff --git a/fmapp2/res/layout/rename_dialog.xml b/fmapp2/res/layout/rename_dialog.xml
new file mode 100644
index 0000000..2374c9c
--- /dev/null
+++ b/fmapp2/res/layout/rename_dialog.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012, 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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation, Inc. nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/rename"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:padding="10dp">
+
+    <EditText android:id="@+id/name"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:inputType="text"
+        android:textColor="#FFF"
+        android:singleLine="true"
+        android:maxLength="16">
+     <requestFocus />
+     </EditText>
+     <RelativeLayout
+         android:layout_width="match_parent"
+         android:layout_height="wrap_content"
+         android:padding="6dp" >
+
+         <Button android:id="@+id/save"
+             android:layout_width="120dp"
+             android:layout_height="wrap_content"
+             android:text="@string/button_ok"
+             android:layout_alignParentLeft="true" />
+
+         <Button android:id="@+id/cancel"
+             android:layout_width="120dp"
+             android:layout_height="wrap_content"
+             android:text="@string/button_cancel"
+             android:layout_alignParentRight="true" />
+
+    </RelativeLayout>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/station_info.xml b/fmapp2/res/layout/station_info.xml
new file mode 100644
index 0000000..fc7d62e
--- /dev/null
+++ b/fmapp2/res/layout/station_info.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <LinearLayout android:id="@+id/station_info"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:layout_weight="0"
+        android:orientation="vertical"
+        android:gravity="top">
+
+        <RelativeLayout android:id="@+id/top_most"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content">
+
+            <ImageView android:id="@+id/signal_level"
+                android:src="@drawable/ic_signal_2"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="5dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentLeft="true"
+                android:visibility="gone" />
+
+            <TextView android:id="@+id/sleep_msg_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/count_down"
+                android:textSize="14sp"
+                android:layout_marginLeft="25dp"
+                android:textStyle="bold"
+                android:visibility="invisible"
+                android:text="@string/default_sleep" />
+
+            <TextView android:id="@+id/record_msg_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:drawableLeft="@drawable/recorder_start"
+                android:layout_marginLeft="20dp"
+                android:textSize="14sp"
+                android:textStyle="bold"
+                android:clickable="true"
+                android:visibility="invisible"
+                android:text="@string/default_record"/>
+
+            <TextView android:id="@+id/stereo_text_tv"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="16dp"
+                android:layout_alignParentTop="true"
+                android:layout_alignParentRight="true"
+                android:layout_alignBaseline="@id/signal_level"
+                android:textSize="13sp"
+                android:text="@string/default_audio"/>
+
+        </RelativeLayout>
+
+        <LinearLayout android:id="@+id/station_frequency_row"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingTop="5dp"
+            android:paddingBottom="5dp"
+            android:layout_alignWithParentIfMissing="true"
+            android:gravity="center">
+
+            <TextView android:id="@+id/call_sign_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:paddingTop="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="2dp"
+                android:paddingLeft="2dp"
+                android:text="@string/station_id_string" />
+
+            <TextView android:id="@+id/pty_tv"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="14sp"
+                android:paddingTop="2dp"
+                android:paddingRight="2dp"
+                android:paddingBottom="2dp"
+                android:paddingLeft="2dp"
+                android:text="@string/pty_string" />
+
+        </LinearLayout>
+
+        <RelativeLayout android:id="@+id/second_layout"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="2dp"
+            android:layout_marginBottom="2dp"
+            android:layout_marginLeft="2dp"
+            android:layout_marginRight="2dp">
+
+            <TextView android:id="@+id/prog_frequency_tv"
+                android:textAppearance="?android:attr/textAppearanceLarge"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textSize="25dp"
+                android:gravity="center"
+                android:layout_toLeftOf="@+id/btn_forward"
+                android:layout_toRightOf="@+id/btn_back"
+                android:text="@string/frequency_string"/>
+
+            <ImageView android:id="@+id/btn_back"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingLeft="15dp"
+                android:layout_alignParentLeft="true"
+                android:visibility="visible"
+                android:layout_alignWithParentIfMissing="true"
+                android:src="@drawable/btn_arrow_left"/>
+
+            <ImageView android:id="@+id/btn_forward"
+                android:clickable="true"
+                android:focusable="true"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingRight="15dp"
+                android:layout_alignParentRight="true"
+                android:visibility="visible"
+                android:layout_alignWithParentIfMissing="true"
+                android:src="@drawable/btn_arrow_right"/>
+
+         </RelativeLayout>
+
+        <!-- Station Radio Text information display -->
+        <TextView android:id="@+id/radio_text_tv"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textSize="15sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:paddingLeft="2dp"
+            android:paddingRight="2dp"
+            android:paddingBottom="5dp"
+            android:paddingTop="20dp"
+            android:gravity="center_horizontal"
+            android:text="@string/radio_text_string"/>
+
+        <TextView android:id="@+id/eradio_text_tv"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textSize="15sp"
+            android:singleLine="true"
+            android:textStyle="bold"
+            android:paddingLeft="2dp"
+            android:paddingRight="2dp"
+            android:paddingBottom="5dp"
+            android:gravity="center_horizontal"
+            android:text="@string/eradio_text_string"/>
+
+    </LinearLayout>
+
+</merge>
diff --git a/fmapp2/res/layout/station_list.xml b/fmapp2/res/layout/station_list.xml
new file mode 100644
index 0000000..18d31f0
--- /dev/null
+++ b/fmapp2/res/layout/station_list.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012, 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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation, Inc. nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+    <!--Change layout_height value "wrap_content" to "fill_parent" can dispaly last item dividing line -->
+    <ListView android:id="@+id/station_list"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent" >
+    </ListView>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/station_list_item.xml b/fmapp2/res/layout/station_list_item.xml
new file mode 100644
index 0000000..40c05d5
--- /dev/null
+++ b/fmapp2/res/layout/station_list_item.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012, 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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation, Inc. nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/item"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical">
+
+   <TableLayout
+       android:id="@+id/TableLayout1"
+       android:layout_width="match_parent"
+       android:layout_height="wrap_content"
+       android:stretchColumns="1">
+
+       <TableRow>
+           <TextView
+               android:id="@+id/fixName"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:paddingLeft="30dp"
+               android:paddingTop="15dp"
+               android:text="@string/station_name" />
+
+           <TextView
+               android:id="@+id/name"
+               android:layout_width="wrap_content"
+               android:layout_height="wrap_content"
+               android:ellipsize="marquee"
+               android:marqueeRepeatLimit="marquee_forever" />
+
+       </TableRow>
+       <TableRow >
+
+	    <TextView
+	        android:id="@+id/freq"
+	        android:layout_width="wrap_content"
+	        android:layout_height="wrap_content"
+	        android:paddingLeft="30dp"
+	        android:paddingBottom="15dp"
+	        android:textSize="20sp"
+	        android:layout_span="2" />
+
+       </TableRow>
+
+    </TableLayout>
+
+</LinearLayout>
diff --git a/fmapp2/res/layout/statusbar.xml b/fmapp2/res/layout/statusbar.xml
new file mode 100644
index 0000000..677ed74
--- /dev/null
+++ b/fmapp2/res/layout/statusbar.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012, 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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation, Inc. nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="horizontal">
+
+    <ImageView android:id="@+id/icon"
+        android:layout_gravity="center_vertical"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+    </ImageView>
+
+    <TextView android:id="@+id/frequency"
+        android:textAppearance="?android:attr/textAppearanceMediumInverse"
+        android:textColor="#FFFFFFFF"
+        android:focusable="true"
+        android:ellipsize="marquee"
+        android:singleLine="true"
+        android:layout_gravity="center"
+        android:layout_width="wrap_content"
+       android:layout_height="wrap_content" />
+
+</LinearLayout>
diff --git a/fmapp2/res/values-zh-rCN/arrays.xml b/fmapp2/res/values-zh-rCN/arrays.xml
new file mode 100644
index 0000000..d0a95a0
--- /dev/null
+++ b/fmapp2/res/values-zh-rCN/arrays.xml
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+-->
+<resources>
+
+  <string-array name="ster_mon_entries">
+    <item>立体声</item>
+    <item>单声道</item>
+  </string-array>
+
+  <string-array name="record_durations_entries">
+    <item>5 分钟</item>
+    <item>15 分钟</item>
+    <item>30 分钟</item>
+    <item>直至停止</item>
+  </string-array>
+
+  <string-array name="sleep_duration_values">
+    <item>15 分钟之后</item>
+    <item>30 分钟之后</item>
+    <item>45 分钟之后</item>
+    <item>1 小时之后</item>
+  </string-array>
+
+  <string-array name="search_category_rbds_entries">
+    <item>全部电台</item>
+    <item>成人点击</item>
+    <item>古典</item>
+    <item>经典摇滚</item>
+    <item>校园</item>
+    <item>乡村</item>
+    <item>紧急</item>
+    <item>紧急  测试</item>
+    <item>外语频道</item>
+    <item>信息频道</item>
+    <item>爵士</item>
+    <item>新闻</item>
+    <item>怀旧</item>
+    <item>老歌</item>
+    <item>个性</item>
+    <item>公共频道</item>
+    <item>宗教音乐</item>
+    <item>宗教交流</item>
+    <item>节奏布鲁斯</item>
+    <item>摇滚</item>
+    <item>轻音乐</item>
+    <item>轻摇滚</item>
+    <item>轻节奏布鲁斯</item>
+    <item>体育</item>
+    <item>交流</item>
+    <item>前40</item>
+    <item>天气</item>
+  </string-array>
+
+  <string-array name="search_category_rds_entries">
+    <item>全部电台</item>
+    <item>文化</item>
+    <item>新闻时事</item>
+    <item>儿童节目</item>
+    <item>乡村音乐</item>
+    <item>记录</item>
+    <item>戏剧</item>
+    <item>轻音乐</item>
+    <item>教育</item>
+    <item>紧急</item>
+    <item>紧急测试</item>
+    <item>经济</item>
+    <item>民族音乐</item>
+    <item>信息</item>
+    <item>爵士音乐</item>
+    <item>轻古典音乐</item>
+    <item>休闲</item>
+    <item>新闻</item>
+    <item>民族音乐</item>
+    <item>其他音乐</item>
+    <item>怀旧</item>
+    <item>听众来电</item>
+    <item>流行音乐</item>
+    <item>宗教</item>
+    <item>摇滚音乐</item>
+    <item>科学</item>
+    <item>古典</item>
+    <item>社会事务</item>
+    <item>体育</item>
+    <item>旅行</item>
+    <item>变奏</item>
+    <item>天气</item>
+  </string-array>
+
+
+  <string-array name="presetlist_edit_category">
+    <item>重命名</item>
+    <item>自动选择</item>
+    <item>删除</item>
+  </string-array>
+
+
+  <string-array name="regional_band_entries">
+    <item>北美</item>
+    <item>欧洲</item>
+    <item>日本</item>
+    <item>日本 (宽频)</item>
+    <item>澳大利亚</item>
+    <item>奥地利</item>
+    <item>比利时</item>
+    <item>巴西</item>
+    <item>中国</item>
+    <item>捷克</item>
+    <item>丹麦</item>
+    <item>芬兰</item>
+    <item>法国</item>
+    <item>德国</item>
+    <item>希腊</item>
+    <item>香港</item>
+    <item>印度</item>
+    <item>爱尔兰</item>
+    <item>意大利</item>
+    <item>韩国</item>
+    <item>墨西哥</item>
+    <item>荷兰</item>
+    <item>新西兰</item>
+    <item>挪威</item>
+    <item>波兰</item>
+    <item>葡萄牙</item>
+    <item>俄罗斯</item>
+    <item>新加坡</item>
+    <item>斯洛伐克</item>
+    <item>西班牙</item>
+    <item>瑞士</item>
+    <item>瑞典</item>
+    <item>台湾</item>
+    <item>土耳其</item>
+    <item>英国</item>
+    <item>美国</item>
+  </string-array>
+
+  <string-array name="regional_band_summary">
+    <item>北美 (87.5MHz - 108.0MHz ,步长 200 Khz)</item>
+    <item>欧洲 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>日本 (76.0MHz - 90.0MHz ,步长 100 Khz)</item>
+    <item>日本 (宽频) (90.0MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>澳大利亚 (87.7MHz - 108.0MHz , 步长 100 Khz)</item>
+    <item>奥地利 (87.5MHz - 108.0MHz , 步长 50 Khz)</item>
+    <item>比利时 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>巴西 (87.8MHz - 108.0MHz ,步长 200 Khz)</item>
+    <item>中国 (87.0MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>捷克 (87.5MHz - 108.0MHz , 步长 100 Khz)</item>
+    <item>丹麦 (87.5MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>芬兰 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>法国 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>德国 (87.5MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>希腊 (87.5MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>香港 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>印度 (91.0MHz - 106.4MHz ,步长 100 Khz)</item>
+    <item>爱尔兰 (87.5MHz - 108.0MHz ,步长  50 Khz)</item>
+    <item>意大利 (87.5MHz - 108.0MHz , 步长 50 Khz)</item>
+    <item>韩国 (87.5MHz - 108.0MHz ,步长 200 Khz)</item>
+    <item>墨西哥 (88.1MHz - 107.9MHz ,步长  200 Khz)</item>
+    <item>荷兰 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>新西兰 (88.0MHz - 107.0MHz ,步长  100 Khz)</item>
+    <item>挪威 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>波兰 (88.0MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>葡萄牙 (87.5MHz - 108.0MHz ,步长 50 Khz)</item>
+    <item>俄国 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>新加坡 (88.0MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>斯洛伐克 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>西班牙 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>瑞士 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>瑞典 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>台湾 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>土耳其 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>英国 (87.5MHz - 108.0MHz ,步长 100 Khz)</item>
+    <item>美国 (88.1MHz - 107.9MHz ,步长 200 Khz)</item>
+  </string-array>
+</resources>
diff --git a/fmapp2/res/values-zh-rCN/strings.xml b/fmapp2/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..cbea52b
--- /dev/null
+++ b/fmapp2/res/values-zh-rCN/strings.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+ -->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">FM 收音机</string>
+    <string name="menu_settings">设置</string>
+    <string name="menu_record_start">开始录音</string>
+    <string name="menu_record_stop">停止录音</string>
+    <string name="menu_all_channels">全部频道</string>
+    <string name="app_label_all_channels">全部频道</string>
+    <string name="button_ok">确定</string>
+    <string name="button_cancel">取消</string>
+    <string name="button_delete">删除</string>
+    <string name="error_sdcard_access">不能访问SD卡</string>
+    <string name="fm_service_started">FM 服务</string>
+    <string name="menu_sleep">自动关闭</string>
+    <string name="menu_sleep_cancel">取消自动关闭</string>
+    <string name="menu_scan_start">搜索</string>
+    <string name="button_text_stop">停止</string>
+    <string name="menu_scan_stop">停止搜索</string>
+    <string name="msg_seeking">搜索 FM 电台</string>
+    <string name="msg_scanning">搜索所有 FM 电台</string>
+    <string name="msg_scanning_pty">搜索 "<xliff:g id="pty_name">%1$s</xliff:g>"</string>
+    <string name="msg_noantenna">请插入耳机</string>
+    <!-- The messsage shown when FM radio was turned on, headset was plugged out -->
+    <string name="msg_headset_plug_out">收音机播放中拔出了耳机,收音机已经自动关闭。</string>
+    <string name="dialog_sleep_title">收音机自动关闭</string>
+    <string name="preset_name_dialog_title">输入名称 </string>
+    <string name="preset_name_title">重命名</string>
+    <string name="preset_search_title">搜索</string>
+    <string name="preset_search_name">搜索 "<xliff:g id="preset_name">%1$s</xliff:g>"</string>
+    <string name="preset_add">添加</string>
+    <string name="preset_replace">替换</string>
+    <string name="preset_tune">设定频率</string>
+    <string name="preset_rename">重命名</string>
+    <string name="preset_delete">删除</string>
+    <string name="sel_band_menu">选择地区</string>
+    <string name="settings_menu">设置</string>
+    <string name="regional_band">地区</string>
+    <string name="aud_output_mode">音频输出模式</string>
+    <string name="sel_audio_output">选择音频输出</string>
+    <string name="record_dur">录音时长</string>
+    <string name="sel_rec_dur">选择录音时长</string>
+    <string name="auto_select_af">备用频率</string>
+    <string name="auto_select_af_enabled">自动选择开启</string>
+    <string name="auto_select_af_disabled">自动选择关闭</string>
+    <string name="settings_revert_confirm_title">确定清除设置</string>
+    <string name="settings_revert_confirm_msg">将删除所有设置</string>
+    <string name="settings_back_summary">Return to previous view</string>
+    <string name="settings_revert_defaults_title">恢复出厂设置</string>
+    <string name="settings_revert_defaults_summary">清除所有设置</string>
+    <string name="audio_type_stereo">立体声</string>
+    <string name="audio_type_mono">单声道</string>
+    <string name="spaceIsLow_content">"USB 存储设备空间不足,请更改录音时长设置,或删除某些录音或者其他文件。</string>
+    <string name="alert_dialog_ok">确定</string>
+    <string name="alert_dialog_cancel">取消</string>
+    <string name="search_dialog_title">搜索电台</string>
+
+        <string name="fm_command_timeout_title">超时</string>
+        <string name="fm_tune_timeout_msg">打开FM电台无响应。
+                     如果问题持续, 请重新启动FM收音机。</string>
+        <string name="fm_command_failed_title">FM 操作失败</string>
+        <string name="fm_cmd_failed_msg">FM 操作失败。如果问题持续, 请重新启动FM收音机。
+        </string>
+        <string name="fm_cmd_failed_msg_hdmi">FM 操作失败。 不支持 FM 和 HDMI 并发 。
+        </string>
+        <string name="fm_cmd_failed_call_on">FM 操作失败。通话期间禁止FM音频 </string>
+
+    <string name="station_name">电台:</string>
+    <string name="station_exists">此频率已存在!</string>
+    <string name="stat_notif_frequency">FM 收音机 "<xliff:g id="frequency">%1$s</xliff:g>" MHz</string>
+    <string name="cannot_startup_during_call">通话中不能启动FM!</string>
+    <string name="cannot_startup_during_airplane">"飞行模式中不能启动FM!"</string>
+    <string name="station_list_delete_station">删除:<xliff:g id="name">%s</xliff:g></string>
+    <string name="station_list_delete_station_prompt">要删除 <xliff:g id="name">%s</xliff:g> 吗?</string>
+    <string name="sdcard_no_space_cannot_recording">SD卡空间不足,不能录音</string>
+    <string name="recording_stop_no_space">SD卡空间不足,录音停止</string>
+    <string name="station_name_empty">电台名字不能为空,请新重输入</string>
+    <string name="station_name_exist">已存在名为\"<xliff:g id="name">%s</xliff:g>\"的电台,请输入其他名称。</string>
+    <!-- the title of rename dialog lack of translation -->
+    <string name="dialog_presetlist_rename_title">"请输入名字"</string>
+
+    <!-- prompt message for stopping record -->
+    <string name="save_record_file">"录音已保存至 "<xliff:g id="record_file">%1$s</xliff:g>"</string>
+    <!-- all recordings will show up in the media database with this 'artist' name -->
+    <string name="audio_db_artist_name">我的 FM 录音</string>
+    <!-- all recordings will show up in the media database with this 'album' name -->
+    <string name="audio_db_album_name">FM 录音</string>
+    <!-- all recordings will show up in the media database in a playlist with this name -->
+    <string name="audio_db_playlist_name">FM 录音</string>
+</resources>
diff --git a/fmapp2/res/values-zh-rTW/strings.xml b/fmapp2/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..cf3d605
--- /dev/null
+++ b/fmapp2/res/values-zh-rTW/strings.xml
@@ -0,0 +1,101 @@
+<!--
+Copyright (c) 2012, 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:
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+    * Neither the name of the Linux Foundation nor the names of its
+      contributors may be used to endorse or promote products derived
+      from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">FM 收音機</string>
+    <string name="menu_settings">設定</string>
+    <string name="menu_record_start">開始錄音</string>
+    <string name="menu_record_stop">停止錄音</string>
+    <string name="menu_all_channels">全部頻道</string>
+    <string name="app_label_all_channels">全部頻道</string>
+    <string name="button_ok">確定</string>
+    <string name="button_cancel">取消</string>
+    <string name="button_delete">取消</string>
+    <string name="error_sdcard_access">不能訪問SD卡</string>
+    <string name="fm_service_started">FM 服務</string>
+    <string name="menu_sleep">自動關閉</string>
+    <string name="menu_sleep_cancel">取消自動關閉</string>
+    <string name="menu_scan_start">搜索</string>
+    <string name="button_text_stop">停止</string>
+    <string name="menu_scan_stop">停止搜索</string>
+    <string name="msg_seeking">搜索 FM 電台</string>
+    <string name="msg_scanning">搜索所有 FM 電台</string>
+    <string name="msg_scanning_pty">搜索 "<xliff:g id="pty_name">%1$s</xliff:g>"</string>
+    <string name="msg_noantenna">請插入耳機</string>
+    <string name="dialog_sleep_title">收音機自動關閉</string>
+    <string name="preset_name_dialog_title">輸入名稱 </string>
+    <string name="preset_name_title">重命名</string>
+    <string name="preset_search_title">搜索</string>
+    <string name="preset_search_name">搜索 "<xliff:g id="preset_name">%1$s</xliff:g>"</string>
+    <string name="preset_add">添加</string>
+    <string name="preset_replace">替換</string>
+    <string name="preset_tune">設定頻率</string>
+    <string name="preset_rename">重命名</string>
+    <string name="preset_delete">刪除</string>
+    <string name="sel_band_menu">選擇地區</string>
+    <string name="settings_menu">設定</string>
+    <string name="regional_band">地區</string>
+    <string name="aud_output_mode">音頻輸出模式</string>
+    <string name="sel_audio_output">選擇音頻輸出</string>
+    <string name="record_dur">錄音時長</string>
+    <string name="sel_rec_dur">選擇錄音時長</string>
+    <string name="auto_select_af">備用頻率</string>
+    <string name="auto_select_af_enabled">自動選擇開啟</string>
+    <string name="auto_select_af_disabled">自動選擇關閉</string>
+    <string name="settings_revert_confirm_title">確定清除設定</string>
+    <string name="settings_revert_confirm_msg">將刪除所有設定</string>
+    <string name="settings_revert_defaults_title">恢復出廠設定</string>
+    <string name="settings_revert_defaults_summary">清除所有設定</string>
+    <string name="audio_type_stereo">立體聲</string>
+    <string name="audio_type_mono">單聲道</string>
+    <string name="spaceIsLow_content">USB 存儲設備空間不足,請更改錄音時長設置,或刪除某些錄音或者其他檔案。</string>
+    <string name="alert_dialog_ok">確定</string>
+    <string name="alert_dialog_cancel">取消</string>
+    <string name="search_dialog_title">搜索電台</string>
+    <string name="fm_command_timeout_title">超時</string>
+    <string name="fm_tune_timeout_msg">打開FM 電台無響應。如果問題持續,請重新啟動FM 收音機。</string>
+    <string name="fm_command_failed_title">FM 操作失敗</string>
+    <string name="fm_cmd_failed_msg">FM 操作失敗。如果問題持續,請重新啟動FM 收音機。</string>
+    <string name="fm_cmd_failed_msg_hdmi">FM 操作失敗。不支持FM和 HDMI 並發。 </string>
+    <string name="fm_cmd_failed_call_on">FM 操作失敗。通話期間禁止FM音頻 </string>
+    <string name="station_name">電台:</string>
+    <string name="station_exists">此頻率已存在!</string>
+    <string name="stat_notif_frequency">FM 收音機 "<xliff:g id="frequency">%1$s</xliff:g>" MHz</string>
+    <string name="cannot_startup_during_call">通话中不能启动FM!</string>
+    <string name="cannot_startup_during_airplane">"通話中不能啟動FM!"</string>
+    <string name="station_list_delete_station">删除:<xliff:g id="name">%s</xliff:g></string>
+    <string name="station_list_delete_station_prompt">要删除 <xliff:g id="name">%s</xliff:g> 吗?</string>
+    <string name="sdcard_no_space_cannot_recording">SD卡空間不足,不能錄音</string>
+    <string name="recording_stop_no_space">SD卡空間不足,錄音停止</string>
+    <string name="station_name_empty">電台名字不能為空,請新重輸入</string>
+    <string name="station_name_exist">已存在名為\"<xliff:g id="name">%s</xliff:g>\"的電台,請輸入其他名稱。</string>
+    <string name="dialog_presetlist_rename_title">請輸入名字</string>
+
+    <!-- prompt message for stopping record -->
+    <string name="save_record_file">錄音已保存至 "<xliff:g id="record_file">%1$s</xliff:g>"</string>
+</resources>
diff --git a/fmapp2/res/values/arrays.xml b/fmapp2/res/values/arrays.xml
new file mode 100644
index 0000000..cb673c8
--- /dev/null
+++ b/fmapp2/res/values/arrays.xml
@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2011, 2012 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<resources>
+
+  <string-array name="ster_mon_entries">
+    <item>Stereo</item>
+    <item>Mono</item>
+  </string-array>
+
+  <string-array name="ster_mon_values">
+    <item>0</item>
+    <item>1</item>
+  </string-array>
+
+  <string-array name="record_durations_entries">
+    <item>5 minutes</item>
+    <item>15 minutes</item>
+    <item>30 minutes</item>
+    <item>Until stopped</item>
+  </string-array>
+
+
+  <string-array name="record_duration_values">
+    <item>5</item>
+    <item>15</item>
+    <item>30</item>
+    <item>-1</item>
+  </string-array>
+
+  <string-array name="sleep_duration_values">
+    <item>15 minutes</item>
+    <item>30 minutes</item>
+    <item>45 minutes</item>
+    <item>1 Hour</item>
+  </string-array>
+
+    <!-- This array should be in seconds and should match the values above -->
+  <string-array name="sleep_duration_values_seconds">
+    <item>900</item>
+    <item>1800</item>
+    <item>2700</item>
+    <item>3600</item>
+  </string-array>
+
+  <string-array name="search_category_rbds_entries">
+    <item>All Stations</item>
+    <item>Adult Hits</item>
+    <item>Classical</item>
+    <item>Classic Rock</item>
+    <item>College</item>
+    <item>Country</item>
+    <item>Emergency</item>
+    <item>Emergency Test</item>
+    <item>Foreign Language</item>
+    <item>Information</item>
+    <item>Jazz</item>
+    <item>News</item>
+    <item>Nostalgia</item>
+    <item>Oldies</item>
+    <item>Personality</item>
+    <item>Public</item>
+    <item>Religious Music</item>
+    <item>Religious Talk</item>
+    <item>Rhythm and Blues</item>
+    <item>Rock</item>
+    <item>Soft</item>
+    <item>Soft Rock</item>
+    <item>Soft Rhythm and Blues</item>
+    <item>Sports</item>
+    <item>Talk</item>
+    <item>Top 40</item>
+    <item>Weather</item>
+  </string-array>
+
+  <string-array name="search_category_rbds_values">
+    <item>0</item>
+    <item>7</item>
+    <item>15</item>
+    <item>6</item>
+    <item>23</item>
+    <item>10</item>
+    <item>31</item>
+    <item>30</item>
+    <item>18</item>
+    <item>2</item>
+    <item>14</item>
+    <item>1</item>
+    <item>13</item>
+    <item>11</item>
+    <item>21</item>
+    <item>22</item>
+    <item>19</item>
+    <item>20</item>
+    <item>16</item>
+    <item>5</item>
+    <item>12</item>
+    <item>8</item>
+    <item>17</item>
+    <item>3</item>
+    <item>4</item>
+    <item>9</item>
+    <item>29</item>
+  </string-array>
+
+
+  <string-array name="search_category_rds_entries">
+    <item>All Stations</item>
+    <item>Culture</item>
+    <item>Current Affairs</item>
+    <item>Children programs</item>
+    <item>Country Music</item>
+    <item>Documentary</item>
+    <item>Drama</item>
+    <item>Easy Listening Music</item>
+    <item>Education</item>
+    <item>Emergency</item>
+    <item>Emergency Test</item>
+    <item>Finance</item>
+    <item>Folk Music</item>
+    <item>Information</item>
+    <item>Jazz Music</item>
+    <item>Light classical</item>
+    <item>Leisure</item>
+    <item>News</item>
+    <item>National Music</item>
+    <item>Other Music</item>
+    <item>Oldies Music</item>
+    <item>Phone In</item>
+    <item>Pop Music</item>
+    <item>Religion</item>
+    <item>Rock Music</item>
+    <item>Science</item>
+    <item>Serious classical</item>
+    <item>Social Affairs</item>
+    <item>Sport</item>
+    <item>Travel</item>
+    <item>Varied</item>
+    <item>Weather</item>
+  </string-array>
+
+  <string-array name="search_category_rds_values">
+    <item>0</item>
+    <item>7</item>
+    <item>2</item>
+    <item>18</item>
+    <item>25</item>
+    <item>29</item>
+    <item>6</item>
+    <item>12</item>
+    <item>5</item>
+    <item>31</item>
+    <item>30</item>
+    <item>17</item>
+    <item>28</item>
+    <item>3</item>
+    <item>24</item>
+    <item>13</item>
+    <item>23</item>
+    <item>1</item>
+    <item>26</item>
+    <item>15</item>
+    <item>27</item>
+    <item>21</item>
+    <item>10</item>
+    <item>20</item>
+    <item>11</item>
+    <item>8</item>
+    <item>14</item>
+    <item>19</item>
+    <item>4</item>
+    <item>22</item>
+    <item>9</item>
+    <item>16</item>
+  </string-array>
+
+  <string-array name="presetlist_edit_category">
+    <item>Rename</item>
+    <item>Auto-Select</item>
+    <item>Delete</item>
+  </string-array>
+
+
+  <string-array name="regional_band_entries">
+    <item>North America</item>
+    <item>Europe</item>
+    <item>Japan</item>
+    <item>Japan (Wide)</item>
+    <item>Australia</item>
+    <item>Austria</item>
+    <item>Belgium</item>
+    <item>Brazil</item>
+    <item>China</item>
+    <item>Czech</item>
+    <item>Denmark</item>
+    <item>Finland</item>
+    <item>France</item>
+    <item>Germany</item>
+    <item>Greece</item>
+    <item>Hong Kong</item>
+    <item>India</item>
+    <item>Ireland</item>
+    <item>Italy</item>
+    <item>Korea</item>
+    <item>Mexico</item>
+    <item>Netherlands</item>
+    <item>New Zealand</item>
+    <item>Norway</item>
+    <item>Poland</item>
+    <item>Portugal</item>
+    <item>Russia</item>
+    <item>Singapore</item>
+    <item>Slovakia</item>
+    <item>Spain</item>
+    <item>Switzerland</item>
+    <item>Sweden</item>
+    <item>Taiwan</item>
+    <item>Turkey</item>
+    <item>United Kingdom </item>
+    <item>United States</item>
+  </string-array>
+
+  <string-array name="regional_band_values">
+    <item>0</item>
+    <item>1</item>
+    <item>2</item>
+    <item>3</item>
+    <item>4</item>
+    <item>5</item>
+    <item>6</item>
+    <item>7</item>
+    <item>8</item>
+    <item>9</item>
+    <item>10</item>
+    <item>11</item>
+    <item>12</item>
+    <item>13</item>
+    <item>14</item>
+    <item>15</item>
+    <item>16</item>
+    <item>17</item>
+    <item>18</item>
+    <item>19</item>
+    <item>20</item>
+    <item>21</item>
+    <item>22</item>
+    <item>23</item>
+    <item>24</item>
+    <item>25</item>
+    <item>26</item>
+    <item>27</item>
+    <item>28</item>
+    <item>29</item>
+    <item>30</item>
+    <item>31</item>
+    <item>32</item>
+    <item>33</item>
+    <item>34</item>
+    <item>35</item>
+  </string-array>
+
+  <string-array name="regional_band_summary">
+    <item>North America (87.5MHz To 108.0MHz In 200 Khz Steps)</item>
+    <item>Europe (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Japan (76.0MHz To  90.0MHz In 100 Khz Steps)</item>
+    <item>Japan (Wide) (90.0MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Australia (87.7MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Austria (87.5MHz To 108.0MHz In  50 Khz Steps)</item>
+    <item>Belgium (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Brazil (87.8MHz To 108.0MHz In 200 Khz Step)</item>
+    <item>China (87.0MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Czech (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Denmark (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Finland (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>France (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Germany (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Greece (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Hong Kong (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>India (91.0MHz To 106.4MHz In 100 Khz Steps)</item>
+    <item>Ireland (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Italy (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Korea (87.5MHz To 108.0MHz In 200 Khz Steps)</item>
+    <item>Mexico (88.1MHz To 107.9MHz In 200 Khz Steps)</item>
+    <item>Netherlands (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>New Zealand (88.0MHz To 107.0MHz In 100 Khz Steps)</item>
+    <item>Norway (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Poland (88.0MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Portugal (87.5MHz To 108.0MHz In 50 Khz Steps)</item>
+    <item>Russia (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Singapore (88.0MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Slovakia (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Spain (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Switzerland (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Sweden (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Taiwan (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>Turkey (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>United Kingdom (87.5MHz To 108.0MHz In 100 Khz Steps)</item>
+    <item>United States (88.1MHz To 107.9MHz In 200 Khz Steps)</item>
+  </string-array>
+
+  <string-array name="rf_cfg">
+      <item> Get Current Station Parameters</item>
+      <item> Get Station Parameters Repeat 20 times</item>
+      <item> Get Search  station parameters</item>
+      <item> Get FM Band sweep parameters</item>
+      <item> Configure FM Search Parameters</item>
+  </string-array>
+
+  <string-array name="cfg_rf1">
+      <item> Set FM RSSI Delta</item>
+      <item> Set Signal Threshold</item>
+      <item> RF Statistics</item>
+  </string-array>
+
+  <string-array name="cfg_rf2">
+      <item> Set SINR Samples Count</item>
+      <item> Set SINR Threshold</item>
+      <item> Set IntfDetoutLow Threshold</item>
+      <item> Set IntfDetoutHigh Threshold</item>
+      <item> RF Statistics</item>
+  </string-array>
+
+  <string-array name="stats_options">
+      <item> Select the option</item>
+      <item> Configure FM Search parameters</item>
+      <item> RF Statistics</item>
+  </string-array>
+
+</resources>
diff --git a/fmapp2/res/values/strings.xml b/fmapp2/res/values/strings.xml
new file mode 100644
index 0000000..0c46991
--- /dev/null
+++ b/fmapp2/res/values/strings.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_name">FM Radio New</string>
+    <string name="tx_app_name">FM Tx New</string>
+
+    <string name="default_sleep"></string>
+    <string name="menu_add_to_preset">Add to Presets</string>
+    <string name="menu_settings">Settings</string>
+    <string name="menu_record_start">Start Recording</string>
+    <string name="menu_record_stop">Stop Recording</string>
+    <string name="menu_all_channels">All Channels</string>
+    <string name="app_label_all_channels">All Channels</string>
+    <string name="button_ok">OK</string>
+    <string name="button_cancel">Cancel</string>
+    <string name="button_delete">Delete</string>
+    <string name="error_sdcard_access">Unable to access SD card</string>
+    <string name="fm_service_started">FM Service</string>
+    <string name="menu_sleep">Sleep</string>
+    <string name="menu_sleep_cancel">Cancel Sleep</string>
+    <string name="menu_wired_headset">Wired Headset</string>
+    <string name="menu_speaker_on">Enable Speaker</string>
+    <string name="menu_display_tags">Show Tags</string>
+    <string name="menu_speaker_off">Disable Speaker</string>
+    <string name="menu_scan_start">Scan</string>
+    <string name="menu_scan_stop">Stop Searching</string>
+    <string name="menu_stats">FM RF Stats</string>
+    <string name="button_text_stop">Stop</string>
+    <string name="msg_seeking">Searching FM Station</string>
+    <string name="msg_scanning">Scanning for all FM Stations</string>
+    <string name="msg_scanning_pty">Scanning for "<xliff:g id="pty_name">%1$s</xliff:g>"</string>
+    <string name="msg_search_title">FM - <xliff:g id="frequency_string">%1$s</xliff:g></string>
+    <string name="msg_searching">Searching for Strong Stations to create a Preset List </string>
+    <string name="msg_searching_title">Auto-Select Presets</string>
+    <string name="msg_weak_searching">Searching for frequencies to transmit</string>
+
+    <string name="msg_noantenna">Please plug in a Headset to use FM
+        Radio </string>
+    <string name="msg_headsetpluggedin">Disconnect all Headsets for using FM Tx</string>
+    <string name="msg_callactive">FM Tx is not supported when there is active voice call</string>
+    <string name="dialog_sleep_title">Select Auto-Off Sleep Time</string>
+        <string name="preset_select_name">Select "<xliff:g id="preset_name">%1$s</xliff:g>"</string>
+        <string name="presetlist_select_name">Select "<xliff:g id="presetlist_name">%1$s</xliff:g>"</string>
+    <string name="presetlist_add_new">Add New List</string>
+    <string name="dialog_presetlist_title">Preset Lists</string>
+        <string name="presetlist_prefix_name">FM - </string>
+        <string name="dialog_presetlist_rename_title">Enter a name </string>
+        <string name="dialog_preset_rename_title">Enter a name </string>
+        <string name="presetlist_delete_name">Delete "<xliff:g id="presetlist_name">%1$s</xliff:g>" and its Stations?</string>
+        <string name="presetlist_autoselect_title">Confirm Auto-Select</string>
+        <string name="presetlist_autoselect_name">Auto-Select will delete all the Presets in the list  "<xliff:g id="presetlist_name">%1$s</xliff:g>", Continue?</string>
+        <string name="fmtx_autoselect_name">Auto-Select will delete all the Presets, Continue?</string>
+
+    <string name="enter_frequency">Tune to Station</string>
+    <string name="enter_new_frequency_title">Enter Frequency </string>
+
+    <string name="preset_now_playing">Now Playing </string>
+        <string name="preset_pref_title">"<xliff:g id="preset_name">%1$s</xliff:g>"
+        (<xliff:g id="preset_freq">%2$s</xliff:g>)</string>
+        <string name="preset_delete_title">Delete Preset</string>
+
+        <string name="preset_delete_name">Delete "<xliff:g id="preset_name">%1$s</xliff:g>"
+        from "<xliff:g id="presetlist_name">%2$s</xliff:g>"</string>
+
+        <string name="preset_confirm_delete_name">Delete "<xliff:g id="preset_name">%1$s</xliff:g>"
+        from "<xliff:g id="presetlist_name">%2$s</xliff:g>" ?</string>
+
+    <string name="preset_name_dialog_title">Enter a name </string>
+    <string name="preset_name_summary">"<xliff:g id="preset_name">%1$s</xliff:g>" </string>
+    <string name="preset_name_title">Rename</string>
+
+    <string name="preset_search_title">Search</string>
+    <string name="preset_search_name">Search for "<xliff:g id="preset_name">%1$s</xliff:g>"</string>
+
+    <string name="preset_preference_title">FM Stations in "<xliff:g id="preset_name">%1$s</xliff:g>" </string>
+
+    <string name="preset_empty_title">No Stations in the List</string>
+    <string name="preset_empty_add_summary">Add Stations</string>
+
+    <string name="preset_add">Add</string>
+    <string name="preset_replace">Replace</string>
+    <string name="preset_tune">Tune</string>
+    <string name="preset_rename">Rename</string>
+    <string name="preset_delete">Delete</string>
+    <string name="preset_search">Search for "<xliff:g id="preset_pi">%1$s</xliff:g>"
+        </string>
+
+    <string name="stat_notif_frequency">FM Radio Station "<xliff:g id="frequency">%1$s</xliff:g>" MHz</string>
+    <string name="stat_notif_tx_frequency">FM Transmitting at: "<xliff:g id="frequency">%1$s</xliff:g>"</string>
+
+
+    <string name="sel_band_menu">Select Regional Band</string>
+    <string name="test_menu">Select Test</string>
+
+    <string name="settings_menu">Settings</string>
+    <string name="regional_band">Regional Band</string>
+
+    <string name="aud_output_mode">Audio Output Mode</string>
+    <string name="sel_audio_output">Select Audio Output</string>
+
+    <string name="record_dur">Record Duration</string>
+    <string name="sel_rec_dur">Select Record Duration</string>
+
+    <string name="auto_select_af">Alternate Frequency</string>
+    <string name="auto_select_af_enabled">Auto Select Enabled</string>
+    <string name="auto_select_af_disabled">Auto Select Disabled</string>
+
+    <string name="fac_defaults">Revert to Factory Defaults</string>
+    <string name="revert_to_fac">Revert to Factory Defaults</string>
+    <string name="settings_back">Back</string>
+
+    <string name="settings_revert_confirm_title">Confirm Reset Settings</string>
+    <string name="settings_revert_confirm_msg">This will delete all settings including Presets</string>
+
+    <string name="settings_back_summary">Return to previous view</string>
+    <string name="settings_revert_defaults_title">Revert to Factory Defaults</string>
+    <string name="settings_revert_defaults_summary">Reset all settings</string>
+
+    <string name="audio_type_stereo">Stereo</string>
+    <string name="audio_type_mono">Mono</string>
+
+    <string name="default_band">United States</string>
+    <string name="default_audio">Stereo</string>
+    <string name="default_record_duration">5 minutes</string>
+    <string name="factory_reset_dialog_title">Confirm Reset</string>
+    <string name="factory_reset_dialog_message">This will delete all settings including Presets</string>
+    <string name="station_move">Move</string>
+    <string name="station_edit">Edit</string>
+    <!-- alert to the user that USB storage must be available before using FM recording  [CHAR LIMIT=NONE] -->
+   <string name="no_storage">Mount SD card before start recording.</string>
+   <!-- alert to the user that the USB storage is being disk-checked [CHAR LIMIT=30] -->
+   <string name="preparing_sd">Preparing SD card</string>
+   <!-- alert to the user that the FM fails to read or write the USB storage. [CHAR LIMIT=NONE] -->
+   <string name="access_sd_fail">Couldn\'t access SD card.</string>
+   <!-- Low-memory dialog message [CHAR LIMT=NONE] -->
+   <string name="spaceIsLow_content">Your SD card storage is running out of space. Change the quality setting or delete some images or other files.</string>
+   <!-- The messsage shown when FM record reaches size limit. -->
+   <string name="FMRecording_reach_size_limit">Size limit reached.</string>
+
+    <string name="delete_station_title">Delete</string>
+    <string name="find_af_station">Find</string>
+    <string name="menu_add_list">Add List</string>
+    <string name="menu_rename_list">Rename List</string>
+    <string name="menu_reorder_list">Reorder List</string>
+    <string name="menu_scan_for_preset">Scan for Presets</string>
+    <string name="menu_delete_list">Delete List</string>
+    <string name="alert_dialog_ok">Ok</string>
+    <string name="alert_dialog_cancel">Cancel</string>
+
+    <string name="search_dialog_title">Scan Stations</string>
+
+    <string name="search_category_key">search_category_type</string>
+    <string name="search_category">Select Search Type</string>
+    <string name="search_category_title">Search Type</string>
+    <string name="default_search_category">Seek</string>
+    <string name="search_category_tune">Tune</string>
+
+    <string name="search_category_type_key">search_category_value_type</string>
+    <string name="search_category_type">Select Search by Program Type</string>
+    <string name="search_category_type_title">Search by Program Type</string>
+    <string name="default_search_category_type">All Stations</string>
+
+    <string name="presets_back">Back</string>
+    <string name="presets_back_summary">Return to previous view</string>
+
+    <string name="nav_mode_presets">Presets</string>
+    <string name="nav_mode_stations">Stations</string>
+
+    <string name="prog_service_string"></string>
+    <string name="radio_text_string">This is the long Radio Text String Message that needs to scroll</string>
+    <string name="eradio_text_string">Extended Radio Text Message</string>
+    <string name="pty_string"></string>
+    <string name="frequency_string"></string>
+    <string name="station_id_string"></string>
+
+
+        <string name="fm_command_timeout_title">Timeout</string>
+        <string name="fm_tune_timeout_msg">No response received to Tune FM
+            Station. If problem persists, please turn off FM and turn it back
+            on.</string>
+
+        <string name="fm_command_failed_title">FM Operation failed</string>
+        <string name="fm_cmd_failed_msg">FM operation failed. If problem
+            persists, please turn off FM and turn it back on.
+        </string>
+        <string name="fm_cmd_failed_msg_hdmi">FM operation failed. FM and HDMI concurrecny is not supported.
+        </string>
+        <string name="fm_cmd_failed_call_on">FM operation failed. FM audio is not allowed during call. </string>
+
+    <skip/>
+    <!-- Do not translate. Duration format. -->
+    <string name="durationformat"><xliff:g id="format">%2$d:%5$02d</xliff:g></string>
+
+    <string name="default_record"></string>
+    <string name="default_preset_list_name"> FM List </string>
+    <string name="default_station"> FM </string>
+    <string name="default_blank"> </string>
+    <string name="add_station">+</string>
+    <string name="stop_scanning">Stop Scanning</string>
+    <string name="transmit_msg_string">Transmitting at:</string>
+    <!-- the name under which recordings will be visible in the media database is formatted like this -->
+    <string name="audio_db_title_format"><xliff:g id="format">yyyy-MM-dd HH:mm:ss</xliff:g></string>
+    <!-- all recordings will show up in the media database with this 'artist' name -->
+    <string name="audio_db_artist_name">My FM recordings</string>
+    <!-- all recordings will show up in the media database with this 'album' name -->
+    <string name="audio_db_album_name">FM recordings</string>
+    <!-- all recordings will show up in the media database in a playlist with this name -->
+    <string name="audio_db_playlist_name">FM recordings</string>
+    <string name="test_prompt">Choose a test</string>
+    <string name="test_run">Run Test</string>
+    <string name="set_rmmsi_delta">Configure RMSSI Delta</string>
+    <string name="set_sigth">Configure Signal Th</string>
+    <string name="type_rd"></string>
+    <string name="srch_params">Configure RMSSI Delta</string>
+    <string name="srch_params_1">Configure Signal Th </string>
+    <string name="enter_rssi">Enter RMSSI Delta</string>
+    <string name="enter_sigth">Enter Signal Th</string>
+    <string name="enter_SinrSmplsCnt">Enter SINR Samples Count</string>
+    <string name="set_SinrSmplsCnt">Configure SINR Samples</string>
+    <string name="enter_SinrTh">Enter SINR Threshold</string>
+    <string name="set_SinrTh">Configure SINR Threshold</string>
+    <string name="enter_IntfLowTh">Enter Intf Det Low Threshold</string>
+    <string name="set_IntfLowTh">Config Intf Det Low Threshold</string>
+    <string name="enter_IntfHighTh">Enter Intf Det High Threshold</string>
+    <string name="set_IntfHighTh">Config Intf Det High Threshold</string>
+
+    <string name="station_name">Station:</string>
+    <string name="station_exists">This frequency already exists!</string>
+    <string name="station_list_delete_station">Delete:<xliff:g id="name">%s</xliff:g></string>
+    <string name="station_list_delete_station_prompt">Are you sure to delete <xliff:g id="name">%s</xliff:g> .</string>
+    <string name="station_name_empty">Station name is empty, please input again.</string>
+    <string name="station_name_exist">There is already a station named \"<xliff:g id="name">%s</xliff:g>\". Please input a different name.</string>
+
+    <string name="rt_plus_tags">Tags</string>
+
+</resources>
diff --git a/fmapp2/res/values/styles.xml b/fmapp2/res/values/styles.xml
new file mode 100644
index 0000000..e9c9bcf
--- /dev/null
+++ b/fmapp2/res/values/styles.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ * Copyright (c) 2009, 2012, 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<resources>
+    <style name="FMStationSeekBar">
+        <item name="android:indeterminateOnly">false</item>
+        <item name="android:progressDrawable">@android:drawable/progress_horizontal</item>
+        <item name="android:indeterminateDrawable">@android:drawable/progress_horizontal</item>
+        <item name="android:minHeight">20dp</item>
+        <item name="android:maxHeight">20dp</item>
+        <item name="android:thumbOffset">8dp</item>
+        <item name="android:focusable">true</item>
+    </style>
+
+    <style name="ButtonStripLeft">
+        <item name="android:gravity">center</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:background">@drawable/btn_strip_trans_left</item>
+    </style>
+
+    <style name="ButtonStripMiddle">
+        <item name="android:gravity">center</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:background">@drawable/btn_strip_trans_middle</item>
+    </style>
+
+    <style name="ButtonStripRight">
+        <item name="android:gravity">center</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:background">@drawable/btn_strip_trans_right</item>
+    </style>
+
+</resources>
diff --git a/fmapp2/src/com/caf/fmradio/FMAdapterApp.java b/fmapp2/src/com/caf/fmradio/FMAdapterApp.java
new file mode 100644
index 0000000..dbc17c5
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMAdapterApp.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution.
+ *
+ * Copyright (C) 2012 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.
+ */
+
+/**
+ * @hide
+ */
+
+package com.caf.fmradio;
+
+import android.app.Application;
+import android.util.Log;
+
+public class FMAdapterApp extends Application {
+    private static final String TAG = "FMAdapterApp";
+    private static final boolean DBG = true;
+    //For Debugging only
+    private static int sRefCount=0;
+
+    static {
+        if (DBG) Log.d(TAG,"Loading FM-JNI Library");
+        System.loadLibrary("qcomfm_jni");
+    }
+
+    public FMAdapterApp() {
+        super();
+        if (DBG) {
+            synchronized (FMAdapterApp.class) {
+                sRefCount++;
+                Log.d(TAG, "REFCOUNT: Constructed "+ this + " Instance Count = " + sRefCount);
+            }
+        }
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+    }
+
+    @Override
+    protected void finalize() {
+        if (DBG) {
+            synchronized (FMAdapterApp.class) {
+                sRefCount--;
+                Log.d(TAG, "REFCOUNT: Finalized: " + this +", Instance Count = " + sRefCount);
+            }
+        }
+    }
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMMediaButtonIntentReceiver.java b/fmapp2/src/com/caf/fmradio/FMMediaButtonIntentReceiver.java
new file mode 100644
index 0000000..9bc4d77
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMMediaButtonIntentReceiver.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.app.IntentService;
+import android.content.BroadcastReceiver;
+import android.content.pm.PackageManager;
+import android.content.Context;
+import android.content.ComponentName;
+import android.util.Log;
+import android.view.KeyEvent;
+import android.os.Bundle;
+import java.lang.Object;
+
+public class FMMediaButtonIntentReceiver extends BroadcastReceiver {
+
+private static final String TAG = "FMMediaButtonIntentReceiver";
+public static final String FM_MEDIA_BUTTON = "com.caf.fmradio.action.MEDIA_BUTTON";
+public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+       if ((action != null) && action.equals("android.intent.action.MEDIA_BUTTON")) {
+           KeyEvent event = (KeyEvent)
+                    intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
+
+           if (event == null) {
+               return;
+           }
+           int keycode = event.getKeyCode();
+           int key_action = event.getAction();
+           if (((KeyEvent.KEYCODE_HEADSETHOOK == keycode) &&
+               (key_action == KeyEvent.ACTION_DOWN)) ||
+               (KeyEvent.KEYCODE_MEDIA_PAUSE == keycode) ||
+               (KeyEvent.KEYCODE_MEDIA_PLAY == keycode)) {
+
+               Log.d(TAG, "ACTION_MEDIA_BUTTON intent received for ACTION_DOWN");
+               Intent i = new Intent(FM_MEDIA_BUTTON);
+               i.putExtra(Intent.EXTRA_KEY_EVENT, event);
+               context.sendBroadcast(i);
+           }
+       }
+   }
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
new file mode 100644
index 0000000..caa9bb2
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -0,0 +1,3037 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothDevice;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnKeyListener;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.BroadcastReceiver;
+import android.media.AudioSystem;
+import android.media.AudioManager;
+import android.media.MediaRecorder;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.Window;
+import android.view.KeyEvent;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.text.TextUtils;
+
+import java.util.*;
+import java.io.File;
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+import java.util.Formatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.ArrayList;
+
+import com.caf.utils.FrequencyPicker;
+import com.caf.utils.FrequencyPickerDialog;
+import android.content.ServiceConnection;
+import android.media.MediaRecorder;
+
+import qcom.fmradio.FmConfig;
+import android.os.ServiceManager;
+
+import com.caf.fmradio.HorizontalNumberPicker.OnScrollFinishListener;
+import com.caf.fmradio.HorizontalNumberPicker.OnValueChangeListener;
+import com.caf.fmradio.HorizontalNumberPicker.Scale;
+
+import android.content.SharedPreferences;
+
+public class FMRadio extends Activity
+{
+   public static final String LOGTAG = "FMRadio";
+
+   public static final boolean RECORDING_ENABLE = true;
+   MediaRecorder mRecorder = null;
+
+   /* menu Identifiers */
+   private static final int MENU_SCAN_START = Menu.FIRST + 2;
+   private static final int MENU_SCAN_STOP = Menu.FIRST + 3;
+   private static final int MENU_RECORD_START = Menu.FIRST + 4;
+   private static final int MENU_RECORD_STOP = Menu.FIRST + 5;
+   private static final int MENU_SLEEP = Menu.FIRST + 6;
+   private static final int MENU_SLEEP_CANCEL = Menu.FIRST + 7;
+   private static final int MENU_SETTINGS = Menu.FIRST + 8;
+   private static final int MENU_SPEAKER = Menu.FIRST + 9;
+   private static final int MENU_TAGS = Menu.FIRST + 10;
+   private static final int MENU_STAT_TEST = Menu.FIRST + 11;
+   private static final int MENU_STATION_LIST = Menu.FIRST + 12;
+   /* Dialog Identifiers */
+   private static final int DIALOG_SEARCH = 1;
+   private static final int DIALOG_SLEEP = 2;
+   private static final int DIALOG_SELECT_PRESET_LIST = 3;
+   private static final int DIALOG_PRESETS_LIST = 4;
+   private static final int DIALOG_PRESET_LIST_RENAME = 5;
+   private static final int DIALOG_PRESET_LIST_DELETE = 6;
+   private static final int DIALOG_PRESET_LIST_AUTO_SET = 7;
+   private static final int DIALOG_PICK_FREQUENCY = 8;
+   private static final int DIALOG_PROGRESS_PROGRESS = 9;
+   private static final int DIALOG_PRESET_OPTIONS = 10;
+   private static final int DIALOG_PRESET_RENAME = 11;
+   private static final int DIALOG_CMD_TIMEOUT = 12;
+   private static final int DIALOG_CMD_FAILED = 13;
+   private static final int DIALOG_CMD_FAILED_HDMI_ON = 14;
+   private static final int DIALOG_CMD_FAILED_CALL_ON = 15;
+   private static final int DIALOG_TAGS = 16;
+
+   /* Activity Return ResultIdentifiers */
+   private static final int ACTIVITY_RESULT_SETTINGS = 1;
+
+   /* Activity Return ResultIdentifiers */
+   private static final int MAX_PRESETS_PER_PAGE = 7;
+
+
+   /* Station's Audio is Stereo */
+   private static final int FMRADIO_UI_STATION_AUDIO_STEREO = 1;
+   /* Station's Audio is Mono */
+   private static final int FMRADIO_UI_STATION_AUDIO_MONO = 2;
+
+   /* The duration during which the "Sleep: xx:xx" string will be toggling
+    */
+   private static final int SLEEP_TOGGLE_SECONDS = 60;
+
+   /* The number of Preset Stations to create.
+    * The hardware supports a maximum of 12.
+    */
+   private static final int NUM_AUTO_PRESETS_SEARCH= 12;
+   /*
+    * Command time out: For asynchonous operations, if no response
+    * is received with int this duration, a timeout msg will be displayed.
+    */
+   private static final int CMD_TIMEOUT_DELAY_MS = 5000;
+   private static final int MSG_CMD_TIMEOUT = 101;
+
+   private static final int CMD_NONE = 0;
+   private static final int CMD_TUNE = 1;
+   private static final int CMD_FMON = 2;
+   private static final int CMD_FMOFF = 3;
+   private static final int CMD_FMCONFIGURE = 4;
+   private static final int CMD_MUTE = 5;
+   private static final int CMD_SEEK = 6;
+   private static final int CMD_SCAN = 7;
+   private static final int CMD_SEEKPI = 8;
+   private static final int CMD_SEARCHLIST = 9;
+   private static final int CMD_CANCELSEARCH = 10;
+   private static final int CMD_SET_POWER_MODE = 11;
+   private static final int CMD_SET_AUDIO_MODE = 12;
+   private static final int CMD_SET_AUTOAF = 13;
+   private static final int CMD_GET_INTERNALANTENNA_MODE = 14;
+
+   private static final int PRESETS_OPTIONS_TUNE = 0;
+   private static final int PRESETS_OPTIONS_REPLACE = 1;
+   private static final int PRESETS_OPTIONS_RENAME = 2;
+   private static final int PRESETS_OPTIONS_DELETE = 3;
+   private static final int PRESETS_OPTIONS_SEARCHPI = 4;
+
+   public static final String SCAN_STATION_PREFS_NAME = "scan_station_list";
+   public static final String NUM_OF_STATIONS= "number_of_stations";
+   public static final String STATION_NAME = "name_of_station";
+   public static final String STATION_FREQUENCY = "frequency_of_station";
+
+   private static IFMRadioService mService = null;
+   private static FmSharedPreferences mPrefs;
+
+   /* Button Resources */
+   private ImageView mOnOffButton;
+   private ImageView mMuteButton;
+   private ImageView mSpeakerButton;
+   /* Button to navigate Preset pages */
+   private ImageButton mPresetPageButton;
+   /* 6 Preset Buttons */
+   private Button[] mPresetButtons = {null, null, null, null, null, null, null};
+   private Button mPresetListButton;
+   // private ImageButton mSearchButton;
+   private ImageView mForwardButton;
+   private ImageView mBackButton;
+
+   /* Top row in the station info layout */
+   private ImageView mRSSI;
+   private TextView mProgramServiceTV;
+   private TextView mStereoTV;
+
+   /* Middle row in the station info layout */
+   private TextView mTuneStationFrequencyTV;
+   private TextView mStationCallSignTV;
+   private TextView mProgramTypeTV;
+
+   /* Bottom row in the station info layout */
+   private TextView mRadioTextTV;
+   private TextView mERadioTextTV;
+
+   /* Sleep and Recording Messages */
+   private TextView mSleepMsgTV;
+   private TextView mRecordingMsgTV;
+
+   private double mOutputFreq;
+   private int mPresetPageNumber = 0;
+   private int mStereo = -1;
+
+   // default audio device - speaker
+   private static int mAudioRoute = FMRadioService.RADIO_AUDIO_DEVICE_WIRED_HEADSET;
+   private static boolean mFMStats = false;
+
+
+   /* Current Status Indicators */
+   private static boolean mRecording = false;
+   private static boolean mIsScaning = false;
+   private static boolean mIsSeeking = false;
+   private static boolean mIsSearching = false;
+   private static int mScanPty = 0;
+
+   private Animation mAnimation = null;
+   private ScrollerText mRadioTextScroller = null;
+   private ScrollerText mERadioTextScroller = null;
+
+   private static PresetStation mTunedStation = new PresetStation("", 102100);
+   private PresetStation mPresetButtonStation = null;
+
+   /* Radio Vars */
+   final Handler mHandler = new Handler();
+   /* Search Progress Dialog */
+   private ProgressDialog mProgressDialog = null;
+
+   /* Asynchronous command active */
+   private static int mCommandActive = 0;
+
+   /* Command that failed (Sycnhronous or Asynchronous) */
+   private static int mCommandFailed = 0;
+
+   private  HorizontalNumberPicker mPicker;
+   private int mFrequency;
+
+   /** Index of arrays.xml key word "search_category_rbds_entries or search_category_rds_entries resources*/
+   private int mItemsIndex = -1;
+   private static int mDisplayWidth;
+   private static final int TEXTSIZE_PARAMETER_FOR_NUMBER_PICKER = 20;
+   private static final int FREQUENCY_STEP_SMALL = 50;
+   private static final int FREQUENCY_STEP_MEDIUM = 100;
+   private static final int FREQUENCY_STEP_LARGE = 200;
+   public static boolean mUpdatePickerValue = false;
+
+   private LoadedDataAndState SavedDataAndState = null;
+
+   /** fm stats property string */
+   public static final String FM_STATS_PROP = "persist.fm.stats";
+
+   /** Called when the activity is first created. */
+   @Override
+   public void onCreate(Bundle savedInstanceState) {
+      super.onCreate(savedInstanceState);
+      setVolumeControlStream(AudioManager.STREAM_MUSIC);
+      mPrefs = new FmSharedPreferences(this);
+      mCommandActive = CMD_NONE;
+      mCommandFailed = CMD_NONE;
+
+      Log.d(LOGTAG, "onCreate - Height : "+ getWindowManager().getDefaultDisplay().getHeight()
+            + " - Width  : "+ getWindowManager().getDefaultDisplay().getWidth());
+
+      mDisplayWidth = getWindowManager().getDefaultDisplay().getWidth();
+      DisplayMetrics outMetrics = new DisplayMetrics();
+      getWindowManager().getDefaultDisplay().getMetrics(outMetrics );
+
+      setContentView(R.layout.fmradio);
+      SavedDataAndState = (LoadedDataAndState)getLastNonConfigurationInstance();
+
+      mPicker = (HorizontalNumberPicker)findViewById(R.id.fm_picker);
+      if (mPicker != null) {
+          mPicker.setTextSize(mDisplayWidth / TEXTSIZE_PARAMETER_FOR_NUMBER_PICKER);
+          mPicker.setDensity(outMetrics.densityDpi);
+          mPicker.setOnValueChangedListener(new OnValueChangeListener(){
+            @Override
+            public void onValueChange(HorizontalNumberPicker picker,
+                    int oldVal, int newVal) {
+                // TODO Auto-generated method stub
+                valueToFrequency(newVal);
+                mHandler.post(mRadioChangeFrequency);
+            }
+        });
+      }
+
+      mAnimation = AnimationUtils.loadAnimation(this,
+                                                R.anim.preset_select);
+
+      mMuteButton = (ImageView)findViewById(R.id.btn_silent);
+      if (mMuteButton != null) {
+          mMuteButton.setOnClickListener(mMuteModeClickListener);
+      }
+
+      mSpeakerButton = (ImageView)findViewById(R.id.btn_speaker_earphone);
+      if (mSpeakerButton != null) {
+          mSpeakerButton.setOnClickListener(mSpeakerClickListener);
+      }
+
+      mOnOffButton = (ImageView)findViewById(R.id.btn_onoff);
+      if (mOnOffButton != null) {
+          mOnOffButton.setOnClickListener(mTurnOnOffClickListener);
+      }
+
+      mForwardButton = (ImageView)findViewById(R.id.btn_forward);
+      if (mForwardButton != null) {
+          mForwardButton.setOnClickListener(mForwardClickListener);
+          mForwardButton.setOnLongClickListener(mForwardLongClickListener);
+      }
+
+      mBackButton = (ImageView)findViewById(R.id.btn_back);
+      if (mBackButton != null) {
+          mBackButton.setOnClickListener(mBackClickListener);
+          mBackButton.setOnLongClickListener(mBackLongClickListener);
+      }
+
+      /* 6 Preset Buttons */
+      mPresetButtons[0] = (Button)findViewById(R.id.presets_button_1);
+      mPresetButtons[1] = (Button)findViewById(R.id.presets_button_2);
+      mPresetButtons[2] = (Button)findViewById(R.id.presets_button_3);
+      mPresetButtons[3] = (Button)findViewById(R.id.presets_button_4);
+      mPresetButtons[4] = (Button)findViewById(R.id.presets_button_5);
+      mPresetButtons[5] = (Button)findViewById(R.id.presets_button_6);
+      mPresetButtons[6] = (Button)findViewById(R.id.presets_button_7);
+
+      for (int nButton = 0; nButton < MAX_PRESETS_PER_PAGE; nButton++) {
+         if (mPresetButtons[nButton] != null) {
+             mPresetButtons[nButton]
+               .setOnClickListener(mPresetButtonClickListener);
+             mPresetButtons[nButton]
+               .setOnLongClickListener(mPresetButtonOnLongClickListener);
+         }
+      }
+
+      mTuneStationFrequencyTV = (TextView)findViewById(R.id.prog_frequency_tv);
+      if (mTuneStationFrequencyTV != null) {
+         mTuneStationFrequencyTV.setOnLongClickListener(mFrequencyViewClickListener);
+      }
+      mProgramServiceTV = (TextView)findViewById(R.id.prog_service_tv);
+      mStereoTV = (TextView)findViewById(R.id.stereo_text_tv);
+
+      mStationCallSignTV = (TextView)findViewById(R.id.call_sign_tv);
+      mProgramTypeTV = (TextView)findViewById(R.id.pty_tv);
+
+      mRadioTextTV = (TextView)findViewById(R.id.radio_text_tv);
+      mERadioTextTV = (TextView)findViewById(R.id.eradio_text_tv);
+      mSleepMsgTV = (TextView)findViewById(R.id.sleep_msg_tv);
+      mRecordingMsgTV = (TextView)findViewById(R.id.record_msg_tv);
+      if (mRecordingMsgTV != null) {
+          mRecordingMsgTV.setOnClickListener(mRecordButtonListener);
+      }
+      /* Disable displaying RSSI */
+      mRSSI = (ImageView)findViewById(R.id.signal_level);
+      if (mRSSI != null) {
+          mRSSI.setVisibility(View.INVISIBLE);
+      }
+
+      if ((mRadioTextScroller == null) && (mRadioTextTV != null)) {
+          mRadioTextScroller = new ScrollerText(mRadioTextTV);
+      }
+
+      if ((mERadioTextScroller == null) && (mERadioTextTV != null)) {
+          mERadioTextScroller = new ScrollerText(mERadioTextTV);
+      }
+
+
+      //HDMI and FM concurrecny is not supported.
+      if (isHdmiOn()) {
+          showDialog(DIALOG_CMD_FAILED_HDMI_ON);
+      }
+      else {
+         if (false == bindToService(this, osc)) {
+             Log.d(LOGTAG, "onCreate: Failed to Start Service");
+         } else {
+             Log.d(LOGTAG, "onCreate: Start Service completed successfully");
+         }
+      }
+   }
+
+   protected void setDisplayvalue(){
+       int max = mPrefs.getUpperLimit();
+       int min = mPrefs.getLowerLimit();
+       int step = mPrefs.getFrequencyStepSize();
+       switch(step) {
+       case FREQUENCY_STEP_SMALL:
+           mPicker.setScale(Scale.SCALE_SMALL);
+           break;
+       case FREQUENCY_STEP_MEDIUM:
+           mPicker.setScale(Scale.SCALE_MEDIUM);
+           break;
+       case FREQUENCY_STEP_LARGE:
+           mPicker.setScale(Scale.SCALE_LARGE);
+       }
+
+       int channels = (int)((max - min) / step);
+       String [] displayValues = new String[channels + 1];
+       for(int i = 0; i < displayValues.length; i++) {
+           displayValues[i] = String.valueOf((min + i * step) / 1000.0f);
+       }
+       mPicker.setDisplayedValues(displayValues, true);
+       mPicker.setWrapSelectorWheel(true);
+       mPicker.invalidate();
+   }
+   protected int valueToFrequency(int value) {
+       mFrequency = mPrefs.getLowerLimit() + value *
+                             mPrefs.getFrequencyStepSize();
+       return mFrequency;
+   }
+
+   @Override
+   public void onRestart() {
+      Log.d(LOGTAG, "FMRadio: onRestart");
+      try {
+         if (null != mService) {
+              mService.requestFocus();
+         }
+      } catch (Exception e) {
+         e.printStackTrace();
+      }
+      super.onRestart();
+   }
+
+   @Override
+   public void onStop() {
+      Log.d(LOGTAG, "FMRadio: onStop");
+      if(isSleepTimerActive()) {
+          mSleepUpdateHandlerThread.interrupt();
+          long timeNow = ((SystemClock.elapsedRealtime()));
+          if (timeNow < mSleepAtPhoneTime) {
+              try {
+                if (null != mService) {
+                    mService.delayedStop((mSleepAtPhoneTime - timeNow),
+                                               FMRadioService.STOP_SERVICE);
+                }
+              }catch (Exception e) {
+                e.printStackTrace();
+              }
+          }
+      }
+      if(isRecordTimerActive()) {
+          try {
+              if (null != mRecordUpdateHandlerThread) {
+                  mRecordUpdateHandlerThread.interrupt();
+              }
+          }catch (NullPointerException e) {
+              e.printStackTrace();
+          }
+          long rtimeNow = ((SystemClock.elapsedRealtime()));
+          if (rtimeNow < mRecordDuration) {
+              try {
+                if (null != mService) {
+                    mService.delayedStop((mRecordDuration - rtimeNow),
+                                              FMRadioService.STOP_RECORD);
+                }
+              }catch (Exception e) {
+                e.printStackTrace();
+              }
+          }
+      }
+      super.onStop();
+   }
+
+   @Override
+   public void onStart() {
+      super.onStart();
+      Log.d(LOGTAG, "FMRadio: onStart");
+      try {
+         if(mService != null) {
+            mService.registerCallbacks(mServiceCallbacks);
+         }
+      }catch (RemoteException e) {
+         e.printStackTrace();
+      }
+      if(isSleepTimerActive()) {
+          Log.d(LOGTAG, "isSleepTimerActive is true");
+          try {
+            if (null != mService) {
+                mService.cancelDelayedStop(FMRadioService.STOP_SERVICE);
+            }
+          } catch (Exception e) {
+            e.printStackTrace();
+          }
+          initiateSleepThread();
+      }
+      if(isRecordTimerActive()) {
+          Log.d(LOGTAG, "isRecordTimerActive is true");
+          try {
+            if (null != mService) {
+                mService.cancelDelayedStop(FMRadioService.STOP_RECORD);
+            }
+          }catch (Exception e) {
+            e.printStackTrace();
+          }
+          if(isRecording()) {
+              initiateRecordThread();
+          }
+      }
+   }
+
+   @Override
+   protected void onPause() {
+      Log.d(LOGTAG, "FMRadio: onPause");
+      super.onPause();
+      mRadioTextScroller.stopScroll();
+      mERadioTextScroller.stopScroll();
+      FmSharedPreferences.setTunedFrequency(mTunedStation.getFrequency());
+      mPrefs.Save();
+   }
+
+   @Override
+   public void onResume() {
+      super.onResume();
+      Log.d(LOGTAG, "FMRadio: onResume");
+      mPrefs.Load();
+      if (mPicker != null) {
+          setDisplayvalue();
+      }
+      PresetStation station = new PresetStation("",
+                                   FmSharedPreferences.getTunedFrequency());
+      if (station != null) {
+          mTunedStation.Copy(station);
+      }
+      mHandler.post(mUpdateProgramService);
+      mHandler.post(mUpdateRadioText);
+      mHandler.post(mOnStereo);
+      mUpdatePickerValue = true;
+      updateStationInfoToUI();
+      enableRadioOnOffUI();
+   }
+   private class LoadedDataAndState {
+      public LoadedDataAndState(){};
+      public boolean onOrOff;
+   }
+   @Override
+   public Object onRetainNonConfigurationInstance() {
+      final LoadedDataAndState data = new LoadedDataAndState();
+      if (mService != null) {
+         try {
+              data.onOrOff = mService.isFmOn();
+         }catch(RemoteException e) {
+              data.onOrOff = false;
+              e.printStackTrace();
+         }
+      }else {
+         data.onOrOff = false;
+      }
+      return data;
+   }
+
+   @Override
+   public void onDestroy() {
+      Log.d(LOGTAG, "FMRadio: onDestroy");
+      cleanupTimeoutHandler();
+      if (mService != null) {
+          try {
+               if(!mService.isFmOn()) {
+                  endSleepTimer();
+               }
+          }catch (RemoteException e) {
+               e.printStackTrace();
+          }
+      }
+      unbindFromService(this);
+      mService = null;
+      Log.d(LOGTAG, "onDestroy: unbindFromService completed");
+      super.onDestroy();
+   }
+
+   @Override
+   public boolean onCreateOptionsMenu(Menu menu) {
+      super.onCreateOptionsMenu(menu);
+      MenuItem item;
+      boolean radioOn = isFmOn();
+      boolean recording = isRecording();
+      boolean mSpeakerPhoneOn = isSpeakerEnabled();
+      boolean sleepActive = isSleepTimerActive();
+      boolean searchActive = isScanActive() || isSeekActive();
+
+      item = menu.add(0, MENU_SCAN_START, 0, R.string.menu_scan_start).
+                            setIcon(R.drawable.ic_btn_search);
+      if (item != null) {
+          item.setVisible((!searchActive) && radioOn);
+      }
+      item = menu.add(0, MENU_SCAN_STOP, 0, R.string.menu_scan_stop).
+                            setIcon(R.drawable.ic_btn_search);
+      if (item != null) {
+          item.setVisible(searchActive && radioOn);
+      }
+
+      if (RECORDING_ENABLE) {
+          item = menu.add(0, MENU_RECORD_START, 0, R.string.menu_record_start)
+                              .setIcon(R.drawable.ic_menu_record);
+          if (item != null) {
+             item.setVisible(true);
+             item.setEnabled((!recording) && radioOn);
+          }
+          item = menu.add(0, MENU_RECORD_STOP, 0, R.string.menu_record_stop)
+                              .setIcon(R.drawable.ic_menu_record);
+          if (item != null) {
+             item.setVisible(true);
+             item.setEnabled(recording && radioOn);
+          }
+      }
+      /* Settings can be active */
+      item = menu.add(0, MENU_SETTINGS, 0, R.string.menu_settings).
+                              setIcon(android.R.drawable.ic_menu_preferences);
+
+      item = menu.add(0, MENU_SLEEP, 0, R.string.menu_sleep).
+                              setTitle(R.string.menu_sleep);
+      if (item != null) {
+          item.setVisible((!sleepActive) && radioOn);
+      }
+      item = menu.add(0, MENU_SLEEP_CANCEL, 0, R.string.menu_sleep_cancel).
+                              setTitle(R.string.menu_sleep_cancel);
+      if (item != null) {
+          item.setVisible(sleepActive && radioOn);
+      }
+      mFMStats = SystemProperties.getBoolean(FM_STATS_PROP, false);
+      if(mFMStats) {
+          item = menu.add(0, MENU_STAT_TEST, 0,R.string.menu_stats).
+                             setIcon(android.R.drawable.ic_menu_info_details);
+      }
+      menu.add(0, MENU_STATION_LIST, 0, R.string.menu_all_channels);
+      item = menu.add(0, MENU_TAGS, 0, R.string.menu_display_tags);
+      return true;
+   }
+
+   @Override
+   public boolean onPrepareOptionsMenu(Menu menu) {
+      super.onPrepareOptionsMenu(menu);
+      MenuItem item;
+      boolean radioOn = isFmOn();
+      boolean recording = isRecording();
+      boolean mSpeakerPhoneOn = isSpeakerEnabled();
+      boolean searchActive = isScanActive() || isSeekActive();
+
+      item = menu.findItem(MENU_SCAN_START);
+      if (item != null) {
+          item.setVisible((!searchActive) && radioOn);
+      }
+      item = menu.findItem(MENU_SCAN_STOP);
+      if (item != null) {
+         item.setVisible(searchActive && radioOn);
+      }
+      if (RECORDING_ENABLE) {
+         item = menu.findItem(MENU_RECORD_START);
+         if (item != null) {
+            item.setVisible(true);
+            item.setEnabled((!recording) && radioOn && (!isAnalogModeEnabled()));
+         }
+         item = menu.findItem(MENU_RECORD_STOP);
+         if (item != null) {
+             item.setVisible(true);
+             item.setEnabled(recording && radioOn && (!isAnalogModeEnabled()));
+         }
+      }
+
+      boolean sleepActive = isSleepTimerActive();
+      item = menu.findItem(MENU_SLEEP);
+      if (item != null) {
+          item.setVisible((!sleepActive) && radioOn);
+      }
+      item = menu.findItem(MENU_SLEEP_CANCEL);
+      if (item != null) {
+          item.setVisible(sleepActive && radioOn);
+      }
+      return true;
+   }
+
+   @Override
+   public boolean onOptionsItemSelected(MenuItem item) {
+      switch (item.getItemId()) {
+      case MENU_SETTINGS:
+         Intent launchPreferencesIntent = new Intent().setClass(this,
+                                                                Settings.class);
+                  launchPreferencesIntent.putExtra(Settings.RX_MODE,true);
+         startActivityForResult(launchPreferencesIntent,
+                                ACTIVITY_RESULT_SETTINGS);
+         return true;
+      case MENU_STAT_TEST:
+          Intent launchFMStatIntent = new Intent().setClass(this,
+                                                            FMStats.class);
+          startActivity(launchFMStatIntent);
+          return true;
+      case MENU_SCAN_START:
+         showDialog(DIALOG_SEARCH);
+         return true;
+      case MENU_SCAN_STOP:
+         cancelSearch();
+         return true;
+      case MENU_RECORD_START:
+         startRecording();
+         return true;
+      case MENU_RECORD_STOP:
+         stopRecording();
+         return true;
+      case MENU_SLEEP:
+         showDialog(DIALOG_SLEEP);
+         return true;
+      case MENU_SLEEP_CANCEL:
+         DebugToasts("Sleep Cancelled", Toast.LENGTH_SHORT);
+         endSleepTimer();
+         return true;
+      case MENU_STATION_LIST:
+          Intent stationListIntent = new Intent().setClass(this,
+                  StationListActivity.class);
+          startActivity(stationListIntent);
+          return true;
+      case MENU_TAGS:
+          Intent launchFMTagsIntent = new Intent().setClass(this,
+                                                            FmTags.class);
+          startActivity(launchFMTagsIntent);
+          return true;
+      default:
+          break;
+      }
+      return super.onOptionsItemSelected(item);
+   }
+
+   private boolean isHdmiOn() {
+     //HDMI and FM concurrecny is not supported.
+          try {
+              String hdmiUserOption = android.provider.Settings.System.getString(
+                                            getContentResolver(), "HDMI_USEROPTION");
+          }catch (Exception ex) {
+          }
+          return false;
+   }
+
+   private void enableSpeaker() {
+    //This method with toggle Speaker phone based on existing state .
+       boolean bSpeakerPhoneOn = isSpeakerEnabled();
+       if(mService != null) {
+           try {
+               if (bSpeakerPhoneOn) {  // as Speaker is already on turn it off.
+                   mService.enableSpeaker(false);
+                   Log.d(LOGTAG, "Speaker phone is  turned off");
+                   mSpeakerButton.setImageResource(R.drawable.btn_earphone);
+               }else { // as Speaker is off turn it on.
+                   mService.enableSpeaker(true);
+                   Log.d(LOGTAG, "Speaker phone is turned on");
+                   mSpeakerButton.setImageResource(R.drawable.btn_speaker);
+               }
+               invalidateOptionsMenu();
+           }catch (RemoteException e) {
+               e.printStackTrace();
+           }
+       }
+   }
+
+   private static final int RECORDTIMER_EXPIRED = 0x1003;
+   private static final int RECORDTIMER_UPDATE = 0x1004;
+
+   private boolean hasRecordTimerExpired() {
+      boolean expired = true;
+      /* If record duration is 'until stopped' then return false and exit */
+      if (mRecordUntilStopped)
+          return false;
+      if (isRecordTimerActive()) {
+         long timeNow = ((SystemClock.elapsedRealtime()));
+         //Log.d(LOGTAG, "hasSleepTimerExpired - " + mSleepAtPhoneTime + " now: "+ timeNow);
+         if ((mRecording == false) || (timeNow < mRecordDuration)) {
+             expired = false;
+         }
+      }
+      return expired;
+   }
+
+   private boolean isRecordTimerActive() {
+      boolean active = false;
+      if (mRecordDuration > 0) {
+          active = true;
+      }
+      return active;
+   }
+
+   private void updateExpiredRecordTime() {
+      int vis = View.VISIBLE;
+      if (mRecordUntilStopped || isRecordTimerActive()) {
+         long timeNow = ((SystemClock.elapsedRealtime()));
+         if (mRecordUntilStopped || (mRecordDuration >= timeNow)) {
+            long seconds = (timeNow - mRecordStartTime) / 1000;
+            String Msg = makeTimeString(seconds);
+            mRecordingMsgTV.setText(Msg);
+         }else {
+            /* Clean up timer */
+            mRecordDuration = 0;
+         }
+      }
+      mRecordingMsgTV.setVisibility(vis);
+   }
+
+   /* Recorder Thread processing */
+   private Runnable doRecordProcessing = new Runnable() {
+      public void run() {
+         boolean recordTimerExpired;
+         if (mRecordUntilStopped) {
+             recordTimerExpired = false;
+         }else {
+             recordTimerExpired = hasRecordTimerExpired();
+         }
+         while ((recordTimerExpired == false) &&
+                  (!Thread.currentThread().isInterrupted())) {
+            try {
+                Thread.sleep(500);
+                Message statusUpdate = new Message();
+                statusUpdate.what = RECORDTIMER_UPDATE;
+                mUIUpdateHandlerHandler.sendMessage(statusUpdate);
+                recordTimerExpired = hasRecordTimerExpired();
+            }catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+            }
+            if(true == recordTimerExpired) {
+               Message finished = new Message();
+               finished.what = RECORDTIMER_EXPIRED;
+               mUIUpdateHandlerHandler.sendMessage(finished);
+            }
+         }
+      }
+   };
+
+   private static long mRecordDuration = 0;
+   private static long mRecordStartTime = 0;
+   private static boolean mRecordUntilStopped = false;
+   private Thread mRecordUpdateHandlerThread = null;
+
+   private void initiateRecordDurationTimer(long mins) {
+
+      if(mins == FmSharedPreferences.RECORD_DUR_INDEX_3_VAL) {
+          mRecordUntilStopped = true;
+          mRecordStartTime = SystemClock.elapsedRealtime();
+      }else {
+          mRecordUntilStopped = false;
+          mRecordDuration = (mRecordStartTime = SystemClock.elapsedRealtime())
+                                   +
+                            (mins * 60 * 1000);
+      }
+
+      Log.d(LOGTAG, "Stop Recording in mins: " + mins);
+      initiateRecordThread();
+    }
+    private void initiateRecordThread() {
+      if (mRecordUpdateHandlerThread == null) {
+          mRecordUpdateHandlerThread = new Thread(null, doRecordProcessing,
+                                                "RecordUpdateThread");
+      }
+      /* Launch the dummy thread to simulate the transfer progress */
+      Log.d(LOGTAG, "Thread State: " + mRecordUpdateHandlerThread.getState());
+      if (mRecordUpdateHandlerThread.getState() == Thread.State.TERMINATED) {
+          mRecordUpdateHandlerThread = new Thread(null, doRecordProcessing,
+                                                "RecordUpdateThread");
+      }
+      /* If the thread state is "new" then the thread has not yet started */
+      if (mRecordUpdateHandlerThread.getState() == Thread.State.NEW) {
+          mRecordUpdateHandlerThread.start();
+      }
+   }
+
+   private void audioRoute (int audioDevice) {
+      boolean bStatus;
+      if (mService != null) {
+         try {
+             bStatus = mService.routeAudio(audioDevice);
+         }catch (RemoteException e) {
+             e.printStackTrace();
+         }
+      }
+   }
+
+   @Override
+   protected Dialog onCreateDialog(int id) {
+      AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(this);
+      dlgBuilder.setOnKeyListener(new OnKeyListener() {
+         public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
+             Log.d(LOGTAG, "OnKeyListener event received"+keyCode);
+             switch (keyCode) {
+                 case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+                 case 126: //KeyEvent.KEYCODE_MEDIA_PLAY:
+                 case 127: //KeyEvent.KEYCODE_MEDIA_PAUSE:
+                 case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+                 case KeyEvent.KEYCODE_MEDIA_NEXT:
+                 case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+                 case KeyEvent.KEYCODE_MEDIA_REWIND:
+                 case KeyEvent.KEYCODE_MEDIA_STOP:
+                     return true;
+             }
+             return false;
+         }
+      });
+      switch (id) {
+      case DIALOG_SEARCH: {
+            return createSearchDlg(id, dlgBuilder);
+         }
+      case DIALOG_SLEEP: {
+            return createSleepDlg(id, dlgBuilder);
+         }
+      case DIALOG_PROGRESS_PROGRESS: {
+         return createProgressDialog(id);
+        }
+      case DIALOG_PRESET_OPTIONS: {
+         return createPresetOptionsDlg(id, dlgBuilder);
+       }
+      case DIALOG_PRESET_RENAME: {
+         return createPresetRenameDlg(id, dlgBuilder);
+       }
+      case DIALOG_CMD_TIMEOUT:{
+         return createCmdTimeoutDlg(id, dlgBuilder);
+      }
+      case DIALOG_CMD_FAILED:{
+         return createCmdFailedDlg(id, dlgBuilder);
+      }
+      case DIALOG_CMD_FAILED_HDMI_ON:{
+         return createCmdFailedDlgHdmiOn(id);
+      }
+      case DIALOG_CMD_FAILED_CALL_ON:{
+          return createCmdFailedDlgCallOn(id);
+      }
+      case DIALOG_PICK_FREQUENCY: {
+            FmConfig fmConfig = FmSharedPreferences.getFMConfiguration();
+            return new FrequencyPickerDialog(this, fmConfig, mTunedStation.getFrequency(), mFrequencyChangeListener);
+      }
+      default:
+          break;
+      }
+      return null;
+   }
+
+   @Override
+   protected void onPrepareDialog(int id, Dialog dialog) {
+      super.onPrepareDialog(id, dialog);
+      int curListIndex = FmSharedPreferences.getCurrentListIndex();
+      PresetList curList = FmSharedPreferences.getStationList(curListIndex);
+      switch (id) {
+      case DIALOG_PRESET_RENAME: {
+            EditText et = (EditText) dialog.findViewById(R.id.list_edit);
+            if ((et != null) && (mPresetButtonStation != null)) {
+                et.setText(mPresetButtonStation.getName());
+            }
+            break;
+         }
+      case DIALOG_PRESET_OPTIONS: {
+            AlertDialog alertDlg = ((AlertDialog) dialog);
+            if ((alertDlg != null) && (mPresetButtonStation != null)) {
+                alertDlg.setTitle(mPresetButtonStation.getName());
+            }
+            break;
+         }
+      case DIALOG_PICK_FREQUENCY:
+         {
+            if (dialog != null && mTunedStation != null)
+            {
+               FmConfig fmConfig = FmSharedPreferences.getFMConfiguration();
+              ((FrequencyPickerDialog) dialog).updateSteps(fmConfig.getChSpacing());
+              ((FrequencyPickerDialog) dialog).updateMinFreq(fmConfig.getLowerLimit());
+              ((FrequencyPickerDialog) dialog).updateMaxFreq(fmConfig.getUpperLimit());
+              ((FrequencyPickerDialog) dialog).UpdateFrequency(mTunedStation.getFrequency());
+            }
+            break;
+         }
+      default:
+            break;
+      }
+   }
+
+   @Override
+   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+      super.onActivityResult(requestCode, resultCode, data);
+      Log.d(LOGTAG, "onActivityResult : requestCode -> " + requestCode);
+      Log.d(LOGTAG, "onActivityResult : resultCode -> " + resultCode);
+      if (requestCode == ACTIVITY_RESULT_SETTINGS) {
+         if (resultCode == RESULT_OK) {
+             if (data != null) {
+                String action = data.getAction();
+                if (action != null) {
+                  if (action.equals(Settings.RESTORE_FACTORY_DEFAULT_ACTION)) {
+                      RestoreDefaults();
+                      enableRadioOnOffUI();
+                      tuneRadio(FmSharedPreferences.DEFAULT_NO_FREQUENCY);
+                  }
+               }
+            }
+         } //if ACTIVITY_RESULT_SETTINGS
+      }//if (resultCode == RESULT_OK)
+   }
+
+   /**
+    * @return true if a wired headset is connected.
+    */
+   boolean isWiredHeadsetAvailable() {
+      boolean bAvailable = false;
+      if(mService != null) {
+         try {
+            bAvailable = mService.isWiredHeadsetAvailable();
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      Log.e(LOGTAG, "isWiredHeadsetAvailable: " + bAvailable);
+      return bAvailable;
+   }
+
+    /**
+     * @return true if a internal antenna is available.
+     *
+     */
+    boolean isAntennaAvailable() {
+       boolean bAvailable = false;
+       if(mService != null) {
+          try {
+             bAvailable = mService.isAntennaAvailable();
+          }catch (RemoteException e) {
+             e.printStackTrace();
+          }
+       }
+       return bAvailable;
+    }
+
+    boolean isCallActive(){
+        boolean bCallActive = false;
+        if(mService != null) {
+            try {
+                bCallActive = mService.isCallActive();
+            }catch (RemoteException e) {
+                e.printStackTrace();
+            }
+        }
+        return bCallActive;
+    }
+
+   private Dialog createSearchDlg(int id, AlertDialog.Builder dlgBuilder) {
+      String[] items;
+      dlgBuilder.setIcon(R.drawable.ic_btn_search);
+      dlgBuilder.setTitle(getString(R.string.search_dialog_title));
+      /* Pick RBDS or RDS */
+      if(FmSharedPreferences.isRBDSStd()) {
+         items = getResources().getStringArray(R.array.search_category_rbds_entries);
+      }else { // if(FmSharedPreferences.isRDSStd())
+         items = getResources().getStringArray(R.array.search_category_rds_entries);
+      }
+      dlgBuilder.setItems(items, new DialogInterface.OnClickListener() {
+          public void onClick(DialogInterface dialog, int item) {
+             String[] items;
+             String[] values;
+
+             mItemsIndex = item ;
+             /* Pick RBDS or RDS */
+             if(FmSharedPreferences.isRBDSStd()) {
+                items = getResources().
+                              getStringArray(R.array.search_category_rbds_entries);
+                values = getResources().
+                              getStringArray(R.array.search_category_rbds_values);
+             }else { // if(FmSharedPreferences.isRDSStd())
+                items = getResources().
+                              getStringArray(R.array.search_category_rds_entries);
+                values = getResources().
+                              getStringArray(R.array.search_category_rds_values);
+             }
+             if ((items != null) && (values != null) && (item >= 0)) {
+                 if ((item >= 0) && (item <= items.length)
+                       && (item <= items.length)) {
+                    DebugToasts("Search Stations for : " + items[item]
+                                + " (" + values[item] + ")",
+                                Toast.LENGTH_SHORT);
+                    int pty = Integer.parseInt(values[item]);
+                    clearStationList();
+                    initiateSearch(pty);
+                 }
+             }
+             removeDialog(DIALOG_SEARCH);
+          }
+      });
+      return dlgBuilder.create();
+   }
+
+   private Dialog createPresetOptionsDlg(int id, AlertDialog.Builder dlgBuilder) {
+      if(mPresetButtonStation != null) {
+         dlgBuilder.setTitle(mPresetButtonStation.getName());
+         ArrayList<String> arrayList = new ArrayList<String>();
+         //PRESETS_OPTIONS_TUNE=0
+         arrayList.add(getResources().getString(R.string.preset_tune));
+         //PRESETS_OPTIONS_REPLACE=1
+         arrayList.add(getResources().getString(R.string.preset_replace));
+         //PRESETS_OPTIONS_RENAME=2
+         arrayList.add(getResources().getString(R.string.preset_rename));
+         //PRESETS_OPTIONS_DELETE=3
+         arrayList.add(getResources().getString(R.string.preset_delete));
+         String piString = mPresetButtonStation.getPIString();
+         if (!TextUtils.isEmpty(piString)) {
+            //PRESETS_OPTIONS_SEARCHPI=4
+            arrayList.add(getResources().getString(R.string.preset_search, piString));
+         }
+
+         dlgBuilder.setCancelable(true);
+         dlgBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
+            public void onCancel(DialogInterface dialog) {
+               mPresetButtonStation = null;
+               removeDialog(DIALOG_PRESET_OPTIONS);
+            }
+         });
+         String[] items = new String [arrayList.size ()];
+         arrayList.toArray(items);
+         dlgBuilder.setItems(items, new DialogInterface.OnClickListener() {
+             public void onClick(DialogInterface dialog, int item) {
+                if(mPresetButtonStation != null) {
+                   switch(item) {
+                   case PRESETS_OPTIONS_TUNE: {
+                         // Tune to the station
+                         tuneRadio(mPresetButtonStation.getFrequency());
+                         mPresetButtonStation = null;
+                         break;
+                      }
+                   case PRESETS_OPTIONS_REPLACE: {
+                         // Replace preset Station with currently tuned station
+                         if(!stationExists(mTunedStation)) {
+                            Log.d(LOGTAG, "station - " + mPresetButtonStation.getName() + " ("
+                               + mPresetButtonStation.getFrequency() + ")");
+                            mPresetButtonStation.Copy(mTunedStation);
+                            mPresetButtonStation = null;
+                            setupPresetLayout();
+                            mPrefs.Save();
+                         }
+                         break;
+                      }
+                   case PRESETS_OPTIONS_RENAME: {
+                         // Rename
+                         showDialog(DIALOG_PRESET_RENAME);
+                         break;
+                      }
+                   case PRESETS_OPTIONS_DELETE: {
+                         // Delete
+                         int curListIndex = FmSharedPreferences.getCurrentListIndex();
+                         FmSharedPreferences.removeStation(curListIndex, mPresetButtonStation);
+                         if (mPresetButtonStation.getFrequency() == mTunedStation.getFrequency()) {
+                             // Restore current tuned station's name as its frequency
+                             mTunedStation.setName("");
+                         }
+                         mPresetButtonStation = null;
+                         setupPresetLayout();
+                         mPrefs.Save();
+                         break;
+                      }
+                   case PRESETS_OPTIONS_SEARCHPI: {
+                         // SearchPI
+                         String piString = mPresetButtonStation.getPIString();
+                         int pi = mPresetButtonStation.getPI();
+                         if ((!TextUtils.isEmpty(piString)) &&  (pi > 0)) {
+                            initiatePISearch(pi);
+                         }
+                         mPresetButtonStation = null;
+                         break;
+                      }
+                   default: {
+                         // Should not happen
+                         mPresetButtonStation = null;
+                         break;
+                      }
+                   }//switch item
+                }//if(mPresetButtonStation != null)
+                removeDialog (DIALOG_PRESET_OPTIONS);
+             }//onClick
+         });
+         return dlgBuilder.create();
+      }
+      return null;
+   }
+
+   private Dialog createSleepDlg(int id, AlertDialog.Builder dlgBuilder) {
+      dlgBuilder.setTitle(R.string.dialog_sleep_title);
+      String[] items = getResources().getStringArray(R.array.sleep_duration_values);
+
+      dlgBuilder.setItems(items, new DialogInterface.OnClickListener() {
+          public void onClick(DialogInterface dialog, int item) {
+              String[] items = getResources().getStringArray(R.array.sleep_duration_values);
+              Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
+              if ((item >= 0) && (item <= items.length)) {
+                 long seconds = (long) (900 * (item + 1));
+                 initiateSleepTimer(seconds);
+              }
+              removeDialog (DIALOG_SLEEP);
+          }
+      });
+      return dlgBuilder.create();
+   }
+
+   private Dialog createProgressDialog(int id) {
+      String msgStr = "";
+      String titleStr = "";
+      double frequency = mTunedStation.getFrequency() / 1000.0;
+      boolean bSearchActive = false;
+
+      if (isSeekActive()) {
+          msgStr = getString(R.string.msg_seeking);
+          bSearchActive = true;
+      }else if (isScanActive()) {
+          String ptyStr = PresetStation.parsePTY(mScanPty);
+          if (!TextUtils.isEmpty(ptyStr)) {
+             msgStr = getString(R.string.msg_scanning_pty, ptyStr);
+          }else {
+             msgStr = getString(R.string.msg_scanning);
+          }
+          titleStr = getString(R.string.msg_search_title, ("" + frequency));
+          bSearchActive=true;
+      }else if (isSearchActive()) {
+         msgStr = getString(R.string.msg_searching);
+         titleStr = getString(R.string.msg_searching_title);
+         bSearchActive = true;
+      }
+      if (bSearchActive) {
+          mProgressDialog = new ProgressDialog(FMRadio.this);
+          if (mProgressDialog != null) {
+              mProgressDialog.setTitle(titleStr);
+              mProgressDialog.setMessage(msgStr);
+              mProgressDialog.setIcon(R.drawable.ic_launcher_fmradio);
+              mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+              mProgressDialog.setCanceledOnTouchOutside(false);
+              mProgressDialog.setButton(DialogInterface.BUTTON_POSITIVE,
+                                   getText(R.string.button_text_stop),
+               new DialogInterface.OnClickListener() {
+                  public void onClick(DialogInterface dialog, int whichButton) {
+                      cancelSearch();
+                  }
+              });
+              mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
+                public void onCancel(DialogInterface dialog) {
+                   cancelSearch();
+                }
+              });
+              mProgressDialog.setOnKeyListener(new OnKeyListener() {
+                public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
+                    Log.d(LOGTAG, "OnKeyListener event received in ProgressDialog" + keyCode);
+                    switch (keyCode) {
+                        case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+                        case 126: //KeyEvent.KEYCODE_MEDIA_PLAY:
+                        case 127: //KeyEvent.KEYCODE_MEDIA_PAUSE:
+                        case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+                        case KeyEvent.KEYCODE_MEDIA_NEXT:
+                        case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+                        case KeyEvent.KEYCODE_MEDIA_REWIND:
+                        case KeyEvent.KEYCODE_MEDIA_STOP:
+                            return true;
+                    }
+                    return false;
+                }
+            });
+          }
+          Message msg = new Message();
+          msg.what = TIMEOUT_PROGRESS_DLG;
+          mSearchProgressHandler.sendMessageDelayed(msg, SHOWBUSY_TIMEOUT);
+      }
+      return mProgressDialog;
+   }
+
+   private void updateSelectPresetListDlg(ListView lv) {
+      if (lv != null) {
+         List<PresetList> presetLists = FmSharedPreferences.getPresetLists();
+         ListIterator<PresetList> presetIter;
+         presetIter = presetLists.listIterator();
+         int numLists = presetLists.size();
+         int curIndex = FmSharedPreferences.getCurrentListIndex();
+         ArrayAdapter<String> typeAdapter = new ArrayAdapter<String>
+                                                (this, android.R.layout.
+                                                simple_list_item_single_choice);
+         for (int stationIter = 0; stationIter < numLists; stationIter++) {
+            PresetList temp = presetIter.next();
+            if (temp != null) {
+               typeAdapter.add(getString(R.string.presetlist_select_name,
+                                           temp.getName()));
+            }
+         }
+         typeAdapter.add(getString(R.string.presetlist_add_new));
+         lv.setAdapter(typeAdapter);
+         lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+         lv.clearChoices();
+         if (curIndex >= numLists) {
+             curIndex = 0;
+         }
+         if (lv.getCount() >= curIndex) {
+            lv.setItemChecked(curIndex, true);
+            lv.setSelection(curIndex);
+         }else {
+            lv.setItemChecked(0, true);
+            lv.setSelection(0);
+         }
+      }
+   }
+
+   private Dialog createPresetRenameDlg(int id, AlertDialog.Builder dlgBuilder) {
+      if(mPresetButtonStation == null) {
+         return null;
+      }
+      LayoutInflater factory = LayoutInflater.from(this);
+      final View textEntryView = factory.inflate(
+                                                R.layout.alert_dialog_text_entry, null);
+      dlgBuilder.setTitle(R.string.dialog_presetlist_rename_title);
+      dlgBuilder.setView(textEntryView);
+      dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                                   new DialogInterface.OnClickListener() {
+                                      public void onClick(DialogInterface dialog, int whichButton) {
+                                         //int curList = FmSharedPreferences.getCurrentListIndex();
+
+                                         EditText mTV = (EditText) textEntryView
+                                         .findViewById(R.id.list_edit);
+                                         CharSequence newName = null;
+                                         if (mTV != null) {
+                                            newName = mTV.getEditableText();
+                                         }
+                                         String nName = String.valueOf(newName);
+                                         mPresetButtonStation.setName(nName);
+                                         mPresetButtonStation=null;
+                                         setupPresetLayout();
+                                         mPrefs.Save();
+                                         removeDialog(DIALOG_PRESET_RENAME);
+                                      }
+                                   });
+      dlgBuilder.setNegativeButton(R.string.alert_dialog_cancel,
+                                   new DialogInterface.OnClickListener() {
+                                      public void onClick(DialogInterface dialog, int whichButton) {
+                                         removeDialog(DIALOG_PRESET_RENAME);
+                                      }
+                                   });
+      return(dlgBuilder.create());
+   }
+
+   private Dialog createCmdTimeoutDlg(int id, AlertDialog.Builder dlgBuilder) {
+      if(mCommandActive > 0) {
+         dlgBuilder.setIcon(R.drawable.alert_dialog_icon)
+                   .setTitle(R.string.fm_command_timeout_title);
+         dlgBuilder.setMessage(R.string.fm_tune_timeout_msg);
+         dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                                      new DialogInterface.OnClickListener() {
+                                         public void onClick(DialogInterface dialog,
+                                                             int whichButton) {
+                                            cleanupTimeoutHandler();
+                                            removeDialog(DIALOG_CMD_TIMEOUT);
+                                         }
+                                      });
+         return(dlgBuilder.create());
+      }else {
+         return(null);
+      }
+   }
+
+   private Dialog createCmdFailedDlg(int id, AlertDialog.Builder dlgBuilder) {
+      dlgBuilder.setIcon(R.drawable.alert_dialog_icon)
+                .setTitle(R.string.fm_command_failed_title);
+      dlgBuilder.setMessage(R.string.fm_cmd_failed_msg);
+
+      dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                                   new DialogInterface.OnClickListener() {
+                                      public void onClick(DialogInterface dialog,
+                                                          int whichButton) {
+                                         removeDialog(DIALOG_CMD_TIMEOUT);
+                                         mCommandFailed = CMD_NONE;
+                                      }
+                                   });
+
+      return(dlgBuilder.create());
+   }
+
+   private Dialog createCmdFailedDlgHdmiOn(int id) {
+      AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(this);
+      dlgBuilder.setIcon(R.drawable.alert_dialog_icon)
+                .setTitle(R.string.fm_command_failed_title);
+      dlgBuilder.setMessage(R.string.fm_cmd_failed_msg_hdmi);
+
+      dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                                   new DialogInterface.OnClickListener() {
+                                      public void onClick(DialogInterface dialog,
+                                                          int whichButton) {
+                                         removeDialog(DIALOG_CMD_TIMEOUT);
+                                         mCommandFailed = CMD_NONE;
+                                      }
+                                   });
+
+      return(dlgBuilder.create());
+   }
+
+   private Dialog createCmdFailedDlgCallOn(int id) {
+       AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(this);
+       dlgBuilder.setIcon(R.drawable.alert_dialog_icon)
+                 .setTitle(R.string.fm_command_failed_title);
+       dlgBuilder.setMessage(R.string.fm_cmd_failed_call_on);
+
+       dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                                    new DialogInterface.OnClickListener() {
+                                       public void onClick(DialogInterface dialog,
+                                                           int whichButton) {
+                                          removeDialog(DIALOG_CMD_TIMEOUT);
+                                          mCommandFailed = CMD_NONE;
+                                       }
+                                    });
+
+       return(dlgBuilder.create());
+    }
+   private void RestoreDefaults() {
+      FmSharedPreferences.SetDefaults();
+      mPrefs.Save();
+   }
+
+   private View.OnLongClickListener mFrequencyViewClickListener =
+      new View.OnLongClickListener() {
+        public boolean onLongClick(View v) {
+          showDialog(DIALOG_PICK_FREQUENCY);
+          return true;
+        }
+   };
+
+   private View.OnClickListener mForwardClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+          int frequency = FmSharedPreferences.getNextTuneFrequency();
+          Log.d(LOGTAG, "Tune Up: to " + frequency);
+          tuneRadio(frequency);
+      }
+   };
+
+   private View.OnClickListener mBackClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+          int frequency = FmSharedPreferences.getPrevTuneFrequency();
+          Log.d(LOGTAG, "Tune Down: to " + frequency);
+          tuneRadio(frequency);
+      }
+   };
+
+   private View.OnLongClickListener mForwardLongClickListener =
+      new View.OnLongClickListener() {
+        public boolean onLongClick(View view) {
+          SeekNextStation();
+          return true;
+        }
+   };
+
+   private View.OnLongClickListener mBackLongClickListener =
+      new View.OnLongClickListener() {
+        public boolean onLongClick(View view) {
+          SeekPreviousStation();
+          return true;
+        }
+   };
+
+   private View.OnClickListener mPresetListClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+          showDialog(DIALOG_SELECT_PRESET_LIST);
+        }
+   };
+   private View.OnLongClickListener mPresetListButtonOnLongClickListener =
+      new View.OnLongClickListener() {
+        public boolean onLongClick(View view) {
+          showDialog(DIALOG_PRESETS_LIST);
+          return true;
+        }
+   };
+
+   private View.OnClickListener mPresetsPageClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+          mPresetPageNumber++;
+          setupPresetLayout();
+      }
+   };
+
+   private View.OnClickListener mPresetButtonClickListener =
+      new View.OnClickListener() {
+         public void onClick(View view) {
+           PresetStation station = (PresetStation)view.getTag();
+           if (station != null) {
+              Log.d(LOGTAG, "station - " + station.getName() + " ("
+                    + station.getFrequency() + ")");
+              tuneRadio(station.getFrequency());
+              view.startAnimation(mAnimation);
+           }
+      }
+   };
+
+   private View.OnLongClickListener mPresetButtonOnLongClickListener =
+      new View.OnLongClickListener() {
+        public boolean onLongClick(View view) {
+           PresetStation station = (PresetStation)view.getTag();
+           mPresetButtonStation = station;
+           if (station != null) {
+               showDialog(DIALOG_PRESET_OPTIONS);
+           }else {
+               addToPresets();
+               view.startAnimation(mAnimation);
+           }
+         return true;
+      }
+   };
+
+   final FrequencyPickerDialog.OnFrequencySetListener mFrequencyChangeListener
+      = new FrequencyPickerDialog.OnFrequencySetListener() {
+        public void onFrequencySet(FrequencyPicker view, int frequency) {
+           Log.d(LOGTAG, "mFrequencyChangeListener: onFrequencyChanged to: " +
+                   frequency);
+           tuneRadio(frequency);
+        }
+   };
+
+    private View.OnClickListener mSpeakerClickListener =
+        new View.OnClickListener() {
+          @Override
+          public void onClick(View v) {
+             // TODO Auto-generated method stub
+             enableSpeaker();
+          }
+    };
+
+   private View.OnClickListener mMuteModeClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+           boolean bStatus = false;
+           if (mService != null) {
+              try {
+               if (true == isMuted()) {
+                   bStatus = mService.unMute();
+               }else {
+                   bStatus = mService.mute();
+               }
+               if (bStatus) {
+                   setMuteModeButtonImage(true);
+                   v.startAnimation(mAnimation);
+               }else {
+                   mCommandFailed = CMD_MUTE;
+                   if(isCallActive()) {
+                      showDialog(DIALOG_CMD_FAILED_CALL_ON);
+                   }else {
+                      showDialog(DIALOG_CMD_FAILED);
+                   }
+               }
+              }catch (RemoteException e) {
+                e.printStackTrace();
+              }
+           }
+      }
+   };
+
+   private View.OnClickListener mRecordButtonListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+            if (isRecording()) {
+               stopRecording();
+            }else if(!isAnalogModeEnabled()) {
+               startRecording();
+            }
+            invalidateOptionsMenu();
+        }
+   };
+   private Handler mEnableRadioHandler = new Handler();
+   private Handler mDisableRadioHandler = new Handler();
+   private Runnable mEnableRadioTask = new Runnable() {
+    public void run() {
+       enableRadio();
+       mOnOffButton.setEnabled(true);
+       mOnOffButton.setClickable(true);
+       mOnOffButton.setOnClickListener(mTurnOnOffClickListener);
+    }
+  };
+
+  private Runnable mDisableRadioTask = new Runnable() {
+    public void run() {
+       disableRadio();
+       mOnOffButton.setEnabled(true);
+       mOnOffButton.setClickable(true);
+       mOnOffButton.setOnClickListener(mTurnOnOffClickListener);
+    }
+  };
+  private View.OnClickListener mTurnOnOffClickListener =
+      new View.OnClickListener() {
+        public void onClick(View v) {
+           mOnOffButton.setEnabled(false);
+           mOnOffButton.setClickable(false);
+           mOnOffButton.setOnClickListener(null);
+           if (isFmOn()) {
+              mEnableRadioHandler.removeCallbacks(mEnableRadioTask);
+              mDisableRadioHandler.removeCallbacks(mDisableRadioTask);
+              mDisableRadioHandler.postDelayed(mDisableRadioTask, 0);
+           }else {
+              mDisableRadioHandler.removeCallbacks(mDisableRadioTask);
+              mEnableRadioHandler.removeCallbacks(mEnableRadioTask);
+              mEnableRadioHandler.postDelayed(mEnableRadioTask, 0);
+           }
+           cleanupTimeoutHandler();
+      }
+   };
+
+   private void setTurnOnOffButtonImage() {
+      if (isFmOn() == true) {
+         mOnOffButton.setEnabled(true);
+      }else {
+         mOnOffButton.setEnabled(false);
+      }
+   }
+
+   private void setMuteModeButtonImage(boolean notify) {
+      String fmMutedString;
+      if (isMuted() == true) {
+         mMuteButton.setImageResource(R.drawable.ic_silent_mode);
+         fmMutedString = "FM Radio Muted";
+      }else {
+         /* Find a icon for Stations */
+         mMuteButton.setImageResource(R.drawable.ic_silent_mode_off);
+         fmMutedString = "FM Radio Playing";
+      }
+      if (notify) {
+         //Toast.makeText(this, fmMutedString, Toast.LENGTH_SHORT).show();
+         Log.d(LOGTAG, fmMutedString);
+      }
+   }
+
+   private void enableRadio() {
+      mIsScaning = false;
+      mIsSeeking = false;
+      mIsSearching = false;
+      boolean bStatus = false;
+      if (isHdmiOn()) {
+          showDialog(DIALOG_CMD_FAILED_HDMI_ON);
+      }else {
+          if (mService != null) {
+             try {
+                if((false == mService.isFmOn()) && isAntennaAvailable()) {
+                    bStatus = mService.fmOn();
+                    if(bStatus) {
+                       tuneRadio(FmSharedPreferences.getTunedFrequency());
+                       enableRadioOnOffUI();
+                    }else {
+                       Log.e(LOGTAG, "mService.fmOn failed");
+                       mCommandFailed = CMD_FMON;
+                       if(isCallActive()) {
+                          enableRadioOnOffUI();
+                          showDialog(DIALOG_CMD_FAILED_CALL_ON);
+                       }else {
+                          showDialog(DIALOG_CMD_FAILED);
+                       }
+                    }
+                }else {
+                    enableRadioOnOffUI();
+                }
+             }catch (RemoteException e) {
+                e.printStackTrace();
+             }
+          }
+      }
+   }
+
+   private void disableRadio() {
+      boolean bStatus = false;
+      boolean bSpeakerPhoneOn = isSpeakerEnabled();
+      cancelSearch();
+      endSleepTimer();
+      if(mRecording) {
+         //Stop if there is an ongoing Record
+         stopRecording();
+      }
+      if(mService != null) {
+         try {
+            if(bSpeakerPhoneOn) {
+               mService.enableSpeaker(false);
+            }
+            bStatus = mService.fmOff();
+            enableRadioOnOffUI();
+            if (bStatus == false) {
+                mCommandFailed = CMD_FMOFF;
+                Log.e(LOGTAG, " mService.fmOff failed");
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+   }
+
+   private void resetRadio() {
+      boolean bSpeakerPhoneOn = isSpeakerEnabled();
+      resetSearch();
+      endSleepTimer();
+      if (mRecording) {
+         //Stop if there is an ongoing Record
+         stopRecording();
+      }
+      if (mService != null) {
+         try {
+            if(bSpeakerPhoneOn) {
+               mService.enableSpeaker(false);
+            }
+            mService.fmRadioReset();
+            enableRadioOnOffUI(false);
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+   }
+   public void clearStationList() {
+      SharedPreferences sp = getSharedPreferences(SCAN_STATION_PREFS_NAME, 0);
+      SharedPreferences.Editor editor = sp.edit();
+      editor.clear();
+      editor.commit();
+   }
+   public static boolean fmConfigure() {
+      boolean bStatus = true;
+      if(mService != null) {
+         try {
+            bStatus = mService.fmReconfigure();
+            if (bStatus == false) {
+               mCommandFailed = CMD_FMCONFIGURE;
+               Log.e(LOGTAG, "mService.fmReconfigure failed");
+            }else {
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      return bStatus;
+   }
+   public static void fmAutoAFSwitch() {
+      boolean bStatus = false;
+      if (mService != null) {
+         try {
+            bStatus = mService.enableAutoAF(FmSharedPreferences.getAutoAFSwitch());
+            if (bStatus == false) {
+               mCommandFailed = CMD_SET_AUTOAF;
+               Log.e(LOGTAG, " mService.enableAutoAF failed");
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+   }
+
+   public static void fmAudioOutputMode() {
+      boolean bStatus = false;
+      if (mService != null) {
+         try {
+            bStatus = mService.enableStereo(FmSharedPreferences.getAudioOutputMode());
+            if (bStatus == false) {
+               mCommandFailed = CMD_SET_AUDIO_MODE;
+               Log.e(LOGTAG, "mService.enableStereo failed");
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+   }
+
+   private void startRecording() {
+      if(mService != null) {
+         try {
+             mRecording = mService.startRecording();
+         }catch (RemoteException e) {
+             e.printStackTrace();
+         }
+         //Initiate record timer thread here
+         if(mRecording == true) {
+             mRecordingMsgTV.setCompoundDrawablesWithIntrinsicBounds
+                                   (R.drawable.recorder_stop, 0, 0, 0);
+             int durationInMins = FmSharedPreferences.getRecordDuration();
+             Log.e(LOGTAG, "Fected duration: " + durationInMins);
+             initiateRecordDurationTimer( durationInMins );
+         }
+      }
+   }
+
+   private void stopRecording() {
+       mRecording = false;
+       DebugToasts("Stopped Recording", Toast.LENGTH_SHORT);
+       if(null != mRecordUpdateHandlerThread) {
+          mRecordUpdateHandlerThread.interrupt();
+       }
+       if(null != mRecordingMsgTV) {
+          mRecordingMsgTV.setText("");
+          mRecordingMsgTV.setCompoundDrawablesWithIntrinsicBounds
+                           (R.drawable.recorder_start, 0, 0, 0);
+       }
+       if (mService != null) {
+           try {
+              mService.stopRecording();
+           }catch (RemoteException e) {
+              e.printStackTrace();
+           }
+        }
+        mRecordDuration = 0;
+   }
+
+   private boolean isRecording() {
+      mRecording = false;
+      if (mService != null) {
+         try {
+             mRecording = mService.isFmRecordingOn();
+         }catch (RemoteException e) {
+             e.printStackTrace();
+         }
+      }
+      return(mRecording);
+   }
+
+   private boolean isSpeakerEnabled() {
+      boolean speakerEnabled = false;
+      if (mService != null) {
+         try {
+             speakerEnabled = mService.isSpeakerEnabled();
+         }catch (RemoteException e) {
+             e.printStackTrace();
+         }
+      }
+      return(speakerEnabled);
+   }
+
+   private boolean stationExists(PresetStation station ){
+       boolean exists = FmSharedPreferences.sameStationExists(station);
+       if(exists){
+           Toast t = Toast.makeText(this, getString(R.string.station_exists), Toast.LENGTH_SHORT);
+           t.show();
+       }
+       return exists;
+   }
+
+   private void addToPresets() {
+      int currentList = FmSharedPreferences.getCurrentListIndex();
+      PresetStation selectedStation = getCurrentTunedStation();
+      if(!stationExists(selectedStation)) {
+         FmSharedPreferences.addStation(selectedStation.getName(), selectedStation
+                        .getFrequency(), currentList);
+         setupPresetLayout();
+      }
+   }
+
+   private void enableRadioOnOffUI() {
+      boolean bEnable = isFmOn();
+      /* Disable if no antenna/headset is available */
+      if (!isAntennaAvailable()) {
+          bEnable = false;
+      }
+      enableRadioOnOffUI(bEnable);
+   }
+
+   private void enableRadioOnOffUI(boolean bEnable) {
+      if (mMuteButton != null) {
+          mMuteButton.setEnabled(bEnable);
+          setMuteModeButtonImage(false);
+      }
+      if (bEnable) {
+         if (mRadioTextScroller != null) {
+             mRadioTextScroller.startScroll();
+         }
+         if (mERadioTextScroller != null) {
+             mERadioTextScroller.startScroll();
+         }
+         if (mTuneStationFrequencyTV != null) {
+            mTuneStationFrequencyTV.setOnLongClickListener(mFrequencyViewClickListener);
+         }
+         invalidateOptionsMenu();
+         if ((mRecordingMsgTV != null) && !isRecording()) {
+             mRecordingMsgTV.setText("");
+         }
+      }else {
+         if (mRadioTextScroller != null) {
+             mRadioTextScroller.stopScroll();
+         }
+         if (mERadioTextScroller != null) {
+             mERadioTextScroller.stopScroll();
+         }
+      }
+      if (mForwardButton != null) {
+          mForwardButton.setVisibility(((bEnable == true) ? View.VISIBLE
+                                        : View.INVISIBLE));
+      }
+      if (mBackButton != null) {
+         mBackButton.setVisibility(((bEnable == true) ? View.VISIBLE
+                                        : View.INVISIBLE));
+      }
+      if (mTuneStationFrequencyTV != null) {
+         mTuneStationFrequencyTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                             : View.INVISIBLE));
+      }
+      if (mPicker != null) {
+          mPicker.setVisibility(
+                  bEnable ? View.VISIBLE : View.INVISIBLE );
+      }
+      if (mStationCallSignTV != null) {
+          mStationCallSignTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                        : View.INVISIBLE));
+      }
+      if (mProgramTypeTV != null) {
+          mProgramTypeTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                    : View.INVISIBLE));
+      }
+      if (mSleepMsgTV != null) {
+         mSleepMsgTV.setVisibility(((bEnable && isSleepTimerActive()) ? View.VISIBLE
+                                 : View.INVISIBLE));
+      }
+      if (mRecordingMsgTV != null) {
+         mRecordingMsgTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                     : View.INVISIBLE));
+      }
+      if (mRadioTextTV != null) {
+         mRadioTextTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                  : View.INVISIBLE));
+      }
+      if(mERadioTextTV != null) {
+         mERadioTextTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                  : View.INVISIBLE));
+      }
+      if (mProgramServiceTV != null) {
+         mProgramServiceTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                  : View.INVISIBLE));
+      }
+
+      if (!isAntennaAvailable()) {
+         if (mRadioTextTV != null) {
+            mRadioTextTV.setVisibility(View.VISIBLE);
+            mRadioTextTV.setText(getString(R.string.msg_noantenna));
+            mRadioTextScroller.mOriginalString = getString(R.string.msg_noantenna);
+         }
+         if (mOnOffButton != null) {
+            mOnOffButton.setEnabled(false);
+         }
+      }else if (isCallActive()) {
+         if (mRadioTextTV != null) {
+            mRadioTextTV.setText("");
+            mRadioTextScroller.mOriginalString = "";
+         }
+         if (mERadioTextTV != null) {
+             mERadioTextTV.setText("");
+             mERadioTextScroller.mOriginalString = "";
+         }
+         if (mOnOffButton != null) {
+            mOnOffButton.setEnabled(false);
+         }
+      }else {
+         if (mRadioTextTV != null) {
+             mRadioTextTV.setText("");
+             mRadioTextScroller.mOriginalString = "";
+         }
+         if (mERadioTextTV != null) {
+             mERadioTextTV.setText("");
+             mERadioTextScroller.mOriginalString = "";
+         }
+         if (mOnOffButton != null) {
+             mOnOffButton.setEnabled(true);
+         }
+      }
+
+      if (mStereoTV != null) {
+          mStereoTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                   : View.INVISIBLE));
+      }
+      for (int nButton = 0; nButton < MAX_PRESETS_PER_PAGE; nButton++) {
+         if (mPresetButtons[nButton] != null) {
+            mPresetButtons[nButton].setEnabled(bEnable);
+         }
+      }
+      if (mPresetListButton != null) {
+         mPresetListButton.setEnabled(bEnable);
+      }
+      if (mPresetPageButton != null) {
+         mPresetPageButton.setEnabled(bEnable &&
+                                   (FmSharedPreferences.getListStationCount() >= MAX_PRESETS_PER_PAGE));
+      }
+      if(mSpeakerButton != null) {
+        mSpeakerButton.setEnabled(bEnable);
+        if (bEnable) {
+            if(isSpeakerEnabled()) {
+               mSpeakerButton.setImageResource(R.drawable.btn_speaker);
+            }else {
+               mSpeakerButton.setImageResource(R.drawable.btn_earphone);
+            }
+        }else{
+            mSpeakerButton.setImageResource(R.drawable.btn_earphone);
+        }
+      }
+   }
+
+   private void resetSearchProgress() {
+      Message msg = new Message();
+      msg.what = END_PROGRESS_DLG;
+      mSearchProgressHandler.sendMessage(msg);
+   }
+
+   private void updateSearchProgress() {
+      boolean searchActive = isScanActive() || isSeekActive() || isSearchActive();
+      if (searchActive) {
+         synchronized (this) {
+            if(mProgressDialog == null) {
+               showDialog(DIALOG_PROGRESS_PROGRESS);
+            }else {
+               Message msg = new Message();
+               msg.what = UPDATE_PROGRESS_DLG;
+               mSearchProgressHandler.sendMessage(msg);
+            }
+         }
+      }else {
+         Message msg = new Message();
+         msg.what = END_PROGRESS_DLG;
+         mSearchProgressHandler.sendMessage(msg);
+      }
+   }
+
+   private void setupPresetLayout() {
+      int numStations = FmSharedPreferences.getListStationCount();
+      int addedStations = 0;
+
+      /*
+       * Validate mPresetPageNumber (Preset Page Number)
+       */
+      if (mPresetPageNumber > ((numStations) / MAX_PRESETS_PER_PAGE)) {
+         mPresetPageNumber = 0;
+      }
+
+      /*
+       * For every station, save the station as a tag and update the display
+       * on the preset Button.
+       */
+      for (int buttonIndex = 0; (buttonIndex < MAX_PRESETS_PER_PAGE); buttonIndex++) {
+         if (mPresetButtons[buttonIndex] != null) {
+            int stationIdex = (mPresetPageNumber * MAX_PRESETS_PER_PAGE)
+                                + buttonIndex;
+            PresetStation station = FmSharedPreferences.getStationInList(stationIdex);
+            String display = "";
+            if (station != null) {
+               display = station.getName();
+               mPresetButtons[buttonIndex].setText(display);
+               mPresetButtons[buttonIndex].setTag(station);
+               addedStations++;
+            }else {
+               mPresetButtons[buttonIndex].setText(R.string.add_station);
+               mPresetButtons[buttonIndex].setTag(station);
+            }
+         }
+      }
+   }
+
+   private void updateStationInfoToUI() {
+      double frequency = mTunedStation.getFrequency() / 1000.0;
+      mTuneStationFrequencyTV.setText("" + frequency + "MHz");
+      if ((mPicker != null) && mUpdatePickerValue) {
+          mPicker.setValue(((mTunedStation.getFrequency() - mPrefs.getLowerLimit())
+                              / mPrefs.getFrequencyStepSize()));
+      }
+      mStationCallSignTV.setText(mTunedStation.getPIString());
+      mProgramTypeTV.setText(mTunedStation.getPtyString());
+      mRadioTextTV.setText("");
+      mERadioTextTV.setText("");
+      mRadioTextScroller.mOriginalString = "";
+      mRadioTextScroller.mStringlength = 0;
+      mRadioTextScroller.mIteration = 0;
+      mERadioTextScroller.mOriginalString = "";
+      mERadioTextScroller.mStringlength = 0;
+      mERadioTextScroller.mIteration = 0;
+      mProgramServiceTV.setText("");
+      mStereoTV.setText("");
+      setupPresetLayout();
+   }
+
+
+   private boolean isFmOn() {
+      boolean bOn = false;
+      if(mService != null) {
+         try {
+            bOn = mService.isFmOn();
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      return(bOn);
+   }
+
+   private boolean isAnalogModeEnabled() {
+      boolean aEnabled = false;
+      if (mService != null) {
+          try {
+              aEnabled = mService.isAnalogModeEnabled();
+          }catch (RemoteException e) {
+              e.printStackTrace();
+          }
+      }
+      return (aEnabled);
+   }
+
+   private boolean isMuted() {
+      boolean bMuted = false;
+      if (mService != null) {
+         try {
+            bMuted = mService.isMuted();
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      return(bMuted);
+   }
+
+   private boolean isScanActive() {
+      return(mIsScaning);
+   }
+
+   private boolean isSeekActive() {
+      return(mIsSeeking);
+   }
+   private boolean isSearchActive() {
+      return(mIsSearching);
+   }
+
+   public static PresetStation getCurrentTunedStation() {
+      return mTunedStation;
+   }
+
+   private void SeekPreviousStation() {
+      Log.d(LOGTAG, "SeekPreviousStation");
+      if (mService != null) {
+         try {
+            if(!isSeekActive()) {
+               mIsSeeking = mService.seek(false);
+               if (mIsSeeking == false) {
+                  mCommandFailed = CMD_SEEK;
+                  Log.e(LOGTAG, "mService.seek failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      updateSearchProgress();
+   }
+
+   private void SeekNextStation() {
+      Log.d(LOGTAG, "SeekNextStation");
+      if(mService != null) {
+         try {
+            if(!isSeekActive()) {
+               mIsSeeking = mService.seek(true);
+               if (mIsSeeking == false) {
+                  mCommandFailed = CMD_SEEK;
+                  Log.e(LOGTAG, "mService.seek failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      updateSearchProgress();
+   }
+
+   /** Scan related */
+   private void initiateSearch(int pty) {
+      synchronized (this) {
+         mIsScaning = true;
+         if(mService != null) {
+            try {
+               mIsScaning = mService.scan(pty);
+               if (mIsScaning == false) {
+                  mCommandFailed = CMD_SCAN;
+                  Log.e(LOGTAG, "mService.scan failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }else {
+                  mScanPty = pty;
+               }
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+            updateSearchProgress();
+         }
+      }
+   }
+
+   /** SEEK Station with the matching PI */
+   private void initiatePISearch(int pi) {
+      Log.d(LOGTAG, "initiatePISearch");
+      if(mService != null) {
+         try {
+            if(!isSeekActive()) {
+               mIsSeeking = mService.seekPI(pi);
+               if (mIsSeeking == false) {
+                  mCommandFailed = CMD_SEEKPI;
+                  Log.e(LOGTAG, "mService.seekPI failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }
+            }
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }
+      updateSearchProgress();
+   }
+
+   private void resetSearch() {
+      mIsScaning = false;
+      mIsSeeking = false;
+      mIsSearching = false;
+      resetSearchProgress();
+   }
+
+   private void cancelSearch() {
+      synchronized (this) {
+         if (mService != null) {
+            try {
+               if ((mIsScaning == true)
+                   || (mIsSeeking == true)
+                   || (mIsSearching == true)) {
+                   mService.cancelSearch();
+                   mIsScaning = false;
+                   mIsSeeking = false;
+                   mIsSearching=false;
+               }
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+         }
+      }
+      updateSearchProgress();
+      invalidateOptionsMenu();
+   }
+
+   /** get Strongest Stations */
+   private void initiateSearchList() {
+      synchronized (this) {
+         mIsSearching = false;
+         if (mService != null) {
+            try {
+               mIsSearching = mService.searchStrongStationList(NUM_AUTO_PRESETS_SEARCH);
+               if (mIsSearching == false) {
+                  mCommandFailed = CMD_SEARCHLIST;
+                  Log.e(LOGTAG, "mService.searchStrongStationList failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+            updateSearchProgress();
+         }
+      }
+   }
+
+   private static final int UPDATE_PROGRESS_DLG = 1;
+   private static final int END_PROGRESS_DLG = 2;
+   private static final int TIMEOUT_PROGRESS_DLG = 3;
+   private static final int SHOWBUSY_TIMEOUT = 300000;
+   private Handler mSearchProgressHandler = new Handler() {
+       public void handleMessage(Message msg) {
+           if (msg.what == UPDATE_PROGRESS_DLG) {
+              if(mProgressDialog != null) {
+                 double frequency = mTunedStation.getFrequency() / 1000.0;
+                 String titleStr = getString(R.string.msg_search_title, ("" + frequency));
+                 mProgressDialog.setTitle(titleStr);
+              }
+           }else if (msg.what == END_PROGRESS_DLG) {
+              mSearchProgressHandler.removeMessages(END_PROGRESS_DLG);
+              mSearchProgressHandler.removeMessages(UPDATE_PROGRESS_DLG);
+              mSearchProgressHandler.removeMessages(TIMEOUT_PROGRESS_DLG);
+              removeDialog(DIALOG_PROGRESS_PROGRESS);
+              mProgressDialog = null;
+           }else if (msg.what == TIMEOUT_PROGRESS_DLG) {
+              cancelSearch();
+           }
+       }
+   };
+
+   /** Sleep Handling: After the timer expires, the app needs to shut down */
+   private static final int SLEEPTIMER_EXPIRED = 0x1001;
+   private static final int SLEEPTIMER_UPDATE = 0x1002;
+   private Thread mSleepUpdateHandlerThread = null;
+   /*
+    * Phone time when the App has to be shut down, calculated based on what the
+    * user configured
+    */
+   private static long mSleepAtPhoneTime = 0;
+
+   private void initiateSleepTimer(long seconds) {
+      mSleepAtPhoneTime = (SystemClock.elapsedRealtime()) + (seconds * 1000);
+      Log.d(LOGTAG, "Sleep in seconds: " + seconds);
+      initiateSleepThread();
+   }
+   private void initiateSleepThread() {
+      if (mSleepUpdateHandlerThread == null) {
+         mSleepUpdateHandlerThread = new Thread(null, doSleepProcessing,
+                                                "SleepUpdateThread");
+      }
+      /* Launch he dummy thread to simulate the transfer progress */
+      Log.d(LOGTAG, "Thread State: " + mSleepUpdateHandlerThread.getState());
+      if (mSleepUpdateHandlerThread.getState() == Thread.State.TERMINATED) {
+         mSleepUpdateHandlerThread = new Thread(null, doSleepProcessing,
+                                                "SleepUpdateThread");
+      }
+      /* If the thread state is "new" then the thread has not yet started */
+      if (mSleepUpdateHandlerThread.getState() == Thread.State.NEW) {
+         mSleepUpdateHandlerThread.start();
+      }
+   }
+
+   private void endSleepTimer() {
+      mSleepAtPhoneTime = 0;
+      if(null != mSleepUpdateHandlerThread) {
+         mSleepUpdateHandlerThread.interrupt();
+      }
+      if(null != mSleepMsgTV) {
+         mSleepMsgTV.setVisibility(View.INVISIBLE);
+      }
+   }
+
+   private boolean hasSleepTimerExpired() {
+      boolean expired = true;
+      if (isSleepTimerActive()) {
+         long timeNow = ((SystemClock.elapsedRealtime()));
+         if (timeNow < mSleepAtPhoneTime) {
+             expired = false;
+         }
+      }
+      return expired;
+   }
+
+   private boolean isSleepTimerActive() {
+      boolean active = false;
+      if (mSleepAtPhoneTime > 0) {
+          active = true;
+      }
+      return active;
+   }
+
+   private void updateExpiredSleepTime() {
+      int vis = View.INVISIBLE;
+      if (isSleepTimerActive()) {
+         long timeNow = ((SystemClock.elapsedRealtime()));
+         if (mSleepAtPhoneTime >= timeNow) {
+            long seconds = (mSleepAtPhoneTime - timeNow) / 1000;
+            String sleepMsg = makeTimeString(seconds);
+            mSleepMsgTV.setText(sleepMsg);
+            if (seconds < SLEEP_TOGGLE_SECONDS) {
+               int nowVis = mSleepMsgTV.getVisibility();
+               vis = (nowVis == View.INVISIBLE) ? View.VISIBLE
+                     : View.INVISIBLE;
+            }else {
+               vis = View.VISIBLE;
+            }
+         }else {
+            /* Clean up timer */
+            mSleepAtPhoneTime = 0;
+         }
+      }
+      mSleepMsgTV.setVisibility(vis);
+   }
+
+   private Handler mUIUpdateHandlerHandler = new Handler() {
+      public void handleMessage(Message msg) {
+         switch (msg.what) {
+         case SLEEPTIMER_EXPIRED: {
+               mSleepAtPhoneTime = 0;
+               DebugToasts("Turning Off FM Radio", Toast.LENGTH_SHORT);
+               disableRadio();
+               return;
+            }
+         case SLEEPTIMER_UPDATE: {
+               updateExpiredSleepTime();
+               break;
+            }
+         case RECORDTIMER_EXPIRED: {
+               Log.d(LOGTAG, "mUIUpdateHandlerHandler - RECORDTIMER_EXPIRED");
+               mRecordDuration = 0;
+               //Clear the Recorder text
+               mRecordingMsgTV.setText("");
+               if (mRecording != false) {
+                  DebugToasts("Stop Recording", Toast.LENGTH_SHORT);
+                  stopRecording();
+                  invalidateOptionsMenu();
+               }
+              return;
+            }
+         case RECORDTIMER_UPDATE: {
+               Log.d(LOGTAG, "mUIUpdateHandlerHandler - RECORDTIMER_UPDATE");
+               updateExpiredRecordTime();
+               break;
+            }
+         default:
+               break;
+         }
+         super.handleMessage(msg);
+      }
+   };
+
+   /* Thread processing */
+   private Runnable doSleepProcessing = new Runnable() {
+      public void run() {
+         boolean sleepTimerExpired = hasSleepTimerExpired();
+         while ((sleepTimerExpired == false) &&
+                    (!Thread.currentThread().isInterrupted())) {
+            try {
+                Thread.sleep(500);
+                Message statusUpdate = new Message();
+                statusUpdate.what = SLEEPTIMER_UPDATE;
+                mUIUpdateHandlerHandler.sendMessage(statusUpdate);
+                sleepTimerExpired = hasSleepTimerExpired();
+            }catch (Exception ex) {
+                Log.d( LOGTAG, "RunningThread InterruptedException");
+                Thread.currentThread().interrupt();
+            }//try
+         }
+         if(true == sleepTimerExpired) {
+             Message finished = new Message();
+             finished.what = SLEEPTIMER_EXPIRED;
+             mUIUpdateHandlerHandler.sendMessage(finished);
+         }
+      }
+   };
+
+   private static StringBuilder sFormatBuilder = new StringBuilder();
+   private static Formatter sFormatter = new Formatter(sFormatBuilder, Locale
+                                                       .getDefault());
+   private static final Object[] sTimeArgs = new Object[5];
+
+   private String makeTimeString(long secs) {
+      String durationformat = getString(R.string.durationformat);
+
+      /*
+       * Provide multiple arguments so the format can be changed easily by
+       * modifying the xml.
+       */
+      sFormatBuilder.setLength(0);
+
+      final Object[] timeArgs = sTimeArgs;
+      timeArgs[0] = secs / 3600;
+      timeArgs[1] = secs / 60;
+      timeArgs[2] = (secs / 60) % 60;
+      timeArgs[3] = secs;
+      timeArgs[4] = secs % 60;
+
+      return sFormatter.format(durationformat, timeArgs).toString();
+   }
+
+   private void tuneRadio(int frequency){
+      /* Issue the tune command only if tuneCommand is already not active */
+      if((mService != null) && (mCommandActive != CMD_TUNE) && isFmOn()) {
+         boolean bStatus = false;
+         try {
+             bStatus = mService.tune(frequency);
+             if (bStatus) {
+                 postTimeoutHandler(CMD_TUNE);
+             }else {
+               if (isFmOn()) {
+                  mCommandFailed = CMD_TUNE;
+                  Log.e(LOGTAG, "mService.tune failed");
+                  showDialog(DIALOG_CMD_FAILED);
+               }
+             }
+             mTunedStation.setName("");
+             mTunedStation.setPI(0);
+             mTunedStation.setPty(0);
+             updateStationInfoToUI();
+         }catch (RemoteException e) {
+            e.printStackTrace();
+         }
+      }else {
+         Log.e(LOGTAG, "Delayed Tune handler stopped");
+      }
+   }
+
+   /* Start a Command timeout
+   */
+   private synchronized void postTimeoutHandler(int cmd){
+      mCommandActive = cmd;
+      mCommandTimeoutHandler.sendEmptyMessageDelayed(MSG_CMD_TIMEOUT, CMD_TIMEOUT_DELAY_MS);
+   }
+
+   /* Stop the Command timeout
+   */
+   private synchronized void cleanupTimeoutHandler(){
+      mCommandActive = CMD_NONE;
+      mCommandTimeoutHandler.removeMessages(MSG_CMD_TIMEOUT);
+   }
+   /* Command timeout Handler
+      Routine to handle the Command timeouts for FM operations
+      that return asynchronous event callbacks
+   */
+   private Handler mCommandTimeoutHandler = new Handler() {
+      @Override
+      public void handleMessage(Message msg) {
+         switch (msg.what) {
+         case MSG_CMD_TIMEOUT: {
+               if (mCommandActive > 0) {
+                  Log.d(LOGTAG, "mCommandTimeoutHandler: Cmd failed: " + mCommandActive);
+                  mCommandTimeoutHandler.removeMessages(MSG_CMD_TIMEOUT);
+                  showDialog(DIALOG_CMD_TIMEOUT);
+                  return;
+               }
+               break;
+            }//case MSG_CMD_TIMEOUT
+         }//switch
+      }//handleMessage
+   };
+
+   @Override
+   public boolean onKeyDown(int keyCode, KeyEvent event) {
+       Log.d(LOGTAG, "KEY event received" + keyCode);
+       switch (keyCode) {
+           case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+           case 126: //KeyEvent.KEYCODE_MEDIA_PLAY:
+           case 127: //KeyEvent.KEYCODE_MEDIA_PAUSE:
+           case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
+           case KeyEvent.KEYCODE_MEDIA_NEXT:
+           case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
+           case KeyEvent.KEYCODE_MEDIA_REWIND:
+           case KeyEvent.KEYCODE_MEDIA_STOP:
+               return true;
+       }
+       return super.onKeyDown(keyCode, event);
+   }
+   private void resetFMStationInfoUI() {
+      mTunedStation.setFrequency(FmSharedPreferences.getTunedFrequency());
+      mTunedStation.setName("");
+      mTunedStation.setPI(0);
+      mTunedStation.setRDSSupported(false);
+      mTunedStation.setPty(0);
+      mRadioTextTV.setText("");
+      mERadioTextTV.setText("");
+      mRadioTextScroller.mOriginalString = "";
+      mProgramServiceTV.setText("");
+      mRadioTextScroller.stopScroll();
+      mERadioTextScroller.mOriginalString = "";
+      mERadioTextScroller.stopScroll();
+      mUpdatePickerValue = true;
+      updateStationInfoToUI();
+   }
+
+   final Runnable mRadioEnabled = new Runnable() {
+      public void run() {
+         /* Update UI to FM On State */
+         enableRadioOnOffUI(true);
+         /* Tune to the last tuned frequency */
+         mUpdatePickerValue = true;
+         tuneRadio(FmSharedPreferences.getTunedFrequency());
+      }
+   };
+
+   final Runnable mRadioDisabled = new Runnable() {
+      public void run() {
+         /* Update UI to FM Off State */
+         cleanupTimeoutHandler();
+         endSleepTimer();
+         stopRecording();
+         cancelSearch();
+         enableRadioOnOffUI(false);
+      }
+   };
+   final Runnable mRadioReset = new Runnable() {
+      public void run() {
+         /* Update UI to FM Reset (Off) State */
+         resetRadio();
+      }
+   };
+
+   final Runnable mUpdateStationInfo = new Runnable() {
+      public void run() {
+         cleanupTimeoutHandler();
+         PresetStation station = new PresetStation("", FmSharedPreferences.getTunedFrequency());
+         if (station != null) {
+             mTunedStation.Copy(station);
+         }
+         updateSearchProgress();
+         resetFMStationInfoUI();
+      }
+   };
+
+   final Runnable mSearchComplete = new Runnable() {
+      public void run() {
+         Log.d(LOGTAG, "mSearchComplete: ");
+         mScanPty=0;
+         mIsScaning = false;
+         mIsSeeking = false;
+         mIsSearching = false;
+         updateSearchProgress();
+         resetFMStationInfoUI();
+         invalidateOptionsMenu();
+      }
+   };
+
+   final Runnable mOnMute = new Runnable() {
+      public void run() {
+         setMuteModeButtonImage(true);
+      }
+   };
+
+   final Runnable mOnStereo = new Runnable() {
+      public void run() {
+         if (FMRADIO_UI_STATION_AUDIO_STEREO == mStereo) {
+             mStereoTV.setText(R.string.audio_type_stereo);
+         }else if (FMRADIO_UI_STATION_AUDIO_MONO == mStereo) {
+             mStereoTV.setText(R.string.audio_type_mono);
+         }else {
+             mStereoTV.setText("");
+         }
+      }
+   };
+
+   final Runnable mUpdateRadioText = new Runnable() {
+      public void run() {
+         String str = "";
+         if ((mService != null) && isFmOn()) {
+            try {
+               /* Get Radio Text and update the display */
+               str = mService.getRadioText();
+
+               /* Update only if all the characters are printable */
+               if (TextUtils.isPrintableAsciiOnly(str)) {
+                  Log.d(LOGTAG, "mUpdateRadioText: Updatable string: [" + str + "]");
+                  mRadioTextTV.setText(str);
+                  mRadioTextScroller.mOriginalString = str;
+               }else if(TextUtils.isEmpty(str)) { /* Rest the string to empty*/
+                  mRadioTextTV.setText("");
+                  mRadioTextScroller.mOriginalString = "";
+               }else {
+                  //Log.d(LOGTAG, "mUpdateRadioText: Leaving old string " + mRadioTextTV.getText());
+               }
+
+               /* Get PTY and PI and update the display */
+               int tempInt = mService.getProgramType();
+               /* Save PTY */
+               mTunedStation.setPty(tempInt);
+               mProgramTypeTV.setText(PresetStation.parsePTY(tempInt));
+               tempInt = mService.getProgramID();
+               mStationCallSignTV.setText(PresetStation.parsePI(tempInt));
+               if (tempInt != 0) {
+                   mTunedStation.setPI(tempInt);
+               }
+               /* For non-Empty, non-Printable string, just leave the
+                  existing old string
+               */
+               mRadioTextScroller.startScroll();
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+         }
+      }
+   };
+
+   final Runnable mRadioChangeFrequency = new Runnable(){
+       public void run() {
+           mUpdatePickerValue = false;
+           tuneRadio(mFrequency);
+       }
+   };
+
+   final Runnable mUpdateExtenRadioText = new Runnable() {
+      public void run() {
+         String str = "";
+         if ((mService != null) && isFmOn()) {
+            try {
+               /* Get Extended Radio Text and update the display */
+               str = mService.getExtenRadioText();
+               if (TextUtils.isEmpty(str)) {
+                   mERadioTextTV.setText("");
+                   mERadioTextScroller.mOriginalString = "";
+               }else {
+                   mERadioTextTV.setText(str);
+                   mERadioTextScroller.mOriginalString = str;
+               }
+               mERadioTextScroller.startScroll();
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+         }
+      }
+   };
+
+   /* Create runnable for posting */
+   final Runnable mUpdateProgramService = new Runnable() {
+      public void run() {
+         String str = "";
+         if (mService != null) {
+            try {
+               /* Get the Station PS and update the display */
+               str = mService.getProgramService();
+               /* Update only if all the characters are printable */
+               //if(isStringPrintable(str))
+               if (TextUtils.isPrintableAsciiOnly(str)) {
+                  Log.d(LOGTAG, "mUpdateProgramService: Updatable string: [" + str + "]");
+                  mProgramServiceTV.setText(str);
+               }else if (TextUtils.isEmpty(str)) { /* Rest the string to empty*/
+                  mProgramServiceTV.setText("");
+               }else {
+                  /* For non-Empty, non-Printable string, just leave the
+                     existing old string
+                  */
+               }
+               /* Get PTY and PI and update the display */
+               int tempInt = mService.getProgramType();
+               /* Save PTY */
+               mTunedStation.setPty(tempInt);
+
+               mProgramTypeTV.setText(PresetStation.parsePTY(tempInt));
+               tempInt =mService.getProgramID();
+               /* Save the program ID */
+               if (tempInt != 0) {
+                   mTunedStation.setPI(tempInt);
+               }
+               mStationCallSignTV.setText(PresetStation.parsePI(tempInt));
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+         }
+      }
+   };
+
+   private void DebugToasts(String str, int duration) {
+      //Toast.makeText(this, str, duration).show();
+      Log.d(LOGTAG, "Debug:" + str);
+   }
+
+   /**
+    * This Handler will scroll the text view.
+    * On startScroll, the scrolling starts after SCROLLER_START_DELAY_MS
+    * The Text View is scrolled left one character after every
+    * SCROLLER_UPDATE_DELAY_MS
+    * When the entire text is scrolled, the scrolling will restart
+    * after SCROLLER_RESTART_DELAY_MS
+    */
+   private static final class ScrollerText extends Handler {
+      private static final byte SCROLLER_STOPPED = 0x51;
+      private static final byte SCROLLER_STARTING = 0x52;
+      private static final byte SCROLLER_RUNNING = 0x53;
+
+      private static final int SCROLLER_MSG_START   = 0xF1;
+      private static final int SCROLLER_MSG_TICK    = 0xF2;
+      private static final int SCROLLER_MSG_RESTART = 0xF3;
+
+      private static final int SCROLLER_START_DELAY_MS = 1000;
+      private static final int SCROLLER_RESTART_DELAY_MS = 3000;
+      private static final int SCROLLER_UPDATE_DELAY_MS = 200;
+
+      private final WeakReference<TextView> mView;
+
+      private byte mStatus = SCROLLER_STOPPED;
+      String mOriginalString;
+      int mStringlength = 0;
+      int mIteration = 0;
+
+      ScrollerText(TextView v) {
+         mView = new WeakReference<TextView>(v);
+      }
+
+      /**
+       * Scrolling Message Handler
+       */
+      @Override
+      public void handleMessage(Message msg) {
+         switch (msg.what) {
+         case SCROLLER_MSG_START:
+            mStatus = SCROLLER_RUNNING;
+            updateText();
+            break;
+         case SCROLLER_MSG_TICK:
+            updateText();
+            break;
+         case SCROLLER_MSG_RESTART:
+            if (mStatus == SCROLLER_RUNNING) {
+               startScroll();
+            }
+            break;
+         }
+      }
+
+      /**
+       * Moves the text left by one character and posts a
+       * delayed message for next update after SCROLLER_UPDATE_DELAY_MS.
+       * If the entire string is scrolled, then it displays the entire string
+       * and waits for SCROLLER_RESTART_DELAY_MS for scrolling restart
+       */
+      void updateText() {
+         if (mStatus != SCROLLER_RUNNING) {
+            return;
+         }
+         removeMessages(SCROLLER_MSG_TICK);
+         final TextView textView = mView.get();
+         if (textView != null)  {
+            mStringlength = mOriginalString.length();
+            String szStr2 = "";
+            if (mStringlength > 0) {
+               mIteration++;
+               if (mIteration >= mStringlength) {
+                  mIteration = 0;
+                  sendEmptyMessageDelayed(SCROLLER_MSG_RESTART, SCROLLER_RESTART_DELAY_MS);
+               }else {
+                  sendEmptyMessageDelayed(SCROLLER_MSG_TICK, SCROLLER_UPDATE_DELAY_MS);
+               }
+               if ((mOriginalString !=null) && (mOriginalString.length() >= mIteration))
+                  szStr2 = mOriginalString.substring(mIteration);
+            }
+            textView.setText(szStr2);
+         }
+      }
+
+      /**
+       * Stops the scrolling
+       * The textView will be set to the original string.
+       */
+      void stopScroll() {
+         mStatus = SCROLLER_STOPPED;
+         removeMessages(SCROLLER_MSG_TICK);
+         removeMessages(SCROLLER_MSG_RESTART);
+         removeMessages(SCROLLER_MSG_START);
+         resetScroll();
+      }
+
+      /**
+       * Resets the scroll to display the original string.
+       */
+      private void resetScroll() {
+         mIteration = 0;
+         final TextView textView = mView.get();
+         if (textView != null) {
+            textView.setText(mOriginalString);
+         }
+      }
+
+      /** Starts the Scrolling of the TextView after a
+       * delay of SCROLLER_START_DELAY_MS
+       * Starts only if Length > 0
+       */
+      void startScroll() {
+         final TextView textView = mView.get();
+         if (textView != null) {
+            mOriginalString = (String)textView.getText();
+            mStringlength = mOriginalString.length();
+            if (mStringlength > 0) {
+               mStatus = SCROLLER_STARTING;
+               sendEmptyMessageDelayed(SCROLLER_MSG_START, SCROLLER_START_DELAY_MS);
+            }
+         }
+      }
+   }
+
+
+   public static IFMRadioService sService = null;
+   private static HashMap<Context, ServiceBinder> sConnectionMap = new HashMap<Context, ServiceBinder>();
+
+   public static boolean bindToService(Context context) {
+      Log.e(LOGTAG, "bindToService: Context");
+      return bindToService(context, null);
+   }
+
+   public static boolean bindToService(Context context, ServiceConnection callback) {
+      Log.e(LOGTAG, "bindToService: Context with serviceconnection callback");
+      context.startService(new Intent(context, FMRadioService.class));
+      ServiceBinder sb = new ServiceBinder(callback);
+      sConnectionMap.put(context, sb);
+      return context.bindService((new Intent()).setClass(context,
+                                                         FMRadioService.class), sb, 0);
+   }
+
+   public static void unbindFromService(Context context) {
+      ServiceBinder sb = (ServiceBinder) sConnectionMap.remove(context);
+      Log.e(LOGTAG, "unbindFromService: Context");
+      if (sb == null) {
+         Log.e(LOGTAG, "Trying to unbind for unknown Context");
+         return;
+      }
+      context.unbindService(sb);
+      if (sConnectionMap.isEmpty()) {
+         // presumably there is nobody interested in the service at this point,
+         // so don't hang on to the ServiceConnection
+         sService = null;
+      }
+   }
+
+   private static class ServiceBinder implements ServiceConnection {
+      ServiceConnection mCallback;
+      ServiceBinder(ServiceConnection callback) {
+         mCallback = callback;
+      }
+
+      public void onServiceConnected(ComponentName className, android.os.IBinder service) {
+         sService = IFMRadioService.Stub.asInterface(service);
+         if (mCallback != null) {
+            Log.e(LOGTAG, "onServiceConnected: mCallback");
+            mCallback.onServiceConnected(className, service);
+         }
+      }
+
+      public void onServiceDisconnected(ComponentName className) {
+         if (mCallback != null) {
+            mCallback.onServiceDisconnected(className);
+         }
+         sService = null;
+      }
+   }
+
+   private ServiceConnection osc = new ServiceConnection() {
+      public void onServiceConnected(ComponentName classname, IBinder obj) {
+         mService = IFMRadioService.Stub.asInterface(obj);
+         Log.e(LOGTAG, "ServiceConnection: onServiceConnected: ");
+         if (mService != null) {
+            try {
+               mService.registerCallbacks(mServiceCallbacks);
+               if (SavedDataAndState == null) {
+                  enableRadio();
+               }else if (SavedDataAndState.onOrOff) {
+                  enableRadioOnOffUI(true);
+               }else {
+                  enableRadioOnOffUI(false);
+               }
+            }catch (RemoteException e) {
+               e.printStackTrace();
+            }
+            if (isRecording()) {
+                mRecordingMsgTV.setCompoundDrawablesWithIntrinsicBounds
+                                  (R.drawable.recorder_stop, 0, 0, 0);
+                initiateRecordThread();
+            }else if((mRecordDuration > 0) &&
+                      (mRecordUpdateHandlerThread != null)) {
+                mRecordUpdateHandlerThread.interrupt();
+                if(mRecordingMsgTV != null) {
+                   mRecordingMsgTV.setText("");
+                }
+                mRecordDuration = 0;
+            }
+            return;
+         }else {
+            Log.e(LOGTAG, "IFMRadioService onServiceConnected failed");
+         }
+         if (getIntent().getData() == null) {
+            Intent intent = new Intent(Intent.ACTION_MAIN);
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            intent.setClass(FMRadio.this, FMRadio.class);
+            startActivity(intent);
+         }
+         finish();
+      }
+      public void onServiceDisconnected(ComponentName classname) {
+      }
+   };
+
+   private IFMRadioServiceCallbacks.Stub  mServiceCallbacks =
+    new IFMRadioServiceCallbacks.Stub() {
+      public void onEnabled() {
+         Log.d(LOGTAG, "mServiceCallbacks.onEnabled :");
+         mHandler.post(mRadioEnabled);
+      }
+      public void onDisabled() {
+         Log.d(LOGTAG, "mServiceCallbacks.onDisabled :");
+         mHandler.post(mRadioDisabled);
+      }
+      public void onRadioReset() {
+         Log.d(LOGTAG, "mServiceCallbacks.onRadioReset :");
+         mHandler.post(mRadioReset);
+      }
+      public void onTuneStatusChanged()  {
+         Log.d(LOGTAG, "mServiceCallbacks.onTuneStatusChanged: ");
+         if (mIsScaning) {
+             Log.d(LOGTAG, "isScanning....................");
+             SharedPreferences sp = getSharedPreferences(SCAN_STATION_PREFS_NAME, 0);
+             SharedPreferences.Editor editor = sp.edit();
+             int station_number = sp.getInt(NUM_OF_STATIONS, 0);
+             station_number++;
+             editor.putInt(NUM_OF_STATIONS, station_number);
+             editor.putString(STATION_NAME + station_number, station_number + "");
+             editor.putInt(STATION_FREQUENCY + station_number,
+                                   FmSharedPreferences.getTunedFrequency());
+             editor.commit();
+         }
+         cleanupTimeoutHandler();
+         mHandler.post(mUpdateStationInfo);
+      }
+
+      public void onProgramServiceChanged() {
+         Log.d(LOGTAG, "mServiceCallbacks.onProgramServiceChanged :");
+         mHandler.post(mUpdateProgramService);
+      }
+      public void onRadioTextChanged()  {
+         Log.d(LOGTAG, "mServiceCallbacks.onRadioTextChanged :");
+         mHandler.post(mUpdateRadioText);
+      }
+      public void onExtenRadioTextChanged() {
+         mHandler.post(mUpdateExtenRadioText);
+      }
+      public void onAlternateFrequencyChanged() {
+         Log.d(LOGTAG, "mServiceCallbacks.onAlternateFrequencyChanged :");
+      }
+      public void onSignalStrengthChanged() {
+         Log.d(LOGTAG, "mServiceCallbacks.onSignalStrengthChanged :");
+      }
+      public void onSearchComplete() {
+         Log.d(LOGTAG, "mServiceCallbacks.onSearchComplete :");
+         mHandler.post(mSearchComplete);
+      }
+      public void onSearchListComplete() {
+         Log.d(LOGTAG, "mServiceCallbacks.onSearchListComplete :");
+      }
+      public void onMute(boolean bMuted) {
+         Log.d(LOGTAG, "mServiceCallbacks.onMute :" + bMuted);
+         mHandler.post(mOnMute);
+      }
+      public void onAudioUpdate(boolean bStereo) {
+         if((bStereo) && (FmSharedPreferences.getAudioOutputMode())) {
+            mStereo = FMRADIO_UI_STATION_AUDIO_STEREO;
+         }else {
+            mStereo = FMRADIO_UI_STATION_AUDIO_MONO;
+         }
+         Log.d(LOGTAG, "mServiceCallbacks.onAudioUpdate :" + mStereo);
+         mHandler.post(mOnStereo);
+      }
+      public void onStationRDSSupported(boolean bRDSSupported) {
+         Log.d(LOGTAG, "mServiceCallbacks.onStationRDSSupported :" + bRDSSupported);
+         /*
+         * Depending on the signal strength etc, RDS Lock Sync/Supported may toggle,
+         * Since if a station Supports RDS, it will not change its support intermittently
+         * just save the status and ignore any "unsupported" state.
+         */
+         if (bRDSSupported) {
+             mTunedStation.setRDSSupported(true);
+         }
+      }
+      public void onRecordingStopped() {
+         Log.d(LOGTAG, "mServiceCallbacks.onRecordingStopped:");
+         stopRecording();
+      }
+   };
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
new file mode 100644
index 0000000..5d971cf
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -0,0 +1,3009 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import java.io.File;
+import java.util.*;
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+
+import android.app.AlarmManager;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.BroadcastReceiver;
+import android.media.AudioManager;
+import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.media.AudioSystem;
+import android.media.MediaRecorder;
+import android.os.Environment;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+import android.os.RemoteException;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.widget.RemoteViews;
+import android.widget.Toast;
+import android.view.KeyEvent;
+import android.os.SystemProperties;
+
+import qcom.fmradio.FmReceiver;
+import qcom.fmradio.FmRxEvCallbacksAdaptor;
+import qcom.fmradio.FmRxRdsData;
+import qcom.fmradio.FmConfig;
+import android.net.Uri;
+import android.content.res.Resources;
+import java.util.Date;
+import java.text.SimpleDateFormat;
+import android.provider.MediaStore;
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.database.Cursor;
+import com.caf.utils.A2dpDeviceStatus;
+import android.media.AudioManager;
+import android.content.ComponentName;
+import android.os.StatFs;
+import android.os.SystemClock;
+
+/**
+ * Provides "background" FM Radio (that uses the hardware) capabilities,
+ * allowing the user to switch between activities without stopping playback.
+ */
+public class FMRadioService extends Service
+{
+
+   public static final int RADIO_AUDIO_DEVICE_WIRED_HEADSET = 0;
+   public static final int RADIO_AUDIO_DEVICE_SPEAKER = 1;
+
+   private static final int FMRADIOSERVICE_STATUS = 101;
+   private static final String FMRADIO_DEVICE_FD_STRING = "/dev/radio0";
+   private static final String LOGTAG = "FMService";//FMRadio.LOGTAG;
+
+   private FmReceiver mReceiver;
+   private BroadcastReceiver mHeadsetReceiver = null;
+   private BroadcastReceiver mSdcardUnmountReceiver = null;
+   private BroadcastReceiver mMusicCommandListener = null;
+   private BroadcastReceiver mSleepExpiredListener = null;
+   private BroadcastReceiver mRecordTimeoutListener = null;
+   private BroadcastReceiver mDelayedServiceStopListener = null;
+   private boolean mOverA2DP = false;
+   private BroadcastReceiver mFmMediaButtonListener;
+   private IFMRadioServiceCallbacks mCallbacks;
+   private static FmSharedPreferences mPrefs;
+   private boolean mHeadsetPlugged = false;
+   private boolean mInternalAntennaAvailable = false;
+   private WakeLock mWakeLock;
+   private int mServiceStartId = -1;
+   private boolean mServiceInUse = false;
+   private static boolean mMuted = false;
+   private static boolean mResumeAfterCall = false;
+   private static String mAudioDevice="headset";
+   MediaRecorder mRecorder = null;
+   MediaRecorder mA2dp = null;
+   private boolean mFMOn = false;
+   private boolean mFmRecordingOn = false;
+   private boolean mSpeakerPhoneOn = false;
+   private int mCallStatus = 0;
+   private BroadcastReceiver mScreenOnOffReceiver = null;
+   final Handler mHandler = new Handler();
+   private boolean misAnalogModeSupported = false;
+   private boolean misAnalogPathEnabled = false;
+   private boolean mA2dpDisconnected = false;
+   //PhoneStateListener instances corresponding to each
+
+   private FmRxRdsData mFMRxRDSData=null;
+   // interval after which we stop the service when idle
+   private static final int IDLE_DELAY = 60000;
+   private File mA2DPSampleFile = null;
+   //Track FM playback for reenter App usecases
+   private boolean mPlaybackInProgress = false;
+   private boolean mStoppedOnFocusLoss = false;
+   private File mSampleFile = null;
+   long mSampleStart = 0;
+   // Messages handled in FM Service
+   private static final int FM_STOP =1;
+   private static final int RESET_NOTCH_FILTER =2;
+   private static final int STOPSERVICE_ONSLEEP = 3;
+   private static final int STOPRECORD_ONTIMEOUT = 4;
+   private static final int FOCUSCHANGE = 5;
+   //Track notch filter settings
+   private boolean mNotchFilterSet = false;
+   public static final int STOP_SERVICE = 0;
+   public static final int STOP_RECORD = 1;
+   // A2dp Device Status will be queried through this class
+   A2dpDeviceStatus mA2dpDeviceState = null;
+   private boolean mA2dpDeviceSupportInHal = false;
+   //on shutdown not to send start Intent to AudioManager
+   private boolean mAppShutdown = false;
+   private boolean mSingleRecordingInstanceSupported = false;
+   private AudioManager mAudioManager;
+   public static final long UNAVAILABLE = -1L;
+   public static final long PREPARING = -2L;
+   public static final long UNKNOWN_SIZE = -3L;
+   public static final long LOW_STORAGE_THRESHOLD = 50000000;
+   private long mStorageSpace;
+   private static final String IOBUSY_UNVOTE = "com.android.server.CpuGovernorService.action.IOBUSY_UNVOTE";
+   private static final String SLEEP_EXPIRED_ACTION = "com.caf.fmradio.SLEEP_EXPIRED";
+   private static final String RECORD_EXPIRED_ACTION = "com.caf.fmradio.RECORD_TIMEOUT";
+   private static final String SERVICE_DELAYED_STOP_ACTION = "com.caf.fmradio.SERVICE_STOP";
+
+   public FMRadioService() {
+   }
+
+   @Override
+   public void onCreate() {
+      super.onCreate();
+
+      mPrefs = new FmSharedPreferences(this);
+      mCallbacks = null;
+      TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+      tmgr.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE |
+                                       PhoneStateListener.LISTEN_DATA_ACTIVITY);
+      PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
+      mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getName());
+      mWakeLock.setReferenceCounted(false);
+      misAnalogModeSupported  = SystemProperties.getBoolean("ro.fm.analogpath.supported",false);
+      /* Register for Screen On/off broadcast notifications */
+      mA2dpDeviceState = new A2dpDeviceStatus(getApplicationContext());
+      registerScreenOnOffListener();
+      registerHeadsetListener();
+      registerSleepExpired();
+      registerRecordTimeout();
+      registerDelayedServiceStop();
+      registerExternalStorageListener();
+      // registering media button receiver seperately as we need to set
+      // different priority for receiving media events
+      registerFmMediaButtonReceiver();
+      if ( false == SystemProperties.getBoolean("ro.fm.mulinst.recording.support",true)) {
+           mSingleRecordingInstanceSupported = true;
+      }
+
+      // Register for pause commands from other apps to stop FM
+      registerMusicServiceCommandReceiver();
+
+      // If the service was idle, but got killed before it stopped itself, the
+      // system will relaunch it. Make sure it gets stopped again in that case.
+      setAlarmDelayedServiceStop();
+      /* Query to check is a2dp supported in Hal */
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      String valueStr = audioManager.getParameters("isA2dpDeviceSupported");
+      mA2dpDeviceSupportInHal = valueStr.contains("=true");
+      Log.d(LOGTAG, " is A2DP device Supported In HAL"+mA2dpDeviceSupportInHal);
+   }
+
+   @Override
+   public void onDestroy() {
+      Log.d(LOGTAG, "onDestroy");
+      if (isFmOn())
+      {
+         Log.e(LOGTAG, "Service being destroyed while still playing.");
+      }
+
+      // make sure there aren't any other messages coming
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      cancelAlarms();
+      //release the audio focus listener
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      if (isMuted()) {
+          mMuted = false;
+          audioManager.setStreamMute(AudioManager.STREAM_MUSIC,false);
+      }
+      audioManager.abandonAudioFocus(mAudioFocusListener);
+      /* Remove the Screen On/off listener */
+      if (mScreenOnOffReceiver != null) {
+          unregisterReceiver(mScreenOnOffReceiver);
+          mScreenOnOffReceiver = null;
+      }
+      /* Unregister the headset Broadcase receiver */
+      if (mHeadsetReceiver != null) {
+          unregisterReceiver(mHeadsetReceiver);
+          mHeadsetReceiver = null;
+      }
+      if( mSdcardUnmountReceiver != null ) {
+          unregisterReceiver(mSdcardUnmountReceiver);
+          mSdcardUnmountReceiver = null;
+      }
+      if( mMusicCommandListener != null ) {
+          unregisterReceiver(mMusicCommandListener);
+          mMusicCommandListener = null;
+      }
+      if( mFmMediaButtonListener != null ) {
+          unregisterReceiver(mFmMediaButtonListener);
+          mFmMediaButtonListener = null;
+      }
+      if (mSleepExpiredListener != null ) {
+          unregisterReceiver(mSleepExpiredListener);
+          mSleepExpiredListener = null;
+      }
+      if (mRecordTimeoutListener != null) {
+          unregisterReceiver(mRecordTimeoutListener);
+          mRecordTimeoutListener = null;
+      }
+      if (mDelayedServiceStopListener != null) {
+          unregisterReceiver(mDelayedServiceStopListener);
+          mDelayedServiceStopListener = null;
+      }
+      /* Since the service is closing, disable the receiver */
+      fmOff();
+
+      TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+      tmgr.listen(mPhoneStateListener, 0);
+
+      Log.d(LOGTAG, "onDestroy: unbindFromService completed");
+
+      //unregisterReceiver(mIntentReceiver);
+      mWakeLock.release();
+      super.onDestroy();
+   }
+
+/**
+      * Registers an intent to listen for ACTION_MEDIA_UNMOUNTED notifications.
+      * The intent will call closeExternalStorageFiles() if the external media
+      * is going to be ejected, so applications can clean up.
+      */
+     public void registerExternalStorageListener() {
+         if (mSdcardUnmountReceiver == null) {
+             mSdcardUnmountReceiver = new BroadcastReceiver() {
+                 @Override
+                 public void onReceive(Context context, Intent intent) {
+                     String action = intent.getAction();
+                     if ((action.equals(Intent.ACTION_MEDIA_UNMOUNTED))
+                           || (action.equals(Intent.ACTION_MEDIA_EJECT))) {
+                         Log.d(LOGTAG, "ACTION_MEDIA_UNMOUNTED Intent received");
+                         if (mFmRecordingOn == true) {
+                             try {
+                                  stopRecording();
+                             } catch (Exception e) {
+                                  e.printStackTrace();
+                             }
+                         }
+                     }
+                 }
+             };
+             IntentFilter iFilter = new IntentFilter();
+             iFilter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
+             iFilter.addAction(Intent.ACTION_MEDIA_EJECT);
+             iFilter.addDataScheme("file");
+             registerReceiver(mSdcardUnmountReceiver, iFilter);
+         }
+     }
+
+
+     /**
+     * Registers an intent to listen for ACTION_HEADSET_PLUG
+     * notifications. This intent is called to know if the headset
+     * was plugged in/out
+     */
+    public void registerHeadsetListener() {
+        if (mHeadsetReceiver == null) {
+            mHeadsetReceiver = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    String action = intent.getAction();
+                    if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
+                       Log.d(LOGTAG, "ACTION_HEADSET_PLUG Intent received");
+                       // Listen for ACTION_HEADSET_PLUG broadcasts.
+                       Log.d(LOGTAG, "mReceiver: ACTION_HEADSET_PLUG");
+                       Log.d(LOGTAG, "==> intent: " + intent);
+                       Log.d(LOGTAG, "    state: " + intent.getIntExtra("state", 0));
+                       Log.d(LOGTAG, "    name: " + intent.getStringExtra("name"));
+                       mHeadsetPlugged = (intent.getIntExtra("state", 0) == 1);
+                       // if headset is plugged out it is required to disable
+                       // in minimal duration to avoid race conditions with
+                       // audio policy manager switch audio to speaker.
+                       mHandler.removeCallbacks(mHeadsetPluginHandler);
+                       mHandler.post(mHeadsetPluginHandler);
+                    } else if(mA2dpDeviceState.isA2dpStateChange(action) ) {
+                        boolean  bA2dpConnected =
+                        mA2dpDeviceState.isConnected(intent);
+                        if (!bA2dpConnected) {
+                            Log.d(LOGTAG, "A2DP device is dis-connected!");
+                            mA2dpDisconnected = true;
+                        } else {
+                            mA2dpDisconnected = false;
+                        }
+                        if (isAnalogModeEnabled()) {
+                            Log.d(LOGTAG, "FM Audio Path is Analog Mode: FM Over BT not allowed");
+                            return ;
+                        }
+                       //when playback is overA2Dp and A2dp disconnected
+                       //when playback is not overA2DP and A2DP Connected
+                       // In above two cases we need to Stop and Start FM which
+                       // will take care of audio routing
+                       if( (isFmOn()) &&
+                           (true == ((bA2dpConnected)^(mOverA2DP))) &&
+                           (false == mStoppedOnFocusLoss) &&
+                           (!isSpeakerEnabled())) {
+                           stopFM();
+                           startFM();
+                       }
+                    } else if (action.equals("HDMI_CONNECTED")) {
+                        //FM should be off when HDMI is connected.
+                        fmOff();
+                        try
+                        {
+                            /* Notify the UI/Activity, only if the service is "bound"
+                               by an activity and if Callbacks are registered
+                             */
+                            if((mServiceInUse) && (mCallbacks != null) )
+                            {
+                                mCallbacks.onDisabled();
+                            }
+                        } catch (RemoteException e)
+                        {
+                            e.printStackTrace();
+                        }
+                    } else if( action.equals(Intent.ACTION_SHUTDOWN)) {
+                        mAppShutdown = true;
+                    }
+
+                }
+            };
+            IntentFilter iFilter = new IntentFilter();
+            iFilter.addAction(Intent.ACTION_HEADSET_PLUG);
+            iFilter.addAction(mA2dpDeviceState.getActionSinkStateChangedString());
+            iFilter.addAction("HDMI_CONNECTED");
+            iFilter.addAction(Intent.ACTION_SHUTDOWN);
+            iFilter.addCategory(Intent.CATEGORY_DEFAULT);
+            registerReceiver(mHeadsetReceiver, iFilter);
+        }
+    }
+
+    public void registerFmMediaButtonReceiver() {
+        if (mFmMediaButtonListener == null) {
+            mFmMediaButtonListener = new BroadcastReceiver() {
+                 public void onReceive(Context context, Intent intent) {
+                     Log.d(LOGTAG, "FMMediaButtonIntentReceiver.FM_MEDIA_BUTTON");
+                     Log.d(LOGTAG, "KeyEvent = " +intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT));
+                     String action = intent.getAction();
+                     if (action.equals(FMMediaButtonIntentReceiver.FM_MEDIA_BUTTON)) {
+                         KeyEvent event = (KeyEvent)
+                                     intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
+                         int keycode = event.getKeyCode();
+                         switch (keycode) {
+                             case KeyEvent.KEYCODE_HEADSETHOOK :
+                                 if (isFmOn()){
+                                     //FM should be off when Headset hook pressed.
+                                     fmOff();
+                                     if (isOrderedBroadcast()) {
+                                        abortBroadcast();
+                                     }
+                                     try {
+                                         /* Notify the UI/Activity, only if the service is "bound"
+                                            by an activity and if Callbacks are registered
+                                          */
+                                         if ((mServiceInUse) && (mCallbacks != null) ) {
+                                            mCallbacks.onDisabled();
+                                         }
+                                     } catch (RemoteException e) {
+                                         e.printStackTrace();
+                                     }
+                                 } else if( mServiceInUse ) {
+                                     fmOn();
+                                     if (isOrderedBroadcast()) {
+                                        abortBroadcast();
+                                     }
+                                     try {
+                                         /* Notify the UI/Activity, only if the service is "bound"
+                                            by an activity and if Callbacks are registered
+                                          */
+                                         if (mCallbacks != null ) {
+                                             mCallbacks.onEnabled();
+                                         }
+                                     } catch (RemoteException e) {
+                                         e.printStackTrace();
+                                     }
+                                 }
+                                 break;
+                             case KeyEvent.KEYCODE_MEDIA_PAUSE :
+                                 if (isFmOn()){
+                                     //FM should be off when Headset hook pressed.
+                                     fmOff();
+                                     if (isOrderedBroadcast()) {
+                                        abortBroadcast();
+                                     }
+                                     try {
+                                         /* Notify the UI/Activity, only if the service is "bound"
+                                            by an activity and if Callbacks are registered
+                                          */
+                                         if ((mServiceInUse) && (mCallbacks != null) ) {
+                                            mCallbacks.onDisabled();
+                                         }
+                                     } catch (RemoteException e) {
+                                         e.printStackTrace();
+                                     }
+                                 }
+                                 break;
+                             case KeyEvent.KEYCODE_MEDIA_PLAY:
+                                 if (mServiceInUse ) {
+                                     fmOn();
+                                     if (isOrderedBroadcast()) {
+                                         abortBroadcast();
+                                     }
+                                     try {
+                                          /* Notify the UI/Activity, only if the service is "bound"
+                                             by an activity and if Callbacks are registered
+                                           */
+                                          if (mCallbacks != null ) {
+                                               mCallbacks.onEnabled();
+                                          }
+                                     } catch (RemoteException e) {
+                                          e.printStackTrace();
+                                     }
+                                 }
+                                 break;
+                         } // end of switch
+                     } // end of FMMediaButtonIntentReceiver.FM_MEDIA_BUTTON
+                 } // end of onReceive
+            };
+            IntentFilter iFilter = new IntentFilter();
+            iFilter.addAction(FMMediaButtonIntentReceiver.FM_MEDIA_BUTTON);
+            registerReceiver(mFmMediaButtonListener, iFilter);
+         }
+     }
+
+    public void registerMusicServiceCommandReceiver() {
+        if (mMusicCommandListener == null) {
+            mMusicCommandListener = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    String action = intent.getAction();
+
+                    if (action.equals("com.android.music.musicservicecommand")) {
+                        String cmd = intent.getStringExtra("command");
+                        Log.d(LOGTAG, "Music Service command : "+cmd+ " received");
+                        if (cmd != null && cmd.equals("pause")) {
+                            if (mA2dpDisconnected) {
+                                Log.d(LOGTAG, "not to pause,this is a2dp disconnected's pause");
+                                mA2dpDisconnected = false;
+                                return;
+                            }
+                            if(isFmOn()){
+                                fmOff();
+                                if (isOrderedBroadcast()) {
+                                    abortBroadcast();
+                                }
+                                try {
+                                    /* Notify the UI/Activity, only if the service is "bound"
+                                       by an activity and if Callbacks are registered
+                                    */
+                                    if((mServiceInUse) && (mCallbacks != null) ){
+                                        mCallbacks.onDisabled();
+                                    }
+                                } catch (RemoteException e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        }
+                    }
+                }
+            };
+            IntentFilter commandFilter = new IntentFilter();
+            commandFilter.addAction("com.android.music.musicservicecommand");
+            registerReceiver(mMusicCommandListener, commandFilter);
+        }
+    }
+    public void registerSleepExpired() {
+        if (mSleepExpiredListener == null) {
+            mSleepExpiredListener = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    Log.d(LOGTAG, "registerSleepExpired");
+                    mWakeLock.acquire(10 * 1000);
+                    fmOff();
+                }
+            };
+            IntentFilter intentFilter = new IntentFilter(SLEEP_EXPIRED_ACTION);
+            registerReceiver(mSleepExpiredListener, intentFilter);
+        }
+    }
+    public void registerRecordTimeout() {
+        if (mRecordTimeoutListener == null) {
+            mRecordTimeoutListener = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    Log.d(LOGTAG, "registerRecordTimeout");
+                    mWakeLock.acquire(5 * 1000);
+                    stopRecording();
+                }
+            };
+            IntentFilter intentFilter = new IntentFilter(RECORD_EXPIRED_ACTION);
+            registerReceiver(mRecordTimeoutListener, intentFilter);
+        }
+    }
+    public void registerDelayedServiceStop() {
+        if (mDelayedServiceStopListener == null) {
+            mDelayedServiceStopListener = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    Log.d(LOGTAG, "registerDelayedServiceStop");
+                    mWakeLock.acquire(5 * 1000);
+                    if (isFmOn() || mServiceInUse) {
+                        return;
+                    }
+                    stopSelf(mServiceStartId);
+                }
+            };
+            IntentFilter intentFilter = new IntentFilter(SERVICE_DELAYED_STOP_ACTION);
+            registerReceiver(mDelayedServiceStopListener, intentFilter);
+        }
+    }
+
+
+
+    final Runnable    mHeadsetPluginHandler = new Runnable() {
+        public void run() {
+            /* Update the UI based on the state change of the headset/antenna*/
+            if(!isAntennaAvailable())
+            {
+                /* Disable FM and let the UI know */
+                fmOff();
+                try
+                {
+                    /* Notify the UI/Activity, only if the service is "bound"
+                  by an activity and if Callbacks are registered
+                     */
+                    if((mServiceInUse) && (mCallbacks != null) )
+                    {
+                        mCallbacks.onDisabled();
+                    }
+                } catch (RemoteException e)
+                {
+                    e.printStackTrace();
+                }
+            }
+            else
+            {
+                /* headset is plugged back in,
+               So turn on FM if:
+               - FM is not already ON.
+               - If the FM UI/Activity is in the foreground
+                 (the service is "bound" by an activity
+                  and if Callbacks are registered)
+                 */
+                if ((!isFmOn()) && (mServiceInUse)
+                        && (mCallbacks != null))
+                {
+                    if( true != fmOn() ) {
+                        return;
+                    }
+                    try
+                    {
+                        mCallbacks.onEnabled();
+                    } catch (RemoteException e)
+                    {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+    };
+
+
+   @Override
+   public IBinder onBind(Intent intent) {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      cancelAlarms();
+      mServiceInUse = true;
+      /* Application/UI is attached, so get out of lower power mode */
+      setLowPowerMode(false);
+      Log.d(LOGTAG, "onBind");
+      return mBinder;
+   }
+
+   @Override
+   public void onRebind(Intent intent) {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      cancelAlarms();
+      mServiceInUse = true;
+      /* Application/UI is attached, so get out of lower power mode */
+      setLowPowerMode(false);
+      if((mPlaybackInProgress == false) && isWiredHeadsetAvailable())
+         startFM();
+      Log.d(LOGTAG, "onRebind");
+   }
+
+   @Override
+   public void onStart(Intent intent, int startId) {
+      Log.d(LOGTAG, "onStart");
+      mServiceStartId = startId;
+      // make sure the service will shut down on its own if it was
+      // just started but not bound to and nothing is playing
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      cancelAlarms();
+      setAlarmDelayedServiceStop();
+   }
+
+   @Override
+   public boolean onUnbind(Intent intent) {
+      mServiceInUse = false;
+      Log.d(LOGTAG, "onUnbind");
+
+      /* Application/UI is not attached, so go into lower power mode */
+      unregisterCallbacks();
+      setLowPowerMode(true);
+      if (isFmOn())
+      {
+         // something is currently playing, or will be playing once
+         // an in-progress call ends, so don't stop the service now.
+         return true;
+      }
+      gotoIdleState();
+      return true;
+   }
+
+   private void startFM(){
+       Log.d(LOGTAG, "In startFM");
+       if(true == mAppShutdown) { // not to send intent to AudioManager in Shutdown
+           return;
+       }
+       if (isCallActive()) { // when Call is active never let audio playback
+           mResumeAfterCall = true;
+           return;
+       }
+       mResumeAfterCall = false;
+       if ( true == mPlaybackInProgress ) // no need to resend event
+           return;
+       AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+       audioManager.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC,
+              AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+       Log.d(LOGTAG,"FM registering for registerMediaButtonEventReceiver");
+       mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+       ComponentName fmRadio = new ComponentName(this.getPackageName(),
+                                  FMMediaButtonIntentReceiver.class.getName());
+       mAudioManager.registerMediaButtonEventReceiver(fmRadio);
+       mStoppedOnFocusLoss = false;
+
+       if (!mA2dpDeviceSupportInHal &&  (true == mA2dpDeviceState.isDeviceAvailable()) &&
+            (!isSpeakerEnabled()) && !isAnalogModeEnabled()
+            && (true == startA2dpPlayback())) {
+            mOverA2DP=true;
+       } else {
+           Log.d(LOGTAG, "FMRadio: Requesting to start FM");
+           //reason for resending the Speaker option is we are sending
+           //ACTION_FM=1 to AudioManager, the previous state of Speaker we set
+           //need not be retained by the Audio Manager.
+           if (isSpeakerEnabled()) {
+                   mSpeakerPhoneOn = true;
+                   AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+           }
+           AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
+                               AudioSystem.DEVICE_STATE_AVAILABLE, "");
+       }
+       mPlaybackInProgress = true;
+   }
+
+   private void stopFM(){
+       Log.d(LOGTAG, "In stopFM");
+       if (mOverA2DP==true){
+           mOverA2DP=false;
+           stopA2dpPlayback();
+       }else{
+           Log.d(LOGTAG, "FMRadio: Requesting to stop FM");
+           AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
+                                     AudioSystem.DEVICE_STATE_UNAVAILABLE, "");
+       }
+       mPlaybackInProgress = false;
+   }
+
+   private void resetFM(){
+       Log.d(LOGTAG, "resetFM");
+       if (mOverA2DP==true){
+           mOverA2DP=false;
+           resetA2dpPlayback();
+       }else{
+           Log.d(LOGTAG, "FMRadio: Requesting to stop FM");
+           AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM,
+                                     AudioSystem.DEVICE_STATE_UNAVAILABLE, "");
+       }
+       mPlaybackInProgress = false;
+   }
+
+   public boolean startRecording() {
+        Log.d(LOGTAG, "In startRecording of Recorder");
+    if( (true == mSingleRecordingInstanceSupported) &&
+        (true == mOverA2DP )) {
+                Toast.makeText( this,
+                                "playback on BT in progress,can't record now",
+                                Toast.LENGTH_SHORT).show();
+                return false;
+       }
+        stopRecording();
+
+        if (!updateAndShowStorageHint())
+            return false;
+        long maxFileSize = mStorageSpace - LOW_STORAGE_THRESHOLD;
+        mRecorder = new MediaRecorder();
+        try {
+              mRecorder.setMaxFileSize(maxFileSize);
+        } catch (RuntimeException exception) {
+
+        }
+
+        mSampleFile = null;
+        File sampleDir = Environment.getExternalStorageDirectory();
+        if (!sampleDir.canWrite()) // Workaround for broken sdcard support on
+                                    // the device.
+            sampleDir = new File("/sdcard/sdcard");
+        try {
+            mSampleFile = File
+                    .createTempFile("FMRecording", ".3gpp", sampleDir);
+        } catch (IOException e) {
+            Log.e(LOGTAG, "Not able to access SD Card");
+            Toast.makeText(this, "Not able to access SD Card", Toast.LENGTH_SHORT).show();
+            return false;
+        }
+        if (mRecorder == null) {
+           Toast.makeText(this,"MediaRecorder failed to create an instance",
+                            Toast.LENGTH_SHORT).show();
+           return false;
+        }
+
+        try {
+        mRecorder.setAudioSource(MediaRecorder.AudioSource.FM_RX);
+        mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
+        mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
+        } catch (RuntimeException exception) {
+            mRecorder.reset();
+            mRecorder.release();
+            mRecorder = null;
+            return false;
+        }
+        mRecorder.setOutputFile(mSampleFile.getAbsolutePath());
+        try {
+            mRecorder.prepare();
+            mRecorder.start();
+        } catch (IOException e) {
+            mRecorder.reset();
+            mRecorder.release();
+            mRecorder = null;
+            return false;
+        } catch (RuntimeException e) {
+            mRecorder.reset();
+            mRecorder.release();
+            mRecorder = null;
+            return false;
+        }
+        mFmRecordingOn = true;
+        mRecorder.setOnInfoListener(new MediaRecorder.OnInfoListener() {
+             public void onInfo(MediaRecorder mr, int what, int extra) {
+                 if ((what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) ||
+                     (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED)) {
+                     if (mFmRecordingOn) {
+                         Log.d(LOGTAG, "Maximum file size/duration reached, stopping the recording");
+                         stopRecording();
+                     }
+                     // Show the toast.
+                     Toast.makeText(FMRadioService.this, R.string.FMRecording_reach_size_limit,
+                               Toast.LENGTH_LONG).show();
+                 }
+             }
+             // from MediaRecorder.OnErrorListener
+             public void onError(MediaRecorder mr, int what, int extra) {
+                 Log.e(LOGTAG, "MediaRecorder error. what=" + what + ". extra=" + extra);
+                 if (what == MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN) {
+                     // We may have run out of space on the sdcard.
+                     if (mFmRecordingOn) {
+                         stopRecording();
+                     }
+                     updateAndShowStorageHint();
+                 }
+             }
+        });
+
+        mSampleStart = System.currentTimeMillis();
+        return true;
+  }
+
+   public boolean startA2dpPlayback() {
+        Log.d(LOGTAG, "In startA2dpPlayback");
+    if( (true == mSingleRecordingInstanceSupported) &&
+        (true == mFmRecordingOn )) {
+                Toast.makeText(this,
+                               "Recording already in progress,can't play on BT",
+                               Toast.LENGTH_SHORT).show();
+                return false;
+       }
+        if(mOverA2DP)
+           stopA2dpPlayback();
+        mA2dp = new MediaRecorder();
+        if (mA2dp == null) {
+           Toast.makeText(this,"A2dpPlayback failed to create an instance",
+                            Toast.LENGTH_SHORT).show();
+           return false;
+        }
+        try {
+            mA2dp.setAudioSource(MediaRecorder.AudioSource.FM_RX_A2DP);
+            mA2dp.setOutputFormat(MediaRecorder.OutputFormat.RAW_AMR);
+            mA2dp.setAudioEncoder(MediaRecorder.OutputFormat.DEFAULT);
+            File sampleDir = new File(getFilesDir().getAbsolutePath());
+            try {
+                mA2DPSampleFile = File
+                    .createTempFile("FMRecording", ".3gpp", sampleDir);
+            } catch (IOException e) {
+                Log.e(LOGTAG, "Not able to access Phone's internal memory");
+                Toast.makeText(this, "Not able to access Phone's internal memory",
+                                Toast.LENGTH_SHORT).show();
+                return false;
+            }
+            mA2dp.setOutputFile(mA2DPSampleFile.getAbsolutePath());
+            mA2dp.prepare();
+            mA2dp.start();
+        } catch (Exception exception) {
+            mA2dp.reset();
+            mA2dp.release();
+            mA2dp = null;
+            return false;
+        }
+        return true;
+ }
+
+   public void stopA2dpPlayback() {
+       if (mA2dp == null)
+           return;
+       if(mA2DPSampleFile != null)
+       {
+          try {
+              mA2DPSampleFile.delete();
+          } catch (Exception e) {
+              Log.e(LOGTAG, "Not able to delete file");
+          }
+       }
+       try {
+           mA2dp.stop();
+           mA2dp.reset();
+           mA2dp.release();
+           mA2dp = null;
+       } catch (Exception exception ) {
+           Log.e( LOGTAG, "Stop failed with exception"+ exception);
+       }
+       return;
+   }
+
+   private void resetA2dpPlayback() {
+       if (mA2dp == null)
+           return;
+       if(mA2DPSampleFile != null)
+       {
+          try {
+              mA2DPSampleFile.delete();
+          } catch (Exception e) {
+              Log.e(LOGTAG, "Not able to delete file");
+          }
+       }
+       try {
+           // Send Intent for IOBUSY VOTE, because MediaRecorder.stop
+           // gets Activity context which might not be always available
+           // and would thus fail to send the intent.
+           Intent ioBusyUnVoteIntent = new Intent(IOBUSY_UNVOTE);
+           // Remove vote for io_is_busy to be turned off.
+           ioBusyUnVoteIntent.putExtra("com.android.server.CpuGovernorService.voteType", 0);
+           sendBroadcast(ioBusyUnVoteIntent);
+
+           mA2dp.stop();
+
+           mA2dp.reset();
+           mA2dp.release();
+           mA2dp = null;
+       } catch (Exception exception ) {
+           Log.e( LOGTAG, "Stop failed with exception"+ exception);
+       }
+       return;
+   }
+
+   private void resetRecording() {
+
+       Log.v(LOGTAG, "resetRecording()");
+
+       mFmRecordingOn = false;
+       if (mRecorder == null)
+           return;
+
+       // Send Intent for IOBUSY VOTE, because MediaRecorder.stop
+       // gets Activity context which might not be always available
+       // and would thus fail to send the intent.
+       Intent ioBusyUnVoteIntent = new Intent(IOBUSY_UNVOTE);
+       // Remove vote for io_is_busy to be turned off.
+       ioBusyUnVoteIntent.putExtra("com.android.server.CpuGovernorService.voteType", 0);
+       sendBroadcast(ioBusyUnVoteIntent);
+
+       mRecorder.stop();
+
+       mRecorder.reset();
+       mRecorder.release();
+       mRecorder = null;
+       int sampleLength = (int)((System.currentTimeMillis() - mSampleStart)/1000 );
+       if (sampleLength == 0)
+           return;
+       String state = Environment.getExternalStorageState();
+       Log.d(LOGTAG, "storage state is " + state);
+
+       if (Environment.MEDIA_MOUNTED.equals(state)) {
+           this.addToMediaDB(mSampleFile);
+       }
+       else{
+           Log.e(LOGTAG, "SD card must have removed during recording. ");
+           Toast.makeText(this, "Recording aborted", Toast.LENGTH_SHORT).show();
+       }
+       return;
+   }
+
+   public void stopRecording() {
+       mFmRecordingOn = false;
+       if (mRecorder == null)
+           return;
+       try {
+             mRecorder.stop();
+             mRecorder.reset();
+             mRecorder.release();
+             mRecorder = null;
+       } catch(Exception e) {
+             e.printStackTrace();
+       }
+       int sampleLength = (int)((System.currentTimeMillis() - mSampleStart)/1000 );
+       if (sampleLength == 0)
+           return;
+       String state = Environment.getExternalStorageState();
+       Log.d(LOGTAG, "storage state is " + state);
+
+       if (Environment.MEDIA_MOUNTED.equals(state)) {
+          try {
+               this.addToMediaDB(mSampleFile);
+          }
+          catch(Exception e) {
+               e.printStackTrace();
+          }
+       }
+       else{
+           Log.e(LOGTAG, "SD card must have removed during recording. ");
+           Toast.makeText(this, "Recording aborted", Toast.LENGTH_SHORT).show();
+       }
+       try
+       {
+           if((mServiceInUse) && (mCallbacks != null) ) {
+               mCallbacks.onRecordingStopped();
+           }
+       } catch (RemoteException e)
+       {
+           e.printStackTrace();
+       }
+       return;
+   }
+
+   /*
+    * Adds file and returns content uri.
+    */
+   private Uri addToMediaDB(File file) {
+       Log.d(LOGTAG, "In addToMediaDB");
+       Resources res = getResources();
+       ContentValues cv = new ContentValues();
+       long current = System.currentTimeMillis();
+       long modDate = file.lastModified();
+       Date date = new Date(current);
+       SimpleDateFormat formatter = new SimpleDateFormat(
+               res.getString(R.string.audio_db_title_format));
+       String title = formatter.format(date);
+
+       // Lets label the recorded audio file as NON-MUSIC so that the file
+       // won't be displayed automatically, except for in the playlist.
+       cv.put(MediaStore.Audio.Media.IS_MUSIC, "1");
+
+       cv.put(MediaStore.Audio.Media.TITLE, title);
+       cv.put(MediaStore.Audio.Media.DATA, file.getAbsolutePath());
+       cv.put(MediaStore.Audio.Media.DATE_ADDED, (int) (current / 1000));
+       cv.put(MediaStore.Audio.Media.DATE_MODIFIED, (int) (modDate / 1000));
+       cv.put(MediaStore.Audio.Media.MIME_TYPE, "AUDIO_AAC_MP4");
+       cv.put(MediaStore.Audio.Media.ARTIST,
+               res.getString(R.string.audio_db_artist_name));
+       cv.put(MediaStore.Audio.Media.ALBUM,
+               res.getString(R.string.audio_db_album_name));
+       Log.d(LOGTAG, "Inserting audio record: " + cv.toString());
+       ContentResolver resolver = getContentResolver();
+       Uri base = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
+       Log.d(LOGTAG, "ContentURI: " + base);
+       Uri result = resolver.insert(base, cv);
+       if (result == null) {
+           Toast.makeText(this, "Unable to save recorded audio", Toast.LENGTH_SHORT).show();
+           return null;
+       }
+       if (getPlaylistId(res) == -1) {
+           createPlaylist(res, resolver);
+       }
+       int audioId = Integer.valueOf(result.getLastPathSegment());
+       addToPlaylist(resolver, audioId, getPlaylistId(res));
+
+       // Notify those applications such as Music listening to the
+       // scanner events that a recorded audio file just created.
+       sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, result));
+       return result;
+   }
+
+   private int getPlaylistId(Resources res) {
+       Uri uri = MediaStore.Audio.Playlists.getContentUri("external");
+       final String[] ids = new String[] { MediaStore.Audio.Playlists._ID };
+       final String where = MediaStore.Audio.Playlists.NAME + "=?";
+       final String[] args = new String[] { res.getString(R.string.audio_db_playlist_name) };
+       Cursor cursor = query(uri, ids, where, args, null);
+       if (cursor == null) {
+           Log.v(LOGTAG, "query returns null");
+       }
+       int id = -1;
+       if (cursor != null) {
+           cursor.moveToFirst();
+           if (!cursor.isAfterLast()) {
+               id = cursor.getInt(0);
+           }
+           cursor.close();
+       }
+       return id;
+   }
+
+   private Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
+       try {
+           ContentResolver resolver = getContentResolver();
+           if (resolver == null) {
+               return null;
+           }
+           return resolver.query(uri, projection, selection, selectionArgs, sortOrder);
+        } catch (UnsupportedOperationException ex) {
+           return null;
+       }
+   }
+
+   private Uri createPlaylist(Resources res, ContentResolver resolver) {
+       ContentValues cv = new ContentValues();
+       cv.put(MediaStore.Audio.Playlists.NAME, res.getString(R.string.audio_db_playlist_name));
+       Uri uri = resolver.insert(MediaStore.Audio.Playlists.getContentUri("external"), cv);
+       if (uri == null) {
+           Toast.makeText(this, "Unable to save recorded audio", Toast.LENGTH_SHORT).show();
+       }
+       return uri;
+   }
+
+   private void addToPlaylist(ContentResolver resolver, int audioId, long playlistId) {
+       String[] cols = new String[] {
+               "count(*)"
+       };
+       Uri uri = MediaStore.Audio.Playlists.Members.getContentUri("external", playlistId);
+       Cursor cur = resolver.query(uri, cols, null, null, null);
+       final int base;
+       if (cur != null) {
+            cur.moveToFirst();
+            base = cur.getInt(0);
+            cur.close();
+       }
+       else {
+            base = 0;
+       }
+       ContentValues values = new ContentValues();
+       values.put(MediaStore.Audio.Playlists.Members.PLAY_ORDER, Integer.valueOf(base + audioId));
+       values.put(MediaStore.Audio.Playlists.Members.AUDIO_ID, audioId);
+       resolver.insert(uri, values);
+   }
+   private void fmActionOnCallState( int state ) {
+   //if Call Status is non IDLE we need to Mute FM as well stop recording if
+   //any. Similarly once call is ended FM should be unmuted.
+       AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+       mCallStatus = state;
+
+       if((TelephonyManager.CALL_STATE_OFFHOOK == state)||
+          (TelephonyManager.CALL_STATE_RINGING == state)) {
+           if (state == TelephonyManager.CALL_STATE_RINGING) {
+               int ringvolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
+               if (ringvolume == 0) {
+                   return;
+               }
+           }
+           boolean bTempSpeaker = mSpeakerPhoneOn; //need to restore SpeakerPhone
+           boolean bTempMute = mMuted;// need to restore Mute status
+           int bTempCall = mCallStatus;//need to restore call status
+           if (fmOff()) {
+               if((mServiceInUse) && (mCallbacks != null)) {
+                   try {
+                        mCallbacks.onDisabled();
+                   } catch (RemoteException e) {
+                        e.printStackTrace();
+                   }
+               }
+               mResumeAfterCall = true;
+               mSpeakerPhoneOn = bTempSpeaker;
+               mCallStatus = bTempCall;
+               mMuted = bTempMute;
+           } else if (!mResumeAfterCall) {
+               mResumeAfterCall = false;
+               mSpeakerPhoneOn = bTempSpeaker;
+               mCallStatus = bTempCall;
+               mMuted = bTempMute;
+           }
+       }
+       else if (state == TelephonyManager.CALL_STATE_IDLE) {
+          // start playing again
+          if (mResumeAfterCall)
+          {
+             // resume playback only if FM Radio was playing
+             // when the call was answered
+              if (isAntennaAvailable() && (!isFmOn()) && mServiceInUse)
+              {
+                   Log.d(LOGTAG, "Resuming after call:");
+                   if(true != fmOn()) {
+                       return;
+                   }
+                   mResumeAfterCall = false;
+                   if(mCallbacks != null) {
+                      try {
+                           mCallbacks.onEnabled();
+                      } catch (RemoteException e) {
+                           e.printStackTrace();
+                      }
+                   }
+              }
+          }
+       }//idle
+   }
+
+    /* Handle Phone Call + FM Concurrency */
+   private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+      @Override
+      public void onCallStateChanged(int state, String incomingNumber) {
+          Log.d(LOGTAG, "onCallStateChanged: State - " + state );
+          Log.d(LOGTAG, "onCallStateChanged: incomingNumber - " + incomingNumber );
+          fmActionOnCallState(state );
+      }
+
+      @Override
+      public void onDataActivity (int direction) {
+          Log.d(LOGTAG, "onDataActivity - " + direction );
+          if (direction == TelephonyManager.DATA_ACTIVITY_NONE ||
+              direction == TelephonyManager.DATA_ACTIVITY_DORMANT) {
+                 if (mReceiver != null) {
+                       Message msg = mDelayedStopHandler.obtainMessage(RESET_NOTCH_FILTER);
+                       mDelayedStopHandler.sendMessageDelayed(msg, 10000);
+                 }
+         } else {
+               if (mReceiver != null) {
+                   if( true == mNotchFilterSet )
+                   {
+                       mDelayedStopHandler.removeMessages(RESET_NOTCH_FILTER);
+                   }
+                   else
+                   {
+                       mReceiver.setNotchFilter(true);
+                       mNotchFilterSet = true;
+                   }
+               }
+         }
+      }
+ };
+
+   private Handler mDelayedStopHandler = new Handler() {
+      @Override
+      public void handleMessage(Message msg) {
+          switch (msg.what) {
+          case FM_STOP:
+              // Check again to make sure nothing is playing right now
+              if (isFmOn() || mServiceInUse)
+              {
+                   return;
+              }
+              Log.d(LOGTAG, "mDelayedStopHandler: stopSelf");
+              stopSelf(mServiceStartId);
+              break;
+          case RESET_NOTCH_FILTER:
+              if (mReceiver != null) {
+                  mReceiver.setNotchFilter(false);
+                  mNotchFilterSet = false;
+              }
+              break;
+          case STOPSERVICE_ONSLEEP:
+              fmOff();
+              break;
+          case STOPRECORD_ONTIMEOUT:
+              stopRecording();
+              break;
+          case FOCUSCHANGE:
+              if( false == isFmOn() ) {
+                  Log.v(LOGTAG, "FM is not running, not handling change");
+                  return;
+              }
+              switch (msg.arg1) {
+                  case AudioManager.AUDIOFOCUS_LOSS:
+                      Log.v(LOGTAG, "AudioFocus: received AUDIOFOCUS_LOSS");
+                      //intentional fall through.
+                  case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
+                      Log.v(LOGTAG, "AudioFocus: received AUDIOFOCUS_LOSS_TRANSIENT");
+                      if (mSpeakerPhoneOn) {
+                          mSpeakerPhoneOn = false;
+                          if (isAnalogModeSupported()) {
+                              setAudioPath(true);
+                          }
+                          AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+                      }
+                      if(true == isFmRecordingOn())
+                          stopRecording();
+                      if(true == mPlaybackInProgress) {
+                          if (mMuted)
+                              unMute();
+                          stopFM();
+                      }
+                      mStoppedOnFocusLoss = true;
+                      break;
+                  case AudioManager.AUDIOFOCUS_GAIN:
+                      Log.v(LOGTAG, "AudioFocus: received AUDIOFOCUS_GAIN");
+                      if(false == mPlaybackInProgress)
+                          startFM();
+                      mStoppedOnFocusLoss = false;
+                      break;
+                  case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
+                  default:
+                      Log.e(LOGTAG, "Unknown audio focus change code"+msg.arg1);
+              }
+              break;
+          }
+      }
+   };
+
+
+     /**
+     * Registers an intent to listen for
+     * ACTION_SCREEN_ON/ACTION_SCREEN_OFF notifications. This intent
+     * is called to know iwhen the screen is turned on/off.
+     */
+    public void registerScreenOnOffListener() {
+        if (mScreenOnOffReceiver == null) {
+            mScreenOnOffReceiver = new BroadcastReceiver() {
+                @Override
+                public void onReceive(Context context, Intent intent) {
+                    String action = intent.getAction();
+                    if (action.equals(Intent.ACTION_SCREEN_ON)) {
+                       Log.d(LOGTAG, "ACTION_SCREEN_ON Intent received");
+                       //Screen turned on, set FM module into normal power mode
+                       mHandler.post(mScreenOnHandler);
+                    }
+                    else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
+                       Log.d(LOGTAG, "ACTION_SCREEN_OFF Intent received");
+                       //Screen turned on, set FM module into low power mode
+                       mHandler.post(mScreenOffHandler);
+                    }
+                }
+            };
+            IntentFilter iFilter = new IntentFilter();
+            iFilter.addAction(Intent.ACTION_SCREEN_ON);
+            iFilter.addAction(Intent.ACTION_SCREEN_OFF);
+            registerReceiver(mScreenOnOffReceiver, iFilter);
+        }
+    }
+
+    /* Handle all the Screen On actions:
+       Set FM Power mode to Normal
+     */
+    final Runnable    mScreenOnHandler = new Runnable() {
+       public void run() {
+          setLowPowerMode(false);
+       }
+    };
+    /* Handle all the Screen Off actions:
+       Set FM Power mode to Low Power
+       This will reduce all the interrupts coming up from the SoC, saving power
+     */
+    final Runnable    mScreenOffHandler = new Runnable() {
+       public void run() {
+          setLowPowerMode(true);
+       }
+    };
+
+   /* Show the FM Notification */
+   public void startNotification() {
+      RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar);
+      views.setImageViewResource(R.id.icon, R.drawable.stat_notify_fm);
+      if (isFmOn())
+      {
+         views.setTextViewText(R.id.frequency, getTunedFrequencyString());
+      } else
+      {
+         views.setTextViewText(R.id.frequency, "");
+      }
+
+      Notification status = new Notification();
+      status.contentView = views;
+      status.flags |= Notification.FLAG_ONGOING_EVENT;
+      status.icon = R.drawable.stat_notify_fm;
+      status.contentIntent = PendingIntent.getActivity(this, 0,
+                                                       new Intent("com.caf.fmradio.FMRADIO_ACTIVITY"), 0);
+      startForeground(FMRADIOSERVICE_STATUS, status);
+      //NotificationManager nm = (NotificationManager)
+      //                         getSystemService(Context.NOTIFICATION_SERVICE);
+      //nm.notify(FMRADIOSERVICE_STATUS, status);
+      //setForeground(true);
+      mFMOn = true;
+   }
+
+   private void stop() {
+      Log.d(LOGTAG,"in stop");
+      if (!mServiceInUse) {
+          Log.d(LOGTAG,"calling unregisterMediaButtonEventReceiver in stop");
+          mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+          ComponentName fmRadio = new ComponentName(this.getPackageName(),
+                                  FMMediaButtonIntentReceiver.class.getName());
+          mAudioManager.unregisterMediaButtonEventReceiver(fmRadio);
+      }
+      gotoIdleState();
+      mFMOn = false;
+   }
+
+   private void gotoIdleState() {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      cancelAlarms();
+      setAlarmDelayedServiceStop();
+      stopForeground(true);
+   }
+
+   /** Read's the internal Antenna available state from the FM
+    *  Device.
+    */
+   public void readInternalAntennaAvailable()
+   {
+      mInternalAntennaAvailable  = false;
+      if (mReceiver != null)
+      {
+         mInternalAntennaAvailable = mReceiver.getInternalAntenna();
+         Log.d(LOGTAG, "getInternalAntenna: " + mInternalAntennaAvailable);
+      }
+   }
+
+   /*
+    * By making this a static class with a WeakReference to the Service, we
+    * ensure that the Service can be GCd even when the system process still
+    * has a remote reference to the stub.
+    */
+   static class ServiceStub extends IFMRadioService.Stub
+   {
+      WeakReference<FMRadioService> mService;
+
+      ServiceStub(FMRadioService service)
+      {
+         mService = new WeakReference<FMRadioService>(service);
+      }
+
+      public boolean fmOn() throws RemoteException
+      {
+         return(mService.get().fmOn());
+      }
+
+      public boolean fmOff() throws RemoteException
+      {
+         return(mService.get().fmOff());
+      }
+
+      public boolean fmRadioReset() throws RemoteException
+      {
+         return true;
+      }
+
+      public boolean isFmOn()
+      {
+         return(mService.get().isFmOn());
+      }
+
+      public boolean isAnalogModeEnabled()
+      {
+         return(mService.get().isAnalogModeEnabled());
+      }
+
+      public boolean isFmRecordingOn()
+      {
+         return(mService.get().isFmRecordingOn());
+      }
+
+      public boolean isSpeakerEnabled()
+      {
+         return(mService.get().isSpeakerEnabled());
+      }
+
+      public boolean fmReconfigure()
+      {
+         return(mService.get().fmReconfigure());
+      }
+
+      public void registerCallbacks(IFMRadioServiceCallbacks cb) throws RemoteException
+      {
+         mService.get().registerCallbacks(cb);
+      }
+
+      public void unregisterCallbacks() throws RemoteException
+      {
+         mService.get().unregisterCallbacks();
+      }
+
+      public boolean routeAudio(int device)
+      {
+         return(mService.get().routeAudio(device));
+      }
+
+      public boolean mute()
+      {
+         return(mService.get().mute());
+      }
+
+      public boolean unMute()
+      {
+         return(mService.get().unMute());
+      }
+
+      public boolean isMuted()
+      {
+         return(mService.get().isMuted());
+      }
+
+      public boolean startRecording()
+      {
+         return(mService.get().startRecording());
+      }
+
+      public void stopRecording()
+      {
+         mService.get().stopRecording();
+      }
+
+      public boolean tune(int frequency)
+      {
+         return(mService.get().tune(frequency));
+      }
+
+      public boolean seek(boolean up)
+      {
+         return(mService.get().seek(up));
+      }
+
+      public void enableSpeaker(boolean speakerOn)
+      {
+          mService.get().enableSpeaker(speakerOn);
+      }
+
+      public boolean scan(int pty)
+      {
+         return(mService.get().scan(pty));
+      }
+
+      public boolean seekPI(int piCode)
+      {
+         return(mService.get().seekPI(piCode));
+      }
+      public boolean searchStrongStationList(int numStations)
+      {
+         return(mService.get().searchStrongStationList(numStations));
+      }
+
+      public boolean cancelSearch()
+      {
+         return(mService.get().cancelSearch());
+      }
+
+      public String getProgramService()
+      {
+         return(mService.get().getProgramService());
+      }
+      public String getRadioText()
+      {
+         return(mService.get().getRadioText());
+      }
+      public String getExtenRadioText()
+      {
+         return(mService.get().getExtenRadioText());
+      }
+      public int getProgramType()
+      {
+         return(mService.get().getProgramType());
+      }
+      public int getProgramID()
+      {
+         return(mService.get().getProgramID());
+      }
+      public int[] getSearchList()
+      {
+         return(mService.get().getSearchList());
+      }
+
+      public boolean setLowPowerMode(boolean enable)
+      {
+         return(mService.get().setLowPowerMode(enable));
+      }
+
+      public int getPowerMode()
+      {
+         return(mService.get().getPowerMode());
+      }
+      public boolean enableAutoAF(boolean bEnable)
+      {
+         return(mService.get().enableAutoAF(bEnable));
+      }
+      public boolean enableStereo(boolean bEnable)
+      {
+         return(mService.get().enableStereo(bEnable));
+      }
+      public boolean isAntennaAvailable()
+      {
+         return(mService.get().isAntennaAvailable());
+      }
+      public boolean isWiredHeadsetAvailable()
+      {
+         return(mService.get().isWiredHeadsetAvailable());
+      }
+      public boolean isCallActive()
+      {
+          return(mService.get().isCallActive());
+      }
+      public int getRssi()
+      {
+          return (mService.get().getRssi());
+      }
+      public int getIoC()
+      {
+          return (mService.get().getIoC());
+      }
+      public int getMpxDcc()
+      {
+          return (mService.get().getMpxDcc());
+      }
+      public int getIntDet()
+      {
+          return (mService.get().getIntDet());
+      }
+      public void setHiLoInj(int inj)
+      {
+          mService.get().setHiLoInj(inj);
+      }
+      public void delayedStop(long duration, int nType)
+      {
+          mService.get().delayedStop(duration, nType);
+      }
+      public void cancelDelayedStop(int nType)
+      {
+          mService.get().cancelDelayedStop(nType);
+      }
+      public void requestFocus()
+      {
+          mService.get().requestFocus();
+      }
+      public int getSINR()
+      {
+          return (mService.get().getSINR());
+      }
+      public boolean setSinrSamplesCnt(int samplesCnt)
+      {
+          return (mService.get().setSinrSamplesCnt(samplesCnt));
+      }
+      public boolean setSinrTh(int sinr)
+      {
+          return (mService.get().setSinrTh(sinr));
+      }
+      public boolean setIntfDetLowTh(int intfLowTh)
+      {
+          return (mService.get().setIntfDetLowTh(intfLowTh));
+      }
+      public boolean setIntfDetHighTh(int intfHighTh)
+      {
+          return (mService.get().setIntfDetHighTh(intfHighTh));
+      }
+   }
+   private final IBinder mBinder = new ServiceStub(this);
+
+   private boolean setAudioPath(boolean analogMode) {
+
+        if (mReceiver == null) {
+              return false;
+        }
+        if (isAnalogModeEnabled() == analogMode) {
+                Log.d(LOGTAG,"Analog Path already is set to "+analogMode);
+                return false;
+        }
+        if (!isAnalogModeSupported()) {
+                Log.d(LOGTAG,"Analog Path is not supported ");
+                return false;
+        }
+        if (SystemProperties.getBoolean("hw.fm.digitalpath",false)) {
+                return false;
+        }
+
+        boolean state = mReceiver.setAnalogMode(analogMode);
+        if (false == state) {
+            Log.d(LOGTAG, "Error in toggling analog/digital path " + analogMode);
+            return false;
+        }
+        misAnalogPathEnabled = analogMode;
+        return true;
+   }
+  /*
+   * Turn ON FM: Powers up FM hardware, and initializes the FM module
+   *                                                                                 .
+   * @return true if fm Enable api was invoked successfully, false if the api failed.
+   */
+   private boolean fmOn() {
+      boolean bStatus=false;
+      mWakeLock.acquire(10*1000);
+      if ( TelephonyManager.CALL_STATE_IDLE != getCallState() ) {
+         return bStatus;
+      }
+
+      if(mReceiver == null)
+      {
+         try {
+            mReceiver = new FmReceiver(FMRADIO_DEVICE_FD_STRING, fmCallbacks);
+         }
+         catch (InstantiationException e)
+         {
+            throw new RuntimeException("FmReceiver service not available!");
+         }
+      }
+
+      if (mReceiver != null)
+      {
+         if (isFmOn())
+         {
+            /* FM Is already on,*/
+            bStatus = true;
+            Log.d(LOGTAG, "mReceiver.already enabled");
+         }
+         else
+         {
+            // This sets up the FM radio device
+            FmConfig config = FmSharedPreferences.getFMConfiguration();
+            Log.d(LOGTAG, "fmOn: RadioBand   :"+ config.getRadioBand());
+            Log.d(LOGTAG, "fmOn: Emphasis    :"+ config.getEmphasis());
+            Log.d(LOGTAG, "fmOn: ChSpacing   :"+ config.getChSpacing());
+            Log.d(LOGTAG, "fmOn: RdsStd      :"+ config.getRdsStd());
+            Log.d(LOGTAG, "fmOn: LowerLimit  :"+ config.getLowerLimit());
+            Log.d(LOGTAG, "fmOn: UpperLimit  :"+ config.getUpperLimit());
+            bStatus = mReceiver.enable(FmSharedPreferences.getFMConfiguration());
+            if (isSpeakerEnabled()) {
+                setAudioPath(false);
+            } else {
+                setAudioPath(true);
+            }
+            Log.d(LOGTAG, "mReceiver.enable done, Status :" +  bStatus);
+         }
+
+         if (bStatus == true)
+         {
+            /* Put the hardware into normal mode */
+            bStatus = setLowPowerMode(false);
+            Log.d(LOGTAG, "setLowPowerMode done, Status :" +  bStatus);
+
+
+            AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+            if( (audioManager != null) &&(false == mPlaybackInProgress) )
+            {
+               Log.d(LOGTAG, "mAudioManager.setFmRadioOn = true \n" );
+               //audioManager.setParameters("FMRadioOn="+mAudioDevice);
+               int state =  getCallState();
+               if ( TelephonyManager.CALL_STATE_IDLE != getCallState() )
+               {
+                 fmActionOnCallState(state);
+               } else {
+                   startFM(); // enable FM Audio only when Call is IDLE
+               }
+               Log.d(LOGTAG, "mAudioManager.setFmRadioOn done \n" );
+            }
+            if (mReceiver != null) {
+                bStatus = mReceiver.registerRdsGroupProcessing(FmReceiver.FM_RX_RDS_GRP_RT_EBL|
+                                                           FmReceiver.FM_RX_RDS_GRP_PS_EBL|
+                                                           FmReceiver.FM_RX_RDS_GRP_AF_EBL|
+                                                           FmReceiver.FM_RX_RDS_GRP_PS_SIMPLE_EBL);
+                Log.d(LOGTAG, "registerRdsGroupProcessing done, Status :" +  bStatus);
+            }
+            bStatus = enableAutoAF(FmSharedPreferences.getAutoAFSwitch());
+            Log.d(LOGTAG, "enableAutoAF done, Status :" +  bStatus);
+
+            /* There is no internal Antenna*/
+            bStatus = mReceiver.setInternalAntenna(false);
+            Log.d(LOGTAG, "setInternalAntenna done, Status :" +  bStatus);
+
+            /* Read back to verify the internal Antenna mode*/
+            readInternalAntennaAvailable();
+
+            startNotification();
+            bStatus = true;
+         }
+         else
+         {
+            mReceiver = null; // as enable failed no need to disable
+                              // failure of enable can be because handle
+                              // already open which gets effected if
+                              // we disable
+            stop();
+         }
+      }
+      return(bStatus);
+   }
+
+  /*
+   * Turn OFF FM Operations: This disables all the current FM operations             .
+   */
+   private void fmOperationsOff() {
+      if ( mSpeakerPhoneOn)
+      {
+          mSpeakerPhoneOn = false;
+          AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+      }
+      if (isFmRecordingOn())
+      {
+          stopRecording();
+      }
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      if(audioManager != null)
+      {
+         Log.d(LOGTAG, "audioManager.setFmRadioOn = false \n" );
+         unMute();
+         stopFM();
+         //audioManager.setParameters("FMRadioOn=false");
+         Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
+      }
+
+      if (isAnalogModeEnabled()) {
+              SystemProperties.set("hw.fm.isAnalog","false");
+              misAnalogPathEnabled = false;
+      }
+   }
+
+  /*
+   * Reset (OFF) FM Operations: This resets all the current FM operations             .
+   */
+   private void fmOperationsReset() {
+      if ( mSpeakerPhoneOn)
+      {
+          mSpeakerPhoneOn = false;
+          AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+      }
+
+      if (isFmRecordingOn())
+      {
+          resetRecording();
+      }
+
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      if(audioManager != null)
+      {
+         Log.d(LOGTAG, "audioManager.setFmRadioOn = false \n" );
+         unMute();
+         resetFM();
+         //audioManager.setParameters("FMRadioOn=false");
+         Log.d(LOGTAG, "audioManager.setFmRadioOn false done \n" );
+      }
+
+      if (isAnalogModeEnabled()) {
+              SystemProperties.set("hw.fm.isAnalog","false");
+              misAnalogPathEnabled = false;
+      }
+   }
+
+  /*
+   * Turn OFF FM: Disable the FM Host and hardware                                  .
+   *                                                                                 .
+   * @return true if fm Disable api was invoked successfully, false if the api failed.
+   */
+   private boolean fmOff() {
+      boolean bStatus=false;
+
+      fmOperationsOff();
+
+      // This will disable the FM radio device
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.disable();
+         mReceiver = null;
+      }
+      stop();
+      return(bStatus);
+   }
+
+  /*
+   * Turn OFF FM: Disable the FM Host when hardware resets asynchronously            .
+   *                                                                                 .
+   * @return true if fm Reset api was invoked successfully, false if the api failed  .
+   */
+   private boolean fmRadioReset() {
+      boolean bStatus=false;
+
+      Log.v(LOGTAG, "fmRadioReset");
+
+      fmOperationsReset();
+
+      // This will reset the FM radio receiver
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.reset();
+         mReceiver = null;
+      }
+      stop();
+      return(bStatus);
+   }
+
+   /* Returns whether FM hardware is ON.
+    *
+    * @return true if FM was tuned, searching. (at the end of
+    * the search FM goes back to tuned).
+    *
+    */
+   public boolean isFmOn() {
+      return mFMOn;
+   }
+
+   /* Returns true if Analog Path is enabled */
+   public boolean isAnalogModeEnabled() {
+         return misAnalogPathEnabled;
+   }
+
+   public boolean isAnalogModeSupported() {
+        return misAnalogModeSupported;
+   }
+
+   public boolean isFmRecordingOn() {
+      return mFmRecordingOn;
+   }
+
+   public boolean isSpeakerEnabled() {
+      return mSpeakerPhoneOn;
+   }
+   public boolean isExternalStorageAvailable() {
+     boolean mStorageAvail = false;
+     String state = Environment.getExternalStorageState();
+
+     if(Environment.MEDIA_MOUNTED.equals(state)){
+         Log.d(LOGTAG, "device available");
+         mStorageAvail = true;
+     }
+     return mStorageAvail;
+   }
+   public void enableSpeaker(boolean speakerOn) {
+       if(isCallActive())
+           return ;
+       mSpeakerPhoneOn = speakerOn;
+       boolean analogmode = isAnalogModeSupported();
+       if (false == speakerOn) {
+           if (analogmode) {
+                if (isFmRecordingOn())
+                    stopRecording();
+                stopFM();
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+               if (mMuted) {
+                   setAudioPath(true);
+               } else {
+                   mute();
+                   setAudioPath(true);
+                   unMute();
+               }
+           } else {
+               AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+           }
+           if (analogmode)
+                startFM();
+       }
+
+
+       //Need to turn off BT path when Speaker is set on vice versa.
+       if( !mA2dpDeviceSupportInHal && !analogmode && true == mA2dpDeviceState.isDeviceAvailable()) {
+           if( ((true == mOverA2DP) && (true == speakerOn)) ||
+               ((false == mOverA2DP) && (false == speakerOn)) ) {
+              //disable A2DP playback for speaker option
+               stopFM();
+               startFM();
+           }
+       }
+       if (speakerOn) {
+           if (analogmode) {
+                 stopFM();
+                 if (mMuted) {
+                     setAudioPath(false);
+                 } else {
+                     mute();
+                     setAudioPath(false);
+                     unMute();
+                 }
+           }
+           AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+           if (analogmode)
+                startFM();
+       }
+
+   }
+  /*
+   *  ReConfigure the FM Setup parameters
+   *  - Band
+   *  - Channel Spacing (50/100/200 KHz)
+   *  - Emphasis (50/75)
+   *  - Frequency limits
+   *  - RDS/RBDS standard
+   *
+   * @return true if configure api was invoked successfully, false if the api failed.
+   */
+   public boolean fmReconfigure() {
+      boolean bStatus=false;
+      Log.d(LOGTAG, "fmReconfigure");
+      if (mReceiver != null)
+      {
+         // This sets up the FM radio device
+         FmConfig config = FmSharedPreferences.getFMConfiguration();
+         Log.d(LOGTAG, "RadioBand   :"+ config.getRadioBand());
+         Log.d(LOGTAG, "Emphasis    :"+ config.getEmphasis());
+         Log.d(LOGTAG, "ChSpacing   :"+ config.getChSpacing());
+         Log.d(LOGTAG, "RdsStd      :"+ config.getRdsStd());
+         Log.d(LOGTAG, "LowerLimit  :"+ config.getLowerLimit());
+         Log.d(LOGTAG, "UpperLimit  :"+ config.getUpperLimit());
+         bStatus = mReceiver.configure(config);
+      }
+      return(bStatus);
+   }
+
+   /*
+    * Register UI/Activity Callbacks
+    */
+   public void registerCallbacks(IFMRadioServiceCallbacks cb)
+   {
+      mCallbacks = cb;
+   }
+
+   /*
+    *  unRegister UI/Activity Callbacks
+    */
+   public void unregisterCallbacks()
+   {
+      mCallbacks=null;
+   }
+
+   /*
+   *  Route Audio to headset or speaker phone
+   *  @return true if routeAudio call succeeded, false if the route call failed.
+   */
+   public boolean routeAudio(int audioDevice) {
+      boolean bStatus=false;
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+
+      //Log.d(LOGTAG, "routeAudio: " + audioDevice);
+
+      switch (audioDevice) {
+
+        case RADIO_AUDIO_DEVICE_WIRED_HEADSET:
+            mAudioDevice = "headset";
+            break;
+
+        case RADIO_AUDIO_DEVICE_SPEAKER:
+            mAudioDevice = "speaker";
+            break;
+
+        default:
+            mAudioDevice = "headset";
+            break;
+      }
+
+      if (mReceiver != null)
+      {
+      //audioManager.setParameters("FMRadioOn=false");
+      //Log.d(LOGTAG, "mAudioManager.setFmRadioOn =" + mAudioDevice );
+      //audioManager.setParameters("FMRadioOn="+mAudioDevice);
+      //Log.d(LOGTAG, "mAudioManager.setFmRadioOn done \n");
+       }
+
+       return bStatus;
+   }
+
+  /*
+   *  Mute FM Hardware (SoC)
+   * @return true if set mute mode api was invoked successfully, false if the api failed.
+   */
+   public boolean mute() {
+      boolean bCommandSent=true;
+      if(isMuted())
+          return bCommandSent;
+      if(isCallActive())
+         return false;
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      Log.d(LOGTAG, "mute:");
+      if (audioManager != null)
+      {
+         mMuted = true;
+         audioManager.setStreamMute(AudioManager.STREAM_MUSIC,true);
+      }
+      return bCommandSent;
+   }
+
+   /*
+   *  UnMute FM Hardware (SoC)
+   * @return true if set mute mode api was invoked successfully, false if the api failed.
+   */
+   public boolean unMute() {
+      boolean bCommandSent=true;
+      if(!isMuted())
+          return bCommandSent;
+      if(isCallActive())
+         return false;
+      Log.d(LOGTAG, "unMute:");
+      AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+      if (audioManager != null)
+      {
+         mMuted = false;
+         audioManager.setStreamMute(AudioManager.STREAM_MUSIC,false);
+         if (mResumeAfterCall)
+         {
+             //We are unmuting FM in a voice call. Need to enable FM audio routing.
+             startFM();
+         }
+      }
+      return bCommandSent;
+   }
+
+   /* Returns whether FM Hardware(Soc) Audio is Muted.
+    *
+    * @return true if FM Audio is muted, false if not muted.
+    *
+    */
+   public boolean isMuted() {
+      return mMuted;
+   }
+
+   /* Tunes to the specified frequency
+    *
+    * @return true if Tune command was invoked successfully, false if not muted.
+    *  Note: Callback FmRxEvRadioTuneStatus will be called when the tune
+    *        is complete
+    */
+   public boolean tune(int frequency) {
+      boolean bCommandSent=false;
+      double doubleFrequency = frequency/1000.00;
+
+      Log.d(LOGTAG, "tuneRadio:  " + doubleFrequency);
+      if (mReceiver != null)
+      {
+         mReceiver.setStation(frequency);
+         bCommandSent = true;
+      }
+      return bCommandSent;
+   }
+
+   /* Seeks (Search for strong station) to the station in the direction specified
+    * relative to the tuned station.
+    * boolean up: true - Search in the forward direction.
+    *             false - Search in the backward direction.
+    * @return true if Seek command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvSearchComplete will be called when the Search
+    *        is complete
+    *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to a station
+    *        at the end of the Search or if the seach was cancelled.
+    */
+   public boolean seek(boolean up)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         if (up == true)
+         {
+            Log.d(LOGTAG, "seek:  Up");
+            mReceiver.searchStations(FmReceiver.FM_RX_SRCH_MODE_SEEK,
+                                             FmReceiver.FM_RX_DWELL_PERIOD_1S,
+                                             FmReceiver.FM_RX_SEARCHDIR_UP);
+         }
+         else
+         {
+            Log.d(LOGTAG, "seek:  Down");
+            mReceiver.searchStations(FmReceiver.FM_RX_SRCH_MODE_SEEK,
+                                             FmReceiver.FM_RX_DWELL_PERIOD_1S,
+                                             FmReceiver.FM_RX_SEARCHDIR_DOWN);
+         }
+         bCommandSent = true;
+      }
+      return bCommandSent;
+   }
+
+   /* Scan (Search for station with a "preview" of "n" seconds)
+    * FM Stations. It always scans in the forward direction relative to the
+    * current tuned station.
+    * int pty: 0 or a reserved PTY value- Perform a "strong" station search of all stations.
+    *          Valid/Known PTY - perform RDS Scan for that pty.
+    *
+    * @return true if Scan command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvRadioTuneStatus will be called when tuned to various stations
+    *           during the Scan.
+    *        2. Callback FmRxEvSearchComplete will be called when the Search
+    *        is complete
+    *        3. Callback FmRxEvRadioTuneStatus will also be called when tuned to a station
+    *        at the end of the Search or if the seach was cancelled.
+    *
+    */
+   public boolean scan(int pty)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "scan:  PTY: " + pty);
+         if(FmSharedPreferences.isRBDSStd())
+         {
+            /* RBDS : Validate PTY value?? */
+            if( ((pty  > 0) && (pty  <= 23)) || ((pty  >= 29) && (pty  <= 31)) )
+            {
+               bCommandSent = mReceiver.searchStations(FmReceiver.FM_RX_SRCHRDS_MODE_SCAN_PTY,
+                                                       FmReceiver.FM_RX_DWELL_PERIOD_2S,
+                                                       FmReceiver.FM_RX_SEARCHDIR_UP,
+                                                       pty,
+                                                       0);
+            }
+            else
+            {
+               bCommandSent = mReceiver.searchStations(FmReceiver.FM_RX_SRCH_MODE_SCAN,
+                                                FmReceiver.FM_RX_DWELL_PERIOD_2S,
+                                                FmReceiver.FM_RX_SEARCHDIR_UP);
+            }
+         }
+         else
+         {
+            /* RDS : Validate PTY value?? */
+            if( (pty  > 0) && (pty  <= 31) )
+            {
+               bCommandSent = mReceiver.searchStations(FmReceiver.FM_RX_SRCHRDS_MODE_SCAN_PTY,
+                                                          FmReceiver.FM_RX_DWELL_PERIOD_2S,
+                                                          FmReceiver.FM_RX_SEARCHDIR_UP,
+                                                          pty,
+                                                          0);
+            }
+            else
+            {
+               bCommandSent = mReceiver.searchStations(FmReceiver.FM_RX_SRCH_MODE_SCAN,
+                                                FmReceiver.FM_RX_DWELL_PERIOD_2S,
+                                                FmReceiver.FM_RX_SEARCHDIR_UP);
+            }
+         }
+      }
+      return bCommandSent;
+   }
+
+   /* Search for the 'numStations' number of strong FM Stations.
+    *
+    * It searches in the forward direction relative to the current tuned station.
+    * int numStations: maximum number of stations to search.
+    *
+    * @return true if Search command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvSearchListComplete will be called when the Search
+    *        is complete
+    *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to
+    *        the previously tuned station.
+    */
+   public boolean searchStrongStationList(int numStations)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "searchStrongStationList:  numStations: " + numStations);
+         bCommandSent = mReceiver.searchStationList(FmReceiver.FM_RX_SRCHLIST_MODE_STRONG,
+                                                    FmReceiver.FM_RX_SEARCHDIR_UP,
+                                                    numStations,
+                                                    0);
+      }
+      return bCommandSent;
+   }
+
+   /* Search for the FM Station that matches the RDS PI (Program Identifier) code.
+    * It always scans in the forward direction relative to the current tuned station.
+    * int piCode: PI Code of the station to search.
+    *
+    * @return true if Search command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvSearchComplete will be called when the Search
+    *        is complete
+    *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to a station
+    *        at the end of the Search or if the seach was cancelled.
+    */
+   public boolean seekPI(int piCode)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "seekPI:  piCode: " + piCode);
+         bCommandSent = mReceiver.searchStations(FmReceiver.FM_RX_SRCHRDS_MODE_SEEK_PI,
+                                                            FmReceiver.FM_RX_DWELL_PERIOD_1S,
+                                                            FmReceiver.FM_RX_SEARCHDIR_UP,
+                                                            0,
+                                                            piCode
+                                                            );
+      }
+      return bCommandSent;
+   }
+
+
+  /* Cancel any ongoing Search (Seek/Scan/SearchStationList).
+   *
+   * @return true if Search command was invoked successfully, false if not muted.
+   *  Note: 1. Callback FmRxEvSearchComplete will be called when the Search
+   *        is complete/cancelled.
+   *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to a station
+   *        at the end of the Search or if the seach was cancelled.
+   */
+   public boolean cancelSearch()
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "cancelSearch");
+         bCommandSent = mReceiver.cancelSearch();
+      }
+      return bCommandSent;
+   }
+
+   /* Retrieves the RDS Program Service (PS) String.
+    *
+    * @return String - RDS PS String.
+    *  Note: 1. This is a synchronous call that should typically called when
+    *           Callback FmRxEvRdsPsInfo is invoked.
+    *        2. Since PS contains multiple fields, this Service reads all the fields and "caches"
+    *        the values and provides this helper routine for the Activity to get only the information it needs.
+    *        3. The "cached" data fields are always "cleared" when the tune status changes.
+    */
+   public String getProgramService() {
+      String str = "";
+      if (mFMRxRDSData != null)
+      {
+         str = mFMRxRDSData.getPrgmServices();
+         if(str == null)
+         {
+            str= "";
+         }
+      }
+      Log.d(LOGTAG, "Program Service: [" + str + "]");
+      return str;
+   }
+
+   /* Retrieves the RDS Radio Text (RT) String.
+    *
+    * @return String - RDS RT String.
+    *  Note: 1. This is a synchronous call that should typically called when
+    *           Callback FmRxEvRdsRtInfo is invoked.
+    *        2. Since RT contains multiple fields, this Service reads all the fields and "caches"
+    *        the values and provides this helper routine for the Activity to get only the information it needs.
+    *        3. The "cached" data fields are always "cleared" when the tune status changes.
+    */
+   public String getRadioText() {
+      String str = "";
+      if (mFMRxRDSData != null)
+      {
+         str = mFMRxRDSData.getRadioText();
+         if(str == null)
+         {
+            str= "";
+         }
+      }
+      Log.d(LOGTAG, "Radio Text: [" + str + "]");
+      return str;
+   }
+
+   public String getExtenRadioText() {
+      String str = "";
+      if (mFMRxRDSData != null)
+      {
+         str = mFMRxRDSData.getERadioText();
+         if(str == null)
+         {
+            str= "";
+         }
+      }
+      Log.d(LOGTAG, "eRadio Text:[" + str +"]");
+      return str;
+   }
+   /* Retrieves the RDS Program Type (PTY) code.
+    *
+    * @return int - RDS PTY code.
+    *  Note: 1. This is a synchronous call that should typically called when
+    *           Callback FmRxEvRdsRtInfo and or FmRxEvRdsPsInfo is invoked.
+    *        2. Since RT/PS contains multiple fields, this Service reads all the fields and "caches"
+    *        the values and provides this helper routine for the Activity to get only the information it needs.
+    *        3. The "cached" data fields are always "cleared" when the tune status changes.
+    */
+   public int getProgramType() {
+      int pty = -1;
+      if (mFMRxRDSData != null)
+      {
+         pty = mFMRxRDSData.getPrgmType();
+      }
+      Log.d(LOGTAG, "PTY: [" + pty + "]");
+      return pty;
+   }
+
+   /* Retrieves the RDS Program Identifier (PI).
+    *
+    * @return int - RDS PI code.
+    *  Note: 1. This is a synchronous call that should typically called when
+    *           Callback FmRxEvRdsRtInfo and or FmRxEvRdsPsInfo is invoked.
+    *        2. Since RT/PS contains multiple fields, this Service reads all the fields and "caches"
+    *        the values and provides this helper routine for the Activity to get only the information it needs.
+    *        3. The "cached" data fields are always "cleared" when the tune status changes.
+    */
+   public int getProgramID() {
+      int pi = -1;
+      if (mFMRxRDSData != null)
+      {
+         pi = mFMRxRDSData.getPrgmId();
+      }
+      Log.d(LOGTAG, "PI: [" + pi + "]");
+      return pi;
+   }
+
+
+   /* Retrieves the station list from the SearchStationlist.
+    *
+    * @return Array of integers that represents the station frequencies.
+    * Note: 1. This is a synchronous call that should typically called when
+    *           Callback onSearchListComplete.
+    */
+   public int[] getSearchList()
+   {
+      int[] frequencyList = null;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "getSearchList: ");
+         frequencyList = mReceiver.getStationList();
+      }
+      return frequencyList;
+   }
+
+   /* Set the FM Power Mode on the FM hardware SoC.
+    * Typically used when UI/Activity is in the background, so the Host is interrupted less often.
+    *
+    * boolean bLowPower: true: Enable Low Power mode on FM hardware.
+    *                    false: Disable Low Power mode on FM hardware. (Put into normal power mode)
+    * @return true if set power mode api was invoked successfully, false if the api failed.
+    */
+   public boolean setLowPowerMode(boolean bLowPower)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "setLowPowerMode: " + bLowPower);
+         if(bLowPower)
+         {
+            bCommandSent = mReceiver.setPowerMode(FmReceiver.FM_RX_LOW_POWER_MODE);
+         }
+         else
+         {
+            bCommandSent = mReceiver.setPowerMode(FmReceiver.FM_RX_NORMAL_POWER_MODE);
+         }
+      }
+      return bCommandSent;
+   }
+
+   /* Get the FM Power Mode on the FM hardware SoC.
+    *
+    * @return the device power mode.
+    */
+   public int getPowerMode()
+   {
+      int powerMode=FmReceiver.FM_RX_NORMAL_POWER_MODE;
+      if (mReceiver != null)
+      {
+         powerMode = mReceiver.getPowerMode();
+         Log.d(LOGTAG, "getLowPowerMode: " + powerMode);
+      }
+      return powerMode;
+   }
+
+  /* Set the FM module to auto switch to an Alternate Frequency for the
+   * station if one the signal strength of that frequency is stronger than the
+   * current tuned frequency.
+   *
+   * boolean bEnable: true: Auto switch to stronger alternate frequency.
+   *                  false: Do not switch to alternate frequency.
+   *
+   * @return true if set Auto AF mode api was invoked successfully, false if the api failed.
+   *  Note: Callback FmRxEvRadioTuneStatus will be called when tune
+   *        is complete to a different frequency.
+   */
+   public boolean enableAutoAF(boolean bEnable)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "enableAutoAF: " + bEnable);
+         bCommandSent = mReceiver.enableAFjump(bEnable);
+      }
+      return bCommandSent;
+   }
+
+   /* Set the FM module to Stereo Mode or always force it to Mono Mode.
+    * Note: The stereo mode will be available only when the station is broadcasting
+    * in Stereo mode.
+    *
+    * boolean bEnable: true: Enable Stereo Mode.
+    *                  false: Always stay in Mono Mode.
+    *
+    * @return true if set Stereo mode api was invoked successfully, false if the api failed.
+    */
+   public boolean enableStereo(boolean bEnable)
+   {
+      boolean bCommandSent=false;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "enableStereo: " + bEnable);
+         bCommandSent = mReceiver.setStereoMode(bEnable);
+      }
+      return bCommandSent;
+   }
+
+   /** Determines if an internal Antenna is available.
+    *  Returns the cached value initialized on FMOn.
+    *
+    * @return true if internal antenna is available or wired
+    *         headset is plugged in, false if internal antenna is
+    *         not available and wired headset is not plugged in.
+    */
+   public boolean isAntennaAvailable()
+   {
+      boolean bAvailable = false;
+      if ((mInternalAntennaAvailable) || (mHeadsetPlugged) )
+      {
+         bAvailable = true;
+      }
+      return bAvailable;
+   }
+
+   public static long getAvailableSpace() {
+       String state = Environment.getExternalStorageState();
+       Log.d(LOGTAG, "External storage state=" + state);
+       if (Environment.MEDIA_CHECKING.equals(state)) {
+           return PREPARING;
+       }
+       if (!Environment.MEDIA_MOUNTED.equals(state)) {
+           return UNAVAILABLE;
+       }
+
+       try {
+            File sampleDir = Environment.getExternalStorageDirectory();
+            StatFs stat = new StatFs(sampleDir.getAbsolutePath());
+            return stat.getAvailableBlocks() * (long) stat.getBlockSize();
+       } catch (Exception e) {
+            Log.i(LOGTAG, "Fail to access external storage", e);
+       }
+       return UNKNOWN_SIZE;
+  }
+
+   private boolean updateAndShowStorageHint() {
+       mStorageSpace = getAvailableSpace();
+       return showStorageHint();
+   }
+
+   private boolean showStorageHint() {
+       String errorMessage = null;
+       if (mStorageSpace == UNAVAILABLE) {
+           errorMessage = getString(R.string.no_storage);
+       } else if (mStorageSpace == PREPARING) {
+           errorMessage = getString(R.string.preparing_sd);
+       } else if (mStorageSpace == UNKNOWN_SIZE) {
+           errorMessage = getString(R.string.access_sd_fail);
+       } else if (mStorageSpace < LOW_STORAGE_THRESHOLD) {
+           errorMessage = getString(R.string.spaceIsLow_content);
+       }
+
+       if (errorMessage != null) {
+           Toast.makeText(this, errorMessage,
+                    Toast.LENGTH_LONG).show();
+           return false;
+       }
+       return true;
+   }
+
+   /** Determines if a Wired headset is plugged in. Returns the
+    *  cached value initialized on broadcast receiver
+    *  initialization.
+    *
+    * @return true if wired headset is plugged in, false if wired
+    *         headset is not plugged in.
+    */
+   public boolean isWiredHeadsetAvailable()
+   {
+      return (mHeadsetPlugged);
+   }
+   public boolean isCallActive()
+   {
+       //Non-zero: Call state is RINGING or OFFHOOK on the available subscriptions
+       //zero: Call state is IDLE on all the available subscriptions
+       if(0 != getCallState()) return true;
+       return false;
+   }
+   public int getCallState()
+   {
+       return mCallStatus;
+   }
+
+   public void clearStationInfo() {
+       if(mFMRxRDSData != null) {
+          mFMRxRDSData.setRadioText("");
+          mFMRxRDSData.setPrgmId(0);
+          mFMRxRDSData.setPrgmType(0);
+          mFMRxRDSData.setPrgmServices("");
+          mFMRxRDSData.setERadioText("");
+          mFMRxRDSData.setTagValue("", 1);
+          mFMRxRDSData.setTagValue("", 2);
+          mFMRxRDSData.setTagCode((byte)0, 1);
+          mFMRxRDSData.setTagCode((byte)0, 2);
+          Log.d(LOGTAG, "clear tags data");
+          FmSharedPreferences.clearTags();
+       }
+   }
+
+   /* Receiver callbacks back from the FM Stack */
+   FmRxEvCallbacksAdaptor fmCallbacks = new FmRxEvCallbacksAdaptor()
+   {
+      public void FmRxEvEnableReceiver() {
+         Log.d(LOGTAG, "FmRxEvEnableReceiver");
+         mReceiver.setRawRdsGrpMask();
+      }
+      public void FmRxEvDisableReceiver()
+      {
+         Log.d(LOGTAG, "FmRxEvDisableReceiver");
+         mFMOn = false;
+         FmSharedPreferences.clearTags();
+      }
+      public void FmRxEvRadioReset()
+      {
+         Log.d(LOGTAG, "FmRxEvRadioReset");
+         if(isFmOn()) {
+             // Received radio reset event while FM is ON
+             Log.d(LOGTAG, "FM Radio reset");
+             fmRadioReset();
+             try
+             {
+                /* Notify the UI/Activity, only if the service is "bound"
+                   by an activity and if Callbacks are registered
+                */
+                if((mServiceInUse) && (mCallbacks != null) )
+                {
+                    mCallbacks.onRadioReset();
+                }
+             }
+             catch (RemoteException e)
+             {
+                e.printStackTrace();
+             }
+         }
+      }
+      public void FmRxEvConfigReceiver()
+      {
+         Log.d(LOGTAG, "FmRxEvConfigReceiver");
+      }
+      public void FmRxEvMuteModeSet()
+      {
+         Log.d(LOGTAG, "FmRxEvMuteModeSet");
+      }
+      public void FmRxEvStereoModeSet()
+      {
+         Log.d(LOGTAG, "FmRxEvStereoModeSet");
+      }
+      public void FmRxEvRadioStationSet()
+      {
+         Log.d(LOGTAG, "FmRxEvRadioStationSet");
+      }
+      public void FmRxEvPowerModeSet()
+      {
+         Log.d(LOGTAG, "FmRxEvPowerModeSet");
+      }
+      public void FmRxEvSetSignalThreshold()
+      {
+         Log.d(LOGTAG, "FmRxEvSetSignalThreshold");
+      }
+
+      public void FmRxEvRadioTuneStatus(int frequency)
+      {
+         Log.d(LOGTAG, "FmRxEvRadioTuneStatus: Tuned Frequency: " +frequency);
+         try
+         {
+            FmSharedPreferences.setTunedFrequency(frequency);
+            mPrefs.Save();
+            //Log.d(LOGTAG, "Call mCallbacks.onTuneStatusChanged");
+            /* Since the Tuned Status changed, clear out the RDSData cached */
+            if(mReceiver != null) {
+               clearStationInfo();
+            }
+            if(mCallbacks != null)
+            {
+               mCallbacks.onTuneStatusChanged();
+            }
+            /* Update the frequency in the StatusBar's Notification */
+            startNotification();
+
+         }
+         catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+
+      public void FmRxEvStationParameters()
+      {
+         Log.d(LOGTAG, "FmRxEvStationParameters");
+      }
+
+      public void FmRxEvRdsLockStatus(boolean bRDSSupported)
+      {
+         Log.d(LOGTAG, "FmRxEvRdsLockStatus: " + bRDSSupported);
+         try
+         {
+            if(mCallbacks != null)
+            {
+               mCallbacks.onStationRDSSupported(bRDSSupported);
+            }
+         }
+         catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+
+      public void FmRxEvStereoStatus(boolean stereo)
+      {
+         Log.d(LOGTAG, "FmRxEvStereoStatus: " + stereo);
+         try
+         {
+            if(mCallbacks != null)
+            {
+               mCallbacks.onAudioUpdate(stereo);
+            }
+         }
+         catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+      public void FmRxEvServiceAvailable(boolean signal)
+      {
+         Log.d(LOGTAG, "FmRxEvServiceAvailable");
+         if(signal) {
+             Log.d(LOGTAG, "FmRxEvServiceAvailable: Tuned frequency is above signal threshold level");
+         }
+         else {
+             Log.d(LOGTAG, "FmRxEvServiceAvailable: Tuned frequency is below signal threshold level");
+         }
+      }
+      public void FmRxEvGetSignalThreshold()
+      {
+         Log.d(LOGTAG, "FmRxEvGetSignalThreshold");
+      }
+      public void FmRxEvSearchInProgress()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchInProgress");
+      }
+      public void FmRxEvSearchRdsInProgress()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchRdsInProgress");
+      }
+      public void FmRxEvSearchListInProgress()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchListInProgress");
+      }
+      public void FmRxEvSearchComplete(int frequency)
+       {
+         Log.d(LOGTAG, "FmRxEvSearchComplete: Tuned Frequency: " +frequency);
+         try
+         {
+            FmSharedPreferences.setTunedFrequency(frequency);
+            //Log.d(LOGTAG, "Call mCallbacks.onSearchComplete");
+            /* Since the Tuned Status changed, clear out the RDSData cached */
+            if(mReceiver != null) {
+               clearStationInfo();
+            }
+            if(mCallbacks != null)
+            {
+               mCallbacks.onSearchComplete();
+            }
+            /* Update the frequency in the StatusBar's Notification */
+            startNotification();
+         }
+         catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+
+      public void FmRxEvSearchRdsComplete()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchRdsComplete");
+      }
+
+      public void FmRxEvSearchListComplete()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchListComplete");
+         try
+         {
+            if(mCallbacks != null)
+            {
+               mCallbacks.onSearchListComplete();
+            }
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+
+      public void FmRxEvSearchCancelled()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchCancelled: Cancelled the on-going search operation.");
+      }
+      public void FmRxEvRdsGroupData()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsGroupData");
+      }
+
+      public void FmRxEvRdsPsInfo() {
+         Log.d(LOGTAG, "FmRxEvRdsPsInfo: ");
+         try
+         {
+            if(mReceiver != null)
+            {
+               mFMRxRDSData = mReceiver.getPSInfo();
+               if(mFMRxRDSData != null)
+               {
+                  Log.d(LOGTAG, "PI: [" + mFMRxRDSData.getPrgmId() + "]");
+                  Log.d(LOGTAG, "PTY: [" + mFMRxRDSData.getPrgmType() + "]");
+                  Log.d(LOGTAG, "PS: [" + mFMRxRDSData.getPrgmServices() + "]");
+               }
+               if(mCallbacks != null)
+               {
+                  mCallbacks.onProgramServiceChanged();
+               }
+            }
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+
+      public void FmRxEvRdsRtInfo() {
+         Log.d(LOGTAG, "FmRxEvRdsRtInfo");
+         try
+         {
+            //Log.d(LOGTAG, "Call mCallbacks.onRadioTextChanged");
+            if(mReceiver != null)
+            {
+               mFMRxRDSData = mReceiver.getRTInfo();
+               if(mFMRxRDSData != null)
+               {
+                  Log.d(LOGTAG, "PI: [" + mFMRxRDSData.getPrgmId() + "]");
+                  Log.d(LOGTAG, "PTY: [" + mFMRxRDSData.getPrgmType() + "]");
+                  Log.d(LOGTAG, "RT: [" + mFMRxRDSData.getRadioText() + "]");
+               }
+               if(mCallbacks != null)
+               {
+                  mCallbacks.onRadioTextChanged();
+               }
+            }
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+
+      }
+
+      public void FmRxEvRdsAfInfo()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsAfInfo");
+         mReceiver.getAFInfo();
+      }
+      public void FmRxEvRTPlus()
+      {
+         int tag_nums;
+         Log.d(LOGTAG, "FmRxEvRTPlusInfo");
+         if (mReceiver != null) {
+             mFMRxRDSData = mReceiver.getRTPlusInfo();
+             tag_nums = mFMRxRDSData.getTagNums();
+             if (tag_nums >= 1) {
+                 Log.d(LOGTAG, "tag1 is: " + mFMRxRDSData.getTagCode(1) + "value: "
+                        + mFMRxRDSData.getTagValue(1));
+                 FmSharedPreferences.addTags(mFMRxRDSData.getTagCode(1), mFMRxRDSData.getTagValue(1));
+             }
+             if(tag_nums == 2) {
+                Log.d(LOGTAG, "tag2 is: " + mFMRxRDSData.getTagCode(2) + "value: "
+                      + mFMRxRDSData.getTagValue(2));
+                 FmSharedPreferences.addTags(mFMRxRDSData.getTagCode(2), mFMRxRDSData.getTagValue(2));
+             }
+         }
+      }
+      public void FmRxEvERTInfo()
+      {
+         Log.d(LOGTAG, "FmRxEvERTInfo");
+         try {
+             if (mReceiver != null) {
+                mFMRxRDSData = mReceiver.getERTInfo();
+                if(mCallbacks != null)
+                   mCallbacks.onExtenRadioTextChanged();
+             }
+         } catch (RemoteException e) {
+             e.printStackTrace();
+         }
+      }
+      public void FmRxEvRdsPiMatchAvailable()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsPiMatchAvailable");
+      }
+      public void FmRxEvRdsGroupOptionsSet()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsGroupOptionsSet");
+      }
+      public void FmRxEvRdsProcRegDone()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsProcRegDone");
+      }
+      public void FmRxEvRdsPiMatchRegDone()
+      {
+         Log.d(LOGTAG, "FmRxEvRdsPiMatchRegDone");
+      }
+   };
+
+
+   /*
+    *  Read the Tuned Frequency from the FM module.
+    */
+   private String getTunedFrequencyString() {
+
+      double frequency = FmSharedPreferences.getTunedFrequency() / 1000.0;
+      String frequencyString = getString(R.string.stat_notif_frequency, (""+frequency));
+      return frequencyString;
+   }
+   public int getRssi() {
+      if (mReceiver != null)
+          return mReceiver.getRssi();
+      else
+          return Integer.MAX_VALUE;
+   }
+   public int getIoC() {
+      if (mReceiver != null)
+          return mReceiver.getIoverc();
+      else
+          return Integer.MAX_VALUE;
+   }
+   public int getIntDet() {
+      if (mReceiver != null)
+          return mReceiver.getIntDet();
+      else
+          return Integer.MAX_VALUE;
+   }
+   public int getMpxDcc() {
+      if (mReceiver != null)
+          return mReceiver.getMpxDcc();
+      else
+          return Integer.MAX_VALUE;
+   }
+   public void setHiLoInj(int inj) {
+      if (mReceiver != null)
+          mReceiver.setHiLoInj(inj);
+   }
+   public int getSINR() {
+      if (mReceiver != null)
+          return mReceiver.getSINR();
+      else
+          return Integer.MAX_VALUE;
+   }
+   public boolean setSinrSamplesCnt(int samplesCnt) {
+      if(mReceiver != null)
+         return mReceiver.setSINRsamples(samplesCnt);
+      else
+         return false;
+   }
+   public boolean setSinrTh(int sinr) {
+      if(mReceiver != null)
+         return mReceiver.setSINRThreshold(sinr);
+      else
+         return false;
+   }
+   public boolean setIntfDetLowTh(int intfLowTh) {
+      if(mReceiver != null)
+         return mReceiver.setOnChannelThreshold(intfLowTh);
+      else
+         return false;
+   }
+   public boolean setIntfDetHighTh(int intfHighTh) {
+      if(mReceiver != null)
+         return mReceiver.setOffChannelThreshold(intfHighTh);
+      else
+         return false;
+   }
+
+   private void setAlarmSleepExpired (long duration) {
+       Intent i = new Intent(SLEEP_EXPIRED_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       Log.d(LOGTAG, "delayedStop called" + SystemClock.elapsedRealtime() + duration);
+       am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + duration, pi);
+   }
+   private void cancelAlarmSleepExpired() {
+       Intent i = new Intent(SLEEP_EXPIRED_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       am.cancel(pi);
+   }
+   private void setAlarmRecordTimeout(long duration) {
+       Intent i = new Intent(RECORD_EXPIRED_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       Log.d(LOGTAG, "delayedStop called" + SystemClock.elapsedRealtime() + duration);
+       am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + duration, pi);
+   }
+   private void cancelAlarmRecordTimeout() {
+       Intent i = new Intent(RECORD_EXPIRED_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       am.cancel(pi);
+   }
+   private void setAlarmDelayedServiceStop() {
+       Intent i = new Intent(SERVICE_DELAYED_STOP_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + IDLE_DELAY, pi);
+   }
+   private void cancelAlarmDealyedServiceStop() {
+       Intent i = new Intent(SERVICE_DELAYED_STOP_ACTION);
+       AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
+       PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
+       am.cancel(pi);
+   }
+   private void cancelAlarms() {
+       cancelAlarmSleepExpired();
+       cancelAlarmRecordTimeout();
+       cancelAlarmDealyedServiceStop();
+   }
+   //handling the sleep and record stop when FM App not in focus
+   private void delayedStop(long duration, int nType) {
+       int whatId = (nType == STOP_SERVICE) ? STOPSERVICE_ONSLEEP: STOPRECORD_ONTIMEOUT;
+       if (nType == STOP_SERVICE)
+           setAlarmSleepExpired(duration);
+       else
+           setAlarmRecordTimeout(duration);
+   }
+   private void cancelDelayedStop(int nType) {
+       int whatId = (nType == STOP_SERVICE) ? STOPSERVICE_ONSLEEP: STOPRECORD_ONTIMEOUT;
+       if (nType == STOP_SERVICE)
+           cancelAlarmSleepExpired();
+       else
+           cancelAlarmRecordTimeout();
+   }
+   private void requestFocus() {
+      if( (false == mPlaybackInProgress) &&
+          (true  == mStoppedOnFocusLoss) ) {
+           // adding code for audio focus gain.
+           AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+           audioManager.requestAudioFocus(mAudioFocusListener, AudioManager.STREAM_MUSIC,
+                  AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+           startFM();
+           mStoppedOnFocusLoss = false;
+       }
+   }
+   private OnAudioFocusChangeListener mAudioFocusListener = new OnAudioFocusChangeListener() {
+       public void onAudioFocusChange(int focusChange) {
+           mDelayedStopHandler.obtainMessage(FOCUSCHANGE, focusChange, 0).sendToTarget();
+       }
+   };
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMStats.java b/fmapp2/src/com/caf/fmradio/FMStats.java
new file mode 100644
index 0000000..2afb301
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMStats.java
@@ -0,0 +1,1346 @@
+/*
+ * Copyright (c) 2011-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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ProgressBar;
+import android.widget.Spinner;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import qcom.fmradio.FmReceiver;
+import android.os.SystemProperties;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.util.HashMap;
+import android.os.SystemProperties;
+
+
+public class FMStats extends Activity  {
+
+    EditText txtbox1;
+    TextView tv1;
+    Button SetButton;
+    Button RunButton;
+    ProgressBar  pbar;
+    TableLayout tLayout;
+
+    private FmReceiver mReceiver;
+
+    /*Data structure for band*/
+    private class Band {
+
+        public int lFreq;
+        public int hFreq;
+        public int Spacing;
+    }
+    /* Data structure for Result*/
+    private class Result {
+
+      private String mFreq;
+      private String mRSSI;
+      private String mIoC;
+      private String mIntDet;
+      private String mMpxDcc;
+      private String mSINR;
+
+
+      public void setFreq(String aFreq) {
+         this.mFreq = aFreq;
+      }
+
+      public String getFreq() {
+         return mFreq;
+      }
+
+      public void setRSSI(String aRSSI) {
+         this.mRSSI = aRSSI;
+      }
+
+      public String getRSSI() {
+         return mRSSI;
+      }
+
+      public void setIoC(String aIoC) {
+         this.mIoC = aIoC;
+      }
+
+      public String getIoC() {
+         return mIoC;
+      }
+
+      public void setIntDet(String aIntDet) {
+         this.mIntDet = aIntDet;
+      }
+
+      public String getIntDet() {
+         return mIntDet;
+      }
+
+      public void setMpxDcc(String aMpxDcc) {
+         this.mMpxDcc = aMpxDcc;
+      }
+
+      public String getMpxDcc() {
+         return mMpxDcc;
+      }
+      public void setSINR(String aSINR) {
+         this.mSINR = aSINR;
+      }
+
+      public String getSINR() {
+         return mSINR;
+      }
+
+    };
+
+    /*constant column header*/
+    Result mColumnHeader = new Result();
+
+    boolean mTestRunning = false;
+    FmRfItemSelectedListener mSpinFmRfListener = new FmRfItemSelectedListener();
+    RfCfgItemSelectedListener mSpinRfCfgListener = new RfCfgItemSelectedListener();
+    CfgRfItemSelectedListener1 mSpinCfgRfListener1 = null;
+    CfgRfItemSelectedListener2 mSpinCfgRfListener2 = null;
+
+
+    int  mTestSelected = 0;
+    boolean mIsSearching = false;
+    private static String LOGTAG = "FMStats";
+    private static IFMRadioService mService = null;
+    private Thread mMultiUpdateThread =null;
+    private static final int STATUS_UPDATE =1;
+    private static final int STATUS_DONE =2;
+    private static final int STOP_ROW_ID =200;
+    private static final int NEW_ROW_ID = 300;
+    private int mStopIds = STOP_ROW_ID;
+    private int mNewRowIds = NEW_ROW_ID;
+    private static final int SCAN_DWELL_PERIOD = 1;
+
+    private static final int CUR_FREQ_TEST =0;
+    private static final int CUR_MULTI_TEST = 1;
+    private static final int SEARCH_TEST =2;
+    private static final int SWEEP_TEST =3;
+    private Band mBand =null;
+    private Band mSync = null;
+    int Lo = 1, Auto = 0;
+
+    private FileOutputStream mFileCursor =null;
+    private String mCurrentFileName = null;
+
+    Spinner spinOptionFmRf;
+    ArrayAdapter<CharSequence> adaptCfgRf;
+    ArrayAdapter<CharSequence> adaptRfCfg;
+    ArrayAdapter<CharSequence> adaptFmRf;
+
+    private static boolean mIsTransportSMD = false;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        this.setContentView(R.layout.fmstats);
+
+        spinOptionFmRf = (Spinner) findViewById(R.id.spinner);
+        adaptFmRf = ArrayAdapter.createFromResource(
+            this, R.array.stats_options, android.R.layout.simple_spinner_item);
+        adaptFmRf.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        if (spinOptionFmRf != null) {
+           spinOptionFmRf.setAdapter(adaptFmRf);
+           spinOptionFmRf.setOnItemSelectedListener(mSpinFmRfListener);
+        }
+
+        checkTransportLayer();
+        if (!isTransportLayerSMD()) {
+            mSpinCfgRfListener1 = new CfgRfItemSelectedListener1();
+            adaptCfgRf = ArrayAdapter.createFromResource(
+                           this, R.array.cfg_rf1,
+                           android.R.layout.simple_spinner_item);
+        } else {
+            mSpinCfgRfListener2 = new CfgRfItemSelectedListener2();
+            adaptCfgRf = ArrayAdapter.createFromResource(
+                           this, R.array.cfg_rf2,
+                           android.R.layout.simple_spinner_item);
+        }
+        adaptRfCfg = ArrayAdapter.createFromResource(
+            this, R.array.rf_cfg, android.R.layout.simple_spinner_item);
+
+        tLayout = (TableLayout) findViewById(R.id.maintable);
+
+        if(mReceiver == null)
+            mReceiver = new FmReceiver();
+
+        long  curTime = System.currentTimeMillis();
+        mCurrentFileName = "FMStats_".concat(Long.toString(curTime).concat(".txt"));
+        Log.e(LOGTAG,"Filename is "+mCurrentFileName);
+        try {
+            mFileCursor = openFileOutput(mCurrentFileName, Context.MODE_PRIVATE);
+            if(null != mFileCursor) {
+               Log.e(LOGTAG, "location of the file is"+getFilesDir());
+            }
+        } catch (IOException e) {
+             e.printStackTrace();
+            Log.e(LOGTAG,"Couldn't create the file to writeLog");
+            mCurrentFileName = null;
+        }
+
+        if (false == bindToService(this, osc))
+        {
+           Log.d(LOGTAG, "onCreate: Failed to Start Service");
+        }
+        else
+        {
+           Log.d(LOGTAG, "onCreate: Start Service completed successfully");
+        }
+
+	/*Initialize the column header with
+	constant values*/
+	mColumnHeader.setFreq("Freq");
+	mColumnHeader.setRSSI("RMSSI");
+	mColumnHeader.setIoC("IoC");
+        mColumnHeader.setSINR("SINR");
+	mColumnHeader.setMpxDcc("Offset");
+	mColumnHeader.setIntDet("IntDet");
+    }
+
+    public void onDestroy() {
+        if(null != mFileCursor ) {
+	    try {
+		mFileCursor.close();
+            } catch (IOException e) {
+
+                e.printStackTrace();
+            }
+        }
+	/*Stop the thread by interrupting it*/
+	if(mMultiUpdateThread != null) {
+		mMultiUpdateThread.interrupt();
+		mMultiUpdateThread = null;
+	}
+	/*Stop the search/scan if there is an ongoing*/
+        if(SEARCH_TEST == mTestSelected)
+        {
+		Log.d(LOGTAG, "Stop Search\n");
+		try {
+                    mService.cancelSearch();
+                } catch (RemoteException e) {
+                     e.printStackTrace();
+                }
+        }
+
+        unbindFromService(this);
+        Log.d(LOGTAG, "onDestroy: unbindFromService completed");
+        mReceiver = null;
+        mService = null;
+        super.onDestroy();
+    }
+
+    private View.OnClickListener mOnRunListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          if(false == mTestRunning)
+          {
+              clearPreviousTestResults();
+              mTestRunning = true;
+              runCurrentTest();
+          }
+          else
+          {
+              mTestRunning = false;
+              /*Set it back to ready to Run*/
+              SetButtonState(true);
+		/*Stop the thread by interrupting it*/
+	      if(mMultiUpdateThread != null) {
+	            mMultiUpdateThread.interrupt();
+		    mMultiUpdateThread = null;
+	      }
+
+              if(SEARCH_TEST == mTestSelected )
+              {
+                 try {
+                      mService.cancelSearch();
+                 } catch (RemoteException e) {
+                      e.printStackTrace();
+                 }
+              }
+          }
+       }
+    };
+
+   private void clearPreviousTestResults()
+   {
+       TableLayout tl = (TableLayout) findViewById(R.id.maintable);
+       if (tl != null) {
+          tl.removeAllViewsInLayout();
+       }
+       mNewRowIds = NEW_ROW_ID;
+   }
+
+
+    private void SetButtonState(boolean state)
+    {
+        // Get the TableRow
+        Button RunButton = (Button)findViewById(R.id.Runbutton);
+        ProgressBar  pbar = (ProgressBar) findViewById(R.id.progressbar);
+        /*Update the state of the button based on
+        state*/
+        if( state )
+        {
+            if (RunButton != null) {
+               RunButton.setText(R.string.test_run);
+            }
+            if (pbar != null) {
+               pbar.setVisibility(View.INVISIBLE);
+            }
+        }
+        else
+        {
+            if (RunButton != null) {
+               RunButton.setText("Stop Test");
+            }
+            if (pbar != null) {
+               pbar.setVisibility(View.VISIBLE);
+            }
+        }
+    }
+
+    private void chooseFMRFoption(){
+        String[] szTestInformation = getResources().getStringArray(
+                        R.array.stats_options);
+        final StringBuilder szbTestHeader = new StringBuilder();
+        szbTestHeader.append("running test:").append(szTestInformation[mTestSelected]);
+        String szTestHeader = new String(szbTestHeader);
+        switch(mTestSelected){
+            case 1:
+                RunButton = (Button)findViewById(R.id.Runbutton);
+                if (RunButton != null) {
+                   RunButton.setVisibility(View.INVISIBLE);
+                }
+                pbar = (ProgressBar) findViewById(R.id.progressbar);
+                if (pbar != null) {
+                   pbar.setVisibility(View.INVISIBLE);
+                }
+                adaptCfgRf.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                spinOptionFmRf.setAdapter(adaptCfgRf);
+                if(isTransportLayerSMD())
+                   spinOptionFmRf.setOnItemSelectedListener(mSpinCfgRfListener2);
+                else
+                   spinOptionFmRf.setOnItemSelectedListener(mSpinCfgRfListener1);
+                break;
+            case 2:
+                txtbox1 = (EditText) findViewById(R.id.txtbox1);
+                tv1 = (TextView) findViewById(R.id.label);
+                if (txtbox1 != null) {
+                   txtbox1.setVisibility(View.INVISIBLE);
+                }
+                if (tv1 != null) {
+                   tv1.setVisibility(View.INVISIBLE);
+                }
+                Button SetButton = (Button)findViewById(R.id.Setbutton);
+                if (SetButton != null) {
+                   SetButton.setVisibility(View.INVISIBLE);
+                }
+                adaptRfCfg.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                spinOptionFmRf.setAdapter(adaptRfCfg);
+                spinOptionFmRf.setOnItemSelectedListener(mSpinRfCfgListener);
+                break;
+        }
+    }
+
+    private View.OnClickListener mOnSetRmssitListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+               int rdel = Integer.parseInt(a);
+               Log.d(LOGTAG, "Value of RMSSI DELTA is : " + rdel);
+               mReceiver.setRmssiDel(rdel);
+          } catch (NumberFormatException e) {
+               Log.e(LOGTAG, "Value entered is not in correct format: " + a);
+               txtbox1.setText("");
+          } catch (NullPointerException e) {
+               e.printStackTrace();
+          }
+       }
+    };
+
+    private View.OnClickListener mOnSetSigThListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+              int rdel = Integer.parseInt(a);
+              Log.d(LOGTAG, "Value of Signal Th. is : " + rdel);
+              mReceiver.setSignalThreshold(rdel);
+          } catch (NumberFormatException e) {
+              Log.e(LOGTAG, "Value entered is not in correct format: " + a);
+              txtbox1.setText("");
+          } catch (NullPointerException e) {
+              e.printStackTrace();
+          }
+      }
+    };
+
+    private View.OnClickListener mOnSetSinrSmplCntListener  = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+              int rdel = Integer.parseInt(a);
+              Log.d(LOGTAG, "Value of Sinr Samples count is : " + rdel);
+              if(mService != null) {
+                 try {
+                     mService.setSinrSamplesCnt(rdel);
+                 } catch (RemoteException e) {
+                     e.printStackTrace();
+                 }
+              }
+          } catch (NumberFormatException e) {
+              Log.e(LOGTAG, "Value entered is not in correct format: " + a);
+              txtbox1.setText("");
+          }
+      }
+    };
+    private View.OnClickListener mOnSetSinrThListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+              int rdel = Integer.parseInt(a);
+              Log.d(LOGTAG, "Value of Sinr Th is : " + rdel);
+              if(mService != null) {
+                 try {
+                     mService.setSinrTh(rdel);
+                 } catch (RemoteException e) {
+                     e.printStackTrace();
+                 }
+              }
+          } catch (NumberFormatException e) {
+              Log.e(LOGTAG, "Value entered is not in correct format: " + a);
+              txtbox1.setText("");
+          }
+      }
+    };
+    private View.OnClickListener mOnSetIntfLowThListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+              int rdel = Integer.parseInt(a);
+              Log.d(LOGTAG, "Value of Intf Det Low Th is : " + rdel);
+              if(mService != null) {
+                 try {
+                     mService.setIntfDetLowTh(rdel);
+                 } catch (RemoteException e) {
+                     e.printStackTrace();
+                 }
+              }
+          } catch (NumberFormatException e) {
+              Log.e(LOGTAG, "Value entered is not in correct format: " + a);
+              txtbox1.setText("");
+          }
+      }
+    };
+    private View.OnClickListener mOnSetIntfHighThListener = new View.OnClickListener() {
+       public void onClick(View v) {
+          String a;
+          a =  txtbox1.getText().toString();
+          try {
+              int rdel = Integer.parseInt(a);
+              Log.d(LOGTAG, "Value of Intf Det Low Th is : " + rdel);
+              if(mService != null) {
+                 try {
+                     mService.setIntfDetHighTh(rdel);
+                 } catch (RemoteException e) {
+                     e.printStackTrace();
+                 }
+              }
+          } catch (NumberFormatException e) {
+              Log.e(LOGTAG, "Value entered is not in correct format : " + a);
+              txtbox1.setText("");
+          }
+       }
+    };
+
+    public class CfgRfItemSelectedListener1 implements OnItemSelectedListener {
+        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+            Log.d("Table","onItemSelected is hit with " + pos);
+            txtbox1 = (EditText) findViewById(R.id.txtbox1);
+            tv1 = (TextView) findViewById(R.id.label);
+            Button SetButton = (Button)findViewById(R.id.Setbutton);
+            tLayout.setVisibility(View.INVISIBLE);
+            switch(pos)
+            {
+                case 0:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_rssi);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_rmmsi_delta);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetRmssitListener);
+                    }
+                    break;
+                case 1:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_sigth);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_sigth);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetSigThListener);
+                    }
+                    break;
+                case 2:
+                    tLayout.removeAllViewsInLayout();
+                    mNewRowIds = NEW_ROW_ID;
+                    tLayout.setVisibility(View.VISIBLE);
+                    if (txtbox1 != null) {
+                       txtbox1.setVisibility(View.INVISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setVisibility(View.INVISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setVisibility(View.INVISIBLE);
+                    }
+                    adaptRfCfg.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                    spinOptionFmRf.setAdapter(adaptRfCfg);
+                    spinOptionFmRf.setOnItemSelectedListener(mSpinRfCfgListener);
+                    break;
+            }
+        }
+
+        public void onNothingSelected(AdapterView<?> parent) {
+            // Do Nothing
+        }
+    }
+
+    public class CfgRfItemSelectedListener2 implements OnItemSelectedListener {
+        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+            Log.d("Table","onItemSelected is hit with " + pos);
+            txtbox1 = (EditText) findViewById(R.id.txtbox1);
+            tv1 = (TextView) findViewById(R.id.label);
+            Button SetButton = (Button)findViewById(R.id.Setbutton);
+            tLayout.setVisibility(View.INVISIBLE);
+            switch(pos)
+            {
+                case 0:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_SinrSmplsCnt);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_SinrSmplsCnt);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetSinrSmplCntListener);
+                    }
+                    break;
+                case 1:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_SinrTh);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_SinrTh);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetSinrThListener);
+                    }
+                    break;
+                case 2:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_IntfLowTh);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_IntfLowTh);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetIntfLowThListener);
+                    }
+                    break;
+                case 3:
+                    if (txtbox1 != null) {
+                       txtbox1.setText(R.string.type_rd);
+                       txtbox1.setVisibility(View.VISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setText(R.string.enter_IntfHighTh);
+                       tv1.setVisibility(View.VISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setText(R.string.set_IntfHighTh);
+                       SetButton.setVisibility(View.VISIBLE);
+                       SetButton.setOnClickListener(mOnSetIntfHighThListener);
+                    }
+                    break;
+                case 4:
+                    tLayout.removeAllViewsInLayout();
+                    mNewRowIds = NEW_ROW_ID;
+                    tLayout.setVisibility(View.VISIBLE);
+                    if (txtbox1 != null) {
+                       txtbox1.setVisibility(View.INVISIBLE);
+                    }
+                    if (tv1 != null) {
+                       tv1.setVisibility(View.INVISIBLE);
+                    }
+                    if (SetButton != null) {
+                       SetButton.setVisibility(View.INVISIBLE);
+                    }
+                    adaptRfCfg.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                    spinOptionFmRf.setAdapter(adaptRfCfg);
+                    spinOptionFmRf.setOnItemSelectedListener(mSpinRfCfgListener);
+                    break;
+            }
+        }
+        public void onNothingSelected(AdapterView<?> parent) {
+            // Do Nothing
+        }
+    }
+
+    public class RfCfgItemSelectedListener implements OnItemSelectedListener {
+        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+            Log.d("Table","onItemSelected is hit with "+pos);
+            tLayout.setVisibility(View.INVISIBLE);
+            if (mTestRunning)
+                stopCurTest();
+            switch(pos)
+            {
+                case 0:
+                case 1:
+                case 2:
+                case 3:
+                    mTestSelected = pos;
+                    tLayout.removeAllViewsInLayout();
+                    mNewRowIds = NEW_ROW_ID;
+                    tLayout.setVisibility(View.VISIBLE);
+                    RunButton = (Button)findViewById(R.id.Runbutton);
+                    if (RunButton != null) {
+                       RunButton.setText(R.string.test_run);
+                       RunButton.setVisibility(View.VISIBLE);
+                       RunButton.setOnClickListener(mOnRunListener);
+                    }
+                    break;
+                case 4:
+                    RunButton = (Button)findViewById(R.id.Runbutton);
+                    if (RunButton != null) {
+                       RunButton.setVisibility(View.INVISIBLE);
+                    }
+                    pbar = (ProgressBar) findViewById(R.id.progressbar);
+                    if (pbar != null) {
+                       pbar.setVisibility(View.INVISIBLE);
+                    }
+                    adaptCfgRf.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                    spinOptionFmRf.setAdapter(adaptCfgRf);
+                    if(isTransportLayerSMD())
+                       spinOptionFmRf.setOnItemSelectedListener(mSpinCfgRfListener2);
+                    else
+                       spinOptionFmRf.setOnItemSelectedListener(mSpinCfgRfListener1);
+                    break;
+            }
+        }
+
+        public void onNothingSelected(AdapterView<?> parent) {
+            // Do Nothing
+        }
+    }
+    public class FmRfItemSelectedListener implements OnItemSelectedListener {
+        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+            Log.d("Table","onItemSelected is hit with "+pos);
+            mTestSelected = pos;
+            tLayout.setVisibility(View.INVISIBLE);
+            chooseFMRFoption();
+
+        }
+
+        public void onNothingSelected(AdapterView<?> parent) {
+            // Do Nothing
+        }
+    }
+    private void checkTransportLayer() {
+        String transportLayer = "";
+
+        transportLayer = SystemProperties.get("ro.qualcomm.bt.hci_transport");
+        if(transportLayer.equals("smd"))
+           mIsTransportSMD = true;
+    }
+    private boolean isTransportLayerSMD() {
+        return mIsTransportSMD;
+    }
+    private void createResult(Result aRes) {
+        // Get the TableLayout
+        TableLayout tl = (TableLayout) findViewById(R.id.maintable);
+        if (tl == null) {
+           return;
+        }
+
+         /* Create a new row to be added. */
+        mNewRowIds++;
+        TableRow tr2 = new TableRow(getApplicationContext());
+        int width = getWindowManager().getDefaultDisplay().getWidth();
+        tr2.setLayoutParams(new LayoutParams(
+                     LayoutParams.FILL_PARENT,
+                     LayoutParams.WRAP_CONTENT));
+        tr2.setId(mNewRowIds);
+        /* Create a Button to be the row-content. */
+        TextView colFreq = new TextView(getApplicationContext());
+        colFreq.setText(aRes.getFreq());
+        colFreq.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+        colFreq.setWidth(width/4);
+                /* Add Button to row. */
+        tr2.addView(colFreq);
+
+        TextView colRMSSI = new TextView(getApplicationContext());
+        colRMSSI.setText(aRes.getRSSI());
+        colRMSSI.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+        colRMSSI.setWidth(width/4);
+        tr2.addView(colRMSSI);
+
+        TextView colIoC = new TextView(getApplicationContext());
+        colIoC.setText(aRes.getIoC());
+        colIoC.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+        colIoC.setWidth(width/4);
+        tr2.addView(colIoC);
+        if(isTransportLayerSMD())
+        {
+             TextView colSINR = new TextView(getApplicationContext());
+             colSINR.setText(aRes.getSINR());
+             colSINR.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+             colSINR.setWidth(width/4);
+             tr2.addView(colSINR);
+        } else
+        {
+             TextView colMpxDcc = new TextView(getApplicationContext());
+             colMpxDcc.setText(aRes.getMpxDcc());
+             colMpxDcc.setTextSize(TypedValue.COMPLEX_UNIT_SP, 25);
+             colMpxDcc.setWidth(width/4);
+             tr2.addView(colMpxDcc);
+        }
+          /* Add row to TableLayout. */
+          /* Add row to TableLayout. */
+        tl.addView(tr2,new TableLayout.LayoutParams(
+             LayoutParams.FILL_PARENT,
+             LayoutParams.WRAP_CONTENT));
+        if(null != mFileCursor)
+        {
+           try {
+                 StringBuilder tempStr = new StringBuilder();
+                 tempStr.append(String.format("%10s", aRes.getFreq()));
+                 tempStr.append(String.format("%10s", aRes.getRSSI()));
+                 tempStr.append(String.format("%10s", aRes.getIoC()));
+                 tempStr.append(String.format("%10s", aRes.getIntDet()));
+                 if(isTransportLayerSMD())
+                 {
+                    tempStr.append(String.format("%10s", aRes.getSINR()));
+                 } else
+                 {
+                    tempStr.append(String.format("%10s", aRes.getMpxDcc()));
+                 }
+                 tempStr.append("\r\n");
+                 String testStr = new String(tempStr);
+                 mFileCursor.write(testStr.getBytes());
+           } catch(IOException ioe) {
+                 ioe.printStackTrace();
+           }
+        }
+    }
+
+
+    private void runCurrentTest(){
+        Log.d(LOGTAG, "The test being run is" +mTestSelected);
+
+        //get test summary
+        String[] szTestInformation = getResources().getStringArray(
+                        R.array.rf_cfg);
+        final StringBuilder szbTestHeader = new StringBuilder();
+        szbTestHeader.append("running test:").append(szTestInformation[mTestSelected]);
+        szbTestHeader.append("\r\n");
+        String szTestHeader = new String(szbTestHeader);
+        if(null != mFileCursor )
+        {
+            try {
+                mFileCursor.write(szTestHeader.getBytes());
+            } catch (IOException ioe) {
+                ioe.printStackTrace();
+            }
+        }
+        switch(mTestSelected){
+            case CUR_FREQ_TEST:
+                Log.d(LOGTAG,"Current Freq test is going to run");
+                int freq = FmSharedPreferences.getTunedFrequency();
+                Result res = GetFMStatsForFreq(freq);
+                createResult(mColumnHeader);
+                if(res != null)
+                   createResult(res);
+                 mTestRunning = false;
+                break;
+            case CUR_MULTI_TEST:
+                /*Set it to ready to Stop*/
+                SetButtonState(false);
+                createResult(mColumnHeader);
+
+                if (mMultiUpdateThread == null)
+                {
+                   mMultiUpdateThread = new Thread(null, getMultipleResults,
+                                                          "MultiResultsThread");
+                }
+                /* Launch dummy thread to simulate the transfer progress */
+                Log.d(LOGTAG, "Thread State: " + mMultiUpdateThread.getState());
+                if (mMultiUpdateThread.getState() == Thread.State.TERMINATED)
+                {
+                    mMultiUpdateThread = new Thread(null, getMultipleResults,
+                                                          "MultiResultsThread");
+                }
+                /* If the thread state is "new" then the thread has not yet started */
+                if (mMultiUpdateThread.getState() == Thread.State.NEW)
+                {
+                    mMultiUpdateThread.start();
+                }
+                // returns and UI in different thread.
+                break;
+            case SEARCH_TEST:
+                try {
+                    Log.d(LOGTAG, "start scanning\n");
+                    if(isTransportLayerSMD()) {
+                         Log.d(LOGTAG,"Scanning with 0 scan time");
+                         if (mReceiver != null)
+                              mIsSearching = mReceiver.searchStations(FmReceiver.FM_RX_SRCH_MODE_SCAN,
+                                             SCAN_DWELL_PERIOD, FmReceiver.FM_RX_SEARCHDIR_UP);
+                    } else {
+                        mIsSearching = mService.scan(0);
+                    }
+                } catch (RemoteException e) {
+
+                    e.printStackTrace();
+                }
+
+                if(mIsSearching)
+                {
+                    /*Set it to Ready to Stop*/
+                    SetButtonState(false);
+                    createResult(mColumnHeader);
+                    Log.d(LOGTAG, "Created the results and cancel UI\n");
+                }
+                else
+                {
+                    mTestRunning = false;
+                }
+                break;
+            case SWEEP_TEST:
+                int Spacing = FmSharedPreferences.getChSpacing();
+                int lowerFreq = FmSharedPreferences.getLowerLimit();
+                int higherFreq = FmSharedPreferences.getUpperLimit();
+                try {
+                    Log.d(LOGTAG, "Going to set low side injection\n");
+                    mService.setHiLoInj(Lo);
+                } catch (RemoteException e) {
+
+                    e.printStackTrace();
+                }
+                /* Set it to Ready to stop*/
+                SetButtonState(false);
+                createResult(mColumnHeader);
+                getFMStatsInBand(lowerFreq,higherFreq,Spacing);
+                break;
+        }
+    }
+
+    /* Thread processing */
+    private Runnable getMultipleResults = new Runnable() {
+       public void run() {
+            /*Collect the data for the current frequency
+            20 times*/
+            int freq = FmSharedPreferences.getTunedFrequency();
+
+            for (int i = 0; i < 20; i++)
+            {
+                try
+                {
+                    Thread.sleep(500);
+                    Message updateUI = new Message();
+                    updateUI.what = STATUS_UPDATE;
+                    updateUI.obj = (Object)GetFMStatsForFreq(freq);
+                    if (updateUI.obj == null)
+                        break;
+                    mUIUpdateHandlerHandler.sendMessage(updateUI);
+		} catch (InterruptedException e)
+		{
+			/*break the loop*/
+			break;
+		}
+            }
+            mTestRunning = false;
+            Message updateStop = new Message();
+            updateStop.what = STATUS_DONE;
+            mUIUpdateHandlerHandler.sendMessage(updateStop);
+       }
+    };
+
+    private void getFMStatsInBand(int lFreq, int hFreq, int Spacing)
+    {
+        if( null == mBand) {
+            mBand = new Band();
+        }
+        mBand.lFreq = lFreq;
+        mBand.hFreq = hFreq;
+        if(Spacing == 0)
+        {
+            mBand.Spacing = 200; // 200KHz
+        }
+        else if( Spacing == 1)
+        {
+            mBand.Spacing = 100; // 100KHz
+        }
+        else
+        {
+            mBand.Spacing = 50;
+        }
+
+        if (mMultiUpdateThread == null)
+        {
+           mMultiUpdateThread = new Thread(null, getSweepResults,
+                                                  "MultiResultsThread");
+        }
+        /* Launch he dummy thread to simulate the transfer progress */
+        Log.d(LOGTAG, "Thread State: " + mMultiUpdateThread.getState());
+        if (mMultiUpdateThread.getState() == Thread.State.TERMINATED)
+        {
+            mMultiUpdateThread = new Thread(null, getSweepResults,
+                                                  "MultiResultsThread");
+        }
+        /* If the thread state is "new" then the thread has not yet started */
+        if (mMultiUpdateThread.getState() == Thread.State.NEW)
+        {
+            mMultiUpdateThread.start();
+        }
+    }
+
+    /* Thread processing */
+    private Runnable getSweepResults = new Runnable() {
+       public void run() {
+            for (int i = mBand.lFreq; (i <= mBand.hFreq) && (mService != null);
+                                                            i += mBand.Spacing)
+            {
+                 try {
+                      if (!mService.tune(i)) {
+                          Log.e(LOGTAG, "tune failed");
+                          break;
+                      }
+                      mSync = new Band();
+                      synchronized(mSync) {
+                         mSync.wait(); //wait till notified
+                      }
+                      mSync = null;
+                      Message updateUI = new Message();
+                      updateUI.what = STATUS_UPDATE;
+                      updateUI.obj = (Object)GetFMStatsForFreq(i);
+                      if (updateUI.obj == null) {
+                          break;
+                      } else {
+                          mUIUpdateHandlerHandler.sendMessage(updateUI);
+                          Log.d(LOGTAG,"highFerq is "+mBand.hFreq);
+                      }
+                 }
+                 catch (RemoteException e) {
+		      Log.e(LOGTAG, "SweepResults:Tune failed\n");
+		 }
+
+                catch (InterruptedException e) {
+			/*Stop the thrad*/
+		       break;
+                }
+            }
+            mTestRunning = false;
+            Message updateStop = new Message();
+            updateStop.what = STATUS_DONE;
+            try {
+                 Log.d(LOGTAG, "Going to set auto hi-lo injection\n");
+                 mService.setHiLoInj(Auto);
+            } catch (RemoteException e) {
+                 e.printStackTrace();
+            }
+            mUIUpdateHandlerHandler.sendMessage(updateStop);
+       }
+    };
+
+    private Result GetFMStatsForFreq(int freq)
+    {
+        Result result = new Result();
+        Log.d(LOGTAG,"freq is "+freq);
+        result.setFreq(Integer.toString(freq));
+        byte nRssi = 0;
+        int nIoC = 0;
+        int dummy = 0;
+        int nIntDet = 0;
+        int nMpxDcc = 0;
+        byte nSINR = 0;
+        if((null != mService)) {
+           try {
+               dummy = mService.getRssi();
+               if (dummy != Integer.MAX_VALUE) {
+                   nRssi = (byte)dummy;
+                   result.setRSSI(Byte.toString(nRssi));
+               } else {
+                   return null;
+               }
+           } catch (RemoteException e) {
+               e.printStackTrace();
+           }
+
+           try {
+               nIoC = mService.getIoC();
+               if (nIoC != Integer.MAX_VALUE)
+                   result.setIoC(Integer.toString(nIoC));
+               else
+                   return null;
+           } catch (RemoteException e) {
+               e.printStackTrace();
+           }
+
+           if(isTransportLayerSMD()) {
+              try {
+                  dummy = mService.getSINR();
+                  if (dummy != Integer.MAX_VALUE) {
+                      nSINR = (byte)dummy;
+                      result.setSINR(Integer.toString(nSINR));
+                  } else {
+                      return null;
+                  }
+              } catch (RemoteException e) {
+                  e.printStackTrace();
+              }
+           } else {
+              try {
+                  nMpxDcc = mService.getMpxDcc();
+                  if (nMpxDcc != Integer.MAX_VALUE)
+                      result.setMpxDcc(Integer.toString(nMpxDcc));
+                  else
+                      return null;
+              } catch (RemoteException e) {
+                  e.printStackTrace();
+              }
+           }
+
+           try {
+               nIntDet = mService.getIntDet();
+               if (nIntDet != Integer.MAX_VALUE)
+                   result.setIntDet(Integer.toString(nIntDet));
+               else
+                   return null;
+           } catch (RemoteException e) {
+               e.printStackTrace();
+           }
+        } else {
+           return null;
+        }
+        return result;
+   }
+
+
+    private Handler mUIUpdateHandlerHandler = new Handler() {
+            public void handleMessage(Message msg) {
+               switch (msg.what)
+               {
+               case STATUS_UPDATE:
+                    Result myRes = (Result) msg.obj;
+                    Log.d(LOGTAG,"Status update is" +myRes.mFreq);
+                    createResult(myRes);
+                    break;
+               case STATUS_DONE:
+                    SetButtonState(true);
+                    break;
+               }
+            }
+    };
+
+    public static IFMRadioService sService = null;
+    private static HashMap<Context, ServiceBinder> sConnectionMap = new HashMap<Context, ServiceBinder>();
+
+    public static boolean bindToService(Context context) {
+       Log.e(LOGTAG, "bindToService: Context");
+       return bindToService(context, null);
+    }
+
+    public static boolean bindToService(Context context, ServiceConnection callback) {
+       Log.e(LOGTAG, "bindToService: Context with serviceconnection callback");
+       context.startService(new Intent(context, FMRadioService.class));
+       ServiceBinder sb = new ServiceBinder(callback);
+       sConnectionMap.put(context, sb);
+       return context.bindService((new Intent()).setClass(context,
+                                                          FMRadioService.class), sb, 0);
+    }
+
+    public static void unbindFromService(Context context) {
+       ServiceBinder sb = (ServiceBinder) sConnectionMap.remove(context);
+       Log.e(LOGTAG, "unbindFromService: Context");
+       if (sb == null)
+       {
+          Log.e(LOGTAG, "Trying to unbind for unknown Context");
+          return;
+       }
+       context.unbindService(sb);
+       if (sConnectionMap.isEmpty())
+       {
+          // presumably there is nobody interested in the service at this point,
+          // so don't hang on to the ServiceConnection
+          sService = null;
+       }
+    }
+
+    private static class ServiceBinder implements ServiceConnection
+    {
+       ServiceConnection mCallback;
+       ServiceBinder(ServiceConnection callback) {
+          mCallback = callback;
+       }
+
+       public void onServiceConnected(ComponentName className, android.os.IBinder service) {
+          sService = IFMRadioService.Stub.asInterface(service);
+          if (mCallback != null)
+          {
+             Log.e(LOGTAG, "onServiceConnected: mCallback");
+             mCallback.onServiceConnected(className, service);
+          }
+       }
+
+       public void onServiceDisconnected(ComponentName className) {
+          if (mCallback != null)
+          {
+             mCallback.onServiceDisconnected(className);
+          }
+          sService = null;
+       }
+    }
+
+
+    private ServiceConnection osc = new ServiceConnection() {
+          public void onServiceConnected(ComponentName classname, IBinder obj) {
+             mService = IFMRadioService.Stub.asInterface(obj);
+             Log.e(LOGTAG, "ServiceConnection: onServiceConnected: ");
+             if (mService != null)
+             {
+                try
+                {
+                   mService.registerCallbacks(mServiceCallbacks);
+
+                } catch (RemoteException e)
+                {
+                   e.printStackTrace();
+                }
+                return;
+             } else
+             {
+                Log.e(LOGTAG, "IFMRadioService onServiceConnected failed");
+             }
+             finish();
+          }
+          public void onServiceDisconnected(ComponentName classname) {
+          }
+       };
+
+
+       private IFMRadioServiceCallbacks.Stub  mServiceCallbacks = new IFMRadioServiceCallbacks.Stub()
+       {
+          public void onEnabled()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onEnabled :");
+          }
+
+          public void onDisabled()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onDisabled :");
+             stopCurTest();
+          }
+
+          public void onRadioReset()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onRadioReset :");
+          }
+
+          public void onTuneStatusChanged()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onTuneStatusChanged :");
+             if (mTestRunning)
+                 mHandler.post(mTuneComplete);
+          }
+
+          public void onProgramServiceChanged()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onProgramServiceChanged :");
+          }
+
+          public void onRadioTextChanged()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onRadioTextChanged :");
+          }
+          public void onExtenRadioTextChanged()
+          {
+             Log.d(LOGTAG, "Extended Radio Text changed:");
+          }
+          public void onAlternateFrequencyChanged()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onAlternateFrequencyChanged :");
+          }
+
+          public void onSignalStrengthChanged()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onSignalStrengthChanged :");
+          }
+
+          public void onSearchComplete()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onSearchComplete :");
+             /*Stop the update*/
+             mTestRunning = false;
+             Message updateStop = new Message();
+             updateStop.what = STATUS_DONE;
+             mUIUpdateHandlerHandler.sendMessage(updateStop);
+          }
+          public void onSearchListComplete()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onSearchListComplete :");
+
+          }
+
+          public void onMute(boolean bMuted)
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onMute :" + bMuted);
+          }
+
+          public void onAudioUpdate(boolean bStereo)
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onAudioUpdate :" + bStereo);
+          }
+
+          public void onStationRDSSupported(boolean bRDSSupported)
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onStationRDSSupported :" + bRDSSupported);
+          }
+          public void onRecordingStopped()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onDisabled :");
+          }
+          public void onFinishActivity()
+          {
+             Log.d(LOGTAG, "mServiceCallbacks.onFinishActivity:");
+          }
+      };
+      /* Radio Vars */
+     final Handler mHandler = new Handler();
+
+     final Runnable mTuneComplete = new Runnable(){
+         public void run(){
+             if((null != mMultiUpdateThread) &&(null != mSync))
+             {
+                 synchronized(mSync){
+                     mSync.notify();
+                 }
+             }
+            if((mTestSelected == SEARCH_TEST) && (mService != null)) {
+                /* On every Tune Complete generate the result for the current
+                Frequency*/
+                Message updateUI = new Message();
+                updateUI.what = STATUS_UPDATE;
+                int freq = FmSharedPreferences.getTunedFrequency();
+                updateUI.obj = (Object)GetFMStatsForFreq(freq);
+                if (updateUI.obj == null)
+                    updateUI.what = STATUS_DONE;
+                mUIUpdateHandlerHandler.sendMessage(updateUI);
+            }
+         }
+     };
+
+     private void stopCurTest() {
+         if (mTestRunning) {
+             switch(mTestSelected) {
+             case CUR_FREQ_TEST:
+                  break;
+             case SWEEP_TEST:
+             case CUR_MULTI_TEST:
+                  if (mMultiUpdateThread != null)
+                      mMultiUpdateThread.interrupt();
+                  break;
+             case SEARCH_TEST:
+                  mHandler.removeCallbacks(mTuneComplete);
+                  if (mService != null) {
+                      try {
+                           Message updateStop = new Message();
+                           updateStop.what = STATUS_DONE;
+                           mUIUpdateHandlerHandler.sendMessage(updateStop);
+                           mService.cancelSearch();
+                      } catch (RemoteException e) {
+                           e.printStackTrace();
+                      }
+                  }
+                  break;
+             }
+             mTestRunning = false;
+         }
+     }
+ }
diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java b/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
new file mode 100644
index 0000000..e83f61f
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
@@ -0,0 +1,1563 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.BroadcastReceiver;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.media.AudioManager;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.Window;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ImageView; //import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.text.TextUtils; //import android.app.ProgressDialog;
+import android.util.DisplayMetrics;
+
+import java.lang.ref.WeakReference; //import java.text.DecimalFormat;
+import java.util.HashMap;
+import java.util.ArrayList;
+
+import com.caf.utils.FrequencyPicker;
+import com.caf.utils.FrequencyPickerDialog;
+import android.content.ServiceConnection;
+
+import qcom.fmradio.FmConfig;
+import android.os.ServiceManager;
+
+import com.caf.fmradio.HorizontalNumberPicker.OnScrollFinishListener;
+import com.caf.fmradio.HorizontalNumberPicker.OnValueChangeListener;
+import com.caf.fmradio.HorizontalNumberPicker.Scale;
+
+public class FMTransmitterActivity extends Activity {
+   public static final String LOGTAG = "FMTransmitterActivity";
+
+   /* menu Identifiers */
+   private static final int MENU_SCAN_START = Menu.FIRST + 1;
+   private static final int MENU_SCAN_STOP = Menu.FIRST + 2;
+   private static final int MENU_SETTINGS = Menu.FIRST + 3;
+
+   /* Dialog Identifiers */
+   private static final int DIALOG_PRESET_LIST_AUTO_SET = 1;
+   private static final int DIALOG_PICK_FREQUENCY = 2;
+   private static final int DIALOG_PRESET_OPTIONS = 3;
+   private static final int DIALOG_PROGRESS_PROGRESS = 5;
+   private static final int DIALOG_CMD_FAILED_HDMI_ON = 14;
+   /* Activity Return ResultIdentifiers */
+   private static final int ACTIVITY_RESULT_SETTINGS = 1;
+
+   private static final int MAX_PRESETS = 7;
+   private static IFMTransmitterService mService = null;
+   private static FmSharedPreferences mPrefs;
+
+   /* Button Resources */
+   private ImageView mOnOffButton;
+   private  HorizontalNumberPicker mPicker;
+   /* 6 Preset Buttons */
+   private Button[] mPresetButtons = {null, null, null, null, null, null, null};
+   private int[] mPresetFrequencies = {0, 0, 0, 0, 0, 0, 0};
+   // private ImageButton mSearchButton;
+   private ImageView mForwardButton;
+   private ImageView mBackButton;
+
+   /* row in the station info layout */
+   private TextView mTransmitStaticMsgTV;
+   private TextView mTuneStationFrequencyTV;
+
+   /* Bottom row in the station info layout */
+   private TextView mRadioTextTV;
+
+   /* Current Status Indicators */
+   private static boolean mIsSearching = false;
+   private static boolean mSearchingResultStatus = false;
+
+   private boolean mInternalAntennaAvailable = false;
+
+   private Animation mAnimation = null;
+   private ScrollerText mRadioTextScroller = null;
+
+   private static int mTunedFrequency = 0;
+   private int mFrequency;
+   private int mPresetButtonIndex = -1;
+   private String mMetaData = null;
+   private String mPSData = null;
+
+   /* Radio Vars */
+   final Handler mHandler = new Handler();
+   private final Handler enableRadioHandler = new Handler();
+   private final Handler disableRadioHandler = new Handler();
+
+   /* Search Progress Dialog */
+   private ProgressDialog mProgressDialog = null;
+
+   private LoadedDataAndState SavedDataAndState = null;
+
+   private static int mDisplayWidth;
+   private static final int TEXTSIZE_PARAMETER_FOR_NUMBER_PICKER = 20;
+   private static final int FREQUENCY_STEP_SMALL = 50;
+   private static final int FREQUENCY_STEP_MEDIUM = 100;
+   private static final int FREQUENCY_STEP_LARGE = 200;
+   public static boolean mUpdatePickerValue = false;
+
+   /** Called when the activity is first created. */
+   @Override
+   public void onCreate(Bundle savedInstanceState) {
+
+      super.onCreate(savedInstanceState);
+      mPrefs = new FmSharedPreferences(this);
+      Log.d(LOGTAG, "onCreate - Height : "
+             + getWindowManager().getDefaultDisplay().getHeight()
+             + " - Width  : "
+             + getWindowManager().getDefaultDisplay().getWidth());
+
+      mDisplayWidth = getWindowManager().getDefaultDisplay().getWidth();
+      DisplayMetrics outMetrics = new DisplayMetrics();
+      getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
+
+      setContentView(R.layout.fmtransmitter);
+      SavedDataAndState = (LoadedDataAndState)getLastNonConfigurationInstance();
+      mAnimation = AnimationUtils.loadAnimation(this, R.anim.preset_select);
+
+      mPicker = (HorizontalNumberPicker)findViewById(R.id.fm_picker);
+      if(mPicker != null) {
+         mPicker.setTextSize(mDisplayWidth / TEXTSIZE_PARAMETER_FOR_NUMBER_PICKER);
+         mPicker.setDensity(outMetrics.densityDpi);
+         mPicker.setOnValueChangedListener(new OnValueChangeListener() {
+         @Override
+           public void onValueChange(HorizontalNumberPicker picker,
+             int oldVal, int newVal) {
+             // TODO Auto-generated method stub
+             valueToFrequency(newVal);
+             mHandler.post(mRadioChangeFrequency);
+           }
+         });
+       }
+       mOnOffButton = (ImageView)findViewById(R.id.btn_onoff);
+       if(mOnOffButton != null) {
+          mOnOffButton.setOnClickListener(mTurnOnOffClickListener);
+       }
+       mForwardButton = (ImageView)findViewById(R.id.btn_forward);
+       if(mForwardButton != null) {
+          mForwardButton.setOnClickListener(mForwardClickListener);
+       }
+       mBackButton = (ImageView)findViewById(R.id.btn_back);
+       if(mBackButton != null) {
+          mBackButton.setOnClickListener(mBackClickListener);
+       }
+
+       /* Preset Buttons */
+       mPresetButtons[0] = (Button)findViewById(R.id.presets_button_1);
+       mPresetButtons[1] = (Button)findViewById(R.id.presets_button_2);
+       mPresetButtons[2] = (Button)findViewById(R.id.presets_button_3);
+       mPresetButtons[3] = (Button)findViewById(R.id.presets_button_4);
+       mPresetButtons[4] = (Button)findViewById(R.id.presets_button_5);
+       mPresetButtons[5] = (Button)findViewById(R.id.presets_button_6);
+       mPresetButtons[6] = (Button)findViewById(R.id.presets_button_7);
+       for(int nButton = 0; nButton < MAX_PRESETS; nButton++) {
+          if (mPresetButtons[nButton] != null) {
+              mPresetButtons[nButton].setOnClickListener(
+                                        mPresetButtonClickListener);
+              mPresetButtons[nButton].setOnLongClickListener(
+                                            mPresetButtonOnLongClickListener);
+          }
+       }
+
+       mTransmitStaticMsgTV = (TextView)findViewById(R.id.transmit_msg_tv);
+       String str = getString(R.string.transmit_msg_string);
+       if(null != mPSData) {
+          str = mPSData.concat("\n").concat(str);
+       }
+       if(mTransmitStaticMsgTV != null) {
+          mTransmitStaticMsgTV.setText(str);
+       }
+
+       mTuneStationFrequencyTV = (TextView)findViewById(R.id.prog_frequency_tv);
+       if(mTuneStationFrequencyTV != null) {
+          mTuneStationFrequencyTV.setOnLongClickListener(
+                                       mFrequencyViewClickListener);
+       }
+       mRadioTextTV = (TextView)findViewById(R.id.radio_text_tv);
+
+       if((mRadioTextScroller == null) && (mRadioTextTV != null)) {
+          mRadioTextScroller = new ScrollerText(mRadioTextTV);
+       }
+
+       enableRadioOnOffUI(false);
+       //HDMI and FM concurrecny is not supported.
+       if(isHdmiOn()) {
+          showDialog(DIALOG_CMD_FAILED_HDMI_ON);
+       }else {
+          if(false == bindToService(this, osc)) {
+             Log.d(LOGTAG, "onCreate: Failed to Start Service");
+          }else {
+             Log.d(LOGTAG, "onCreate: Start Service completed successfully");
+          }
+       }
+   }
+
+   @Override
+   public void onRestart() {
+      Log.d(LOGTAG, "onRestart");
+      super.onRestart();
+   }
+
+   @Override
+   public void onStop() {
+      Log.d(LOGTAG, "onStop");
+      super.onStop();
+   }
+
+   @Override
+   public void onStart() {
+      super.onStart();
+      Log.d(LOGTAG, "onStart");
+      try {
+           if(mService != null) {
+              mService.registerCallbacks(mServiceCallbacks);
+           }
+      }catch(RemoteException e) {
+           e.printStackTrace();
+      }
+
+   }
+
+   @Override
+   protected void onPause() {
+      super.onPause();
+      mRadioTextScroller.stopScroll();
+      SavePreferences();
+   }
+
+   private static final String TX_PREF_LAST_TUNED_FREQUENCY = "last_tx_frequency";
+   private static final String TX_PRESET_FREQUENCY = "tx_preset_freq_";
+   private static final int DEFAULT_NO_FREQUENCY = 98100;
+
+   public void SavePreferences() {
+       Log.d(LOGTAG, "Save preferences");
+       SharedPreferences sp = getPreferences(Context.MODE_PRIVATE);
+       SharedPreferences.Editor ed = sp.edit();
+
+       ed.putInt(TX_PREF_LAST_TUNED_FREQUENCY, mTunedFrequency);
+
+       for(int presetIndex = 0; presetIndex < MAX_PRESETS; presetIndex++) {
+           ed.putInt(TX_PRESET_FREQUENCY + presetIndex,
+                                        mPresetFrequencies[presetIndex]);
+       }
+       ed.commit();
+   }
+
+   public void LoadPreferences() {
+      SharedPreferences sp = getPreferences(Context.MODE_PRIVATE);
+      mTunedFrequency = sp.getInt(
+                  TX_PREF_LAST_TUNED_FREQUENCY, DEFAULT_NO_FREQUENCY);
+      for(int presetIndex = 0; presetIndex < MAX_PRESETS; presetIndex++) {
+          mPresetFrequencies[presetIndex] = sp.getInt(
+                          TX_PRESET_FREQUENCY + presetIndex,
+                          DEFAULT_NO_FREQUENCY);
+      }
+   }
+
+   protected void setDisplayvalue() {
+      int max = mPrefs.getUpperLimit();
+      int min = mPrefs.getLowerLimit();
+      int step = mPrefs.getFrequencyStepSize();
+
+      if(mPicker == null)
+         return;
+
+      switch(step) {
+      case FREQUENCY_STEP_SMALL:
+           mPicker.setScale(Scale.SCALE_SMALL);
+           break;
+      case FREQUENCY_STEP_MEDIUM:
+           mPicker.setScale(Scale.SCALE_MEDIUM);
+           break;
+      case FREQUENCY_STEP_LARGE:
+           mPicker.setScale(Scale.SCALE_LARGE);
+           break;
+      }
+      int channels = (int)((max - min) / step);
+      String [] displayValues = new String[channels + 1];
+      for(int i = 0; i < displayValues.length; i++) {
+          displayValues[i] = String.valueOf((min + i * step) / 1000.0f);
+      }
+      if(mPicker != null) {
+         mPicker.setDisplayedValues(displayValues, true);
+         mPicker.setWrapSelectorWheel(true);
+         mPicker.invalidate();
+      }
+   }
+   @Override
+   public void onResume() {
+      super.onResume();
+      LoadPreferences();
+      if(mPicker != null) {
+         setDisplayvalue();
+      }
+      mUpdatePickerValue = true;
+      mHandler.post(mUpdateRadioText);
+      updateStationInfoToUI();
+      enableRadioOnOffUI();
+   }
+
+   @Override
+   public void onDestroy() {
+      unbindFromService(this);
+      mService = null;
+      Log.d(LOGTAG, "onDestroy: unbindFromService completed");
+      super.onDestroy();
+   }
+
+   private class LoadedDataAndState {
+      public LoadedDataAndState(){};
+      public boolean onOrOff;
+   }
+
+   @Override
+   public Object onRetainNonConfigurationInstance() {
+      final LoadedDataAndState data = new LoadedDataAndState();
+      if(mService != null) {
+         try {
+              data.onOrOff = mService.isFmOn();
+         }catch(RemoteException e) {
+              data.onOrOff = false;
+              e.printStackTrace();
+         }
+       }else {
+         data.onOrOff = false;
+       }
+       return data;
+   }
+
+   @Override
+   public boolean onCreateOptionsMenu(Menu menu) {
+      super.onCreateOptionsMenu(menu);
+      MenuItem item;
+      boolean radioOn = isFmOn();
+      boolean searchActive = isSearchActive();
+
+      item = menu.add(0, MENU_SCAN_START, 0, R.string.menu_scan_for_preset)
+                            .setIcon(R.drawable.ic_btn_search);
+      if(item != null) {
+         item.setVisible(!searchActive && radioOn);
+      }
+      item = menu.add(0, MENU_SCAN_STOP, 0, R.string.menu_scan_stop).setIcon(
+                                R.drawable.ic_btn_search);
+      if(item != null) {
+        item.setVisible(searchActive && radioOn);
+      }
+
+      /* Settings can be active */
+      item = menu.add(0, MENU_SETTINGS, 0, R.string.menu_settings).setIcon(
+                           android.R.drawable.ic_menu_preferences);
+
+      return true;
+   }
+
+   @Override
+   public boolean onPrepareOptionsMenu(Menu menu) {
+      super.onPrepareOptionsMenu(menu);
+
+      MenuItem item;
+      boolean radioOn = isFmOn();
+      boolean searchActive = isSearchActive();
+
+      item = menu.findItem(MENU_SCAN_START);
+      if(item != null) {
+         item.setVisible(!searchActive && radioOn);
+      }
+      item = menu.findItem(MENU_SCAN_STOP);
+      if(item != null) {
+         item.setVisible(searchActive && radioOn);
+      }
+      return true;
+   }
+
+   @Override
+   public boolean onOptionsItemSelected(MenuItem item) {
+      switch(item.getItemId()) {
+      case MENU_SETTINGS:
+           Intent launchPreferencesIntent = new Intent().setClass(this,
+                                                  Settings.class);
+           launchPreferencesIntent.putExtra(Settings.RX_MODE,false);
+           startActivityForResult(launchPreferencesIntent,
+                                   ACTIVITY_RESULT_SETTINGS);
+
+           return true;
+
+      case MENU_SCAN_START:
+           showDialog(DIALOG_PRESET_LIST_AUTO_SET);
+           return true;
+
+      case MENU_SCAN_STOP:
+           cancelSearch();
+           return true;
+
+      default:
+           break;
+      }
+      return super.onOptionsItemSelected(item);
+   }
+
+   private boolean isHdmiOn() {
+      //HDMI and FM concurrecny is not supported.
+      try {
+           String hdmiUserOption = android.provider.Settings.System.getString(
+                                            getContentResolver(), "HDMI_USEROPTION");
+      }catch(Exception ex){
+           Log.d(LOGTAG,"Get HDMI open failed");
+      }
+      return false;
+   }
+
+   @Override
+   protected Dialog onCreateDialog(int id) {
+      switch (id) {
+      case DIALOG_PRESET_LIST_AUTO_SET: {
+           return createPresetListAutoSelectWarnDlg(id);
+      }
+      case DIALOG_PICK_FREQUENCY: {
+           FmConfig fmConfig = FmSharedPreferences.getFMConfiguration();
+           return new FrequencyPickerDialog(this, fmConfig, mTunedFrequency,
+                                        mFrequencyChangeListener);
+      }
+      case DIALOG_PROGRESS_PROGRESS: {
+           return createProgressDialog(id);
+      }
+      case DIALOG_PRESET_OPTIONS: {
+           return createPresetOptionsDlg(id);
+      }
+      default:
+           break;
+      }
+      return null;
+   }
+
+   @Override
+   protected void onPrepareDialog(int id, Dialog dialog) {
+      super.onPrepareDialog(id, dialog);
+      switch(id) {
+      case DIALOG_PICK_FREQUENCY: {
+           FmConfig fmConfig = FmSharedPreferences.getFMConfiguration();
+           ((FrequencyPickerDialog) dialog).updateSteps(fmConfig.getChSpacing());
+           ((FrequencyPickerDialog) dialog).updateMinFreq(fmConfig.getLowerLimit());
+           ((FrequencyPickerDialog) dialog).updateMaxFreq(fmConfig.getUpperLimit());
+           ((FrequencyPickerDialog) dialog).UpdateFrequency(mTunedFrequency);
+            break;
+      }
+      case DIALOG_PRESET_OPTIONS: {
+           AlertDialog alertDlg = ((AlertDialog) dialog);
+           if((alertDlg != null) && (mPresetButtonIndex >= 0)
+               && (mPresetButtonIndex <= MAX_PRESETS)) {
+               int frequency = mPresetFrequencies[mPresetButtonIndex];
+               alertDlg.setTitle(PresetStation.getFrequencyString(frequency));
+           }
+           break;
+      }
+      default:
+           break;
+      }
+   }
+
+   @Override
+   protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+      super.onActivityResult(requestCode, resultCode, data);
+      Log.d(LOGTAG, "onActivityResult : requestCode -> " + requestCode);
+      Log.d(LOGTAG, "onActivityResult : resultCode -> " + resultCode);
+      if(requestCode == ACTIVITY_RESULT_SETTINGS) {
+         if(resultCode == RESULT_OK) {
+            if(data != null) {
+               String action = data.getAction();
+               if(action != null) {
+                  if(action.equals(Settings.RESTORE_FACTORY_DEFAULT_ACTION)) {
+                     RestoreDefaults();
+                     enableRadioOnOffUI();
+                     tuneRadio(mTunedFrequency);
+                  }
+               }
+            }
+         } //if ACTIVITY_RESULT_SETTINGS
+      }//if (resultCode == RESULT_OK)
+   }
+
+   /**
+     * @return true if a internal antenna is available.
+     *
+     */
+   boolean isInternalAntennaAvailable() {
+      return mInternalAntennaAvailable;
+   }
+
+   private Dialog createPresetOptionsDlg(int id) {
+      if((mPresetButtonIndex >= 0) && (mPresetButtonIndex <= MAX_PRESETS)) {
+         int frequency = mPresetFrequencies[mPresetButtonIndex];
+         AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(this);
+         dlgBuilder.setTitle(PresetStation.getFrequencyString(frequency));
+         ArrayList<String> arrayList = new ArrayList<String>();
+         arrayList.add(getResources().getString(R.string.preset_tune));
+         arrayList.add(getResources().getString(R.string.preset_replace));
+         arrayList.add(getResources().getString(R.string.preset_delete));
+         dlgBuilder.setCancelable(true);
+         dlgBuilder.setOnCancelListener(new DialogInterface.OnCancelListener() {
+             public void onCancel(DialogInterface dialog) {
+                mPresetButtonIndex = -1;
+                removeDialog(DIALOG_PRESET_OPTIONS);
+             }
+         });
+         String[] items = new String[arrayList.size()];
+         arrayList.toArray(items);
+         dlgBuilder.setItems(items, new DialogInterface.OnClickListener() {
+            public void onClick(DialogInterface dialog, int item) {
+               if((mPresetButtonIndex >= 0) &&
+                  (mPresetButtonIndex <= MAX_PRESETS)) {
+                  int frequency = mPresetFrequencies[mPresetButtonIndex];
+                  switch(item) {
+                  case 0: {
+                          // Tune to this station
+                          mPresetButtonIndex = -1;
+                          tuneRadio(frequency);
+                          break;
+                  }
+                  case 1: {
+                          // Replace preset Station with currently tuned
+                          // station
+                          Log.d(LOGTAG, "Replace station - " + frequency
+                                 + " with " + mTunedFrequency);
+                          if(!stationExists(mTunedFrequency)) {
+                             mPresetFrequencies[mPresetButtonIndex] = mTunedFrequency;
+                             mPresetButtonIndex = -1;
+                             setupPresetLayout();
+                             SavePreferences();
+                          }
+                          break;
+                  }
+                  case 2: {
+                          // Delete
+                          mPresetFrequencies[mPresetButtonIndex] = 0;
+                          mPresetButtonIndex = -1;
+                          setupPresetLayout();
+                          SavePreferences();
+                          break;
+                  }
+                  default: {
+                           // Should not happen
+                           mPresetButtonIndex = -1;
+                           break;
+                  }
+                 }// switch item
+               } // if(mPresetButtonStation != null)
+               removeDialog(DIALOG_PRESET_OPTIONS);
+            }// onClick
+        });
+        return dlgBuilder.create();
+      }
+      return null;
+   }
+
+   private Dialog createProgressDialog(int id) {
+      String msgStr = "";
+      String titleStr = "";
+      boolean bSearchActive = false;
+
+      if(isSearchActive()) {
+         msgStr = getString(R.string.msg_weak_searching);
+         titleStr = getString(R.string.msg_searching_title);
+         bSearchActive = true;
+      }
+
+      if(bSearchActive) {
+         mProgressDialog = new ProgressDialog(FMTransmitterActivity.this);
+         if(mProgressDialog != null) {
+            mProgressDialog.setTitle(titleStr);
+            mProgressDialog.setMessage(msgStr);
+            mProgressDialog.setIcon(R.drawable.ic_launcher_fm_tx);
+            mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
+            mProgressDialog.setCanceledOnTouchOutside(false);
+            mProgressDialog.setButton(DialogInterface.BUTTON_POSITIVE,
+                   getText(R.string.button_text_stop),
+                            new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog,
+                                                      int whichButton) {
+                                   cancelSearch();
+                                }
+                             });
+            mProgressDialog.setOnCancelListener(
+                   new DialogInterface.OnCancelListener() {
+                       public void onCancel(DialogInterface dialog) {
+                          cancelSearch();
+                       }
+                    });
+          }
+
+          Message msg = new Message();
+          msg.what = TIMEOUT_PROGRESS_DLG;
+          mSearchProgressHandler.sendMessageDelayed(msg, SHOWBUSY_TIMEOUT);
+      }
+      return mProgressDialog;
+   }
+
+   private Dialog createPresetListAutoSelectWarnDlg(int id) {
+      AlertDialog.Builder dlgBuilder = new AlertDialog.Builder(this);
+      dlgBuilder.setIcon(R.drawable.alert_dialog_icon).setTitle(
+                                R.string.presetlist_autoselect_title);
+      dlgBuilder.setMessage(getString(R.string.fmtx_autoselect_name));
+
+      dlgBuilder.setPositiveButton(R.string.alert_dialog_ok,
+                new DialogInterface.OnClickListener() {
+                   public void onClick(DialogInterface dialog, int whichButton) {
+                      /*
+                       * Since the presets will be changed, reset the page
+                       * number
+                       */
+                       initiateSearchList();
+                       setupPresetLayout();
+                       SavePreferences();
+                       removeDialog(DIALOG_PRESET_LIST_AUTO_SET);
+                   }
+                });
+
+                dlgBuilder.setNegativeButton(R.string.alert_dialog_cancel,
+                   new DialogInterface.OnClickListener() {
+                      public void onClick(DialogInterface dialog, int whichButton) {
+                         removeDialog(DIALOG_PRESET_LIST_AUTO_SET);
+                      }
+                   });
+      return (dlgBuilder.create());
+   }
+
+   private void RestoreDefaults() {
+      for(int index = 0; index < MAX_PRESETS; index++) {
+          mPresetFrequencies[index] = 0;
+      }
+      mTunedFrequency = FmSharedPreferences.getLowerLimit();
+      SavePreferences();
+   }
+
+   private View.OnLongClickListener mFrequencyViewClickListener = new View.OnLongClickListener() {
+      public boolean onLongClick(View v) {
+         showDialog(DIALOG_PICK_FREQUENCY);
+         return true;
+      }
+   };
+
+   private View.OnClickListener mForwardClickListener = new View.OnClickListener() {
+      public void onClick(View v) {
+         int frequency = FmSharedPreferences
+                                        .getNextTuneFrequency(mTunedFrequency);
+         Log.d(LOGTAG, "Tune Up: to " + frequency);
+         tuneRadio(frequency);
+      }
+   };
+
+   private View.OnClickListener mBackClickListener = new View.OnClickListener() {
+      public void onClick(View v) {
+         int frequency = FmSharedPreferences
+                                        .getPrevTuneFrequency(mTunedFrequency);
+         Log.d(LOGTAG, "Tune Down: to " + frequency);
+         tuneRadio(frequency);
+      }
+   };
+
+
+   private View.OnClickListener mPresetButtonClickListener = new View.OnClickListener() {
+      public void onClick(View view) {
+         Integer indexInteger = (Integer) view.getTag();
+         int index = indexInteger.intValue();
+         if((index >= 0) && (index <= MAX_PRESETS)) {
+            Log.d(LOGTAG, "station - " + index);
+            if(mPresetFrequencies[index] != 0) {
+               mTunedFrequency = mPresetFrequencies[index];
+               tuneRadio(mTunedFrequency);
+               view.startAnimation(mAnimation);
+            }
+         }
+      }
+   };
+
+   private boolean stationExists(int frequency) {
+      boolean exists = false;
+      for(int i = 0; i < MAX_PRESETS; i++) {
+          if(mPresetFrequencies[i] == frequency) {
+             exists = true;
+             break;
+          }
+      }
+      if(exists){
+         Toast t = Toast.makeText(this, getString(R.string.station_exists), Toast.LENGTH_SHORT);
+         t.show();
+      }
+      return exists;
+   }
+   private View.OnLongClickListener mPresetButtonOnLongClickListener = new View.OnLongClickListener() {
+      public boolean onLongClick(View view) {
+         Integer indexInteger = (Integer) view.getTag();
+         int index = indexInteger.intValue();
+         if((index >= 0) && (index <= MAX_PRESETS)) {
+            int frequency = mPresetFrequencies[index];
+            mPresetButtonIndex = index;
+            if(frequency > 0) {
+               showDialog(DIALOG_PRESET_OPTIONS);
+            }else if(!stationExists(mTunedFrequency)) {
+               mPresetFrequencies[index] = mTunedFrequency;
+               view.startAnimation(mAnimation);
+               setupPresetLayout();
+               SavePreferences();
+            }
+          }
+          return true;
+      }
+   };
+
+   final FrequencyPickerDialog.OnFrequencySetListener
+      mFrequencyChangeListener =
+         new FrequencyPickerDialog.OnFrequencySetListener() {
+            public void onFrequencySet
+            (
+              FrequencyPicker view, int frequency
+             ) {
+               Log.d(LOGTAG, "mFrequencyChangeListener:"
+                      + "onFrequencyChanged to : "
+                      + frequency);
+               tuneRadio(frequency);
+            }
+   };
+
+   private View.OnClickListener mTurnOnOffClickListener =
+      new View.OnClickListener() {
+         public void onClick(View v) {
+
+            if(isFmOn()) {
+               enableRadioHandler.removeCallbacks(enableRadioTask);
+               disableRadioHandler.removeCallbacks(disableRadioTask);
+               disableRadioHandler.postDelayed(disableRadioTask, 0);
+            }else {
+               enableRadioHandler.removeCallbacks(enableRadioTask);
+               disableRadioHandler.removeCallbacks(disableRadioTask);
+               enableRadioHandler.postDelayed(enableRadioTask, 0);
+            }
+            setTurnOnOffButtonImage();
+         }
+   };
+
+   private void setTurnOnOffButtonImage() {
+      if(isFmOn() == true) {
+         mOnOffButton.setImageResource(R.drawable.ic_btn_onoff);
+      }else {
+         /* Find a icon to indicate off */
+         mOnOffButton.setImageResource(R.drawable.ic_btn_onoff);
+      }
+   }
+
+   private void enableRadioOnOffButton() {
+      if(mOnOffButton != null) {
+         mOnOffButton.setEnabled(true);
+         mOnOffButton.setClickable(true);
+      }
+   }
+
+   private void disableRadioOnOffButton() {
+      if(mOnOffButton != null) {
+         mOnOffButton.setEnabled(false);
+         mOnOffButton.setClickable(false);
+      }
+   }
+
+   private void setHsPluggedInMsg() {
+      if(mRadioTextTV != null) {
+         mRadioTextTV.setVisibility(View.VISIBLE);
+         mRadioTextTV.setText(getString(R.string.msg_headsetpluggedin));
+      }
+   }
+
+   private Runnable enableRadioTask = new Runnable() {
+      public void run() {
+         enableRadio();
+      }
+   };
+
+   private Runnable disableRadioTask = new Runnable() {
+      public void run() {
+         disableRadio();
+      }
+   };
+
+   private void enableRadio() {
+      mIsSearching = false;
+      disableRadioOnOffButton();
+      if(mService != null) {
+         try {
+              if(mService.isHeadsetPlugged()) {
+                 setHsPluggedInMsg();
+                 enableRadioOnOffButton();
+              }else if(mService.isCallActive()) {
+                 enableRadioOnOffButton();
+              }else if(!mService.fmOn()) {
+                 enableRadioOnOffButton();
+              }
+         }catch(RemoteException e) {
+              enableRadioOnOffButton();
+              e.printStackTrace();
+         }
+      }
+   }
+
+   private void disableRadio() {
+      enableRadioOnOffUI(false);
+      cancelSearch();
+      if(mService != null) {
+         try {
+              if(!mService.fmOff()) {
+                 enableRadioOnOffButton();
+              }
+         }catch(RemoteException e) {
+              enableRadioOnOffButton();
+              e.printStackTrace();
+         }
+      }
+   }
+
+   public static void fmConfigure() {
+      if(mService != null) {
+         try {
+              mService.fmReconfigure();
+         }catch(RemoteException e) {
+              e.printStackTrace();
+         }
+      }
+   }
+
+   private void enableRadioOnOffUI() {
+      boolean bEnable = true;
+      //decide enable or disable UI based on
+      //Tx Service status.This is valid only
+      // when search is not in progress. When
+      // search is in progress UI should be active
+      if(false == isSearchActive()) {
+         bEnable = isFmOn();
+      }
+      /* Disable if no antenna/headset is available */
+      if(!readInternalAntennaAvailable()) {
+         Log.d(LOGTAG,"finding internal antenna avialable as false");
+         bEnable = false;
+      }
+      enableRadioOnOffUI(bEnable);
+   }
+
+   private void enableRadioOnOffUI(boolean bEnable) {
+      if(bEnable) {
+         if(mTuneStationFrequencyTV != null) {
+            mTuneStationFrequencyTV.setOnLongClickListener(
+                                            mFrequencyViewClickListener);
+         }
+         if(mRadioTextScroller != null) {
+            mRadioTextScroller.startScroll();
+         }
+      }else {
+         if(mTuneStationFrequencyTV != null) {
+            mTuneStationFrequencyTV.setOnLongClickListener(null);
+         }
+         if(mRadioTextScroller != null) {
+            mRadioTextScroller.stopScroll();
+         }
+      }
+
+      if(mForwardButton != null) {
+         mForwardButton.setVisibility(((bEnable == true) ? View.VISIBLE
+                                : View.INVISIBLE));
+      }
+      if(mBackButton != null) {
+         mBackButton.setVisibility(((bEnable == true) ? View.VISIBLE
+                                : View.INVISIBLE));
+      }
+      if(mTransmitStaticMsgTV != null) {
+         mTransmitStaticMsgTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                : View.INVISIBLE));
+      }
+      if(mTuneStationFrequencyTV != null) {
+         mTuneStationFrequencyTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                : View.INVISIBLE));
+      }
+      if(mRadioTextTV != null) {
+         mRadioTextTV.setVisibility(((bEnable == true) ? View.VISIBLE
+                                : View.INVISIBLE));
+      }
+      if(mPicker != null) {
+         mPicker.setVisibility(
+         bEnable ? View.VISIBLE : View.INVISIBLE );
+      }
+      try {
+           if(null != mService) {
+              if(mService.isHeadsetPlugged()) {
+                 Log.d(LOGTAG,"headset plugged in");
+                 if(mRadioTextTV != null) {
+                    mRadioTextTV.setVisibility(View.VISIBLE);
+                     mRadioTextTV.setText(getString(R.string.msg_headsetpluggedin));
+                 }
+                 if(mOnOffButton != null) {
+                    mOnOffButton.setEnabled(false);
+                 }
+              }else if(mService.isCallActive()) {
+                 Log.d(LOGTAG,"call active");
+                 if(mRadioTextTV != null) {
+                    mRadioTextTV.setVisibility(View.VISIBLE);
+                    mRadioTextTV.setText(getString(R.string.msg_callactive));
+                 }
+                 if(mOnOffButton != null) {
+                    mOnOffButton.setEnabled(false);
+                 }
+              }else {
+                 if(mRadioTextTV != null) {
+                    mRadioTextTV.setText("");
+                 }
+                 if(mOnOffButton != null) {
+                    mOnOffButton.setEnabled(true);
+                 }
+              }
+           }else {
+              Log.d(LOGTAG,"Service null");
+              if(mRadioTextTV != null) {
+                 mRadioTextTV.setText("");
+              }
+              if(mOnOffButton != null) {
+                 mOnOffButton.setEnabled(true);
+              }
+           }
+      }catch(RemoteException e) {
+           e.printStackTrace();
+      }
+
+      for(int nButton = 0; nButton < MAX_PRESETS; nButton++) {
+          if(mPresetButtons[nButton] != null) {
+             mPresetButtons[nButton].setEnabled(bEnable);
+          }
+      }
+   }
+
+   private void updateSearchProgress() {
+      boolean searchActive = isSearchActive();
+      if(searchActive) {
+         synchronized (this) {
+            if(mProgressDialog == null) {
+               showDialog(DIALOG_PROGRESS_PROGRESS);
+            }else {
+               Message msg = new Message();
+               msg.what = UPDATE_PROGRESS_DLG;
+               mSearchProgressHandler.sendMessage(msg);
+            }
+         }
+      }else {
+         Message msg = new Message();
+         msg.what = END_PROGRESS_DLG;
+         mSearchProgressHandler.sendMessage(msg);
+      }
+   }
+
+   private void resetSearchProgress() {
+      Message msg = new Message();
+      msg.what = END_PROGRESS_DLG;
+      mSearchProgressHandler.sendMessage(msg);
+   }
+
+   private void setupPresetLayout() {
+      for(int buttonIndex = 0; (buttonIndex < MAX_PRESETS); buttonIndex++) {
+          if(mPresetButtons[buttonIndex] != null) {
+             String display = "";
+             int frequency = mPresetFrequencies[buttonIndex];
+             if(frequency != 0) {
+                display = PresetStation.getFrequencyString(frequency);
+             }else {
+                display = this.getString(R.string.add_station);
+             }
+             mPresetButtons[buttonIndex].setText(display);
+             mPresetButtons[buttonIndex].setTag(new Integer(buttonIndex));
+          }
+      }
+   }
+
+   private void updateStationInfoToUI() {
+      mTuneStationFrequencyTV.setText(PresetStation.getFrequencyString(mTunedFrequency));
+      if((mPicker != null) && mUpdatePickerValue) {
+          mPicker.setValue(((mTunedFrequency - mPrefs.getLowerLimit())
+                              / mPrefs.getFrequencyStepSize()));
+      }
+      mRadioTextTV.setText("");
+      setupPresetLayout();
+   }
+
+   private boolean isFmOn() {
+      boolean bOn = false;
+      if(mService != null) {
+         try {
+              bOn = mService.isFmOn();
+         }catch (RemoteException e) {
+              e.printStackTrace();
+         }
+      }
+      return (bOn);
+   }
+
+   private boolean isSearchActive() {
+      return (mIsSearching);
+   }
+
+   public static int getCurrentTunedFrequency() {
+      return mTunedFrequency;
+   }
+
+   private void cancelSearch() {
+      synchronized (this) {
+         if(mService != null) {
+            try {
+                 if(mIsSearching == true) {
+                    if(true == mService.cancelSearch()) {
+                    }
+                 }
+            }catch (RemoteException e) {
+                 e.printStackTrace();
+            }
+         }
+      }
+      updateSearchProgress();
+   }
+
+   /** get Weakest Stations */
+   private void initiateSearchList() {
+      synchronized (this) {
+         mIsSearching = true;
+         if(mService != null) {
+            try {
+                 mSearchingResultStatus = false;
+                 mIsSearching = mService.searchWeakStationList(MAX_PRESETS);
+            }catch (RemoteException e) {
+                 e.printStackTrace();
+            }
+            updateSearchProgress();
+         }
+      }
+   }
+
+   /** get Internal Antenna Available mode Stations */
+   private boolean readInternalAntennaAvailable() {
+      mInternalAntennaAvailable = false;
+      if(mService != null) {
+         try {
+              mInternalAntennaAvailable = mService
+                                               .isInternalAntennaAvailable();
+         }catch (RemoteException e) {
+              e.printStackTrace();
+         }
+      }
+      Log.e(LOGTAG, "readInternalAntennaAvailable: internalAntenna : "
+                                + mInternalAntennaAvailable);
+      return mInternalAntennaAvailable;
+   }
+
+   private static final int UPDATE_PROGRESS_DLG = 1;
+   private static final int END_PROGRESS_DLG = 2;
+   private static final int TIMEOUT_PROGRESS_DLG = 3;
+   private static final int SHOWBUSY_TIMEOUT = 300000;
+   private Handler mSearchProgressHandler = new Handler() {
+      public void handleMessage(Message msg) {
+         if(msg.what == UPDATE_PROGRESS_DLG) {
+            if(mProgressDialog != null) {
+               mTuneStationFrequencyTV.setText(PresetStation.getFrequencyString(mTunedFrequency));
+               String titleStr = getString( R.string.msg_search_title,
+                                            PresetStation.getFrequencyString(mTunedFrequency));
+
+               mProgressDialog.setTitle(titleStr);
+            }
+         }else if (msg.what == END_PROGRESS_DLG) {
+            mSearchProgressHandler.removeMessages(END_PROGRESS_DLG);
+            mSearchProgressHandler.removeMessages(UPDATE_PROGRESS_DLG);
+            mSearchProgressHandler.removeMessages(TIMEOUT_PROGRESS_DLG);
+            removeDialog(DIALOG_PROGRESS_PROGRESS);
+            mProgressDialog = null;
+         }else if (msg.what == TIMEOUT_PROGRESS_DLG) {
+            cancelSearch();
+         }
+      }
+  };
+
+  private void tuneRadio(int frequency) {
+     if(mService != null) {
+        try {
+             mService.tune(frequency);
+             updateStationInfoToUI();
+        }catch (RemoteException e) {
+             e.printStackTrace();
+        }
+     }
+  }
+
+  private void resetFMStationInfoUI() {
+     mRadioTextTV.setText("");
+     mRadioTextScroller.stopScroll();
+     mUpdatePickerValue = true;
+     updateStationInfoToUI();
+  }
+
+
+  final Runnable mUpdateStationInfo = new Runnable() {
+     public void run() {
+        updateSearchProgress();
+        resetFMStationInfoUI();
+     }
+  };
+
+  final Runnable mSearchListComplete = new Runnable() {
+     public void run() {
+        Log.d(LOGTAG, "mSearchListComplete: ");
+        mIsSearching = false;
+
+        if(mService != null) {
+           try {
+                if(mSearchingResultStatus) {
+                   int[] searchList = mService.getSearchList();
+                   if(searchList != null) {
+                      for(int station = 0; (station < searchList.length)
+                            && (station < MAX_PRESETS); station++) {
+                           Log.d(LOGTAG, "mSearchListComplete: [" + station
+                                  + "] = " + searchList[station]);
+                           mPresetFrequencies[station] = searchList[station];
+                      }
+                   }
+           }
+           if(!mService.isHeadsetPlugged()) {
+              mService.fmRestart();
+              /* Tune to last tuned frequency */
+              tuneRadio(mTunedFrequency);
+              updateSearchProgress();
+              resetFMStationInfoUI();
+              setupPresetLayout();
+              SavePreferences();
+           }else {
+              updateSearchProgress();
+              enableRadioHandler.removeCallbacks(enableRadioTask);
+              disableRadioHandler.removeCallbacks(disableRadioTask);
+              disableRadioHandler.postDelayed(disableRadioTask, 0);
+           }
+        }catch (RemoteException e) {
+           e.printStackTrace();
+        }
+     }
+   }
+  };
+
+
+
+  final Runnable mUpdateRadioText = new Runnable() {
+     public void run() {
+        String str = "";
+        if((mService != null) && isFmOn()) {
+            try {
+                 /* Get Radio Text and update the display */
+                 str = mService.getRadioText();
+                 if(null != mMetaData) {
+                    Log.d(LOGTAG,"meta data is "+mMetaData);
+                    str = str.concat(mMetaData);
+                 }else {
+                    str = str.concat("...");
+                 }
+                 /* Update only if all the characters are printable */
+                 if(TextUtils.isGraphic(str)) {
+                    Log.d(LOGTAG, "mUpdateRadioText: Updatable string: ["
+                              + str + "]");
+                    mRadioTextTV.setText(str);
+                 }else if (TextUtils.isEmpty(str)) {
+                    mRadioTextTV.setText("");
+                 }else {
+                    Log.d(LOGTAG, "RDS has non printable stuff");
+                    mRadioTextTV.setText("");
+                 }
+
+                 mRadioTextScroller.startScroll();
+                 String szRTStr = getString(R.string.transmit_msg_string);
+                 mPSData = mService.getPSData();
+                 if(null != mPSData ) {
+                    szRTStr = mPSData.concat("\n").concat(szRTStr);
+                 }else {
+                    Log.d(LOGTAG, "mPSData is NULL");
+                 }
+                 mTransmitStaticMsgTV.setText(szRTStr);
+            }catch (RemoteException e) {
+                 e.printStackTrace();
+            }
+        }
+     }
+  };
+
+  final Runnable mRadioChangeFrequency = new Runnable(){
+     public void run() {
+        mUpdatePickerValue = false;
+        tuneRadio(mFrequency);
+     }
+  };
+
+  protected int valueToFrequency(int value) {
+     mFrequency = mPrefs.getLowerLimit() + value *
+                             mPrefs.getFrequencyStepSize();
+     return mFrequency;
+  }
+
+  private void DebugToasts(String str, int duration) {
+     Toast.makeText(this, str, duration).show();
+  }
+
+  /**
+    * This Handler will scroll the text view. On startScroll, the scrolling
+    * starts after SCROLLER_START_DELAY_MS The Text View is scrolled left one
+    * character after every SCROLLER_UPDATE_DELAY_MS When the entire text is
+    * scrolled, the scrolling will restart after SCROLLER_RESTART_DELAY_MS
+    */
+  private static final class ScrollerText extends Handler {
+
+     private static final byte SCROLLER_STOPPED = 0x51;
+     private static final byte SCROLLER_STARTING = 0x52;
+     private static final byte SCROLLER_RUNNING = 0x53;
+
+     private static final int SCROLLER_MSG_START = 0xF1;
+     private static final int SCROLLER_MSG_TICK = 0xF2;
+     private static final int SCROLLER_MSG_RESTART = 0xF3;
+
+     private static final int SCROLLER_START_DELAY_MS = 1000;
+     private static final int SCROLLER_RESTART_DELAY_MS = 3000;
+     private static final int SCROLLER_UPDATE_DELAY_MS = 200;
+
+     private final WeakReference<TextView> mView;
+
+     private byte mStatus = SCROLLER_STOPPED;
+     String mOriginalString;
+     int mStringlength = 0;
+     int mIteration = 0;
+
+     ScrollerText(TextView v) {
+        mView = new WeakReference<TextView>(v);
+     }
+
+     /**
+      * Scrolling Message Handler
+      */
+     @Override
+     public void handleMessage(Message msg) {
+        switch (msg.what) {
+        case SCROLLER_MSG_START:
+             mStatus = SCROLLER_RUNNING;
+             updateText();
+             break;
+        case SCROLLER_MSG_TICK:
+             updateText();
+             break;
+        case SCROLLER_MSG_RESTART:
+             if(mStatus == SCROLLER_RUNNING) {
+                startScroll();
+             }
+             break;
+        }
+     }
+
+     /**
+      * Moves the text left by one character and posts a delayed message for
+      * next update after SCROLLER_UPDATE_DELAY_MS. If the entire string is
+      * scrolled, then it displays the entire string and waits for
+      * SCROLLER_RESTART_DELAY_MS for scrolling restart
+      */
+     void updateText() {
+        if(mStatus != SCROLLER_RUNNING) {
+           return;
+        }
+
+        removeMessages(SCROLLER_MSG_TICK);
+
+        final TextView textView = mView.get();
+        if(textView != null) {
+           String szStr2 = "";
+           if(mStringlength > 0) {
+              mIteration++;
+              if(mIteration >= mStringlength) {
+                 mIteration = 0;
+                 sendEmptyMessageDelayed(SCROLLER_MSG_RESTART,
+                                            SCROLLER_RESTART_DELAY_MS);
+              }else {
+                 sendEmptyMessageDelayed(SCROLLER_MSG_TICK,
+                                            SCROLLER_UPDATE_DELAY_MS);
+              }
+              szStr2 = mOriginalString.substring(mIteration);
+           }
+           textView.setText(szStr2);
+        }
+     }
+
+     /**
+      * Stops the scrolling The textView will be set to the original string.
+      */
+     void stopScroll() {
+        mStatus = SCROLLER_STOPPED;
+        removeMessages(SCROLLER_MSG_TICK);
+        removeMessages(SCROLLER_MSG_RESTART);
+        removeMessages(SCROLLER_MSG_START);
+        resetScroll();
+     }
+
+     /**
+      * Resets the scroll to display the original string.
+      */
+
+     private void resetScroll() {
+        mIteration = 0;
+        final TextView textView = mView.get();
+        if(textView != null) {
+           textView.setText(mOriginalString);
+        }
+     }
+
+     /**
+       * Starts the Scrolling of the TextView after a delay of
+       * SCROLLER_START_DELAY_MS Starts only if Length > 0
+       */
+     void startScroll() {
+        final TextView textView = mView.get();
+           if(textView != null) {
+              mOriginalString = (String) textView.getText();
+              mStringlength = mOriginalString.length();
+              if(mStringlength > 0) {
+                 mStatus = SCROLLER_STARTING;
+                 sendEmptyMessageDelayed(SCROLLER_MSG_START,
+                                           SCROLLER_START_DELAY_MS);
+              }
+           }
+     }
+  }
+
+  public static IFMTransmitterService sService = null;
+  private static HashMap<Context, ServiceBinder> sConnectionMap = new HashMap<Context, ServiceBinder>();
+
+  public static boolean bindToService(Context context) {
+     Log.e(LOGTAG, "bindToService: Context");
+     return bindToService(context, null);
+  }
+
+  public static boolean bindToService(Context context,
+                        ServiceConnection callback) {
+     Log.e(LOGTAG, "bindToService: Context with serviceconnection callback");
+     context.startService(new Intent(context, FMTransmitterService.class));
+     ServiceBinder sb = new ServiceBinder(callback);
+     sConnectionMap.put(context, sb);
+     return context.bindService((new Intent()).setClass(context,
+                                FMTransmitterService.class), sb, 0);
+  }
+
+  public static void unbindFromService(Context context) {
+     ServiceBinder sb = (ServiceBinder) sConnectionMap.remove(context);
+     Log.e(LOGTAG, "unbindFromService: Context");
+     if(sb == null) {
+        Log.e(LOGTAG, "Trying to unbind for unknown Context");
+        return;
+     }
+     context.unbindService(sb);
+     if(sConnectionMap.isEmpty()) {
+        // presumably there is nobody interested in the service at this
+        // point,
+        // so don't hang on to the ServiceConnection
+        sService = null;
+     }
+  }
+
+  private static class ServiceBinder implements ServiceConnection {
+     ServiceConnection mCallback;
+
+     ServiceBinder(ServiceConnection callback) {
+        mCallback = callback;
+     }
+
+     public void onServiceConnected(ComponentName className,
+                                android.os.IBinder service) {
+        sService = IFMTransmitterService.Stub.asInterface(service);
+        if(mCallback != null) {
+           Log.e(LOGTAG, "onServiceConnected: mCallback");
+           mCallback.onServiceConnected(className, service);
+        }
+     }
+
+     public void onServiceDisconnected(ComponentName className) {
+        if(mCallback != null) {
+           mCallback.onServiceDisconnected(className);
+        }
+        sService = null;
+     }
+  }
+
+  private ServiceConnection osc = new ServiceConnection() {
+     public void onServiceConnected(ComponentName classname, IBinder obj) {
+        mService = IFMTransmitterService.Stub.asInterface(obj);
+        Log.e(LOGTAG, "ServiceConnection: onServiceConnected: ");
+        if(mService != null) {
+           try {
+                mService.registerCallbacks(mServiceCallbacks);
+                if(false == mService.isHeadsetPlugged()) {
+                   Log.e(LOGTAG, "return for isHeadsetPlugged is false");
+                   if(SavedDataAndState == null) {
+                      enableRadioHandler.removeCallbacks(enableRadioTask);
+                      disableRadioHandler.removeCallbacks(disableRadioTask);
+                      enableRadioHandler.postDelayed(enableRadioTask, 0);
+                   }else if (SavedDataAndState.onOrOff) {
+                      enableRadioOnOffUI(true);
+                   }else {
+                      enableRadioOnOffUI(false);
+                   }
+                }else {
+                   enableRadioOnOffUI(false);
+                }
+           }catch (RemoteException e) {
+                e.printStackTrace();
+           }
+           return;
+        }else {
+           Log.e(LOGTAG, "IFMTransmitterService onServiceConnected failed");
+        }
+        // Service is dead or not playing anything. If we got here as part
+        // of a "play this file" Intent, exit. Otherwise go to the Music
+        // app start screen.
+        if(getIntent().getData() == null) {
+            Intent intent = new Intent(Intent.ACTION_MAIN);
+            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            intent.setClass(FMTransmitterActivity.this,
+                                 FMTransmitterActivity.class);
+            startActivity(intent);
+        }
+        finish();
+     }
+
+     public void onServiceDisconnected(ComponentName classname) {
+     }
+  };
+
+  private IFMTransmitterServiceCallbacks.Stub mServiceCallbacks = new IFMTransmitterServiceCallbacks.Stub() {
+
+     public void onDisabled() throws RemoteException {
+        mHandler.post(mRadioStateUpdated);
+     }
+
+     public void onRadioReset() throws RemoteException {
+        mHandler.post(mRadioReset);
+     }
+
+     public void onEnabled(boolean status) throws RemoteException {
+        mHandler.post(mRadioStateUpdated);
+     }
+
+     public void onRadioTextChanged() throws RemoteException {
+     }
+
+     public void onSearchListComplete(boolean status) throws RemoteException {
+        mIsSearching = false;
+        mSearchingResultStatus = status;
+        mHandler.post(mSearchListComplete);
+     }
+
+     public void onTuneStatusChanged(int frequency) throws RemoteException {
+        mTunedFrequency = frequency;
+        Log.d(LOGTAG, "onTuneStatusChanged: Frequency : " + mTunedFrequency);
+        FmSharedPreferences.setTunedFrequency(mTunedFrequency);
+        SavePreferences();
+        mHandler.post(mUpdateStationInfo);
+     }
+
+     public void onReconfigured() throws RemoteException {
+        RestoreDefaults();
+     }
+
+     public void onMetaDataChanged(String metaStr)  throws RemoteException {
+        Log.d(LOGTAG,"meta data is "+metaStr);
+        mMetaData = new String (metaStr);
+        mHandler.post(mUpdateRadioText);
+     }
+
+     public void onPSInfoSent(String psStr ) throws RemoteException {
+                    Log.d(LOGTAG,"PS String data is "+psStr);
+                    mPSData = new String (psStr);
+                    mHandler.post(mUpdateRadioText);
+     }
+  };
+
+  final Runnable mRadioStateUpdated = new Runnable() {
+     public void run() {
+        enableRadioOnOffButton();
+        /* Update UI to FM On State */
+        if(isFmOn()) {
+           enableRadioOnOffUI(true);
+           /* Tune to the last tuned frequency */
+           mUpdatePickerValue = true;
+           LoadPreferences();
+           tuneRadio(mTunedFrequency);
+         }else {
+           /* Save the existing frequency */
+           FmSharedPreferences.setTunedFrequency(mTunedFrequency);
+           SavePreferences();
+           removeDialog(DIALOG_PRESET_LIST_AUTO_SET);
+           enableRadioOnOffUI(false);
+         }
+
+     }
+  };
+
+  final Runnable mRadioReset = new Runnable() {
+     public void run() {
+        /* Save the existing frequency */
+        resetSearchProgress();
+        FmSharedPreferences.setTunedFrequency(mTunedFrequency);
+        SavePreferences();
+        enableRadioOnOffUI(false);
+     }
+  };
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterConfigReceiver.java b/fmapp2/src/com/caf/fmradio/FMTransmitterConfigReceiver.java
new file mode 100644
index 0000000..4f15188
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMTransmitterConfigReceiver.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2011-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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.content.Intent;
+import android.content.BroadcastReceiver;
+import android.content.pm.PackageManager;
+import android.content.Context;
+import android.content.ComponentName;
+import android.util.Log;
+import android.os.SystemProperties;
+import java.io.FileReader;
+import java.lang.String;
+
+
+public class FMTransmitterConfigReceiver extends BroadcastReceiver {
+
+    private static FileReader socinfo_fd;
+    private static char[] socinfo = new char[20];
+    private static String build_id = "1";
+
+    private static final String TAG = "FMFolderConfigReceiver";
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        String action = intent.getAction();
+        Log.d(TAG, "Received intent: " + action);
+        if((action != null) && action.equals("android.intent.action.BOOT_COMPLETED")) {
+            Log.d(TAG, "boot complete intent received");
+            boolean isFmTransmitterSupported = SystemProperties.getBoolean("ro.fm.transmitter",true);
+
+            if ("msm7630_surf".equals(SystemProperties.get("ro.board.platform"))) {
+                Log.d(TAG,"this is msm7630_surf");
+                try {
+                    socinfo_fd = new FileReader("/sys/devices/system/soc/soc0/build_id");
+                    socinfo_fd.read(socinfo,0,20);
+                    socinfo_fd.close();
+                } catch(Exception e) {
+                    Log.e(TAG,"Exception in FileReader");
+                }
+                Log.d(TAG, "socinfo=" +socinfo);
+                build_id = new String(socinfo,17,1);
+                Log.d(TAG, "build_id=" +build_id);
+            }
+            if ((!isFmTransmitterSupported) || (build_id.equals("0"))) {
+            PackageManager pManager = context.getPackageManager();
+               if (pManager != null) {
+                   Log.d(TAG, "disableing the FM Transmitter");
+                   ComponentName fmTransmitter = new ComponentName("com.caf.fmradio", "com.caf.fmradio.FMTransmitterActivity");
+                   pManager.setComponentEnabledSetting(fmTransmitter, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+                                                    PackageManager.DONT_KILL_APP);
+               }
+           }
+        }
+   }
+}
diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterService.java b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java
new file mode 100644
index 0000000..a720868
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FMTransmitterService.java
@@ -0,0 +1,1221 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import java.lang.ref.WeakReference;
+
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.app.Service;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.media.AudioManager;
+import android.media.AudioSystem;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Message;
+import android.os.PowerManager;
+import android.os.SystemProperties;
+import android.os.PowerManager.WakeLock;
+import android.os.RemoteException;
+import android.telephony.PhoneStateListener;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.widget.RemoteViews;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.BroadcastReceiver;
+import qcom.fmradio.FmReceiver;
+import qcom.fmradio.FmTransmitter;
+import qcom.fmradio.FmRxEvCallbacksAdaptor;
+import qcom.fmradio.FmTransmitterCallbacksAdaptor;
+import qcom.fmradio.FmRxRdsData;
+import qcom.fmradio.FmConfig;
+import com.caf.utils.A2dpDeviceStatus;
+import android.media.IRemoteControlDisplay;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.graphics.Bitmap;
+import android.media.IAudioService;
+import android.media.MediaMetadataRetriever;
+
+
+/**
+ * Provides "background" FM Radio (that uses the hardware) capabilities,
+ * allowing the user to switch between activities without stopping playback.
+ */
+public class FMTransmitterService extends Service
+{
+   private static final int FMTRANSMITTERSERVICE_STATUS = 102;
+   private static final int FM_TX_PROGRAM_TYPE = 0;
+   private static final int FM_TX_PROGRAM_ID = 0x1234;
+   private static final int FM_TX_PS_REPEAT_COUNT = 1;
+
+   private static final String FMRADIO_DEVICE_FD_STRING = "/dev/radio0";
+   private static final String LOGTAG = "FMTxService";//FMRadio.LOGTAG;
+   private static final String QFM_STRING ="QFMRADIO";
+
+   private static FmReceiver mReceiver;
+   private static FmTransmitter mTransmitter;
+   private int mTunedFrequency = 0;
+
+   private static FmSharedPreferences mPrefs;
+   private IFMTransmitterServiceCallbacks mCallbacks;
+   private WakeLock mWakeLock;
+   private int mServiceStartId = -1;
+   private boolean mServiceInUse = false;
+   private boolean mMuted = false;
+   private boolean mResumeAfterCall = false;
+
+   private boolean mFMOn = false;
+   private int mFMSearchStations = 0;
+
+   private FmRxRdsData mFMRxRDSData=null;
+   final Handler mHandler = new Handler();
+   private BroadcastReceiver mHeadsetReceiver = null;
+   boolean mHeadsetPlugged = false;
+   // Track A2dp Device status changes
+   private A2dpDeviceStatus mA2dpDeviceState = null;
+   // interval after which we stop the service when idle
+   private static final int IDLE_DELAY = 60000;
+
+   private static String RText = " ";
+   private IAudioService mAudioService;
+   private AudioManager mAudioManager;
+   private Metadata mMetadata;
+   RdsDisplay mRds;
+
+   public FMTransmitterService() {
+   }
+
+   @Override
+   public void onCreate() {
+      super.onCreate();
+
+      mCallbacks = null;
+      mPrefs = new FmSharedPreferences(this);
+
+      PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
+      mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getClass().getName());
+      mWakeLock.setReferenceCounted(false);
+
+      // If the service was idle, but got killed before it stopped itself, the
+      // system will relaunch it. Make sure it gets stopped again in that case.
+
+      TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+      tmgr.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+
+      //register for A2DP utility interface
+      mA2dpDeviceState = new A2dpDeviceStatus(getApplicationContext());
+      Message msg = mDelayedStopHandler.obtainMessage();
+      mDelayedStopHandler.sendMessageDelayed(msg, IDLE_DELAY);
+      mAudioManager = new AudioManager(getApplicationContext());
+      mMetadata = new Metadata();
+      registerHeadsetListener();
+      mRds = new RdsDisplay();
+      mAudioManager.registerRemoteControlDisplay(mRds);
+   }
+
+   @Override
+   public void onDestroy() {
+      Log.d(LOGTAG, "onDestroy");
+      if (isFmOn())
+      {
+         Log.e(LOGTAG, "Service being destroyed while still playing.");
+      }
+
+      // make sure there aren't any other messages coming
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      mAudioManager.unregisterRemoteControlDisplay(mRds);
+
+      /* Unregister the headset Broadcase receiver */
+      if (mHeadsetReceiver != null) {
+          unregisterReceiver(mHeadsetReceiver);
+          mHeadsetReceiver = null;
+      }
+      /* Since the service is closing, disable the receiver */
+      fmOff();
+
+      TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+      tmgr.listen(mPhoneStateListener, 0);
+
+      mWakeLock.release();
+      super.onDestroy();
+   }
+
+   @Override
+   public IBinder onBind(Intent intent) {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      mServiceInUse = true;
+      /* Application/UI is attached, so get out of lower power mode */
+      setLowPowerMode(false);
+      Log.d(LOGTAG, "onBind");
+      return mBinder;
+   }
+
+   @Override
+   public void onRebind(Intent intent) {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      mServiceInUse = true;
+      /* Application/UI is attached, so get out of lower power mode */
+      setLowPowerMode(false);
+      Log.d(LOGTAG, "onRebind");
+   }
+
+   @Override
+   public void onStart(Intent intent, int startId) {
+      Log.d(LOGTAG, "onStart");
+      mServiceStartId = startId;
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+
+      // make sure the service will shut down on its own if it was
+      // just started but not bound to and nothing is playing
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      Message msg = mDelayedStopHandler.obtainMessage();
+      mDelayedStopHandler.sendMessageDelayed(msg, IDLE_DELAY);
+   }
+
+   @Override
+   public boolean onUnbind(Intent intent) {
+      mServiceInUse = false;
+      Log.d(LOGTAG, "onUnbind");
+
+      /* Application/UI is not attached, so go into lower power mode */
+      unregisterCallbacks();
+      setLowPowerMode(true);
+      if (isFmOn())
+      {
+         // something is currently playing, or will be playing once
+         // an in-progress call ends, so don't stop the service now.
+         return true;
+      }
+
+      stopSelf(mServiceStartId);
+      return true;
+   }
+
+   /* Handle Phone Call + FM Concurrency */
+   private PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
+      @Override
+      public void onCallStateChanged(int state, String incomingNumber) {
+          Log.d(LOGTAG, "onCallStateChanged: State - " + state );
+          Log.d(LOGTAG, "onCallStateChanged: incomingNumber - " + incomingNumber );
+          fmActionOnCallState(state );
+      }
+
+      // NEED TO CHECK ACTION TO BE TAKEN ON DATA ACTIVITY
+   };
+   private void fmActionOnCallState( int state ) {
+       //if Call Status is non IDLE we need to Mute FM as well stop recording if
+       //any. Similarly once call is ended FM should be unmuted.
+           AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+           if((TelephonyManager.CALL_STATE_OFFHOOK == state)||
+              (TelephonyManager.CALL_STATE_RINGING == state)) {
+               if (state == TelephonyManager.CALL_STATE_RINGING) {
+                   int ringvolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
+                   if (ringvolume == 0) {
+                       return;
+                   }
+               }
+               if( mFMOn == true) {
+                   Log.d(LOGTAG, "posting for call state change");
+                   mHandler.post(mChangeFMTxState);
+                   mResumeAfterCall = true;
+               }
+           }
+           else if (state == TelephonyManager.CALL_STATE_IDLE) {
+              // start playing again
+              if (mResumeAfterCall)
+              {
+                  Log.d(LOGTAG, "posting for call state change");
+                  mHandler.post(mChangeFMTxState);
+                  mResumeAfterCall = false;
+              }
+           }//idle
+       }
+
+   private Handler mDelayedStopHandler = new Handler() {
+      @Override
+      public void handleMessage(Message msg) {
+         // Check again to make sure nothing is playing right now
+         if (isFmOn() || mServiceInUse)
+         {
+            return;
+         }
+         Log.d(LOGTAG, "mDelayedStopHandler: stopSelf");
+         stopSelf(mServiceStartId);
+      }
+   };
+
+   /* Show the FM Notification */
+   public void startNotification() {
+      RemoteViews views = new RemoteViews(getPackageName(), R.layout.statusbar);
+      views.setImageViewResource(R.id.icon, R.drawable.ic_status_fm_tx);
+      if (isFmOn())
+      {
+         views.setTextViewText(R.id.frequency, getTunedFrequencyString());
+      } else
+      {
+         views.setTextViewText(R.id.frequency, "");
+      }
+
+      Notification status = new Notification();
+      status.contentView = views;
+      status.flags |= Notification.FLAG_ONGOING_EVENT;
+      status.icon = R.drawable.ic_status_fm_tx;
+      status.contentIntent = PendingIntent.getActivity(this, 0,
+                                                       new Intent("com.caf.fmradio.FMTRANSMITTER_ACTIVITY"), 0);
+      startForeground(FMTRANSMITTERSERVICE_STATUS, status);
+      //NotificationManager nm = (NotificationManager)
+      //                         getSystemService(Context.NOTIFICATION_SERVICE);
+      //nm.notify(FMTRANSMITTERSERVICE_STATUS, status);
+      //setForeground(true);
+      mFMOn = true;
+   }
+
+   private void stop() {
+      gotoIdleState();
+      mFMOn = false;
+   }
+
+   private void gotoIdleState() {
+      mDelayedStopHandler.removeCallbacksAndMessages(null);
+      Message msg = mDelayedStopHandler.obtainMessage();
+      mDelayedStopHandler.sendMessageDelayed(msg, IDLE_DELAY);
+      //NotificationManager nm =
+      //(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
+      //nm.cancel(FMTRANSMITTERSERVICE_STATUS);
+      //setForeground(false);
+      stopForeground(true);
+   }
+
+   /*
+    * By making this a static class with a WeakReference to the Service, we
+    * ensure that the Service can be GCd even when the system process still
+    * has a remote reference to the stub.
+    */
+   static class ServiceStub extends IFMTransmitterService.Stub
+   {
+      WeakReference<FMTransmitterService> mService;
+
+      ServiceStub(FMTransmitterService service)
+      {
+         mService = new WeakReference<FMTransmitterService>(service);
+      }
+
+      public boolean fmOn() throws RemoteException
+      {
+         return(mService.get().fmOn());
+      }
+
+      public boolean fmOff() throws RemoteException
+      {
+         return(mService.get().fmOff());
+      }
+      public boolean fmRadioReset() throws RemoteException
+      {
+         return(mService.get().fmRadioReset());
+      }
+      public boolean fmRestart() throws RemoteException
+      {
+         return(mService.get().fmRestart());
+      }
+
+      public boolean isFmOn()
+      {
+         return(mService.get().isFmOn());
+      }
+      public boolean fmReconfigure()
+      {
+         return(mService.get().fmReconfigure());
+      }
+
+      public void registerCallbacks(IFMTransmitterServiceCallbacks cb)
+      throws RemoteException {
+         mService.get().registerCallbacks(cb);
+      }
+
+      public boolean searchWeakStationList(int numStations)
+      throws RemoteException {
+         return(mService.get().searchWeakStationList(numStations));
+      }
+
+      public void unregisterCallbacks() throws RemoteException
+      {
+         mService.get().unregisterCallbacks();
+      }
+
+      public boolean tune(int frequency)
+      {
+         return(mService.get().tune(frequency));
+      }
+
+      public boolean cancelSearch()
+      {
+         return(mService.get().cancelSearch());
+      }
+
+      public String getRadioText()
+      {
+         return(mService.get().getRadioText());
+      }
+
+      public int[] getSearchList()
+      {
+         return(mService.get().getSearchList());
+      }
+
+      public boolean isInternalAntennaAvailable()
+      {
+         return(mService.get().isInternalAntennaAvailable());
+      }
+      public boolean isHeadsetPlugged()
+      {
+         return(mService.get().isHeadsetPlugged());
+      }
+      public boolean isCallActive()
+      {
+          return(mService.get().isCallActive());
+      }
+      public String getPSData()
+      {
+          return(mService.get().getPSData());
+      }
+   }
+
+   private final IBinder mBinder = new ServiceStub(this);
+   /*
+    * Turn ON FM: Powers up FM hardware, and initializes the FM module
+    *                                                                                 .
+    * @return true if fm Enable api was invoked successfully, false if the api failed.
+    */
+   private boolean fmOn() {
+      boolean bStatus=false;
+
+      Log.d(LOGTAG, "fmOn");
+      mWakeLock.acquire(10*1000);
+      if (mTransmitter == null) {
+          try {
+               mTransmitter = new FmTransmitter(FMRADIO_DEVICE_FD_STRING, transmitCallbacks);
+               Log.d(LOGTAG, "new transmitter created");
+          } catch (InstantiationException e) {
+               throw new RuntimeException("FmTx service not available!");
+          }
+      }
+      if (mTransmitter != null)
+      {
+         if (isFmOn())
+         {
+            /* FM Is already on,*/
+            bStatus = true;
+            try {
+                 if(mCallbacks != null) {
+                    mCallbacks.onEnabled(true);
+                 }
+            } catch(RemoteException e) {
+                 e.printStackTrace();
+            }
+            Log.d(LOGTAG, "mTransmitter is enabled");
+         }
+         else
+         {
+         // This sets up the FM radio device
+             FmConfig config = FmSharedPreferences.getFMConfiguration();
+             Log.d(LOGTAG, "fmOn: RadioBand   :"+ config.getRadioBand());
+             Log.d(LOGTAG, "fmOn: Emphasis    :"+ config.getEmphasis());
+             Log.d(LOGTAG, "fmOn: ChSpacing   :"+ config.getChSpacing());
+             Log.d(LOGTAG, "fmOn: RdsStd      :"+ config.getRdsStd());
+             Log.d(LOGTAG, "fmOn: LowerLimit  :"+ config.getLowerLimit());
+             Log.d(LOGTAG, "fmOn: UpperLimit  :"+ config.getUpperLimit());
+
+             boolean bFmRxEnabled = false;
+
+             if (!mA2dpDeviceState.isDeviceAvailable()) {
+                 bStatus = mTransmitter.enable(config);
+             }
+             if( false == bStatus ) {
+                Log.e(LOGTAG,"FM Enable failed");
+                return bStatus;
+             }
+             bStatus = mTransmitter.setTxPowerLevel(FmTransmitter.FM_TX_PWR_LEVEL_7);
+
+             if( false == bStatus ) {
+                Log.e(LOGTAG,"FM setPowerLevel failed");
+                return bStatus;
+             }
+
+             Log.e(LOGTAG, "FMTx is on: Requesting to start FM TX");
+             AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM_TX,
+                                  AudioSystem.DEVICE_STATE_AVAILABLE, "");
+         }
+
+         if(true == bStatus )
+         {
+                bStatus = mTransmitter.setRdsOn();
+                if( true != bStatus ) {
+                    Log.d(LOGTAG, "FMTx setRdsOn failed");
+                } else {
+                    if(false == mTransmitter.getInternalAntenna()) {
+                        Log.d(LOGTAG, "Setting internal antenna explicitly");
+                        mTransmitter.setInternalAntenna(true);
+                    }
+                    startNotification();
+                }
+         }
+         else
+         {
+             stop();
+         }
+      }
+      return(bStatus);
+   }
+
+  /*
+   * Turn OFF FM Operations: This disables all the current FM operations             .
+   */
+   private void fmOperationsOff() {
+
+      Log.d(LOGTAG, "fmOperationsOff" );
+
+      Log.e(LOGTAG, "FMTx is off: Requesting to stop FM Tx");
+      AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_FM_TX,
+                           AudioSystem.DEVICE_STATE_UNAVAILABLE, "");
+   }
+   /*
+    * Turn OFF FM: Disable the FM Host and hardware                                  .
+    *                                                                                 .
+    * @return true if fm Disable api was invoked successfully, false if the api failed.
+    */
+   private boolean fmOff() {
+      boolean bStatus=false;
+      Log.d(LOGTAG, "fmOff");
+
+      fmOperationsOff();
+
+      // This will disable the FM radio device
+      if (mTransmitter != null)
+      {
+         bStatus = mTransmitter.disable();
+         mTransmitter = null;
+      }
+      /* Disable Receiver */
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.disable();
+         mReceiver = null;
+      }
+      RText = " ";
+      stop();
+      return(bStatus);
+   }
+  /*
+   * Turn OFF FM: Disable the FM Host when hardware resets asynchronously            .
+   *                                                                                 .
+   * @return true if fm Reset api was invoked successfully, false if the api failed  .
+   */
+   private boolean fmRadioReset() {
+      boolean bStatus=false;
+      Log.d(LOGTAG, "fmRadioReset");
+      fmOperationsOff();
+
+      // This will disable the FM radio device
+      if (mTransmitter != null)
+      {
+         bStatus = mTransmitter.reset();
+         mTransmitter = null;
+      }
+      /* Disable Receiver */
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.reset();
+         mReceiver = null;
+      }
+      stop();
+      return(bStatus);
+   }
+
+   /*
+    * Restart FM Transmitter: Disables FM receiver mode or transmitter is already active
+    * and Powers up FM hardware, and initializes the FM module
+    *
+    * @return true if fm Enable api was invoked successfully, false if the api failed.
+    */
+
+   private boolean fmRestart() {
+      boolean bStatus=false;
+      Log.d(LOGTAG, "fmRestart");
+
+      /* First Disable Transmitter, if enabled */
+      if (mTransmitter != null)
+      {
+         bStatus = mTransmitter.disable();
+         mTransmitter = null;
+         mFMOn = false;
+      }
+
+      /* Disable Receiver */
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.disable();
+         mReceiver = null;
+      }
+      try {
+          Thread.sleep(100);//sleep needed for SoC to switch mode
+      }
+      catch ( Exception ex ) {
+          Log.d( LOGTAG,  "RunningThread InterruptedException");
+      }
+      bStatus = fmOn();
+      return(bStatus);
+   }
+
+   /* Returns whether FM hardware is ON.
+    *
+    * @return true if FM was tuned, searching. (at the end of
+    * the search FM goes back to tuned).
+    *
+    */
+   public boolean isFmOn() {
+      return mFMOn;
+   }
+
+   /*
+    *  ReConfigure the FM Setup parameters
+    *  - Band
+    *  - Channel Spacing (50/100/200 KHz)
+    *  - Emphasis (50/75)
+    *  - Frequency limits
+    *  - RDS/RBDS standard
+    *
+    * @return true if configure api was invoked successfully, false if the api failed.
+    */
+   public boolean fmReconfigure() {
+      boolean bStatus=false;
+      Log.d(LOGTAG, "fmReconfigure");
+      if (mTransmitter != null)
+      {
+         // This sets up the FM radio device
+         FmConfig config = FmSharedPreferences.getFMConfiguration();
+         Log.d(LOGTAG, "RadioBand   :"+ config.getRadioBand());
+         Log.d(LOGTAG, "Emphasis    :"+ config.getEmphasis());
+         Log.d(LOGTAG, "ChSpacing   :"+ config.getChSpacing());
+         Log.d(LOGTAG, "RdsStd      :"+ config.getRdsStd());
+         Log.d(LOGTAG, "LowerLimit  :"+ config.getLowerLimit());
+         Log.d(LOGTAG, "UpperLimit  :"+ config.getUpperLimit());
+         bStatus = mTransmitter.configure(config);
+      }
+      if (mCallbacks != null)
+      {
+         try
+         {
+            mCallbacks.onReconfigured();
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+      return(bStatus);
+   }
+
+   /*
+    * Register UI/Activity Callbacks
+    */
+   public void registerCallbacks(IFMTransmitterServiceCallbacks cb)
+   {
+      mCallbacks = cb;
+   }
+
+   /*
+    *  unRegister UI/Activity Callbacks
+    */
+   public void unregisterCallbacks()
+   {
+      mCallbacks=null;
+   }
+
+   /* Tunes to the specified frequency
+    *
+    * @return true if Tune command was invoked successfully, false if not muted.
+    *  Note: Callback FmRxEvRadioTuneStatus will be called when the tune
+    *        is complete
+    */
+   public boolean tune(int frequency) {
+      boolean bCommandSent=false;
+      double doubleFrequency = frequency/1000.00;
+
+      Log.d(LOGTAG, "tune:  " + doubleFrequency);
+      if (mTransmitter != null)
+      {
+         mTransmitter.setStation(frequency);
+         mTunedFrequency = frequency;
+         bCommandSent = true;
+      }
+      return bCommandSent;
+   }
+
+   /* Search for the weakest 12 FM Stations in the current band.
+    *
+    * It searches in the forward direction relative to the current tuned station.
+    * int numStations: maximum number of stations to search.
+    *
+    * @return true if Search command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvSearchListComplete will be called when the Search
+    *        is complete
+    *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to
+    *        the previously tuned station.
+    */
+   public boolean searchWeakStationList(int numStations)
+   {
+
+       boolean bStatus=false;
+       FmConfig config = FmSharedPreferences.getFMConfiguration();
+
+       if(null != mTransmitter) {
+           mTransmitter.disable();
+           mTransmitter = null;
+           mFMOn = false;
+       }
+       if(null != mReceiver) {
+           mReceiver.disable();
+           mReceiver = null;
+       }
+       try {
+           Thread.sleep(100);//SoC needs a delay to switch mode
+       } catch (Exception ex) {
+           Log.d( LOGTAG,  "RunningThread InterruptedException");
+       }
+
+
+       if(null == mReceiver) {
+           try {
+               mReceiver = new FmReceiver(FMRADIO_DEVICE_FD_STRING, fmCallbacks);
+           }
+           catch (InstantiationException e){
+            throw new RuntimeException("FmTx service not available!");
+           }
+           if (mReceiver.getFMState() == mReceiver.FMState_Turned_Off) {
+               bStatus = mReceiver.enable(config);
+           } else {
+               try {
+                   Thread.sleep(100);
+               } catch (Exception ex) {
+                   Log.d( LOGTAG,  "RunningThread InterruptedException");
+               }
+               bStatus = mReceiver.enable(config);
+           }
+           if (!bStatus) {
+               Log.e( LOGTAG,  "Search for weak station failed");
+               return false;
+           }
+       }
+
+       bStatus = mReceiver.setStation(config.getLowerLimit());
+
+       Log.d(LOGTAG, "mReceiver.setStation:  bStatus: " + bStatus);
+       bStatus = mReceiver.searchStationList( FmReceiver.FM_RX_SRCHLIST_MODE_WEAKEST,
+                                              FmReceiver.FM_RX_SEARCHDIR_UP,
+                                              numStations,
+                                              0);
+
+        mFMSearchStations = 0;//numStations;
+        if(bStatus == false)
+        {
+           try
+           {
+              if (mCallbacks != null)
+              {
+                 mCallbacks.onSearchListComplete(false);
+              }
+           } catch (RemoteException e)
+           {
+              e.printStackTrace();
+           }
+        }
+      return bStatus;
+   }
+
+   /* Cancel any ongoing Search (Seek/Scan/SearchStationList).
+    *
+    * @return true if Search command was invoked successfully, false if not muted.
+    *  Note: 1. Callback FmRxEvSearchComplete will be called when the Search
+    *        is complete/cancelled.
+    *        2. Callback FmRxEvRadioTuneStatus will also be called when tuned to a station
+    *        at the end of the Search or if the seach was cancelled.
+    */
+   public boolean cancelSearch()
+   {
+      boolean bStatus=false;
+      if (mReceiver != null)
+      {
+         bStatus = mReceiver.cancelSearch();
+         Log.d(LOGTAG, "mReceiver.cancelSearch: bStatus: " + bStatus);
+         try
+         {
+            if (mCallbacks != null)
+            {
+               mCallbacks.onSearchListComplete(false);
+            }
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+
+      }
+      return bStatus;
+   }
+
+   /* Retrieves the basic String to be displayed on UI
+    * Other than this static string the RDS String will be
+    * queried by Tx Activity to update on UI
+    */
+   public String getRadioText() {
+      String str = "Radio Text: Transmitting ";
+      Log.d(LOGTAG, "Radio Text: [" + str + "]");
+      return str;
+   }
+
+   /* Retrieves the station list from the SearchStationlist.
+    *
+    * @return Array of integers that represents the station frequencies.
+    * Note: 1. This is a synchronous call that should typically called when
+    *           Callback onSearchListComplete.
+    */
+   public int[] getSearchList()
+   {
+      int[] frequencyList = null;
+      if (mReceiver != null)
+      {
+         Log.d(LOGTAG, "getSearchList: ");
+         frequencyList = mReceiver.getStationList();
+      }
+      return frequencyList;
+   }
+   /* Set the FM Power Mode on the FM hardware SoC.
+    * Typically used when UI/Activity is in the background, so the Host is interrupted less often.
+    *
+    * boolean bLowPower: true: Enable Low Power mode on FM hardware.
+    *                    false: Disable Low Power mode on FM hardware. (Put into normal power mode)
+    * @return true if set power mode api was invoked successfully, false if the api failed.
+    */
+   public boolean setLowPowerMode(boolean bLowPower)
+   {
+      boolean bCommandSent=false;
+      if (mTransmitter != null)
+      {
+         Log.d(LOGTAG, "setLowPowerMode: " + bLowPower);
+         if(bLowPower)
+         {
+            bCommandSent = mTransmitter.setPowerMode(FmTransmitter.FM_TX_LOW_POWER_MODE);
+         }
+         else
+         {
+            bCommandSent = mTransmitter.setPowerMode(FmTransmitter.FM_TX_NORMAL_POWER_MODE);
+         }
+      }
+      return bCommandSent;
+   }
+   /** Determines if an internal Antenna is available.
+    *
+    * @return true if internal antenna is available, false if
+    *         internal antenna is not available.
+    */
+   public boolean isInternalAntennaAvailable()
+   {
+      boolean bAvailable  = false;
+      /* Update this when the API is available */
+
+      if(null != mTransmitter ) {
+          bAvailable = mTransmitter.getInternalAntenna();
+          Log.d(LOGTAG, "internalAntennaAvailable: " + bAvailable);
+      } else if( null != mReceiver ) {
+          bAvailable = mReceiver.getInternalAntenna();
+          Log.d(LOGTAG, "internalAntennaAvailable: " + bAvailable);
+      }
+      return bAvailable;
+   }
+
+
+   private FmTransmitterCallbacksAdaptor transmitCallbacks = new  FmTransmitterCallbacksAdaptor() {
+      public void FmTxEvRDSGroupsAvailable() {
+         // Do nothing
+      }
+
+      public void FmTxEvRDSGroupsComplete() {
+         // Do nothing
+      }
+      public void FmTxEvContRDSGroupsComplete() {
+      }
+
+      public void FmTxEvTuneStatusChange(int freq) {
+
+        Log.d(LOGTAG, "onTuneStatusChange\n");
+        if (mCallbacks != null)
+        {
+           try
+           {
+              mCallbacks.onTuneStatusChanged(freq);
+           } catch (RemoteException e)
+           {
+              e.printStackTrace();
+           }
+        }
+        /* Update the frequency in the StatusBar's Notification */
+        startNotification();
+
+        String s = getPSData();
+        if( true == mTransmitter.startPSInfo(
+            s, FM_TX_PROGRAM_TYPE, FM_TX_PROGRAM_ID, FM_TX_PS_REPEAT_COUNT ) ) {
+            if (mCallbacks != null)
+            {
+               try
+               {
+                  mCallbacks.onPSInfoSent(s);
+               } catch (RemoteException e)
+               {
+                  e.printStackTrace();
+               }
+            }
+        }
+
+        if (mTransmitter != null ){
+            mTransmitter.startRTInfo(RText, FM_TX_PROGRAM_TYPE, FM_TX_PROGRAM_ID );
+        }
+
+        try {
+             if (mCallbacks != null ) {
+                 mCallbacks.onMetaDataChanged(RText);
+             } else {
+                 Log.d(LOGTAG, "callback is not there");
+             }
+        } catch (RemoteException ex){
+             ex.printStackTrace();
+        }
+
+      }
+
+      public void FmTxEvRadioDisabled() {
+         Log.d(LOGTAG, "onRadioDisabled");
+         mFMOn = false;
+         if((mServiceInUse) && (mCallbacks != null) ) {
+            try {
+                  mCallbacks.onDisabled();
+            } catch(RemoteException e) {
+                  e.printStackTrace();
+            }
+         }
+      }
+      public void FmTxEvRadioEnabled() {
+         mFMOn = true;
+         if((mServiceInUse) && (mCallbacks != null) ) {
+            try {
+                  mCallbacks.onEnabled(true);
+            } catch(RemoteException e) {
+                  e.printStackTrace();
+            }
+         }
+      }
+      public void FmTxEvRadioReset() {
+         if(isFmOn()) {
+            // Received Radio Disable event unexpectedly
+            Log.d(LOGTAG, "FM is ON, reset FM");
+            fmRadioReset();
+            try {
+                /* Notify the UI/Activity, only if the service is "bound"
+                   by an activity and if Callbacks are registered
+                */
+                if((mServiceInUse) && (mCallbacks != null)) {
+                    mCallbacks.onRadioReset();
+                }
+             }
+             catch (RemoteException e) {
+                e.printStackTrace();
+             }
+         }
+      }
+   };
+
+   /* Receiver callbacks back from the FM Stack */
+   FmRxEvCallbacksAdaptor fmCallbacks = new FmRxEvCallbacksAdaptor()
+   {
+      public void FmRxEvEnableReceiver()
+      {
+         Log.d(LOGTAG, "FmRxEvEnableReceiver");
+      }
+      public void FmRxEvDisableReceiver()
+      {
+         Log.d(LOGTAG, "FmRxEvDisableReceiver");
+      }
+      public void FmRxEvRadioReset()
+      {
+         Log.d(LOGTAG, "FmRxEvRadioReset");
+         if(isFmOn()) {
+             // Received Radio Reset event
+             Log.d(LOGTAG, "FM is ON, reset FM");
+             fmRadioReset();
+             try
+             {
+                /* Notify the UI/Activity, only if the service is "bound"
+                   by an activity and if Callbacks are registered
+                */
+                if((mServiceInUse) && (mCallbacks != null) )
+                {
+                    mCallbacks.onRadioReset();
+                }
+             }
+             catch (RemoteException e)
+             {
+                e.printStackTrace();
+             }
+         }
+      }
+
+      public void FmRxEvRadioTuneStatus(int frequency)
+      {
+         Log.d(LOGTAG, "FmRxEvRadioTuneStatus: Tuned Frequency: " +frequency);
+      }
+
+      public void FmRxEvSearchListComplete()
+      {
+         Log.d(LOGTAG, "FmRxEvSearchListComplete");
+         try
+         {
+            if (mCallbacks != null) {
+                mCallbacks.onSearchListComplete(true);
+            } else if(mReceiver != null) {
+                mReceiver.disable();
+            }
+         } catch (RemoteException e)
+         {
+            e.printStackTrace();
+         }
+      }
+   };
+
+
+   /*
+    *  Read the Tuned Frequency from the FM module.
+    */
+   private String getTunedFrequencyString() {
+      double frequency = mTunedFrequency / 1000.0;
+      String frequencyString = getString(R.string.stat_notif_tx_frequency, (""+frequency));
+      return frequencyString;
+   }
+   /**
+    * Registers an intent to listen for ACTION_HEADSET_PLUG
+    * notifications. This intent is called to know if the headset
+    * was plugged in/out
+    */
+   public void registerHeadsetListener() {
+       if (mHeadsetReceiver == null) {
+           mHeadsetReceiver = new BroadcastReceiver() {
+               @Override
+               public void onReceive(Context context, Intent intent) {
+                   String action = intent.getAction();
+                   if (action.equals(Intent.ACTION_HEADSET_PLUG)) {
+                      Log.d(LOGTAG, "ACTION_HEADSET_PLUG Intent received");
+                      // Listen for ACTION_HEADSET_PLUG broadcasts.
+                      Log.d(LOGTAG, "mTransmitter: ACTION_HEADSET_PLUG");
+                      Log.d(LOGTAG, "==> intent: " + intent);
+                      Log.d(LOGTAG, "    state: " + intent.getIntExtra("state", 0));
+                      Log.d(LOGTAG, "    name: " + intent.getStringExtra("name"));
+                      mHeadsetPlugged = (intent.getIntExtra("state", 0) == 1);
+                      mHandler.post(mChangeFMTxState);
+
+                   } else if (mA2dpDeviceState.isA2dpStateChange(action)) {
+                       if (mA2dpDeviceState.isConnected(intent)){
+                           Log.d(LOGTAG, " A2DP connected");
+                           mHeadsetPlugged = true;
+                           if( mFMOn == true)
+                           {
+                               mHandler.post(mChangeFMTxState);
+                           }
+                       } else if( !mA2dpDeviceState.isConnected(intent)) {
+                           Log.d(LOGTAG, "A2DP disconnected");
+                           mHeadsetPlugged = false;
+                           if( mFMOn == false) // when FM Tx App open, DISC BT
+                           {
+                               Log.d(LOGTAG, "posting for a2dp state change");
+                               mHandler.post(mChangeFMTxState);
+                           }
+                       }
+                   } else if (action.equals("HDMI_CONNECTED")) {
+                       if( mFMOn == true) {
+                           Log.d(LOGTAG, "posting for hdmi state change");
+                           mHandler.post(mChangeFMTxState);
+                       }
+                   }
+               }
+           };
+           IntentFilter iFilter = new IntentFilter();
+           iFilter.addAction(Intent.ACTION_HEADSET_PLUG);
+           iFilter.addAction(mA2dpDeviceState.getActionSinkStateChangedString());
+           iFilter.addAction(mA2dpDeviceState.getActionPlayStateChangedString());
+           iFilter.addAction("HDMI_CONNECTED");
+           iFilter.addCategory(Intent.CATEGORY_DEFAULT);
+           registerReceiver(mHeadsetReceiver, iFilter);
+       }
+   }
+   final Runnable    mChangeFMTxState = new Runnable() {
+       public void run() {
+           boolean bStatus = false;
+
+           Log.d(LOGTAG, "Enter change FM Tx State");
+           /* Update the UI based on the state change of the headset/antenna*/
+           if(mHeadsetPlugged) {
+              bStatus =  cancelSearch();
+              if(bStatus == false)
+                 Log.e(LOGTAG, "Error in cancelling the search");
+              if(isFmOn()) {
+                 Log.d(LOGTAG, "disable called from headset handler");
+                 bStatus = fmOff();
+                 if(mServiceInUse && (mCallbacks != null) && (bStatus == true)) {
+                    try {
+                        mCallbacks.onDisabled();
+                    } catch(RemoteException e) {
+                        e.printStackTrace();
+                    }
+                 } else if(bStatus == false) {
+                    Log.e(LOGTAG, "Error in turning off the FM TX ");
+                 }
+              } else if(mReceiver != null) {
+                 bStatus = mReceiver.disable();
+                 if(bStatus == true)
+                    mReceiver = null;
+                 else
+                    Log.e(LOGTAG, "Error in disabling the FM RX");
+              }
+           }else {
+              if(!isFmOn()) {
+                 bStatus = fmOn();
+                 if(mServiceInUse && (mCallbacks != null) && (bStatus == true)) {
+                    try {
+                        mCallbacks.onEnabled(true);
+                    } catch(RemoteException e) {
+                        e.printStackTrace();
+                    }
+                 } else if(bStatus == false) {
+                    Log.e(LOGTAG, "Error in enabling the FM TX");
+                 }
+              }
+           }
+       }
+   };
+   private class RdsDisplay extends IRemoteControlDisplay.Stub {
+        RdsDisplay() {
+        }
+
+        @Override
+        public void setPlaybackState(int generationId, int state, long stateChangeTimeMs,
+                  long currentPosMs, float speed) {
+        }
+
+        @Override
+        public void setMetadata(int generationId, Bundle metadata) {
+            updateMetadata(metadata);
+        }
+
+        @Override
+        public void setTransportControlInfo(int generationId, int flags, int posCapabilities) {
+        }
+
+        @Override
+        public void setArtwork(int generationId, Bitmap bitmap) {
+        }
+
+        @Override
+        public void setAllMetadata(int generationId, Bundle metadata, Bitmap bitmap) {
+         }
+
+        @Override
+        public void setCurrentClientId(int clientGeneration, PendingIntent clientMediaIntent,
+                boolean clearing) {
+        }
+   }
+
+   class Metadata {
+        private String artist;
+        private String trackTitle;
+        private String albumTitle;
+
+        public Metadata() {
+            artist = null;
+            trackTitle = null;
+            albumTitle = null;
+        }
+
+        public String toString() {
+            return "Metadata[artist=" + artist + " trackTitle=" + trackTitle + " albumTitle=" +
+                   albumTitle + "]";
+        }
+   }
+
+   private String getMdString(Bundle data, int id) {
+        return data.getString(Integer.toString(id));
+   }
+
+   private void updateMetadata(Bundle data) {
+        String oldMetadata = mMetadata.toString();
+        mMetadata.artist = getMdString(data, MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST);
+        mMetadata.trackTitle = getMdString(data, MediaMetadataRetriever.METADATA_KEY_TITLE);
+        mMetadata.albumTitle = getMdString(data, MediaMetadataRetriever.METADATA_KEY_ALBUM);
+        Log.v(LOGTAG, "mMetadata=" + mMetadata.toString());
+        if (mTransmitter != null ){
+            RText = mMetadata.albumTitle  +":" + mMetadata.trackTitle +":"+ mMetadata.artist;
+            Log.d(LOGTAG,"RT string size is "+RText.length());
+            mTransmitter.startRTInfo(RText, FM_TX_PROGRAM_TYPE, FM_TX_PROGRAM_ID );
+        }
+
+        try {
+             if (mCallbacks != null ) {
+                 mCallbacks.onMetaDataChanged(RText);
+             } else {
+                 Log.d(LOGTAG, "callback is not there");
+             }
+        } catch (RemoteException ex){
+             ex.printStackTrace();
+        }
+   }
+   public boolean isHeadsetPlugged() {
+       if (mA2dpDeviceState.isDeviceAvailable())
+          mHeadsetPlugged = true;
+       return mHeadsetPlugged;
+   }
+   public boolean isCallActive() {
+       TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
+       if( TelephonyManager.CALL_STATE_IDLE !=tmgr.getCallState() )
+           return true;
+       return false;
+   }
+   public String getPSData(){
+       return QFM_STRING;
+   }
+}
diff --git a/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
new file mode 100644
index 0000000..db215e8
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FmSharedPreferences.java
@@ -0,0 +1,1114 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.caf.fmradio;
+
+import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+import qcom.fmradio.FmReceiver;
+import qcom.fmradio.FmConfig;
+import android.util.Log;
+
+public class FmSharedPreferences
+{
+   public static final int REGIONAL_BAND_NORTH_AMERICA   = 0;
+   public static final int REGIONAL_BAND_EUROPE          = 1;
+   public static final int REGIONAL_BAND_JAPAN           = 2;
+   public static final int REGIONAL_BAND_JAPAN_WIDE      = 3;
+   public static final int REGIONAL_BAND_AUSTRALIA       = 4;
+   public static final int REGIONAL_BAND_AUSTRIA         = 5;
+   public static final int REGIONAL_BAND_BELGIUM         = 6;
+   public static final int REGIONAL_BAND_BRAZIL          = 7;
+   public static final int REGIONAL_BAND_CHINA           = 8;
+   public static final int REGIONAL_BAND_CZECH           = 9;
+   public static final int REGIONAL_BAND_DENMARK         = 10;
+   public static final int REGIONAL_BAND_FINLAND         = 11;
+   public static final int REGIONAL_BAND_FRANCE          = 12;
+   public static final int REGIONAL_BAND_GERMANY         = 13;
+   public static final int REGIONAL_BAND_GREECE          = 14;
+   public static final int REGIONAL_BAND_HONGKONG        = 15;
+   public static final int REGIONAL_BAND_INDIA           = 16;
+   public static final int REGIONAL_BAND_IRELAND         = 17;
+   public static final int REGIONAL_BAND_ITALY           = 18;
+   public static final int REGIONAL_BAND_KOREA           = 19;
+   public static final int REGIONAL_BAND_MEXICO          = 20;
+   public static final int REGIONAL_BAND_NETHERLANDS     = 21;
+   public static final int REGIONAL_BAND_NEWZEALAND      = 22;
+   public static final int REGIONAL_BAND_NORWAY          = 23;
+   public static final int REGIONAL_BAND_POLAND          = 24;
+   public static final int REGIONAL_BAND_PORTUGAL        = 25;
+   public static final int REGIONAL_BAND_RUSSIA          = 26;
+   public static final int REGIONAL_BAND_SINGAPORE       = 27;
+   public static final int REGIONAL_BAND_SLOVAKIA        = 28;
+   public static final int REGIONAL_BAND_SPAIN           = 29;
+   public static final int REGIONAL_BAND_SWITZERLAND     = 30;
+   public static final int REGIONAL_BAND_SWEDEN          = 31;
+   public static final int REGIONAL_BAND_TAIWAN          = 32;
+   public static final int REGIONAL_BAND_TURKEY          = 33;
+   public static final int REGIONAL_BAND_UNITEDKINGDOM   = 34;
+   public static final int REGIONAL_BAND_UNITED_STATES   = 35;
+
+   public static final int RECORD_DUR_INDEX_0_VAL        = 5;
+   public static final int RECORD_DUR_INDEX_1_VAL       = 15;
+   public static final int RECORD_DUR_INDEX_2_VAL       = 30;
+   public static final int RECORD_DUR_INDEX_3_VAL       = -1;
+
+   private static final String LOGTAG = "FmSharedPreferences";
+
+   private static final String SHARED_PREFS = "fmradio_prefs";
+   private static final String LIST_NUM = "list_number";
+   private static final String LIST_NAME = "list_name";
+   private static final String STATION_NAME = "station_name";
+   private static final String STATION_FREQUENCY = "station_freq";
+   private static final String STATION_ID = "station_id";
+   private static final String STATION_PTY = "station_pty";
+   private static final String STATION_RDS = "station_rds";
+   private static final String STATION_NUM = "preset_number";
+
+   private static final String FMCONFIG_COUNTRY = "fmconfig_country";
+   //private static final String FMCONFIG_BAND = "fmconfig_band";
+   //private static final String FMCONFIG_MIN = "fmconfig_min";
+   //private static final String FMCONFIG_MAX = "fmconfig_max";
+   //private static final String FMCONFIG_STEP = "fmconfig_step";
+   //private static final String FMCONFIG_EMPH = "fmconfig_emphasis";
+   //private static final String FMCONFIG_RDSSTD = "fmconfig_rdsstd";
+   /* Storage key String */
+   private static final String LAST_LIST_INDEX = "last_list_index";
+   public static final int MAX_NUM_TAG_TYPES = 64;
+   public static final int NUM_TAG_CATEGORY = 8;
+   public static final String []TAG_CATEGORIES = { "DUMMY", "ITEM", "INFO", "PROGRAMME",
+                                                      "INTERACTIVITY", "RFU", "PRIVATE_CLASSES",
+                                                      "DESCRIPTOR" };
+   public static final int [][]TAG_CATEGORY_RANGE  = { {0, 0}, {1, 11}, {12, 30},
+                                                         {31, 40}, {41, 53}, {54, 55},
+                                                         {56, 58}, {59, 63} };
+   public static final String []TAG_NAMES = { "DUMMY", "ITEM.TITLE", "ITEM.ALBUM", "ITEM.TRACKNUM",
+                                                  "ITEM.ARTIST", "ITEM.COMPOSITION", "ITEM.MOVEMENT",
+                                                  "ITEM.CONDUCTOR", "ITEM.COMPOSER", "ITEM.BAND", "ITEM.COMMENT",
+                                                  "ITEM.GENERE", "INFO.NEWS", "INFO.NEWS_LOCAL", "INFO.STOCK",
+                                                  "INFO.SPORT", "INFO.LOTTERY", "INFO.HOROSCOPE",
+                                                  "INFO.DAILY_DIVERSION", "INFO.HEALTH", "INFO.EVENT",
+                                                  "INFO.SCENE", "INFO.CINEMA", "INFO.TV", "INFO.DATE_TIME",
+                                                  "INFO.WEATHER", "INFO.TRAFFIC", "INFO.ALARM", "INFO.ADS",
+                                                  "INFO.URL", "INFO.OTHER", "PROGRAMME.STATIONNAME_SHORT",
+                                                  "PROGRAMME.NOW", "PROGRAMME.NEXT", "PROGRAMME.PART",
+                                                  "PROGRAMME.HOST", "PROGRAMME.EDITORIAL_STAFF",
+                                                  "PROGRAMME.FREQUENCY", "PROGRAMME.HOMEPAGE",
+                                                  "PROGRAMME.SUBCHANNEL", "PHONE.HOTLINE", "PHONE.STUDIO",
+                                                  "PHONE.OTHER", "SMS.STUDIO", "SMS.OTHER", "EMAIL.HOTLINE",
+                                                  "EMAIL.STUDIO", "EMAIL.OTHER", "MMS.OTHER", "CHAT",
+                                                  "CHAT.CENTRE", "VOTE.QUESTION", "VOTE.CENTRE", "RFU.1",
+                                                  "RFU.2", "PRIVATE.1", "PRIVATE.2", "PRIVATE.3",
+                                                  "PLACE", "APPOINTMENT", "IDENTIFIER", "PURCHASE", "GET_DATA" };
+
+   private static final String PREF_LAST_TUNED_FREQUENCY = "last_frequency";
+   private static final String LAST_RECORD_DURATION = "last_record_duration";
+   private static String  LAST_AF_JUMP_VALUE = "last_af_jump_value";
+   private static final String AUDIO_OUTPUT_MODE = "audio_output_mode";
+
+   private static Map<String, String> mNameMap = new HashMap<String, String>();
+   private static List<PresetList> mListOfPlists = new ArrayList<PresetList>();
+   public static Set[] tagList = new TreeSet[FmSharedPreferences.MAX_NUM_TAG_TYPES];
+   public static int num_tags = 0;
+   private static FmConfig mFMConfiguration;
+
+   private static final String DEFAULT_NO_NAME = "";
+   public static final int DEFAULT_NO_FREQUENCY = 98100;
+   private static final int DEFAULT_NO_PTY = 0;
+   private static final int DEFAULT_NO_STATIONID = 0;
+   private static final int DEFAULT_NO_RDSSUP = 0;
+   private static CharSequence[] mListEntries;
+   private static CharSequence[] mListValues;
+   private static int mListIndex;
+   private Context mContext;
+   private static int mTunedFrequency = 98100;
+   private static int mFrequencyBand_Stepsize = 200;
+
+   private static int mCountry = 0;
+   /* true = Stereo and false = "force Mono" even if Station is transmitting a
+    * Stereo signal
+    */
+   private static boolean mAudioOutputMode = true;
+   private static boolean mAFAutoSwitch = true;
+   private static int mRecordDuration = 0;
+
+   FmSharedPreferences(Context context){
+      mContext = context.getApplicationContext();
+      mFMConfiguration = new FmConfig();
+      Load();
+   }
+
+   public static void removeStation(int listIndex, int stationIndex){
+      if (listIndex < getNumList())
+      {
+         mListOfPlists.get(listIndex).removeStation(stationIndex);
+      }
+   }
+   public static void removeStation(int listIndex, PresetStation station){
+      if (listIndex < getNumList())
+      {
+         mListOfPlists.get(listIndex).removeStation(station);
+      }
+   }
+
+   public static void setListName(int listIndex, String name){
+      if (listIndex < getNumList())
+      {
+         mListOfPlists.get(listIndex).setName(name);
+      }
+   }
+
+   public static void setStationName(int listIndex, int stationIndex, String name){
+      if (listIndex < getNumList())
+      {
+         mListOfPlists.get(listIndex).setStationName(stationIndex, name);
+      }
+   }
+
+   public static String getListName(int listIndex){
+      String name = "";
+      addListIfEmpty(listIndex);
+      if (listIndex < getNumList())
+      {
+         name= mListOfPlists.get(listIndex).getName();
+      }
+      return name;
+   }
+
+   public static String getStationName(int listIndex, int stationIndex){
+      String name = "";
+      if (listIndex < getNumList())
+      {
+         name = mListOfPlists.get(listIndex).getStationName(stationIndex);
+      }
+      return name;
+   }
+
+   public static double getStationFrequency(int listIndex, int stationIndex){
+      double frequency = 0;
+      if (listIndex < getNumList())
+      {
+         frequency =  mListOfPlists.get(listIndex).getStationFrequency(stationIndex);
+      }
+      return frequency;
+   }
+
+   public static PresetList getStationList(int listIndex){
+      if (listIndex < getNumList())
+      {
+         return mListOfPlists.get(listIndex);
+      }
+      return null;
+   }
+
+   public static PresetStation getselectedStation(){
+      int listIndex = getCurrentListIndex();
+      PresetStation station = null;
+      if (listIndex < getNumList())
+      {
+         station = mListOfPlists.get(listIndex).getSelectedStation();
+      }
+      return station;
+   }
+
+   public static PresetStation getStationInList(int index){
+      int listIndex = getCurrentListIndex();
+      PresetStation station = null;
+      if (listIndex < getNumList())
+      {
+         station = mListOfPlists.get(listIndex).getStationFromIndex(index);
+      }
+      return station;
+   }
+   public static PresetStation getStationFromFrequency(int frequency){
+      int listIndex = getCurrentListIndex();
+      PresetStation station = null;
+      if(listIndex < getNumList())
+      {
+         station = mListOfPlists.get(listIndex).getStationFromFrequency(frequency);
+      }
+      return station;
+   }
+
+   public static PresetStation selectNextStation(){
+      int listIndex = getCurrentListIndex();
+      PresetStation station = null;
+      if (listIndex < getNumList())
+      {
+         station = mListOfPlists.get(listIndex).selectNextStation();
+      }
+      return station;
+   }
+
+   public static PresetStation selectPrevStation(){
+      int listIndex = getCurrentListIndex();
+      PresetStation station = null;
+      if (listIndex < getNumList())
+      {
+         station = mListOfPlists.get(listIndex).selectPrevStation();
+      }
+      return station;
+   }
+
+   public static void selectStation(PresetStation station){
+      int listIndex = getCurrentListIndex();
+      if (listIndex < getNumList())
+      {
+         mListOfPlists.get(listIndex).selectStation(station);
+      }
+   }
+
+   public static int getNumList(){
+      return mListOfPlists.size();
+   }
+
+   public static int getCurrentListIndex(){
+      return mListIndex;
+   }
+
+   public static void setListIndex(int index){
+      mListIndex = index;
+   }
+
+   public static Map<String, String> getNameMap(){
+      return mNameMap;
+   }
+
+   private static void addListIfEmpty(int listIndex){
+      if ((listIndex < 1) && (getNumList() == 0))
+      {
+         createPresetList("FM");
+      }
+   }
+
+   public static void addStation(String name, int freq, int listIndex){
+      /* If no lists exists and a new station is added, add a new Preset List
+       * if "listIndex" requested was "0"
+       */
+      addListIfEmpty(listIndex);
+      if (getNumList() > listIndex)
+      {
+         mListOfPlists.get(listIndex).addStation(name, freq);
+      }
+   }
+
+   /** Add "station" into the Preset List indexed by "listIndex" */
+   public static void addStation(int listIndex, PresetStation station){
+      /* If no lists exists and a new station is added, add a new Preset List
+       * if "listIndex" requested was "0"
+       */
+      addListIfEmpty(listIndex);
+      if (getNumList() > listIndex)
+      {
+         mListOfPlists.get(listIndex).addStation(station);
+      }
+   }
+   public static void addTags(int index, String s) {
+     if ((index >= 0) && (index <FmSharedPreferences.MAX_NUM_TAG_TYPES)) {
+          if(tagList[index] == null) {
+             tagList[index] = new TreeSet<String>();
+          }
+          if (tagList[index].add(s))
+              num_tags++;
+     }
+   }
+   public static void clearTags() {
+      for(int i = 0; i <FmSharedPreferences.MAX_NUM_TAG_TYPES; i++) {
+          if(tagList[i] != null) {
+             tagList[i].clear();
+             Log.d(LOGTAG, "cleared tags of type" + i);
+          }
+      }
+      num_tags = 0;
+   }
+
+   /** Does "station" already exist in the Preset List indexed by "listIndex" */
+   public static boolean sameStationExists(int listIndex, PresetStation station){
+      boolean exists = false;
+      if (getNumList() > listIndex)
+      {
+         exists = mListOfPlists.get(listIndex).sameStationExists(station);
+      }
+      return exists;
+   }
+
+   /** Does "station" already exist in the current Preset List*/
+   public static boolean sameStationExists( PresetStation station){
+      int listIndex = getCurrentListIndex();
+      boolean exists = false;
+      if (getNumList() > listIndex)
+      {
+         exists = mListOfPlists.get(listIndex).sameStationExists(station);
+      }
+      return exists;
+   }
+
+   /** Does "station" already exist in the current Preset List*/
+   public static int getListStationCount( ){
+      int listIndex = getCurrentListIndex();
+      int numStations = 0;
+      if (getNumList() > listIndex)
+      {
+         numStations = mListOfPlists.get(listIndex).getStationCount();
+      }
+      return numStations;
+   }
+
+   public static void renamePresetList(String newName, int listIndex){
+      PresetList curList =    mListOfPlists.get(listIndex);
+      if (curList != null)
+      {
+         String oldListName = curList.getName();
+         curList.setName(newName);
+         String index = mNameMap.get(oldListName);
+         mNameMap.remove(oldListName);
+         mNameMap.put((String) newName, index);
+         repopulateEntryValueLists();
+      }
+   }
+
+   /* Returns the index of the list just created */
+   public static int createPresetList(String name) {
+      int numLists = mListOfPlists.size();
+      mListOfPlists.add(new PresetList(name));
+      String index = String.valueOf(numLists);
+      mNameMap.put(name, index);
+      repopulateEntryValueLists();
+      return numLists;
+   }
+
+
+   public static void createFirstPresetList(String name) {
+      mListIndex = 0;
+      createPresetList(name);
+   }
+
+   public static CharSequence[] repopulateEntryValueLists() {
+      ListIterator<PresetList> presetIter;
+      presetIter = mListOfPlists.listIterator();
+      int numLists = mListOfPlists.size();
+
+      mListEntries = new CharSequence[numLists];
+      mListValues = new CharSequence[numLists];
+      for (int i = 0; i < numLists; i++)
+      {
+         PresetList temp = presetIter.next();
+         mListEntries[i] = temp.getName();
+         mListValues[i] = temp.getName();
+      }
+      return mListEntries;
+   }
+
+   public static List<PresetList> getPresetLists() {
+      return mListOfPlists;
+   }
+
+
+   public void  Load(){
+      Log.d(LOGTAG, "Load preferences ");
+      if(mContext == null)
+      {
+         return;
+      }
+      SharedPreferences sp = mContext.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
+      mTunedFrequency = sp.getInt(PREF_LAST_TUNED_FREQUENCY, DEFAULT_NO_FREQUENCY);
+      mRecordDuration = sp.getInt(LAST_RECORD_DURATION, RECORD_DUR_INDEX_0_VAL);
+      mAFAutoSwitch = sp.getBoolean(LAST_AF_JUMP_VALUE, true);
+      mAudioOutputMode = sp.getBoolean(AUDIO_OUTPUT_MODE, true);
+     /* Reset the Lists before reading the preferences */
+      mListOfPlists.clear();
+
+      int num_lists = sp.getInt(LIST_NUM, 1);
+      if (mListOfPlists.size() == 0) {
+
+         for (int listIter = 0; listIter < num_lists; listIter++) {
+             String listName = sp.getString(LIST_NAME + listIter, "FM - " + (listIter+1));
+             int numStations = sp.getInt(STATION_NUM + listIter, 1);
+             if (listIter == 0) {
+                 createFirstPresetList(listName);
+             } else {
+                 createPresetList(listName);
+             }
+
+             PresetList curList = mListOfPlists.get(listIter);
+             for (int stationIter = 0; stationIter < numStations; stationIter++) {
+                  String stationName = sp.getString(STATION_NAME + listIter + "x" + stationIter,
+                                                      DEFAULT_NO_NAME);
+                  int stationFreq = sp.getInt(STATION_FREQUENCY + listIter + "x" + stationIter,
+                                                   DEFAULT_NO_FREQUENCY);
+                  PresetStation station = curList.addStation(stationName, stationFreq);
+
+                  int stationId = sp.getInt(STATION_ID + listIter + "x" + stationIter,
+                                              DEFAULT_NO_STATIONID);
+                  station.setPI(stationId);
+
+                  int pty = sp.getInt(STATION_PTY + listIter + "x" + stationIter, DEFAULT_NO_PTY);
+                  station.setPty(pty);
+
+                  int rdsSupported = sp.getInt(STATION_RDS + listIter + "x" + stationIter,
+                                                 DEFAULT_NO_RDSSUP);
+                  if (rdsSupported != 0) {
+                      station.setRDSSupported(true);
+                  } else {
+                      station.setRDSSupported(false);
+                  }
+             }
+         }
+      }
+      /* Load Configuration */
+      setCountry(sp.getInt(FMCONFIG_COUNTRY, 0));
+      /* Last list the user was navigating */
+      mListIndex = sp.getInt(LAST_LIST_INDEX, 0);
+      if(mListIndex >= num_lists)
+      {
+         mListIndex=0;
+      }
+   }
+
+   public void Save() {
+      if(mContext == null)
+      {
+         return;
+      }
+      Log.d(LOGTAG, "Save preferences ");
+
+      int numLists = mListOfPlists.size();
+      SharedPreferences sp = mContext.getSharedPreferences(SHARED_PREFS, Context.MODE_PRIVATE);
+      SharedPreferences.Editor ed = sp.edit();
+
+      ed.putInt(PREF_LAST_TUNED_FREQUENCY, mTunedFrequency);
+
+      ed.putInt(LIST_NUM, numLists);
+      /* Last list the user was navigating */
+      ed.putInt(LAST_LIST_INDEX, mListIndex);
+
+      for (int listIter = 0; listIter < numLists; listIter++)
+      {
+         PresetList curList = mListOfPlists.get(listIter);
+         ed.putString(LIST_NAME + listIter, curList.getName());
+         int numStations = curList.getStationCount();
+         ed.putInt(STATION_NUM + listIter, numStations);
+         int numStation = 0;
+         for (int stationIter = 0; stationIter < numStations; stationIter++)
+         {
+            PresetStation station = curList.getStationFromIndex(stationIter);
+            if (station != null)
+            {
+               ed.putString(STATION_NAME + listIter + "x" + numStation,
+                            station.getName());
+               ed.putInt(STATION_FREQUENCY + listIter + "x" + numStation,
+                         station.getFrequency());
+               ed.putInt(STATION_ID + listIter + "x" + numStation,
+                         station.getPI());
+               ed.putInt(STATION_PTY + listIter + "x" + numStation,
+                         station.getPty());
+               ed.putInt(STATION_RDS + listIter + "x" + numStation,
+                         (station.getRDSSupported() == true? 1:0));
+               numStation ++;
+            }
+         }
+      }
+
+      /* Save Configuration */
+      ed.putInt(FMCONFIG_COUNTRY, mCountry);
+      ed.putInt(LAST_RECORD_DURATION, mRecordDuration);
+      ed.putBoolean(LAST_AF_JUMP_VALUE, mAFAutoSwitch);
+      ed.commit();
+   }
+
+   public static void SetDefaults() {
+      mListIndex = 0;
+      mListOfPlists.clear();
+      setCountry(REGIONAL_BAND_NORTH_AMERICA);
+      setRadioBand(0);
+      setChSpacing(0);
+      setEmphasis(0);
+      setRdsStd(0);
+      mFMConfiguration.setLowerLimit(87500);
+      mFMConfiguration.setUpperLimit(107900);
+   }
+
+   public static void removeStationList(int listIndex) {
+      mListIndex = listIndex;
+      PresetList toRemove = mListOfPlists.get(mListIndex);
+
+      mNameMap.remove(toRemove.getName());
+      mListOfPlists.remove(mListIndex);
+      int numLists = mListOfPlists.size();
+
+      /* Remove for others */
+      for (int i = mListIndex; i < numLists; i++)
+      {
+         PresetList curList = mListOfPlists.get(i);
+         if (curList!=null)
+         {
+            String listName = curList.getName();
+            /* Removals */
+            mNameMap.remove(listName);
+            mNameMap.put(listName, String.valueOf(i));
+         }
+      }
+      mListIndex = 0;
+      repopulateEntryValueLists();
+   }
+
+   public static void setTunedFrequency(int frequency) {
+      mTunedFrequency = frequency;
+   }
+
+   public static int getTunedFrequency() {
+      return mTunedFrequency;
+   }
+
+   public static int getNextTuneFrequency(int frequency) {
+      int nextFrequency = (frequency + mFrequencyBand_Stepsize);
+      if (nextFrequency > getUpperLimit())
+      {
+          nextFrequency = getLowerLimit();
+      }
+      return nextFrequency;
+   }
+
+   public static int getNextTuneFrequency() {
+      int nextFrequency = (mTunedFrequency + mFrequencyBand_Stepsize);
+      if (nextFrequency > getUpperLimit())
+      {
+          nextFrequency = getLowerLimit();
+      }
+      return nextFrequency;
+   }
+
+   public static int getPrevTuneFrequency(int frequency) {
+      int prevFrequency = (frequency - mFrequencyBand_Stepsize);
+      if (prevFrequency < getLowerLimit())
+      {
+          prevFrequency = getUpperLimit();
+      }
+      return prevFrequency;
+   }
+
+   public static int getPrevTuneFrequency() {
+      int prevFrequency = (mTunedFrequency - mFrequencyBand_Stepsize);
+      if (prevFrequency < getLowerLimit())
+      {
+         prevFrequency = getUpperLimit();
+      }
+      return prevFrequency;
+   }
+
+   /**
+    * @param mFMConfiguration the mFMConfiguration to set
+    */
+   public static void setFMConfiguration(FmConfig mFMConfig) {
+      FmSharedPreferences.mFMConfiguration = mFMConfig;
+   }
+
+   /**
+    * @return the mFMConfiguration
+    */
+   public static FmConfig getFMConfiguration() {
+      return mFMConfiguration;
+   }
+
+   public static void setRadioBand(int band)
+   {
+      switch (band)
+      {
+      case FmReceiver.FM_JAPAN_WIDE_BAND:
+         {
+            mFrequencyBand_Stepsize = 50;
+            mFMConfiguration.setLowerLimit(76000);
+            mFMConfiguration.setUpperLimit(108000);
+            break;
+         }
+      case FmReceiver.FM_JAPAN_STANDARD_BAND:
+         {
+            mFrequencyBand_Stepsize = 100;
+            mFMConfiguration.setLowerLimit(76000);
+            mFMConfiguration.setUpperLimit(90000);
+            break;
+         }
+      case FmReceiver.FM_USER_DEFINED_BAND:
+         {
+            break;
+         }
+      case FmReceiver.FM_US_BAND:
+      case FmReceiver.FM_EU_BAND:
+      default:
+         {
+            band =  FmReceiver.FM_US_BAND;
+            mFMConfiguration.setLowerLimit(87500);
+            mFMConfiguration.setUpperLimit(107900);
+            mFrequencyBand_Stepsize = 100;
+         }
+      }
+      mFMConfiguration.setRadioBand(band);
+   }
+
+   public static int getRadioBand()
+   {
+      return mFMConfiguration.getRadioBand();
+   }
+
+   public static void setChSpacing(int spacing)
+   {
+      if((spacing>=FmReceiver.FM_CHSPACE_200_KHZ)
+          && (spacing<=FmReceiver.FM_CHSPACE_50_KHZ))
+      {
+         mFrequencyBand_Stepsize = 200;
+         switch (spacing)
+         {
+         case FmReceiver.FM_CHSPACE_100_KHZ:
+            {
+               mFrequencyBand_Stepsize = 100;
+               break;
+            }
+         case FmReceiver.FM_CHSPACE_50_KHZ:
+            {
+               mFrequencyBand_Stepsize = 50;
+               break;
+            }
+         }
+         mFMConfiguration.setChSpacing(spacing);
+      }
+   }
+
+   public static int getChSpacing()
+   {
+      return mFMConfiguration.getChSpacing();
+   }
+
+   public static void setRdsStd(int std)
+   {
+      if((std>=FmReceiver.FM_RDS_STD_RBDS)
+          && (std<=FmReceiver.FM_RDS_STD_NONE))
+      {
+         mFMConfiguration.setRdsStd(std);
+      }
+   }
+
+   public static int getRdsStd()
+   {
+      return mFMConfiguration.getRdsStd();
+   }
+
+   /* North America */
+   public static boolean isRDSStd()
+   {
+      return(FmReceiver.FM_RDS_STD_RDS == mFMConfiguration.getRdsStd());
+   }
+
+   public static boolean isRBDSStd()
+   {
+      return(FmReceiver.FM_RDS_STD_RBDS == mFMConfiguration.getRdsStd());
+   }
+
+   public static void setEmphasis(int emph)
+   {
+      if((emph>=FmReceiver.FM_DE_EMP75)
+          && (emph<=FmReceiver.FM_DE_EMP50))
+      {
+         mFMConfiguration.setEmphasis(emph);
+      }
+   }
+
+   public static int getEmphasis()
+   {
+      return mFMConfiguration.getEmphasis();
+   }
+
+   public static int getUpperLimit()
+   {
+      return mFMConfiguration.getUpperLimit();
+   }
+
+   public static int getLowerLimit()
+   {
+      return mFMConfiguration.getLowerLimit();
+   }
+   public static int getFrequencyStepSize() {
+      return mFrequencyBand_Stepsize;
+   }
+   public static void setLowerLimit(int lowLimit){
+      mFMConfiguration.setLowerLimit(lowLimit);
+   }
+
+   public static void setUpperLimit(int upLimit){
+      mFMConfiguration.setUpperLimit(upLimit);
+   }
+
+   public static void setCountry(int nCountryCode){
+
+      // Default: 87500  TO 10800 IN 100 KHZ STEPS
+      mFMConfiguration.setRadioBand(FmReceiver.FM_USER_DEFINED_BAND);
+      mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_100_KHZ);
+      mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP50);
+      mFMConfiguration.setRdsStd(FmReceiver.FM_RDS_STD_RDS);
+      mFMConfiguration.setLowerLimit(87500);
+      mFMConfiguration.setUpperLimit(108000);
+
+      switch(nCountryCode)
+      {
+        case REGIONAL_BAND_NORTH_AMERICA:
+        {
+          /*NORTH_AMERICA : 87500 TO 108000 IN 200 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_US_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_200_KHZ);
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP75);
+          mFMConfiguration.setRdsStd(FmReceiver.FM_RDS_STD_RBDS);
+          mFMConfiguration.setLowerLimit(87500);
+          mFMConfiguration.setUpperLimit(107900);
+          mFrequencyBand_Stepsize = 200;
+          break;
+        }
+        case REGIONAL_BAND_EUROPE:
+        {
+          /*EUROPE/Default : 87500 TO 10800 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+
+        case REGIONAL_BAND_JAPAN:
+        {
+          /*JAPAN : 76000  TO 90000 IN 100 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_JAPAN_STANDARD_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_100_KHZ);
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP75);
+          mFMConfiguration.setLowerLimit(76000);
+          mFMConfiguration.setUpperLimit(90000);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_JAPAN_WIDE:
+        {
+          /*JAPAN_WB : 90000 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_JAPAN_WIDE_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP75);
+          mFMConfiguration.setLowerLimit(90000);
+          mFMConfiguration.setUpperLimit(108000);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+
+        /* Country specific */
+        case REGIONAL_BAND_AUSTRALIA:
+        {
+          /*AUSTRALIA : 87700 TO 108000 IN 100 KHZ STEPS*/
+          mFMConfiguration.setLowerLimit(87700);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_AUSTRIA:
+        {
+          /*AUSTRIA : 87500 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP50);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_BELGIUM:
+       {
+         /*BELGIUM : 87500 TO 108000 IN 100 KHZ STEPS*/
+         mFrequencyBand_Stepsize = 100;
+         break;
+       }
+       case REGIONAL_BAND_BRAZIL:
+       {
+         /*BRAZIL : 87500 TO 108000 IN 200 KHZ STEP*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_US_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_200_KHZ);
+          mFMConfiguration.setLowerLimit(87500);
+          mFMConfiguration.setUpperLimit(107900);
+          mFrequencyBand_Stepsize = 200;
+          break;
+        }
+        case REGIONAL_BAND_CHINA:
+        {
+          /*CHINA : 87000 TO 108000 IN 100 KHZ STEPS*/
+          mFMConfiguration.setLowerLimit(87000);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_CZECH:
+        {
+          /*CZECH : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_DENMARK:
+        {
+          /*DENMARK : 87500 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_FINLAND:
+        {
+          /*FINLAND : 87500  TO 108000  IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_FRANCE:
+        {
+          /* FRANCE : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_GERMANY:
+          /*GERMANY : 87500 TO 108000 IN 50 KHZ STEPS*/
+        case REGIONAL_BAND_GREECE:
+          /*GREECE : 87500 TO 108000 IN 50 KHZ STEPS*/
+        {
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_HONGKONG:
+        {
+          /*HONG KONG : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_INDIA:
+        {
+          /*INDIA : 91000 TO 106400 IN 100 KHZ STEPS*/
+          mFMConfiguration.setLowerLimit(91000);
+          mFMConfiguration.setUpperLimit(106400);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_IRELAND:
+        {
+          /*IRELAND : 87500 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_ITALY:
+        {
+          /*ITALY : 87500 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_KOREA:
+        {
+          /*KOREA : 87500 TO 108000 IN 200 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_US_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_200_KHZ);
+          mFMConfiguration.setUpperLimit(107900);
+          mFrequencyBand_Stepsize = 200;
+          break;
+        }
+        case REGIONAL_BAND_MEXICO:
+        {
+          /*MEXICO : 88100 TO 107900 IN 200 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_US_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_200_KHZ);
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP75);
+          mFMConfiguration.setRdsStd(FmReceiver.FM_RDS_STD_RBDS);
+          mFMConfiguration.setLowerLimit(88100);
+          mFMConfiguration.setUpperLimit(107900);
+          mFrequencyBand_Stepsize = 200;
+          break;
+        }
+        case REGIONAL_BAND_NETHERLANDS:
+        {
+          /*NETHERLANDS : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_NEWZEALAND:
+        {
+          /*NEW ZEALAND : 88000 TO 107000 IN 100 KHZ STEPS*/
+          mFMConfiguration.setLowerLimit(88000);
+          mFMConfiguration.setUpperLimit(107000);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_NORWAY:
+        {
+          /*NORWAY : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_POLAND:
+        {
+          /*POLAND : 88000 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFMConfiguration.setLowerLimit(88000);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_PORTUGAL:
+        {
+          /*PORTUGAL : 87500 TO 108000 IN 50 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_EU_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_50_KHZ);
+          mFrequencyBand_Stepsize = 50;
+          break;
+        }
+        case REGIONAL_BAND_RUSSIA:
+        {
+          /*RUSSIA : 87500 TO 108000  IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_SINGAPORE:
+        {
+          /*SINGAPORE : 88000 TO 108000 IN 100 KHZ STEPS*/
+          mFMConfiguration.setLowerLimit(88000);
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_SLOVAKIA:
+        {
+          /*SLOVAKIA : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_SPAIN:
+        {
+          /*SPAIN : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_SWITZERLAND:
+        {
+          /*SWITZERLAND : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_SWEDEN:
+        {
+          /*SWEDEN : 87500 TO 108000  IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_TAIWAN:
+        {
+          /*TAIWAN : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_TURKEY:
+        {
+          /*TURKEY : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_UNITEDKINGDOM:
+        {
+          /*UNITED KINGDOM : 87500 TO 108000 IN 100 KHZ STEPS*/
+          mFrequencyBand_Stepsize = 100;
+          break;
+        }
+        case REGIONAL_BAND_UNITED_STATES:
+        {
+          /*UNITED STATES : 88100 TO 107900 IN 200 KHZ STEPS*/
+          mFMConfiguration.setRadioBand(FmReceiver.FM_US_BAND);
+          mFMConfiguration.setChSpacing(FmReceiver.FM_CHSPACE_200_KHZ);
+          mFMConfiguration.setEmphasis(FmReceiver.FM_DE_EMP75);
+          mFMConfiguration.setRdsStd(FmReceiver.FM_RDS_STD_RBDS);
+          mFMConfiguration.setLowerLimit(88100);
+          mFMConfiguration.setUpperLimit(107900);
+          mFrequencyBand_Stepsize = 200;
+          break;
+        }
+        default:
+        {
+          Log.d(LOGTAG, "Invalid: countryCode: "+nCountryCode);
+          nCountryCode=0;
+        }
+      }
+      mCountry = nCountryCode;
+      Log.d(LOGTAG, "=====================================================");
+      Log.d(LOGTAG, "Country     :"+nCountryCode);
+      Log.d(LOGTAG, "RadioBand   :"+ mFMConfiguration.getRadioBand());
+      Log.d(LOGTAG, "Emphasis    :"+ mFMConfiguration.getEmphasis());
+      Log.d(LOGTAG, "ChSpacing   :"+ mFMConfiguration.getChSpacing());
+      Log.d(LOGTAG, "RdsStd      :"+ mFMConfiguration.getRdsStd());
+      Log.d(LOGTAG, "LowerLimit  :"+ mFMConfiguration.getLowerLimit());
+      Log.d(LOGTAG, "UpperLimit  :"+ mFMConfiguration.getUpperLimit());
+      Log.d(LOGTAG, "=====================================================");
+   }
+
+
+   public static int getCountry() {
+      return mCountry;
+   }
+
+
+   public static void setAudioOutputMode(boolean bStereo) {
+      mAudioOutputMode = bStereo;
+   }
+
+   public static boolean getAudioOutputMode() {
+      return mAudioOutputMode;
+   }
+
+   public static void setRecordDuration(int durationIndex) {
+
+      Log.d(LOGTAG, "setRecordDuration "+durationIndex);
+      switch( durationIndex ) {
+      case 0: mRecordDuration = RECORD_DUR_INDEX_0_VAL; break;
+      case 1: mRecordDuration = RECORD_DUR_INDEX_1_VAL; break;
+      case 2: mRecordDuration = RECORD_DUR_INDEX_2_VAL; break;
+      case 3: mRecordDuration = RECORD_DUR_INDEX_3_VAL; break;
+      default:
+        {
+           Log.d(LOGTAG, "Invalid: durationIndex "+durationIndex);
+        }
+
+      }
+      return;
+   }
+
+   public static int getRecordDuration() {
+      return mRecordDuration;
+   }
+
+   public static void setAutoAFSwitch(boolean bAFAutoSwitch) {
+      mAFAutoSwitch = bAFAutoSwitch;
+   }
+
+   public static boolean getAutoAFSwitch() {
+      return mAFAutoSwitch;
+   }
+}
diff --git a/fmapp2/src/com/caf/fmradio/FmTags.java b/fmapp2/src/com/caf/fmradio/FmTags.java
new file mode 100644
index 0000000..f3bbdbe
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/FmTags.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2011-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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import java.util.*;
+import android.app.Activity;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.ServiceConnection;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.Handler;
+import android.os.Message;
+import android.os.RemoteException;
+import android.util.Log;
+import android.util.TypedValue;
+import android.view.View;
+import android.view.ViewGroup.LayoutParams;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ProgressBar;
+import android.widget.Spinner;
+import android.widget.TableLayout;
+import android.widget.TableRow;
+import android.widget.TextView;
+import android.widget.ListView;
+
+
+public class FmTags extends Activity {
+      private ListView la;
+      private ArrayAdapter<String> adapter;
+      private final Handler mHandler = new Handler();
+      private Iterator itr;
+
+      @Override
+       public void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            setContentView(R.layout.fmtags);
+            la = (ListView)findViewById(R.id.TagListView);
+       }
+       @Override
+       public void onStart() {
+            super.onStart();
+       }
+       @Override
+       public void onResume() {
+            super.onResume();
+            mHandler.post(mDisplayTagList);
+       }
+       final Runnable mDisplayTagList = new Runnable() {
+            public void run() {
+                   String[] tags;
+                   int l = 0;
+
+                   tags = new String[FmSharedPreferences.num_tags];
+                   for(int i = 0; i < FmSharedPreferences.MAX_NUM_TAG_TYPES; i++) {
+                       if (FmSharedPreferences.tagList[i] != null) {
+                          itr = FmSharedPreferences.tagList[i].iterator();
+                          while(itr.hasNext())
+                                tags[l++] = ((FmSharedPreferences.TAG_NAMES[i]) + "\n" +
+                                              "\t" + (String)itr.next());
+                       }
+                   }
+                   adapter = new ArrayAdapter(la.getContext(), android.R.layout.simple_list_item_1, tags);
+                   la.setAdapter(adapter);
+            }
+       };
+}
+
+
diff --git a/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
new file mode 100644
index 0000000..8a89a85
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
@@ -0,0 +1,2223 @@
+/*
+ * Copyright (C) 2012-2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ *
+ * Copyright (C) 2008 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.caf.fmradio;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.annotation.Widget;
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Paint.Align;
+import android.graphics.Rect;
+import android.graphics.drawable.Drawable;
+import android.text.InputFilter;
+import android.text.InputType;
+import android.text.Spanned;
+import android.text.TextUtils;
+import android.text.method.NumberKeyListener;
+import android.util.AttributeSet;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.util.SparseArray;
+import android.util.TypedValue;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.LayoutInflater.Filter;
+import android.view.MotionEvent;
+import android.view.VelocityTracker;
+import android.view.View;
+import android.view.ViewConfiguration;
+import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
+import android.view.animation.DecelerateInterpolator;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.Scroller;
+import android.widget.TextView;
+
+import com.android.internal.R;
+
+/**
+ * A widget that enables the user to select a number form a predefined range.
+ * The widget presents an input filed and up and down buttons for selecting the
+ * current value. Pressing/long pressing the up and down buttons increments and
+ * decrements the current value respectively. Touching the input filed shows a
+ * scroll wheel, tapping on which while shown and not moving allows direct edit
+ * of the current value. Sliding motions up or down hide the buttons and the
+ * input filed, show the scroll wheel, and rotate the latter. Flinging is also
+ * supported. The widget enables mapping from positions to strings such that
+ * instead the position index the corresponding string is displayed.
+ * <p>
+ * For an example of using this widget, see {@link android.widget.TimePicker}.
+ * </p>
+ */
+@Widget
+public class HorizontalNumberPicker extends LinearLayout {
+
+    /**
+     * The default update interval during long press.
+     */
+    private static final long DEFAULT_LONG_PRESS_UPDATE_INTERVAL = 300;
+
+    /**
+     * The index of the middle selector item.
+     */
+//    private static final int SELECTOR_MIDDLE_ITEM_INDEX = 10;
+
+    /**
+     * The coefficient by which to adjust (divide) the max fling velocity.
+     */
+    private static final int SELECTOR_MAX_FLING_VELOCITY_ADJUSTMENT = 8;
+
+    /**
+     * The the duration for adjusting the selector wheel.
+     */
+    private static final int SELECTOR_ADJUSTMENT_DURATION_MILLIS = 800;
+
+    /**
+     * The duration of scrolling to the next/previous value while changing the
+     * current value by one, i.e. increment or decrement.
+     */
+    private static final int CHANGE_CURRENT_BY_ONE_SCROLL_DURATION = 300;
+
+    /**
+     * The the delay for showing the input controls after a single tap on the
+     * input text.
+     */
+    private static final int SHOW_INPUT_CONTROLS_DELAY_MILLIS = ViewConfiguration
+            .getDoubleTapTimeout();
+
+    /**
+     * The strength of fading in the top and bottom while drawing the selector.
+     */
+    private static final float TOP_AND_BOTTOM_FADING_EDGE_STRENGTH = 0.9f;
+
+    /**
+     * The default unscaled height of the selection divider.
+     */
+    private static final int UNSCALED_DEFAULT_SELECTION_DIVIDER_HEIGHT = 2;
+
+    /**
+     * In this state the selector wheel is not shown.
+     */
+    private static final int SELECTOR_WHEEL_STATE_NONE = 0;
+
+    /**
+     * In this state the selector wheel is small.
+     */
+    private static final int SELECTOR_WHEEL_STATE_SMALL = 1;
+
+    /**
+     * In this state the selector wheel is large.
+     */
+    private static final int SELECTOR_WHEEL_STATE_LARGE = 2;
+
+    /**
+     * The alpha of the selector wheel when it is bright.
+     */
+    private static final int SELECTOR_WHEEL_BRIGHT_ALPHA = 255;
+
+    /**
+     * The alpha of the selector wheel when it is dimmed.
+     */
+    private static final int SELECTOR_WHEEL_DIM_ALPHA = 60;
+
+    /**
+     * The alpha for the increment/decrement button when it is transparent.
+     */
+    private static final int BUTTON_ALPHA_TRANSPARENT = 0;
+
+    /**
+     * The alpha for the increment/decrement button when it is opaque.
+     */
+    private static final int BUTTON_ALPHA_OPAQUE = 1;
+
+    /**
+     * The property for setting the selector paint.
+     */
+    private static final String PROPERTY_SELECTOR_PAINT_ALPHA = "selectorPaintAlpha";
+
+    /**
+     * The property for setting the increment/decrement button alpha.
+     */
+    private static final String PROPERTY_BUTTON_ALPHA = "alpha";
+
+    /**
+     * The numbers accepted by the input text's {@link Filter}
+     */
+    private static final char[] DIGIT_CHARACTERS = new char[] { '0', '1', '2',
+            '3', '4', '5', '6', '7', '8', '9' };
+
+    /**
+     * Constant for unspecified size.
+     */
+    private static final int SIZE_UNSPECIFIED = -1;
+
+    /**
+     * Use a custom NumberPicker formatting callback to use two-digit minutes
+     * strings like "01". Keeping a static formatter etc. is the most efficient
+     * way to do this; it avoids creating temporary objects on every call to
+     * format().
+     *
+     * @hide
+     */
+    public static final HorizontalNumberPicker.Formatter TWO_DIGIT_FORMATTER = new HorizontalNumberPicker.Formatter() {
+        final StringBuilder mBuilder = new StringBuilder();
+
+        final java.util.Formatter mFmt = new java.util.Formatter(mBuilder,
+                java.util.Locale.US);
+
+        final Object[] mArgs = new Object[1];
+
+        public String format(int value) {
+            mArgs[0] = value;
+            mBuilder.delete(0, mBuilder.length());
+            mFmt.format("%02d", mArgs);
+            return mFmt.toString();
+        }
+    };
+
+    private static final String TAG = "HorizontalNumberPicker";
+
+    /**
+     * The increment button.
+     */
+    // private final ImageButton mIncrementButton;
+
+    /**
+     * The decrement button.
+     */
+    // private final ImageButton mDecrementButton;
+
+    /**
+     * The text for showing the current value.
+     */
+//    private final EditText mInputText;
+
+    /**
+     * The min height of this widget.
+     */
+    private final int mMinHeight = 0;
+
+    /**
+     * The max height of this widget.
+     */
+    private int mMaxHeight;
+
+    /**
+     * The max width of this widget.
+     */
+    private final int mMinWidth = 0;
+
+    /**
+     * The max width of this widget.
+     */
+    private int mMaxWidth;
+
+    /**
+     * Flag whether to compute the max width.
+     */
+    private final boolean mComputeMaxWidth;
+
+    /**
+     * The height of the text.
+     */
+    private int mTextSize = 20;
+    /**
+     * The height of the gap between text elements if the selector wheel.
+     */
+    private int mSelectorTextGapHeight;
+
+    /**
+     * The width of the gap between text elements if the selector wheel.
+     */
+    private int mSelectorTextGapWidth;
+
+    /**
+     * The values to be displayed instead the indices.
+     */
+    private String[] mDisplayedValues;
+
+    /**
+     * Lower value of the range of numbers allowed for the NumberPicker
+     */
+    private int mMinValue;
+
+    /**
+     * Upper value of the range of numbers allowed for the NumberPicker
+     */
+    private int mMaxValue;
+
+    /**
+     * Current value of this NumberPicker
+     */
+    private int mValue;
+
+    /**
+     * Listener to be notified upon current value change.
+     */
+    private OnValueChangeListener mOnValueChangeListener;
+
+    /**
+     * Listener to be notified upon scroll state change.
+     */
+    private OnScrollListener mOnScrollListener;
+
+    /**
+     * Formatter for for displaying the current value.
+     */
+    private Formatter mFormatter;
+
+    /**
+     * The speed for updating the value form long press.
+     */
+    private long mLongPressUpdateInterval = DEFAULT_LONG_PRESS_UPDATE_INTERVAL;
+
+    /**
+     * Cache for the string representation of selector indices.
+     */
+    private final SparseArray<String> mSelectorIndexToStringCache = new SparseArray<String>();
+
+    /**
+     * The selector indices whose value are show by the selector.
+     */
+    private final int[] SELECTOR_INDICES_MEDIUM = new int[] {
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE
+            };
+    private final int[] SELECTOR_INDICES_SMALL = new int[] {
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE,
+            };
+    private final int[] SELECTOR_INDICES_LARGE = new int[] {
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE,
+            Integer.MIN_VALUE, Integer.MIN_VALUE,
+            };
+    private int[] mSelectorIndices = SELECTOR_INDICES_MEDIUM;
+    private  int mSelectorMiddleItemIndex = mSelectorIndices.length / 2;
+    /**
+     * The offset to middle of selector.
+     */
+    private static final int SELECTOR_OFFSET_ZERO = 0;
+    /**
+     * The colors alpha of selector text.
+     */
+    private static final int SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE = 255;
+
+    private static float mDensity = 1.0f;
+    private static final float LDPI = 0.75f;
+    private static final float MDPI = 1.0f;
+    private static final float HDPI = 1.5f;
+    private static final float XHDPI = 2.0f;
+
+    private float mScaleWidth = 2;
+    private float mScaleLengthShort = 10;
+    private float mScaleLengthLong = 20;
+    private float mGapBetweenNumAndScale = 18;
+    private float mHdpiPositionAdjust = 18;
+
+    public enum Scale {
+      SCALE_SMALL,
+      SCALE_MEDIUM,
+      SCALE_LARGE
+    };
+    /**
+     * The {@link Paint} for drawing the selector.
+     */
+    private final Paint mSelectorWheelPaint;
+
+    /**
+     * The height of a selector element (text + gap).
+     */
+    private int mSelectorElementHeight;
+
+    /**
+     * The width of a selector element (text + gap).
+     */
+    private int mSelectorElementWidth;
+
+    /**
+     * The initial offset of the scroll selector.
+     */
+    private int mInitialScrollOffset = Integer.MIN_VALUE;
+
+    /**
+     * The initial offset for horizontal  scroll selector .
+     */
+    private static final int INIT_SCROLL_OFFSET_HORIZONTAL = 0;
+
+    /**
+     * The initial offset for vertical  scroll selector .
+     */
+    private static final int INIT_SCROLL_OFFSET_VERTICAL = 0;
+    /**
+     * The current offset of the scroll selector.
+     */
+    private int mCurrentScrollOffset;
+
+    /**
+     * The {@link Scroller} responsible for flinging the selector.
+     */
+    private final Scroller mFlingScroller;
+
+    /**
+     * The {@link Scroller} responsible for adjusting the selector.
+     */
+    private final Scroller mAdjustScroller;
+
+    /**
+     * The previous Y coordinate while scrolling the selector.
+     */
+    private int mPreviousScrollerY;
+
+    /**
+     * The previous Y coordinate while scrolling the selector.
+     */
+    private int mPreviousScrollerX;
+
+    /**
+     * Handle to the reusable command for setting the input text selection.
+     */
+    private SetSelectionCommand mSetSelectionCommand;
+
+    /**
+     * Handle to the reusable command for adjusting the scroller.
+     */
+    private AdjustScrollerCommand mAdjustScrollerCommand;
+
+    /**
+     * Handle to the reusable command for changing the current value from long
+     * press by one.
+     */
+    private ChangeCurrentByOneFromLongPressCommand mChangeCurrentByOneFromLongPressCommand;
+
+    /**
+     * {@link Animator} for showing the up/down arrows.
+     */
+//     private final AnimatorSet mShowInputControlsAnimator;
+
+    /**
+     * {@link Animator} for dimming the selector wheel.
+     */
+//     private final Animator mDimSelectorWheelAnimator;
+
+    /**
+     * The Y position of the last down event.
+     */
+    private float mLastDownEventY;
+    /**
+     * The X position of the last down event.
+     */
+    private float mLastDownEventX;
+
+    /**
+     * The Y position of the last motion event.
+     */
+    private float mLastMotionEventY;
+
+    /**
+     * The X position of the last motion event.
+     */
+    private float mLastMotionEventX;
+
+    /**
+     * Flag if to begin edit on next up event.
+     */
+    private boolean mBeginEditOnUpEvent;
+
+    /**
+     * Flag if to adjust the selector wheel on next up event.
+     */
+    private boolean mAdjustScrollerOnUpEvent;
+
+    /**
+     * The state of the selector wheel.
+     */
+    private int mSelectorWheelState;
+
+    /**
+     * Determines speed during touch scrolling.
+     */
+    private VelocityTracker mVelocityTracker;
+
+    /**
+     * @see ViewConfiguration#getScaledTouchSlop()
+     */
+    private int mTouchSlop;
+
+    /**
+     * @see ViewConfiguration#getScaledMinimumFlingVelocity()
+     */
+    private int mMinimumFlingVelocity;
+
+    /**
+     * @see ViewConfiguration#getScaledMaximumFlingVelocity()
+     */
+    private int mMaximumFlingVelocity;
+
+    /**
+     * Flag whether the selector should wrap around.
+     */
+    private boolean mWrapSelectorWheel;
+
+    /**
+     * The back ground color used to optimize scroller fading.
+     */
+    private final int mSolidColor;
+
+    /**
+     * Flag indicating if this widget supports flinging.
+     */
+    private final boolean mFlingable;
+
+    /**
+     * Divider for showing item to be selected while scrolling
+     */
+//     private final Drawable mSelectionDivider;
+
+    /**
+     * The height of the selection divider.
+     */
+//     private final int mSelectionDividerHeight;
+
+    /**
+     * Reusable {@link Rect} instance.
+     */
+    private final Rect mTempRect = new Rect();
+
+    /**
+     * The current scroll state of the number picker.
+     */
+    private int mScrollState = OnScrollListener.SCROLL_STATE_IDLE;
+
+    /**
+     * The duration of the animation for showing the input controls.
+     */
+     private final long mShowInputControlsAnimimationDuration;
+
+    /**
+     * Flag whether the scoll wheel and the fading edges have been initialized.
+     */
+    private boolean mScrollWheelAndFadingEdgesInitialized;
+
+    private boolean mHorizontal = true;
+
+    /**
+     * Interface to listen for changes of the current value.
+     */
+    public interface OnValueChangeListener {
+
+        /**
+         * Called upon a change of the current value.
+         *
+         * @param picker
+         *            The NumberPicker associated with this listener.
+         * @param oldVal
+         *            The previous value.
+         * @param newVal
+         *            The new value.
+         */
+        void onValueChange(HorizontalNumberPicker picker, int oldVal, int newVal);
+    }
+
+
+    private OnScrollFinishListener mOnScrollFinishListener;
+
+    public interface OnScrollFinishListener{
+        public void onScrollFinish(int value);
+    }
+    /**
+     * Interface to listen for the picker scroll state.
+     */
+    public interface OnScrollListener {
+
+        /**
+         * The view is not scrolling.
+         */
+        public static int SCROLL_STATE_IDLE = 0;
+
+        /**
+         * The user is scrolling using touch, and their finger is still on the
+         * screen.
+         */
+        public static int SCROLL_STATE_TOUCH_SCROLL = 1;
+
+        /**
+         * The user had previously been scrolling using touch and performed a
+         * fling.
+         */
+        public static int SCROLL_STATE_FLING = 2;
+
+        /**
+         * Callback invoked while the number picker scroll state has changed.
+         *
+         * @param view
+         *            The view whose scroll state is being reported.
+         * @param scrollState
+         *            The current scroll state. One of
+         *            {@link #SCROLL_STATE_IDLE},
+         *            {@link #SCROLL_STATE_TOUCH_SCROLL} or
+         *            {@link #SCROLL_STATE_IDLE}.
+         */
+        public void onScrollStateChange(HorizontalNumberPicker view,
+                int scrollState);
+    }
+
+    /**
+     * Interface used to format current value into a string for presentation.
+     */
+    public interface Formatter {
+
+        /**
+         * Formats a string representation of the current value.
+         *
+         * @param value
+         *            The currently selected value.
+         * @return A formatted string representation.
+         */
+        public String format(int value);
+    }
+
+    /**
+     * Create a new number picker.
+     *
+     * @param context
+     *            The application environment.
+     */
+    public HorizontalNumberPicker(Context context) {
+        this(context, null);
+    }
+
+    /**
+     * Create a new number picker.
+     *
+     * @param context
+     *            The application environment.
+     * @param attrs
+     *            A collection of attributes.
+     */
+    public HorizontalNumberPicker(Context context, AttributeSet attrs) {
+        this(context, attrs, R.attr.numberPickerStyle);
+    }
+
+    /**
+     * Create a new number picker
+     *
+     * @param context
+     *            the application environment.
+     * @param attrs
+     *            a collection of attributes.
+     * @param defStyle
+     *            The default style to apply to this view.
+     */
+    public HorizontalNumberPicker(Context context, AttributeSet attrs,
+            int defStyle) {
+        super(context, attrs, defStyle);
+
+        // process style attributes
+        TypedArray attributesArray = context.obtainStyledAttributes(attrs,
+                R.styleable.NumberPicker, defStyle, 0);
+        mSolidColor = attributesArray.getColor(
+                R.styleable.NumberPicker_solidColor, 0);
+        //mFlingable = attributesArray.getBoolean(
+        //        R.styleable.NumberPicker_flingable, true);
+        mFlingable = true;
+
+        mComputeMaxWidth = (mMaxWidth == Integer.MAX_VALUE);
+        attributesArray.recycle();
+
+        mShowInputControlsAnimimationDuration = getResources().getInteger(
+                R.integer.config_longAnimTime);
+
+        // By default Linearlayout that we extend is not drawn. This is
+        // its draw() method is not called but dispatchDraw() is called
+        // directly (see ViewGroup.drawChild()). However, this class uses
+        // the fading edge effect implemented by View and we need our
+        // draw() method to be called. Therefore, we declare we will draw.
+        setWillNotDraw(false);
+        setSelectorWheelState(SELECTOR_WHEEL_STATE_NONE);
+
+
+        // initialize constants
+        mTouchSlop = ViewConfiguration.getTapTimeout();
+        ViewConfiguration configuration = ViewConfiguration.get(context);
+        mTouchSlop = configuration.getScaledTouchSlop();
+        mMinimumFlingVelocity = configuration.getScaledMinimumFlingVelocity();
+        mMaximumFlingVelocity = configuration.getScaledMaximumFlingVelocity()
+                / SELECTOR_MAX_FLING_VELOCITY_ADJUSTMENT;
+//        mTextSize = (int) mInputText.getTextSize();
+        // create the selector wheel paint
+        Paint paint = new Paint();
+        paint.setAntiAlias(true);
+        paint.setTextAlign(Align.CENTER);
+        paint.setTextSize(mTextSize);
+        paint.setColor(Color.WHITE);
+        mSelectorWheelPaint = paint;
+
+
+        // create the fling and adjust scrollers
+        mFlingScroller = new Scroller(getContext(), null, true);
+        mAdjustScroller = new Scroller(getContext(),
+                new DecelerateInterpolator(2.5f));
+//        updateInputTextView();
+
+         updateIncrementAndDecrementButtonsVisibilityState();
+
+        if (mFlingable) {
+            if (isInEditMode()) {
+                setSelectorWheelState(SELECTOR_WHEEL_STATE_SMALL);
+            } else {
+                // Start with shown selector wheel and hidden controls. When
+                // made
+                // visible hide the selector and fade-in the controls to suggest
+                // fling interaction.
+                setSelectorWheelState(SELECTOR_WHEEL_STATE_LARGE);
+            }
+        }
+    }
+
+    @Override
+    protected void onLayout(boolean changed, int left, int top, int right,
+            int bottom) {
+        final int msrdWdth = getMeasuredWidth();
+        final int msrdHght = getMeasuredHeight();
+
+        if (!mScrollWheelAndFadingEdgesInitialized) {
+            mScrollWheelAndFadingEdgesInitialized = true;
+            // need to do all this when we know our size
+            initializeSelectorWheel();
+            initializeFadingEdges();
+        }
+        setVerticalFadingEdgeEnabled(false);
+    }
+    public void setTextSize(int textSize){
+        if(textSize > 0 ){
+            mTextSize = textSize;
+            mSelectorWheelPaint.setTextSize(textSize);
+        }
+    }
+    public void setDensity(int density){
+        switch(density){
+        case DisplayMetrics.DENSITY_LOW :
+            mDensity = LDPI;
+            break;
+        case DisplayMetrics.DENSITY_MEDIUM:
+            mDensity = MDPI;
+            break;
+        case DisplayMetrics.DENSITY_HIGH:
+            mDensity = HDPI;
+            break;
+        case DisplayMetrics.DENSITY_XHIGH:
+            mDensity = XHDPI;
+            break;
+        default:
+            mDensity = MDPI;
+            break;
+        }
+    }
+
+    public void setScale(Scale scale){
+        switch(scale){
+        case SCALE_SMALL:
+            mSelectorIndices = SELECTOR_INDICES_SMALL;
+                break;
+        case SCALE_MEDIUM:
+            mSelectorIndices = SELECTOR_INDICES_MEDIUM;
+            break;
+        case SCALE_LARGE:
+            mSelectorIndices = SELECTOR_INDICES_LARGE;
+            break;
+        default :
+            break;
+        }
+
+        mSelectorMiddleItemIndex = mSelectorIndices.length / 2;
+        initializeSelectorWheel();
+//        invalidate();
+    }
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+
+        final int newWidthMeasureSpec = makeMeasureSpec(widthMeasureSpec,
+                mMaxWidth);
+        final int newHeightMeasureSpec = makeMeasureSpec(heightMeasureSpec,
+                mMaxHeight);
+        super.onMeasure(newWidthMeasureSpec, newHeightMeasureSpec);
+        // Flag if we are measured with width or height less than the respective
+        // min.
+        final int widthSize = resolveSizeAndStateRespectingMinSize(mMinWidth,
+                getMeasuredWidth(), widthMeasureSpec);
+        final int heightSize = resolveSizeAndStateRespectingMinSize(mMinHeight,
+                getMeasuredHeight(), heightMeasureSpec);
+        setMeasuredDimension(widthSize, heightSize);
+    }
+
+    @Override
+    public boolean onInterceptTouchEvent(MotionEvent event) {
+        if (!isEnabled() || !mFlingable) {
+            return false;
+        }
+        switch (event.getActionMasked()) {
+        case MotionEvent.ACTION_DOWN:
+            mLastMotionEventY = mLastDownEventY = event.getY();
+            mLastMotionEventX = mLastDownEventX = event.getX();
+            removeAllCallbacks();
+            mBeginEditOnUpEvent = false;
+            mAdjustScrollerOnUpEvent = true;
+            if (mSelectorWheelState == SELECTOR_WHEEL_STATE_LARGE) {
+                mSelectorWheelPaint.setAlpha(SELECTOR_WHEEL_BRIGHT_ALPHA);
+                boolean scrollersFinished = mFlingScroller.isFinished()
+                        && mAdjustScroller.isFinished();
+                if (!scrollersFinished) {
+                    mFlingScroller.forceFinished(true);
+                    mAdjustScroller.forceFinished(true);
+                    onScrollStateChange(OnScrollListener.SCROLL_STATE_IDLE);
+                }
+                mBeginEditOnUpEvent = scrollersFinished;
+                mAdjustScrollerOnUpEvent = true;
+                return true;
+            }
+
+            mAdjustScrollerOnUpEvent = false;
+            setSelectorWheelState(SELECTOR_WHEEL_STATE_LARGE);
+//            hideInputControls();
+            return true;
+        case MotionEvent.ACTION_MOVE:
+            float currentMoveY = event.getY();
+            float currentMoveX = event.getX();
+            int deltaDownY = (int) Math.abs(currentMoveY - mLastDownEventY);
+            int deltaDownX = (int) Math.abs(currentMoveX - mLastDownEventX);
+            if(mHorizontal){
+                if (mLastDownEventX > mTouchSlop) {
+                    mBeginEditOnUpEvent = false;
+                    onScrollStateChange(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
+                    return true;
+                }
+            }else{
+                if (deltaDownY > mTouchSlop) {
+                    mBeginEditOnUpEvent = false;
+                    onScrollStateChange(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
+                    return true;
+                }
+            }
+            break;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        if (!isEnabled()) {
+            return false;
+        }
+        if (mVelocityTracker == null) {
+            mVelocityTracker = VelocityTracker.obtain();
+        }
+        mVelocityTracker.addMovement(ev);
+        int action = ev.getActionMasked();
+
+        switch (action) {
+        case MotionEvent.ACTION_MOVE:
+            if (!mHorizontal) {
+                float currentMoveY = ev.getY();
+                if (mBeginEditOnUpEvent
+                        || mScrollState != OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
+                    int deltaDownY = (int) Math.abs(currentMoveY
+                            - mLastDownEventY);
+                    if (deltaDownY > mTouchSlop) {
+                        mBeginEditOnUpEvent = false;
+                        onScrollStateChange(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
+                    }
+                }
+                int deltaMoveY = (int) (currentMoveY - mLastMotionEventY);
+                scrollBy(0, deltaMoveY);
+                invalidate();
+                mLastMotionEventY = currentMoveY;
+            } else {
+                float currentMoveX = ev.getX();
+                if (mBeginEditOnUpEvent
+                        || mScrollState != OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
+                    int deltaDownX = (int) Math.abs(currentMoveX
+                            - mLastDownEventX);
+                    if (deltaDownX > mTouchSlop) {
+                        mBeginEditOnUpEvent = false;
+                        onScrollStateChange(OnScrollListener.SCROLL_STATE_TOUCH_SCROLL);
+                    }
+                }
+                int deltaMoveX = (int) (currentMoveX - mLastMotionEventX);
+                scrollBy(deltaMoveX, 0);
+                invalidate();
+                mLastMotionEventX = currentMoveX;
+            }
+            break;
+        case MotionEvent.ACTION_UP:
+            if (mBeginEditOnUpEvent) {
+                setSelectorWheelState(SELECTOR_WHEEL_STATE_SMALL);
+                return true;
+            }
+//            VelocityTracker velocityTracker = mVelocityTracker;
+//            velocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity);
+//            int initialVelocity=0;
+//            if(!mHorizontal){
+//                initialVelocity = (int) velocityTracker.getYVelocity();
+//            }else{
+//              initialVelocity = (int)velocityTracker.getXVelocity();
+//            }
+//            if (Math.abs(initialVelocity) > mMinimumFlingVelocity) {
+//                // fling after up
+//                fling(initialVelocity);
+//                onScrollStateChange(OnScrollListener.SCROLL_STATE_FLING);
+//            } else {
+                if (mAdjustScrollerOnUpEvent) {
+                    if (mFlingScroller.isFinished()
+                            && mAdjustScroller.isFinished()) {
+                        postAdjustScrollerCommand(0);
+                    }
+                } else {
+                    postAdjustScrollerCommand(SHOW_INPUT_CONTROLS_DELAY_MILLIS);
+                }
+//            }
+            mVelocityTracker.recycle();
+            mVelocityTracker = null;
+            break;
+        }
+        return true;
+    }
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent event) {
+        final int action = event.getActionMasked();
+        switch (action) {
+        case MotionEvent.ACTION_MOVE:
+            if (mSelectorWheelState == SELECTOR_WHEEL_STATE_LARGE) {
+                removeAllCallbacks();
+                 forceCompleteChangeCurrentByOneViaScroll();
+            }
+            break;
+        case MotionEvent.ACTION_CANCEL:
+        case MotionEvent.ACTION_UP:
+            removeAllCallbacks();
+            break;
+        }
+        return super.dispatchTouchEvent(event);
+    }
+
+    @Override
+    public boolean dispatchKeyEvent(KeyEvent event) {
+        int keyCode = event.getKeyCode();
+        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER
+                || keyCode == KeyEvent.KEYCODE_ENTER) {
+            removeAllCallbacks();
+        }
+        return super.dispatchKeyEvent(event);
+    }
+
+    @Override
+    public boolean dispatchTrackballEvent(MotionEvent event) {
+        int action = event.getActionMasked();
+        if (action == MotionEvent.ACTION_CANCEL
+                || action == MotionEvent.ACTION_UP) {
+            removeAllCallbacks();
+        }
+        return super.dispatchTrackballEvent(event);
+    }
+
+    @Override
+    public void computeScroll() {
+        if (mSelectorWheelState == SELECTOR_WHEEL_STATE_NONE) {
+            return;
+        }
+        Scroller scroller = mFlingScroller;
+        if (scroller.isFinished()) {
+            scroller = mAdjustScroller;
+            if (scroller.isFinished()) {
+                return;
+            }
+        }
+        scroller.computeScrollOffset();
+
+        if (mHorizontal) {
+            int currentScrollerX = scroller.getCurrX();
+            if (mPreviousScrollerX == 0) {
+                mPreviousScrollerX = scroller.getStartX();
+
+            }
+
+            scrollBy(currentScrollerX - mPreviousScrollerX, 0);
+            mPreviousScrollerX = currentScrollerX;
+
+        } else {
+            int currentScrollerY = scroller.getCurrY();
+            if (mPreviousScrollerY == 0) {
+                mPreviousScrollerY = scroller.getStartY();
+            }
+            scrollBy(0, currentScrollerY - mPreviousScrollerY);
+            mPreviousScrollerY = currentScrollerY;
+        }
+
+        if (scroller.isFinished()) {
+            onScrollerFinished(scroller);
+        } else {
+            invalidate();
+        }
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+    }
+
+    @Override
+    public void scrollBy(int x, int y) {
+        if (mSelectorWheelState == SELECTOR_WHEEL_STATE_NONE) {
+            return;
+        }
+        int[] selectorIndices = mSelectorIndices;
+        if (!mHorizontal) {
+            if (!mWrapSelectorWheel && y > 0
+                    && selectorIndices[mSelectorMiddleItemIndex] <= mMinValue) {
+                mCurrentScrollOffset = mInitialScrollOffset;
+                return;
+            }
+            if (!mWrapSelectorWheel && y < 0
+                    && selectorIndices[mSelectorMiddleItemIndex] >= mMaxValue) {
+                mCurrentScrollOffset = mInitialScrollOffset;
+                return;
+            }
+            mCurrentScrollOffset += y;
+            while (mCurrentScrollOffset - mInitialScrollOffset > mSelectorTextGapHeight) {
+                mCurrentScrollOffset -= mSelectorElementHeight;
+                decrementSelectorIndices(selectorIndices);
+                changeCurrent(selectorIndices[mSelectorMiddleItemIndex]);
+                if (!mWrapSelectorWheel
+                        && selectorIndices[mSelectorMiddleItemIndex] <= mMinValue) {
+                    mCurrentScrollOffset = mInitialScrollOffset;
+                }
+            }
+            while (mCurrentScrollOffset - mInitialScrollOffset < -mSelectorTextGapHeight) {
+                mCurrentScrollOffset += mSelectorElementHeight;
+                incrementSelectorIndices(selectorIndices);
+                changeCurrent(selectorIndices[mSelectorMiddleItemIndex]);
+                if (!mWrapSelectorWheel
+                        && selectorIndices[mSelectorMiddleItemIndex] >= mMaxValue) {
+                    mCurrentScrollOffset = mInitialScrollOffset;
+                }
+            }
+        } else {
+            if (!mWrapSelectorWheel && x > 0
+                    && selectorIndices[mSelectorMiddleItemIndex] <= mMinValue) {
+                mCurrentScrollOffset = mInitialScrollOffset;
+                return;
+            }
+            if (!mWrapSelectorWheel && x < 0
+                    && selectorIndices[mSelectorMiddleItemIndex] >= mMaxValue) {
+                mCurrentScrollOffset = mInitialScrollOffset;
+                return;
+            }
+            mCurrentScrollOffset += x;
+            while (mCurrentScrollOffset - mInitialScrollOffset > mSelectorTextGapWidth) {
+                mCurrentScrollOffset -= mSelectorElementWidth;
+                decrementSelectorIndices(selectorIndices);
+                changeCurrent(selectorIndices[mSelectorMiddleItemIndex]);
+                if (!mWrapSelectorWheel
+                        && selectorIndices[mSelectorMiddleItemIndex] <= mMinValue) {
+                    mCurrentScrollOffset = mInitialScrollOffset;
+                }
+            }
+            while (mCurrentScrollOffset - mInitialScrollOffset < -mSelectorTextGapWidth) {
+                mCurrentScrollOffset += mSelectorElementWidth;
+                incrementSelectorIndices(selectorIndices);
+                changeCurrent(selectorIndices[mSelectorMiddleItemIndex]);
+                if (!mWrapSelectorWheel
+                        && selectorIndices[mSelectorMiddleItemIndex] >= mMaxValue) {
+                    mCurrentScrollOffset = mInitialScrollOffset;
+                }
+            }
+        }
+
+    }
+
+    @Override
+    public int getSolidColor() {
+        return mSolidColor;
+    }
+
+    /**
+     * Sets the listener to be notified on change of the current value.
+     *
+     * @param onValueChangedListener
+     *            The listener.
+     */
+    public void setOnValueChangedListener(
+            OnValueChangeListener onValueChangedListener) {
+        mOnValueChangeListener = onValueChangedListener;
+    }
+
+    /**
+     * Set listener to be notified for scroll state changes.
+     *
+     * @param onScrollListener
+     *            The listener.
+     */
+    public void setOnScrollListener(OnScrollListener onScrollListener) {
+        mOnScrollListener = onScrollListener;
+    }
+    public void setOnScrollFinishedListener(OnScrollFinishListener onScrollFinishListener){
+        mOnScrollFinishListener = onScrollFinishListener;
+    }
+    /**
+     * Set the formatter to be used for formatting the current value.
+     * <p>
+     * Note: If you have provided alternative values for the values this
+     * formatter is never invoked.
+     * </p>
+     *
+     * @param formatter
+     *            The formatter object. If formatter is <code>null</code>,
+     *            {@link String#valueOf(int)} will be used.
+     *
+     * @see #setDisplayedValues(String[])
+     */
+    public void setFormatter(Formatter formatter) {
+        if (formatter == mFormatter) {
+            return;
+        }
+        mFormatter = formatter;
+        initializeSelectorWheelIndices();
+//        updateInputTextView();
+    }
+
+    /**
+     * Set the current value for the number picker.
+     * <p>
+     * If the argument is less than the {@link NumberPicker#getMinValue()} and
+     * {@link NumberPicker#getWrapSelectorWheel()} is <code>false</code> the
+     * current value is set to the {@link NumberPicker#getMinValue()} value.
+     * </p>
+     * <p>
+     * If the argument is less than the {@link NumberPicker#getMinValue()} and
+     * {@link NumberPicker#getWrapSelectorWheel()} is <code>true</code> the
+     * current value is set to the {@link NumberPicker#getMaxValue()} value.
+     * </p>
+     * <p>
+     * If the argument is less than the {@link NumberPicker#getMaxValue()} and
+     * {@link NumberPicker#getWrapSelectorWheel()} is <code>false</code> the
+     * current value is set to the {@link NumberPicker#getMaxValue()} value.
+     * </p>
+     * <p>
+     * If the argument is less than the {@link NumberPicker#getMaxValue()} and
+     * {@link NumberPicker#getWrapSelectorWheel()} is <code>true</code> the
+     * current value is set to the {@link NumberPicker#getMinValue()} value.
+     * </p>
+     *
+     * @param value
+     *            The current value.
+     * @see #setWrapSelectorWheel(boolean)
+     * @see #setMinValue(int)
+     * @see #setMaxValue(int)
+     */
+    public void setValue(int value) {
+        if (mValue == value) {
+            return;
+        }
+        if (value < mMinValue) {
+            value = mWrapSelectorWheel ? mMaxValue : mMinValue;
+        }
+        if (value > mMaxValue) {
+            value = mWrapSelectorWheel ? mMinValue : mMaxValue;
+        }
+        mValue = value;
+        initializeSelectorWheelIndices();
+        updateInputTextView();
+        updateIncrementAndDecrementButtonsVisibilityState();
+        invalidate();
+    }
+
+    /**
+     * Computes the max width if no such specified as an attribute.
+     */
+    private void tryComputeMaxWidth() {
+        if (!mComputeMaxWidth) {
+            return;
+        }
+        int maxTextWidth = 0;
+        if (mDisplayedValues == null) {
+            float maxDigitWidth = 0;
+            for (int i = 0; i <= 9; i++) {
+                final float digitWidth = mSelectorWheelPaint.measureText(String
+                        .valueOf(i));
+                if (digitWidth > maxDigitWidth) {
+                    maxDigitWidth = digitWidth;
+                }
+            }
+            int numberOfDigits = 0;
+            int current = mMaxValue;
+            while (current > 0) {
+                numberOfDigits++;
+                current = current / 10;
+            }
+            maxTextWidth = (int) (numberOfDigits * maxDigitWidth);
+        } else {
+            final int valueCount = mDisplayedValues.length;
+            for (int i = 0; i < valueCount; i++) {
+                final float textWidth = mSelectorWheelPaint
+                        .measureText(mDisplayedValues[i]);
+                if (textWidth > maxTextWidth) {
+                    maxTextWidth = (int) textWidth;
+                }
+            }
+        }
+//        maxTextWidth += mInputText.getPaddingLeft()
+//                + mInputText.getPaddingRight();
+        if (mMaxWidth != maxTextWidth) {
+            if (maxTextWidth > mMinWidth) {
+                mMaxWidth = maxTextWidth;
+            } else {
+                mMaxWidth = mMinWidth;
+            }
+            invalidate();
+        }
+    }
+
+    /**
+     * Gets whether the selector wheel wraps when reaching the min/max value.
+     *
+     * @return True if the selector wheel wraps.
+     *
+     * @see #getMinValue()
+     * @see #getMaxValue()
+     */
+    public boolean getWrapSelectorWheel() {
+        return mWrapSelectorWheel;
+    }
+
+    /**
+     * Sets whether the selector wheel shown during flinging/scrolling should
+     * wrap around the {@link NumberPicker#getMinValue()} and
+     * {@link NumberPicker#getMaxValue()} values.
+     * <p>
+     * By default if the range (max - min) is more than five (the number of
+     * items shown on the selector wheel) the selector wheel wrapping is
+     * enabled.
+     * </p>
+     *
+     * @param wrapSelectorWheel
+     *            Whether to wrap.
+     */
+    public void setWrapSelectorWheel(boolean wrapSelectorWheel) {
+        if (wrapSelectorWheel
+                && (mMaxValue - mMinValue) < mSelectorIndices.length) {
+            throw new IllegalStateException(
+                    "Range less than selector items count.");
+        }
+        if (wrapSelectorWheel != mWrapSelectorWheel) {
+            mWrapSelectorWheel = wrapSelectorWheel;
+            updateIncrementAndDecrementButtonsVisibilityState();
+        }
+    }
+
+    /**
+     * Sets the speed at which the numbers be incremented and decremented when
+     * the up and down buttons are long pressed respectively.
+     * <p>
+     * The default value is 300 ms.
+     * </p>
+     *
+     * @param intervalMillis
+     *            The speed (in milliseconds) at which the numbers will be
+     *            incremented and decremented.
+     */
+    public void setOnLongPressUpdateInterval(long intervalMillis) {
+        mLongPressUpdateInterval = intervalMillis;
+    }
+
+    /**
+     * Returns the value of the picker.
+     *
+     * @return The value.
+     */
+    public int getValue() {
+        return mValue;
+    }
+
+    /**
+     * Returns the min value of the picker.
+     *
+     * @return The min value
+     */
+    public int getMinValue() {
+        return mMinValue;
+    }
+
+    /**
+     * Sets the min value of the picker.
+     *
+     * @param minValue
+     *            The min value.
+     */
+    public void setMinValue(int minValue) {
+        if (mMinValue == minValue) {
+            return;
+        }
+        if (minValue < 0) {
+            throw new IllegalArgumentException("minValue must be >= 0");
+        }
+        mMinValue = minValue;
+        if (mMinValue > mValue) {
+            mValue = mMinValue;
+        }
+        boolean wrapSelectorWheel = mMaxValue - mMinValue > mSelectorIndices.length;
+        setWrapSelectorWheel(wrapSelectorWheel);
+        initializeSelectorWheelIndices();
+        updateInputTextView();
+        tryComputeMaxWidth();
+    }
+
+    /**
+     * Returns the max value of the picker.
+     *
+     * @return The max value.
+     */
+    public int getMaxValue() {
+        return mMaxValue;
+    }
+
+    /**
+     * Sets the max value of the picker.
+     *
+     * @param maxValue
+     *            The max value.
+     */
+    public void setMaxValue(int maxValue) {
+        if (mMaxValue == maxValue) {
+            return;
+        }
+        if (maxValue < 0) {
+            throw new IllegalArgumentException("maxValue must be >= 0");
+        }
+        mMaxValue = maxValue;
+        if (mMaxValue < mValue) {
+            mValue = mMaxValue;
+        }
+        boolean wrapSelectorWheel = mMaxValue - mMinValue > mSelectorIndices.length;
+        setWrapSelectorWheel(wrapSelectorWheel);
+        initializeSelectorWheelIndices();
+        tryComputeMaxWidth();
+    }
+
+    /**
+     * Gets the values to be displayed instead of string values.
+     *
+     * @return The displayed values.
+     */
+    public String[] getDisplayedValues() {
+        return mDisplayedValues;
+    }
+
+    /**
+     * Sets the values to be displayed.
+     *
+     * @param displayedValues
+     *            The displayed values.
+     */
+    public void setDisplayedValues(String[] displayedValues) {
+        if (mDisplayedValues == displayedValues) {
+            return;
+        }
+        mDisplayedValues = displayedValues;
+        if (mDisplayedValues != null) {
+            // Allow text entry rather than strictly numeric entry.
+//            mInputText.setRawInputType(InputType.TYPE_CLASS_TEXT
+//                    | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
+        } else {
+//            mInputText.setRawInputType(InputType.TYPE_CLASS_NUMBER);
+        }
+//        updateInputTextView();
+        initializeSelectorWheelIndices();
+        tryComputeMaxWidth();
+    }
+    /**
+     * Sets the values to be displayed.If autoCalMinMax passed true, will calculate
+     * and set min value and max value.
+     *
+     * @param displayedValues
+     *            The displayed values.
+     * @param autoCalMinMax
+     *            Whether auto calculate and set the min value and max value.
+     */
+    public void setDisplayedValues(String[] displayeValues , boolean autoCalculateMinMax) {
+        if(autoCalculateMinMax){
+            mMinValue = 0;
+            mMaxValue = displayeValues.length - 1;
+        }
+        setDisplayedValues(displayeValues);
+    }
+
+    @Override
+    protected float getTopFadingEdgeStrength() {
+        return TOP_AND_BOTTOM_FADING_EDGE_STRENGTH;
+    }
+
+    @Override
+    protected float getBottomFadingEdgeStrength() {
+        return TOP_AND_BOTTOM_FADING_EDGE_STRENGTH;
+    }
+
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        // make sure we show the controls only the very
+        // first time the user sees this widget
+        if (mFlingable && !isInEditMode()) {
+            // animate a bit slower the very first time
+             showInputControls(mShowInputControlsAnimimationDuration * 2);
+        }
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        removeAllCallbacks();
+    }
+
+    @Override
+    protected void dispatchDraw(Canvas canvas) {
+        // There is a good reason for doing this. See comments in draw().
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        // Dispatch draw to our children only if we are not currently running
+        // the animation for simultaneously dimming the scroll wheel and
+        // showing in the buttons. This class takes advantage of the View
+        // implementation of fading edges effect to draw the selector wheel.
+        // However, in View.draw(), the fading is applied after all the children
+        // have been drawn and we do not want this fading to be applied to the
+        // buttons. Therefore, we draw our children after we have completed
+        // drawing ourselves.
+        super.draw(canvas);
+
+//         Draw our children if we are not showing the selector wheel of fading
+//         it out
+//        if (mShowInputControlsAnimator.isRunning()
+//                || mSelectorWheelState != SELECTOR_WHEEL_STATE_LARGE) {
+//            long drawTime = getDrawingTime();
+//            for (int i = 0, count = getChildCount(); i < count; i++) {
+//                View child = getChildAt(i);
+//                if (!child.isShown()) {
+//                    continue;
+//                }
+//                drawChild(canvas, getChildAt(i), drawTime);
+//            }
+//        }
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        if (mSelectorWheelState == SELECTOR_WHEEL_STATE_NONE) {
+            return;
+        }
+
+        float x = 0.0f;
+        float y = 0.0f;
+        if (!mHorizontal) {
+            x = (mRight - mLeft) / 2;
+            y = mCurrentScrollOffset;
+        } else {
+            x = mCurrentScrollOffset;
+            y = (mBottom - mTop) / 2 + mTextSize/2;
+            if(Math.abs(mDensity - 1.5f) < 0.001f){
+                y += mHdpiPositionAdjust;
+            }
+        }
+
+
+        final int restoreCount = canvas.save();
+
+        if (mSelectorWheelState == SELECTOR_WHEEL_STATE_SMALL) {
+            Rect clipBounds = canvas.getClipBounds();
+            clipBounds.inset(0, mSelectorElementHeight);
+            canvas.clipRect(clipBounds);
+        }
+
+        // draw the selector wheel
+        int[] selectorIndices = mSelectorIndices;
+        for (int i = 0; i < selectorIndices.length; i++) {
+            int selectorIndex = selectorIndices[i];
+            String scrollSelectorValue = mSelectorIndexToStringCache
+                    .get(selectorIndex);
+                if(i - mSelectorMiddleItemIndex > 0 ){
+                    mSelectorWheelPaint.setColor(Color.WHITE);
+                    mSelectorWheelPaint.setAlpha((2*mSelectorMiddleItemIndex - i) * SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE / mSelectorMiddleItemIndex);
+                }else if(i - mSelectorMiddleItemIndex < 0 ){
+                    mSelectorWheelPaint.setColor(Color.WHITE);
+                    mSelectorWheelPaint.setAlpha(i * SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE / mSelectorMiddleItemIndex);
+                }else{
+                    mSelectorWheelPaint.setColor(Color.RED);
+                    mSelectorWheelPaint.setAlpha(SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE);
+                }
+                float fNumber = Float.valueOf(scrollSelectorValue).floatValue();
+
+                boolean bShowNumber = false;
+                float fWidthOfScale = mScaleWidth ;
+                float fGapBetweenNumAndScale = mGapBetweenNumAndScale * mDensity;
+                float fScaleLength = mScaleLengthShort * mDensity;
+                //every 0.5MHz show number.
+                if((int)(fNumber * 100)%50 == 0 ){
+                    if(!(selectorIndex == getMaxValue())){
+                        bShowNumber = true;
+                        fScaleLength = mScaleLengthLong * mDensity;
+                    }
+                }
+                if(bShowNumber){
+                    canvas.drawText(scrollSelectorValue, x, y, mSelectorWheelPaint);
+                }
+                canvas.drawRect(x, y+fGapBetweenNumAndScale, x+fWidthOfScale, y + fGapBetweenNumAndScale + fScaleLength , mSelectorWheelPaint);
+
+//            }
+            if (mHorizontal) {
+                x += mSelectorElementWidth;
+            } else {
+                y += mSelectorElementHeight;
+            }
+        }
+        canvas.restoreToCount(restoreCount);
+    }
+
+    @Override
+    public void sendAccessibilityEvent(int eventType) {
+        // Do not send accessibility events - we want the user to
+        // perceive this widget as several controls rather as a whole.
+    }
+
+    /**
+     * Makes a measure spec that tries greedily to use the max value.
+     *
+     * @param measureSpec
+     *            The measure spec.
+     * @param maxSize
+     *            The max value for the size.
+     * @return A measure spec greedily imposing the max size.
+     */
+    private int makeMeasureSpec(int measureSpec, int maxSize) {
+        if (maxSize == SIZE_UNSPECIFIED) {
+            return measureSpec;
+        }
+        final int size = MeasureSpec.getSize(measureSpec);
+        final int mode = MeasureSpec.getMode(measureSpec);
+        switch (mode) {
+        case MeasureSpec.EXACTLY:
+            return measureSpec;
+        case MeasureSpec.AT_MOST:
+            return MeasureSpec.makeMeasureSpec(Math.min(size, maxSize),
+                    MeasureSpec.EXACTLY);
+        case MeasureSpec.UNSPECIFIED:
+            return MeasureSpec.makeMeasureSpec(maxSize, MeasureSpec.EXACTLY);
+        default:
+            throw new IllegalArgumentException("Unknown measure mode: " + mode);
+        }
+    }
+
+    /**
+     * Utility to reconcile a desired size and state, with constraints imposed
+     * by a MeasureSpec. Tries to respect the min size, unless a different size
+     * is imposed by the constraints.
+     *
+     * @param minSize
+     *            The minimal desired size.
+     * @param measuredSize
+     *            The currently measured size.
+     * @param measureSpec
+     *            The current measure spec.
+     * @return The resolved size and state.
+     */
+    private int resolveSizeAndStateRespectingMinSize(int minSize,
+            int measuredSize, int measureSpec) {
+        if (minSize != SIZE_UNSPECIFIED) {
+            final int desiredWidth = Math.max(minSize, measuredSize);
+            return resolveSizeAndState(desiredWidth, measureSpec, 0);
+        } else {
+            return measuredSize;
+        }
+    }
+
+    /**
+     * Resets the selector indices and clear the cached string representation of
+     * these indices.
+     */
+    private void initializeSelectorWheelIndices() {
+        mSelectorIndexToStringCache.clear();
+        int[] selectorIdices = mSelectorIndices;
+        int current = getValue();
+        for (int i = 0; i < mSelectorIndices.length; i++) {
+            int selectorIndex = current + (i - mSelectorMiddleItemIndex);
+            if (mWrapSelectorWheel) {
+                selectorIndex = getWrappedSelectorIndex(selectorIndex);
+            }
+            mSelectorIndices[i] = selectorIndex;
+            ensureCachedScrollSelectorValue(mSelectorIndices[i]);
+        }
+    }
+
+    /**
+     * Sets the current value of this NumberPicker, and sets mPrevious to the
+     * previous value. If current is greater than mEnd less than mStart, the
+     * value of mCurrent is wrapped around. Subclasses can override this to
+     * change the wrapping behavior
+     *
+     * @param current
+     *            the new value of the NumberPicker
+     */
+    private void changeCurrent(int current) {
+        if (mValue == current) {
+            return;
+        }
+        // Wrap around the values if we go past the start or end
+        if (mWrapSelectorWheel) {
+            current = getWrappedSelectorIndex(current);
+        }
+        int previous = mValue;
+        setValue(current);
+        notifyChange(previous, current);
+    }
+
+    /**
+     * Changes the current value by one which is increment or decrement based on
+     * the passes argument.
+     *
+     * @param increment
+     *            True to increment, false to decrement.
+     */
+    private void changeCurrentByOne(boolean increment) {
+        if (mFlingable) {
+            mSelectorWheelPaint.setAlpha(SELECTOR_WHEEL_BRIGHT_ALPHA);
+            mPreviousScrollerY = 0;
+            mPreviousScrollerX = 0;
+            forceCompleteChangeCurrentByOneViaScroll();
+            if (increment) {
+                if (mHorizontal) {
+                    mFlingScroller.startScroll(0, 0, -mSelectorElementHeight,
+                            0, CHANGE_CURRENT_BY_ONE_SCROLL_DURATION);
+                } else {
+                    mFlingScroller.startScroll(0, 0, 0,
+                            -mSelectorElementHeight,
+                            CHANGE_CURRENT_BY_ONE_SCROLL_DURATION);
+                }
+
+            } else {
+                if (mHorizontal) {
+                    mFlingScroller.startScroll(0, 0, mSelectorElementHeight, 0,
+                            CHANGE_CURRENT_BY_ONE_SCROLL_DURATION);
+                } else {
+                    mFlingScroller.startScroll(0, 0, 0, mSelectorElementHeight,
+                            CHANGE_CURRENT_BY_ONE_SCROLL_DURATION);
+                }
+
+            }
+            invalidate();
+        } else {
+            if (increment) {
+                changeCurrent(mValue + 1);
+            } else {
+                changeCurrent(mValue - 1);
+            }
+        }
+    }
+
+    /**
+     * Ensures that if we are in the process of changing the current value by
+     * one via scrolling the scroller gets to its final state and the value is
+     * updated.
+     */
+    private void forceCompleteChangeCurrentByOneViaScroll() {
+        Scroller scroller = mFlingScroller;
+        if (!scroller.isFinished()) {
+            if (mHorizontal) {
+                final int xBeforeAbort = scroller.getCurrX();
+                scroller.abortAnimation();
+                final int xDelta = scroller.getCurrX() - xBeforeAbort;
+                scrollBy(xDelta, 0);
+            } else {
+                final int yBeforeAbort = scroller.getCurrY();
+                scroller.abortAnimation();
+                final int yDelta = scroller.getCurrY() - yBeforeAbort;
+                scrollBy(0, yDelta);
+            }
+        }
+    }
+
+    /**
+     * Sets the <code>alpha</code> of the {@link Paint} for drawing the selector
+     * wheel.
+     */
+    @SuppressWarnings("unused")
+    // Called via reflection
+    private void setSelectorPaintAlpha(int alpha) {
+        mSelectorWheelPaint.setAlpha(alpha);
+        invalidate();
+    }
+
+    /**
+     * @return If the <code>event</code> is in the visible <code>view</code>.
+     */
+    private boolean isEventInVisibleViewHitRect(MotionEvent event, View view) {
+        if (view.getVisibility() == VISIBLE) {
+            view.getHitRect(mTempRect);
+            return mTempRect.contains((int) event.getX(), (int) event.getY());
+        }
+        return false;
+    }
+
+    /**
+     * Sets the <code>selectorWheelState</code>.
+     */
+    private void setSelectorWheelState(int selectorWheelState) {
+        mSelectorWheelState = selectorWheelState;
+        if (selectorWheelState == SELECTOR_WHEEL_STATE_LARGE) {
+            mSelectorWheelPaint.setAlpha(SELECTOR_WHEEL_BRIGHT_ALPHA);
+        }
+
+        if (mFlingable && selectorWheelState == SELECTOR_WHEEL_STATE_LARGE
+                && AccessibilityManager.getInstance(mContext).isEnabled()) {
+            AccessibilityManager.getInstance(mContext).interrupt();
+            String text = mContext
+                    .getString(R.string.number_picker_increment_scroll_action);
+        }
+    }
+
+    private void initializeSelectorWheel() {
+        initializeSelectorWheelIndices();
+        int[] selectorIndices = mSelectorIndices;
+        int totalTextHeight = selectorIndices.length * mTextSize;
+        int totalTextWidth = (selectorIndices.length - 1) * 2;
+        // set it horizontal
+        float totalTextGapHeight = (mBottom - mTop) - totalTextHeight;
+        float totalTextGapWidth = (mRight - mLeft) - totalTextWidth;
+
+        float textGapCount = selectorIndices.length - 1;
+        if (mHorizontal) {
+            mSelectorTextGapWidth = (int) (totalTextGapWidth / textGapCount);
+            Log.d(TAG,"mSelectorTextGapWidth :" + mSelectorTextGapWidth);
+            mSelectorElementWidth = 2 + mSelectorTextGapWidth;
+            mInitialScrollOffset = INIT_SCROLL_OFFSET_HORIZONTAL;
+        } else {
+            mSelectorTextGapHeight = (int) (totalTextGapHeight / textGapCount + 0.5f);
+            mSelectorElementHeight = mTextSize + mSelectorTextGapHeight;
+            mInitialScrollOffset = INIT_SCROLL_OFFSET_VERTICAL;
+        }
+        mCurrentScrollOffset = mInitialScrollOffset;
+
+    }
+
+    private void initializeFadingEdges() {
+        setVerticalFadingEdgeEnabled(true);
+        setFadingEdgeLength((mBottom - mTop - mTextSize) / 2);
+    }
+
+    /**
+     * Callback invoked upon completion of a given <code>scroller</code>.
+     */
+    private void onScrollerFinished(Scroller scroller) {
+
+        if(mOnScrollFinishListener != null){
+            mOnScrollFinishListener.onScrollFinish(mValue);
+        }
+        if (scroller == mFlingScroller) {
+            if (mSelectorWheelState == SELECTOR_WHEEL_STATE_LARGE) {
+                postAdjustScrollerCommand(0);
+                onScrollStateChange(OnScrollListener.SCROLL_STATE_IDLE);
+            } else {
+//                 updateInputTextView();
+//                 fadeSelectorWheel(mShowInputControlsAnimimationDuration);
+            }
+        } else {
+//             updateInputTextView();
+//             showInputControls(mShowInputControlsAnimimationDuration);
+        }
+    }
+
+    /**
+     * Handles transition to a given <code>scrollState</code>
+     */
+    private void onScrollStateChange(int scrollState) {
+        if (mScrollState == scrollState) {
+            return;
+        }
+        mScrollState = scrollState;
+        if (mOnScrollListener != null) {
+
+            mOnScrollListener.onScrollStateChange(this, scrollState);
+        }
+    }
+
+    /**
+     * Flings the selector with the given <code>velocityY</code>.
+     */
+    private void fling(int velocity) {
+        mPreviousScrollerY = 0;
+        mPreviousScrollerX = 0;
+        int velocityY = velocity;
+        int velocityX = velocity;
+        if (mHorizontal) {
+            if (velocityX > 0) {
+                mFlingScroller.fling(0, 0, velocityX, 0, 0, Integer.MAX_VALUE,
+                        0, 0);
+            } else {
+                mFlingScroller.fling(Integer.MAX_VALUE, 0, velocityX, 0, 0,
+                        Integer.MAX_VALUE, 0, 0);
+            }
+        } else {
+            if (velocityY > 0) {
+                mFlingScroller.fling(0, 0, 0, velocityY, 0, 0, 0,
+                        Integer.MAX_VALUE);
+            } else {
+                mFlingScroller.fling(0, Integer.MAX_VALUE, 0, velocityY, 0, 0,
+                        0, Integer.MAX_VALUE);
+            }
+        }
+
+        invalidate();
+    }
+
+    /**
+     * Hides the input controls which is the up/down arrows and the text field.
+     */
+    private void hideInputControls() {
+        // mShowInputControlsAnimator.cancel();
+        // mIncrementButton.setVisibility(INVISIBLE);
+        // mDecrementButton.setVisibility(INVISIBLE);
+//        mInputText.setVisibility(INVISIBLE);
+    }
+
+    /**
+     * Show the input controls by making them visible and animating the alpha
+     * property up/down arrows.
+     *
+     * @param animationDuration
+     *            The duration of the animation.
+     */
+    private void showInputControls(long animationDuration) {
+//        updateIncrementAndDecrementButtonsVisibilityState();
+//         mInputText.setVisibility(VISIBLE);
+//         mShowInputControlsAnimator.setDuration(animationDuration);
+//         mShowInputControlsAnimator.start();
+    }
+
+    /**
+     * Fade the selector wheel via an animation.
+     *
+     * @param animationDuration
+     *            The duration of the animation.
+     */
+    // mark this 1
+    private void fadeSelectorWheel(long animationDuration) {
+//        mInputText.setVisibility(VISIBLE);
+//        mDimSelectorWheelAnimator.setDuration(animationDuration);
+//        mDimSelectorWheelAnimator.start();
+    }
+
+    /**
+     * Updates the visibility state of the increment and decrement buttons.
+     */
+    private void updateIncrementAndDecrementButtonsVisibilityState() {
+        if (mWrapSelectorWheel || mValue < mMaxValue) {
+            // mIncrementButton.setVisibility(VISIBLE);
+        } else {
+            // mIncrementButton.setVisibility(INVISIBLE);
+        }
+        if (mWrapSelectorWheel || mValue > mMinValue) {
+            // mDecrementButton.setVisibility(VISIBLE);
+        } else {
+            // mDecrementButton.setVisibility(INVISIBLE);
+        }
+    }
+
+    /**
+     * @return The wrapped index <code>selectorIndex</code> value.
+     */
+    private int getWrappedSelectorIndex(int selectorIndex) {
+        if (selectorIndex > mMaxValue) {
+            return mMinValue + (selectorIndex - mMaxValue)
+                    % (mMaxValue - mMinValue) - 1;
+        } else if (selectorIndex < mMinValue) {
+            return mMaxValue - (mMinValue - selectorIndex)
+                    % (mMaxValue - mMinValue) + 1;
+        }
+        return selectorIndex;
+    }
+
+    /**
+     * Increments the <code>selectorIndices</code> whose string representations
+     * will be displayed in the selector.
+     */
+    private void incrementSelectorIndices(int[] selectorIndices) {
+        for (int i = 0; i < selectorIndices.length - 1; i++) {
+            selectorIndices[i] = selectorIndices[i + 1];
+        }
+        int nextScrollSelectorIndex = selectorIndices[selectorIndices.length - 2] + 1;
+        if (mWrapSelectorWheel && nextScrollSelectorIndex > mMaxValue) {
+            nextScrollSelectorIndex = mMinValue;
+        }
+        selectorIndices[selectorIndices.length - 1] = nextScrollSelectorIndex;
+        ensureCachedScrollSelectorValue(nextScrollSelectorIndex);
+    }
+
+    /**
+     * Decrements the <code>selectorIndices</code> whose string representations
+     * will be displayed in the selector.
+     */
+    private void decrementSelectorIndices(int[] selectorIndices) {
+        for (int i = selectorIndices.length - 1; i > 0; i--) {
+            selectorIndices[i] = selectorIndices[i - 1];
+        }
+        int nextScrollSelectorIndex = selectorIndices[1] - 1;
+        if (mWrapSelectorWheel && nextScrollSelectorIndex < mMinValue) {
+            nextScrollSelectorIndex = mMaxValue;
+        }
+        selectorIndices[0] = nextScrollSelectorIndex;
+        ensureCachedScrollSelectorValue(nextScrollSelectorIndex);
+    }
+
+    /**
+     * Ensures we have a cached string representation of the given <code>
+     * selectorIndex</code>
+     * to avoid multiple instantiations of the same string.
+     */
+    private void ensureCachedScrollSelectorValue(int selectorIndex) {
+        SparseArray<String> cache = mSelectorIndexToStringCache;
+        String scrollSelectorValue = cache.get(selectorIndex);
+        if (scrollSelectorValue != null) {
+            return;
+        }
+        if (selectorIndex < mMinValue || selectorIndex > mMaxValue) {
+            scrollSelectorValue = "";
+        } else {
+            if (mDisplayedValues != null) {
+                int displayedValueIndex = selectorIndex - mMinValue;
+                scrollSelectorValue = mDisplayedValues[displayedValueIndex];
+            } else {
+                scrollSelectorValue = formatNumber(selectorIndex);
+            }
+        }
+        cache.put(selectorIndex, scrollSelectorValue);
+    }
+
+    private String formatNumber(int value) {
+        return (mFormatter != null) ? mFormatter.format(value) : String
+                .valueOf(value);
+    }
+
+    private void validateInputTextView(View v) {
+        String str = String.valueOf(((TextView) v).getText());
+        if (TextUtils.isEmpty(str)) {
+            // Restore to the old value as we don't allow empty values
+            updateInputTextView();
+        } else {
+            // Check the new value and ensure it's in range
+            int current = getSelectedPos(str.toString());
+            changeCurrent(current);
+        }
+    }
+
+    /**
+     * Updates the view of this NumberPicker. If displayValues were specified in
+     * the string corresponding to the index specified by the current value will
+     * be returned. Otherwise, the formatter specified in {@link #setFormatter}
+     * will be used to format the number.
+     */
+    private void updateInputTextView() {
+        /*
+         * If we don't have displayed values then use the current number else
+         * find the correct value in the displayed values for the current
+         * number.
+         */
+        // mark this 2
+        if (mDisplayedValues == null) {
+//            mInputText.setText(TWO_DIGIT_FORMATTER.format(mValue));
+        } else {
+//            mInputText.setText(mDisplayedValues[mValue - mMinValue]);
+        }
+//        mInputText.setSelection(mInputText.getText().length());
+
+        if (mFlingable
+                && AccessibilityManager.getInstance(mContext).isEnabled()) {
+//            String text = mContext.getString(
+//                    R.string.number_picker_increment_scroll_mode, mInputText
+//                            .getText());
+//            mInputText.setContentDescription(text);
+        }
+    }
+
+    /**
+     * Notifies the listener, if registered, of a change of the value of this
+     * NumberPicker.
+     */
+    private void notifyChange(int previous, int current) {
+        if (mOnValueChangeListener != null) {
+            mOnValueChangeListener.onValueChange(this, previous, mValue);
+        }
+    }
+
+    /**
+     * Posts a command for changing the current value by one.
+     *
+     * @param increment
+     *            Whether to increment or decrement the value.
+     */
+    private void postChangeCurrentByOneFromLongPress(boolean increment) {
+//        mInputText.clearFocus();
+        removeAllCallbacks();
+        if (mChangeCurrentByOneFromLongPressCommand == null) {
+            mChangeCurrentByOneFromLongPressCommand = new ChangeCurrentByOneFromLongPressCommand();
+        }
+        mChangeCurrentByOneFromLongPressCommand.setIncrement(increment);
+        post(mChangeCurrentByOneFromLongPressCommand);
+    }
+
+    /**
+     * Removes all pending callback from the message queue.
+     */
+    private void removeAllCallbacks() {
+        if (mChangeCurrentByOneFromLongPressCommand != null) {
+            removeCallbacks(mChangeCurrentByOneFromLongPressCommand);
+        }
+        if (mAdjustScrollerCommand != null) {
+            removeCallbacks(mAdjustScrollerCommand);
+        }
+        if (mSetSelectionCommand != null) {
+            removeCallbacks(mSetSelectionCommand);
+        }
+    }
+
+    /**
+     * @return The selected index given its displayed <code>value</code>.
+     */
+    private int getSelectedPos(String value) {
+        if (mDisplayedValues == null) {
+            try {
+                return Integer.parseInt(value);
+            } catch (NumberFormatException e) {
+                // Ignore as if it's not a number we don't care
+            }
+        } else {
+            for (int i = 0; i < mDisplayedValues.length; i++) {
+                // Don't force the user to type in jan when ja will do
+                value = value.toLowerCase();
+                if (mDisplayedValues[i].toLowerCase().startsWith(value)) {
+                    return mMinValue + i;
+                }
+            }
+
+            /*
+             * The user might have typed in a number into the month field i.e.
+             * 10 instead of OCT so support that too.
+             */
+            try {
+                return Integer.parseInt(value);
+            } catch (NumberFormatException e) {
+
+                // Ignore as if it's not a number we don't care
+            }
+        }
+        return mMinValue;
+    }
+
+    /**
+     * Posts an {@link SetSelectionCommand} from the given <code>selectionStart
+     * </code> to
+     * <code>selectionEnd</code>.
+     */
+    private void postSetSelectionCommand(int selectionStart, int selectionEnd) {
+        if (mSetSelectionCommand == null) {
+            mSetSelectionCommand = new SetSelectionCommand();
+        } else {
+            removeCallbacks(mSetSelectionCommand);
+        }
+        mSetSelectionCommand.mSelectionStart = selectionStart;
+        mSetSelectionCommand.mSelectionEnd = selectionEnd;
+        post(mSetSelectionCommand);
+    }
+
+    /**
+     * Posts an {@link AdjustScrollerCommand} within the given <code>
+     * delayMillis</code>
+     * .
+     */
+    private void postAdjustScrollerCommand(int delayMillis) {
+        if (mAdjustScrollerCommand == null) {
+            mAdjustScrollerCommand = new AdjustScrollerCommand();
+        } else {
+            removeCallbacks(mAdjustScrollerCommand);
+        }
+        postDelayed(mAdjustScrollerCommand, delayMillis);
+    }
+
+    /**
+     * Filter for accepting only valid indices or prefixes of the string
+     * representation of valid indices.
+     */
+    class InputTextFilter extends NumberKeyListener {
+
+        // XXX This doesn't allow for range limits when controlled by a
+        // soft input method!
+        public int getInputType() {
+            return InputType.TYPE_CLASS_TEXT;
+        }
+
+        @Override
+        protected char[] getAcceptedChars() {
+            return DIGIT_CHARACTERS;
+        }
+
+        @Override
+        public CharSequence filter(CharSequence source, int start, int end,
+                Spanned dest, int dstart, int dend) {
+            if (mDisplayedValues == null) {
+                CharSequence filtered = super.filter(source, start, end, dest,
+                        dstart, dend);
+                if (filtered == null) {
+                    filtered = source.subSequence(start, end);
+                }
+
+                String result = String.valueOf(dest.subSequence(0, dstart))
+                        + filtered + dest.subSequence(dend, dest.length());
+
+                if ("".equals(result)) {
+                    return result;
+                }
+                int val = getSelectedPos(result);
+
+                /*
+                 * Ensure the user can't type in a value greater than the max
+                 * allowed. We have to allow less than min as the user might
+                 * want to delete some numbers and then type a new number.
+                 */
+                if (val > mMaxValue) {
+                    return "";
+                } else {
+                    return filtered;
+                }
+            } else {
+                CharSequence filtered = String.valueOf(source.subSequence(
+                        start, end));
+                if (TextUtils.isEmpty(filtered)) {
+                    return "";
+                }
+                String result = String.valueOf(dest.subSequence(0, dstart))
+                        + filtered + dest.subSequence(dend, dest.length());
+                String str = String.valueOf(result).toLowerCase();
+                for (String val : mDisplayedValues) {
+                    String valLowerCase = val.toLowerCase();
+                    if (valLowerCase.startsWith(str)) {
+                        postSetSelectionCommand(result.length(), val.length());
+                        return val.subSequence(dstart, val.length());
+                    }
+                }
+                return "";
+            }
+        }
+    }
+
+    /**
+     * Command for setting the input text selection.
+     */
+    class SetSelectionCommand implements Runnable {
+        private int mSelectionStart;
+
+        private int mSelectionEnd;
+
+        public void run() {
+//            mInputText.setSelection(mSelectionStart, mSelectionEnd);
+        }
+    }
+
+    /**
+     * Command for adjusting the scroller to show in its center the closest of
+     * the displayed items.
+     */
+    class AdjustScrollerCommand implements Runnable {
+        public void run() {
+            mPreviousScrollerY = 0;
+            mPreviousScrollerX = 0;
+            if (mInitialScrollOffset == mCurrentScrollOffset) {
+                return;
+            }
+            if (mHorizontal) {
+                // adjust to the closest value
+                int deltaX = mInitialScrollOffset - mCurrentScrollOffset;
+                mAdjustScroller.startScroll(0, 0, deltaX, 0,
+                        SELECTOR_ADJUSTMENT_DURATION_MILLIS);
+            } else {
+                // adjust to the closest value
+                int deltaY = mInitialScrollOffset - mCurrentScrollOffset;
+                if (Math.abs(deltaY) > mSelectorElementHeight / 2) {
+                    deltaY += (deltaY > 0) ? -mSelectorElementHeight
+                            : mSelectorElementHeight;
+                }
+                mAdjustScroller.startScroll(0, 0, 0, deltaY,
+                        SELECTOR_ADJUSTMENT_DURATION_MILLIS);
+            }
+
+            invalidate();
+        }
+    }
+
+    /**
+     * Command for changing the current value from a long press by one.
+     */
+    class ChangeCurrentByOneFromLongPressCommand implements Runnable {
+        private boolean mIncrement;
+
+        private void setIncrement(boolean increment) {
+            mIncrement = increment;
+        }
+
+        public void run() {
+            changeCurrentByOne(mIncrement);
+            postDelayed(this, mLongPressUpdateInterval);
+        }
+    }
+}
diff --git a/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl b/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl
new file mode 100644
index 0000000..7358149
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/IFMRadioService.aidl
@@ -0,0 +1,57 @@
+package com.caf.fmradio;
+
+import com.caf.fmradio.IFMRadioServiceCallbacks;
+
+interface IFMRadioService
+{
+    boolean fmOn();
+    boolean fmOff();
+    boolean fmRadioReset();
+    boolean isFmOn();
+    boolean isAnalogModeEnabled();
+    boolean isFmRecordingOn();
+    boolean isSpeakerEnabled();
+    boolean fmReconfigure();
+    void registerCallbacks(IFMRadioServiceCallbacks cb);
+    void unregisterCallbacks();
+    boolean mute();
+    boolean routeAudio(int device);
+    boolean unMute();
+    boolean isMuted();
+    boolean startRecording();
+    void stopRecording();
+    boolean tune(int frequency);
+    boolean seek(boolean up);
+    void enableSpeaker(boolean speakerOn);
+    boolean scan(int pty);
+    boolean seekPI(int piCode);
+    boolean searchStrongStationList(int numStations);
+    int[]   getSearchList();
+    boolean cancelSearch();
+    String getProgramService();
+    String getRadioText();
+    int getProgramType();
+    int getProgramID();
+    boolean setLowPowerMode(boolean bLowPower);
+    int getPowerMode();
+    boolean enableAutoAF(boolean bEnable);
+    boolean enableStereo(boolean bEnable);
+    boolean isAntennaAvailable();
+    boolean isWiredHeadsetAvailable();
+    boolean isCallActive();
+    int getRssi();
+    int getIoC();
+    int getMpxDcc();
+    int getIntDet();
+    int getSINR();
+    void setHiLoInj(int inj);
+    void delayedStop(long nDuration, int nType);
+    void cancelDelayedStop (int nType);
+    void requestFocus();
+    boolean setSinrSamplesCnt(int samplesCnt);
+    boolean setSinrTh(int sinr);
+    boolean setIntfDetLowTh(int intfLowTh);
+    boolean setIntfDetHighTh(int intfHighTh);
+    String getExtenRadioText();
+}
+
diff --git a/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
new file mode 100644
index 0000000..1926f24
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/IFMRadioServiceCallbacks.aidl
@@ -0,0 +1,48 @@
+/*
+ * 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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+interface IFMRadioServiceCallbacks
+{
+  void onEnabled();
+  void onDisabled();
+  void onRadioReset();
+  void onTuneStatusChanged();
+  void onProgramServiceChanged();
+  void onRadioTextChanged();
+  void onAlternateFrequencyChanged();
+  void onSignalStrengthChanged();
+  void onSearchComplete();
+  void onSearchListComplete();
+  void onMute(boolean bMuted);
+  void onAudioUpdate(boolean bStereo);
+  void onStationRDSSupported(boolean bRDSSupported);
+  void onRecordingStopped();
+  void onExtenRadioTextChanged();
+}
diff --git a/fmapp2/src/com/caf/fmradio/IFMTransmitterService.aidl b/fmapp2/src/com/caf/fmradio/IFMTransmitterService.aidl
new file mode 100644
index 0000000..79e01de
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/IFMTransmitterService.aidl
@@ -0,0 +1,23 @@
+package com.caf.fmradio;
+
+import com.caf.fmradio.IFMTransmitterServiceCallbacks;
+interface IFMTransmitterService
+{
+    boolean fmOn();
+    boolean fmOff();
+    boolean fmRestart();
+    boolean isFmOn();
+    boolean fmReconfigure();
+    void registerCallbacks(IFMTransmitterServiceCallbacks cb);
+    void unregisterCallbacks();
+    boolean tune(int frequency);
+    boolean searchWeakStationList(int numStations);
+    int[]   getSearchList();
+    boolean cancelSearch();
+    String getRadioText();
+    boolean isInternalAntennaAvailable();
+    boolean isHeadsetPlugged();
+    boolean isCallActive();
+    String  getPSData();
+}
+
diff --git a/fmapp2/src/com/caf/fmradio/IFMTransmitterServiceCallbacks.aidl b/fmapp2/src/com/caf/fmradio/IFMTransmitterServiceCallbacks.aidl
new file mode 100644
index 0000000..641785d
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/IFMTransmitterServiceCallbacks.aidl
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2009,2012-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:
+ *    * Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *    * Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *    * Neither the name of The Linux Foundation nor
+ *      the names of its contributors may be used to endorse or promote
+ *      products derived from this software without specific prior written
+ *      permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+interface IFMTransmitterServiceCallbacks
+{
+  void onEnabled(boolean bStatus);
+  void onDisabled();
+  void onRadioReset();
+  void onTuneStatusChanged(int frequency);
+  void onRadioTextChanged();
+  void onSearchListComplete(boolean bStatus);
+  void onReconfigured();
+  void onMetaDataChanged(String str);
+  void onPSInfoSent(String str);
+}
diff --git a/fmapp2/src/com/caf/fmradio/PresetList.java b/fmapp2/src/com/caf/fmradio/PresetList.java
new file mode 100644
index 0000000..b1a0214
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/PresetList.java
@@ -0,0 +1,323 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PresetList{
+    private    List<PresetStation> mPresetList = new ArrayList<PresetStation>();
+    private    int mCurrentStation = 0;
+    private    String mListName = "";
+
+    public PresetList(String name) {
+        mListName = name;
+    }
+
+    public String getName(){
+        return mListName;
+    }
+
+    public String toString(){
+        return mListName;
+    }
+
+    public synchronized int getStationCount(){
+        return mPresetList.size();
+    }
+
+    public synchronized String getStationName(int stationNum){
+        String name = "";
+        if (mPresetList.size() > stationNum){
+            name = mPresetList.get(stationNum).getName();
+        }
+        return name;
+    }
+
+    public synchronized int getStationFrequency(int stationNum){
+        int frequency = 102100;
+        if (mPresetList.size() > stationNum){
+            frequency = mPresetList.get(stationNum).getFrequency();
+        }
+        return frequency;
+    }
+
+    public void setName(String name){
+        mListName = name;
+    }
+
+    public synchronized void setStationFrequency(int stationNum, int frequency){
+        PresetStation mStation = mPresetList.get(stationNum);
+        mStation.setFrequency(frequency);
+    }
+
+    public synchronized void setStationName(int stationNum, String name){
+        PresetStation mStation = mPresetList.get(stationNum);
+        mStation.setName(name);
+    }
+
+    public synchronized PresetStation getStationFromIndex(int index){
+        int totalPresets = mPresetList.size();
+        PresetStation station = null;
+        if (index < totalPresets) {
+            station = mPresetList.get(index);
+        }
+        return station;
+    }
+
+    public synchronized PresetStation getStationFromFrequency(int frequency){
+        int totalPresets = mPresetList.size();
+        for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) {
+            PresetStation station = mPresetList.get(presetNum);
+            if (station != null) {
+                if(frequency == station.getFrequency()) {
+                    return station;
+                }
+            }
+        }
+        return null;
+    }
+
+    public synchronized PresetStation addStation(String name, int freq){
+        PresetStation addStation = new PresetStation(name, freq);
+        if(addStation != null) {
+            mPresetList.add(addStation);
+        }
+        return addStation;
+    }
+
+    public synchronized PresetStation addStation(PresetStation station){
+        PresetStation addStation = null;
+        if(station != null) {
+            addStation = new PresetStation (station);
+            mPresetList.add(addStation);
+        }
+        return addStation;
+    }
+
+    public synchronized void removeStation(int index){
+       int totalPresets = mPresetList.size();
+       if((index >= 0) && (index < totalPresets))
+       {
+          mPresetList.remove(index);
+       }
+    }
+
+    public synchronized void removeStation(PresetStation station){
+       int index = mPresetList.indexOf(station);
+       int totalPresets = mPresetList.size();
+       if((index >= 0) && (index < totalPresets))
+       {
+          mPresetList.remove(index);
+       }
+    }
+    public synchronized void clear(){
+        mPresetList.clear();
+    }
+
+    /* If a user selects a new station in this list, this routine will be called to
+     * to update the list.
+     */
+    public synchronized boolean setSelectedStation(PresetStation selectStation){
+        int totalPresets = mPresetList.size();
+        if (selectStation != null) {
+            for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) {
+                PresetStation station = mPresetList.get(presetNum);
+                if (station != null) {
+                    if(selectStation.getFrequency() == station.getFrequency()) {
+                        if(selectStation.getName().equalsIgnoreCase(station.getName())) {
+                            mCurrentStation = presetNum;
+                            return true;
+                        }
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    /* Check if the same station already exists in a List
+     * to update the list.
+     */
+    public synchronized boolean sameStationExists(PresetStation compareStation){
+        int totalPresets = mPresetList.size();
+        if (compareStation != null) {
+            for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) {
+                PresetStation station = mPresetList.get(presetNum);
+                if (station != null) {
+                    if(compareStation.getFrequency() == station.getFrequency()) {
+                        return true;
+                    }
+                }
+            }
+        }
+        return false;
+    }
+
+    /* If a user selects a new station in this list, this routine will be called to
+     * to update the list.
+     */
+    public synchronized boolean setSelectedStation(int stationIndex){
+        boolean foundStation = false;
+        int totalPresets = mPresetList.size();
+        if (stationIndex < totalPresets) {
+            mCurrentStation = stationIndex;
+            foundStation = true;
+        }
+        return foundStation;
+    }
+
+    public synchronized PresetStation getSelectedStation(){
+        int totalPresets = mPresetList.size();
+        PresetStation station = null;
+        if (mCurrentStation < totalPresets) {
+            station = mPresetList.get(mCurrentStation);
+        }
+        return station;
+    }
+
+    public synchronized PresetStation selectNextStation(){
+        int totalPresets = mPresetList.size();
+        PresetStation station = null;
+        if(totalPresets > 0) {
+            mCurrentStation ++;
+            if ( (mCurrentStation) >= totalPresets) {
+                mCurrentStation =0;
+            }
+            station = mPresetList.get(mCurrentStation);
+        }
+        return station;
+    }
+
+    public synchronized PresetStation selectPrevStation(){
+        int totalPresets = mPresetList.size();
+        PresetStation station = null;
+        if(totalPresets > 0) {
+            mCurrentStation --;
+            if ( mCurrentStation < 0) {
+                mCurrentStation = totalPresets-1;
+            }
+            station = mPresetList.get(mCurrentStation);
+        }
+        return station;
+    }
+
+    public synchronized void selectStation(PresetStation selectStation){
+        int totalPresets = mPresetList.size();
+        if (selectStation != null) {
+            for (int presetNum = 0; presetNum < totalPresets; presetNum++ ) {
+                PresetStation station = mPresetList.get(presetNum);
+                if (station != null) {
+                    if(selectStation.getFrequency() == station.getFrequency()) {
+                        mCurrentStation    = presetNum;
+                        return;
+                    }
+                }
+            }
+        }
+    }
+
+    /* Test Code */
+    public void addDummyStations() {
+        PresetStation station;
+        int freq;
+        String name ;
+        int pty ;
+
+        mPresetList.clear();
+        freq = 89500;
+        name = "KPBS";
+        pty = 22; //public
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(false);
+        }
+
+        freq = 96500;
+        name = "KYXY";
+        //pty = "Soft Rock";
+        pty = 8;
+
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(false);
+        }
+
+        freq = 98100;
+        name = "KIFM";
+        //pty = "Smooth Jazz";
+        pty = 14;
+
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(false);
+        }
+
+        freq = 101500;
+        name = "KGB";
+        //pty = "Classic Rock";
+        pty = 6;
+
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(false);
+        }
+
+        freq = 102100;
+        name = "KPRI";
+        //pty = "Rock";
+        pty = 5;
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(true);
+        }
+
+        freq = 105300;
+        name = "KIOZ";
+        //pty = "Rock";
+        pty = 5;
+        station = addStation(name, freq);
+        if(station != null) {
+            station.setPty(pty);
+            station.setPI(0);
+            station.setRDSSupported(true);
+        }
+    }
+
+}
diff --git a/fmapp2/src/com/caf/fmradio/PresetStation.java b/fmapp2/src/com/caf/fmradio/PresetStation.java
new file mode 100644
index 0000000..77bf648
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/PresetStation.java
@@ -0,0 +1,951 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import qcom.fmradio.FmReceiver;
+
+import android.text.TextUtils;
+//import android.util.Log;
+
+public class PresetStation
+{
+   private String mName = "";
+   private int mFrequency = 102100;
+   private int mPty = 0;
+   private int mPI = 0;
+   private String mPtyStr = "";
+   private String mPIStr = "";
+   private boolean  mRDSSupported = false;
+
+   public PresetStation(String name, int frequency) {
+           mName = name;
+      /*
+       *  setFrequency set the name to
+       *  "Frequency" String if Name is empty
+       */
+      setFrequency(frequency);
+   }
+
+   public PresetStation(PresetStation station) {
+      Copy(station);
+      /*
+       *  setFrequency set the name to
+       *  "Frequency" String if Name is empty
+       */
+      setFrequency(station.getFrequency());
+   }
+
+   public void Copy(PresetStation station) {
+      /* Let copy just do a copy
+       * without any manipulation
+       */
+      mName = station.getName();
+      mFrequency = station.getFrequency();
+      mPI = station.getPI();
+      mPty = station.getPty();
+      mRDSSupported = station.getRDSSupported();
+
+      mPtyStr = station.getPtyString();
+      mPIStr = station.getPIString();
+   }
+
+   public boolean equals(PresetStation station) {
+      boolean equal = false;
+      if (mFrequency == station.getFrequency())
+      {
+         if (mPty == (station.getPty()))
+         {
+            if (mPI == (station.getPI()))
+            {
+               if (mRDSSupported == (station.getRDSSupported()))
+               {
+                  equal = true;
+               }
+            }
+         }
+      }
+      return equal;
+   }
+
+   public void setName(String name){
+      if (!TextUtils.isEmpty(name) &&!TextUtils.isEmpty(name.trim()))
+      {
+         mName = name;
+      } else
+      {
+         mName = ""+mFrequency/1000.0;
+      }
+   }
+
+   public void setFrequency(int freq){
+      mFrequency = freq;
+      /* If no name set it to the frequency */
+      if (TextUtils.isEmpty(mName))
+      {
+         mName = ""+mFrequency/1000.0;
+      }
+      return;
+   }
+
+   public void setPty(int pty){
+      mPty = pty;
+      mPtyStr = PresetStation.parsePTY(mPty);
+   }
+
+   public void setPI(int pi){
+      mPI = pi;
+      mPIStr = PresetStation.parsePI(mPI);
+   }
+
+   public void setRDSSupported(boolean rds){
+      mRDSSupported = rds;
+   }
+
+   public String getName(){
+      return mName;
+   }
+
+   public int getFrequency(){
+      return mFrequency;
+   }
+
+   /**
+    * Routine to get the Frequency in String from an integer
+    *
+    * @param frequency : Frequency to be converted (ex: 96500)
+    *
+    * @return String : Frequency in String form (ex: 96.5)
+    */
+   public static String getFrequencyString(int frequency) {
+          double frequencyDbl = frequency / 1000.0;
+      String frequencyString =""+frequencyDbl;
+      return frequencyString;
+   }
+
+   public int getPty(){
+      return mPty;
+   }
+
+   public String getPtyString(){
+      return mPtyStr;
+   }
+
+   public int getPI(){
+      return mPI;
+   }
+
+   public String getPIString(){
+      return mPIStr;
+   }
+
+   public boolean getRDSSupported(){
+      return mRDSSupported;
+   }
+
+   /** Routine parses the PI Code from Integer to Call Sign String
+    *  Example: 0x54A6 -> KZZY
+    */
+   public static String parsePI(int piCode)
+   {
+      String callSign = "";
+      if ( (piCode >> 8) == 0xAF)
+      {//CALL LETTERS THAT MAP TO PI CODES = _ _ 0 0.
+         piCode = ((piCode & 0xFF) << 8);
+      }
+      /* Run the second exception
+         NOTE: For 9 special cases 1000,2000,..,9000 a double mapping
+         occurs utilizing exceptions 1 and 2:
+         1000->A100->AFA1;2000->A200->AFA2; ... ;
+         8000->A800->AFA8;9000->A900->AFA9
+      */
+      if ( (piCode >> 12) == 0xA)
+      {//CALL LETTERS THAT MAP TO PI CODES = _ 0 _ _.
+         piCode = ((piCode & 0xF00) << 4) + (piCode & 0xFF);
+      }
+      if ( (piCode >= 0x1000) && (piCode <= 0x994E))
+      {
+         String ShartChar;
+         /* KAAA - KZZZ */
+         if ( (piCode >= 0x1000) && (piCode <= 0x54A7))
+         {
+            piCode -= 0x1000;
+            ShartChar = "K";
+         } else
+         { /* WAAA - WZZZ*/
+            piCode -= 0x54A8;
+            ShartChar = "W";
+         }
+         int CharDiv = piCode / 26;
+         int CharPos = piCode - (CharDiv * 26);
+         char c3 = (char)('A'+CharPos);
+
+         piCode = CharDiv;
+         CharDiv = piCode / 26;
+         CharPos = piCode - (CharDiv * 26);
+         char c2 = (char)('A'+CharPos);
+
+         piCode = CharDiv;
+         CharDiv = piCode / 26;
+         CharPos = piCode - (CharDiv * 26);
+         char c1 = (char)('A'+CharPos);
+         callSign = ShartChar + c1+ c2+ c3;
+      } else if ( (piCode >= 0x9950) && (piCode <= 0x9EFF))
+      {//3-LETTER-ONLY CALL LETTERS
+         callSign = get3LetterCallSign(piCode);
+      } else
+      {//NATIONALLY-LINKED RADIO STATIONS CARRYING DIFFERENT CALL LETTERS
+         callSign = getOtherCallSign(piCode);
+      }
+      return callSign;
+   }
+
+   private static String getOtherCallSign(int piCode)
+   {
+      String callSign = "";
+      if ( (piCode >= 0xB001) && (piCode <= 0xBF01))
+      {
+         callSign = "NPR";
+      } else if ( (piCode >= 0xB002) && (piCode <= 0xBF02))
+      {
+         callSign = "CBC English";
+      } else if ( (piCode >= 0xB003) && (piCode <= 0xBF03))
+      {
+         callSign = "CBC French";
+      }
+      return callSign;
+   }
+
+   private static String get3LetterCallSign(int piCode)
+   {
+      String callSign = "";
+      switch (piCode)
+      {
+      case 0x99A5:
+         {
+            callSign = "KBW";
+            break;
+         }
+      case 0x9992:
+         {
+            callSign = "KOY";
+            break;
+         }
+      case 0x9978:
+         {
+            callSign = "WHO";
+            break;
+         }
+      case 0x99A6:
+         {
+            callSign = "KCY";
+            break;
+         }
+      case 0x9993:
+         {
+            callSign = "KPQ";
+            break;
+         }
+      case 0x999C:
+         {
+            callSign = "WHP";
+            break;
+         }
+      case 0x9990:
+         {
+            callSign = "KDB";
+            break;
+         }
+      case 0x9964:
+         {
+            callSign = "KQV";
+            break;
+         }
+      case 0x999D:
+         {
+            callSign = "WIL";
+            break;
+         }
+      case 0x99A7:
+         {
+            callSign = "KDF";
+            break;
+         }
+      case 0x9994:
+         {
+            callSign = "KSD";
+            break;
+         }
+      case 0x997A:
+         {
+            callSign = "WIP";
+            break;
+         }
+      case 0x9950:
+         {
+            callSign = "KEX";
+            break;
+         }
+      case 0x9965:
+         {
+            callSign = "KSL";
+            break;
+         }
+      case 0x99B3:
+         {
+            callSign = "WIS";
+            break;
+         }
+      case 0x9951:
+         {
+            callSign = "KFH";
+            break;
+         }
+      case 0x9966:
+         {
+            callSign = "KUJ";
+            break;
+         }
+      case 0x997B:
+         {
+            callSign = "WJR";
+            break;
+         }
+      case 0x9952:
+         {
+            callSign = "KFI";
+            break;
+         }
+      case 0x9995:
+         {
+            callSign = "KUT";
+            break;
+         }
+      case 0x99B4:
+         {
+            callSign = "WJW";
+            break;
+         }
+      case 0x9953:
+         {
+            callSign = "KGA";
+            break;
+         }
+      case 0x9967:
+         {
+            callSign = "KVI";
+            break;
+         }
+      case 0x99B5:
+         {
+            callSign = "WJZ";
+            break;
+         }
+      case 0x9991:
+         {
+            callSign = "KGB";
+            break;
+         }
+      case 0x9968:
+         {
+            callSign = "KWG";
+            break;
+         }
+      case 0x997C:
+         {
+            callSign = "WKY";
+            break;
+         }
+      case 0x9954:
+         {
+            callSign = "KGO";
+            break;
+         }
+      case 0x9996:
+         {
+            callSign = "KXL";
+            break;
+         }
+      case 0x997D:
+         {
+            callSign = "WLS";
+            break;
+         }
+      case 0x9955:
+         {
+            callSign = "KGU";
+            break;
+         }
+      case 0x9997:
+         {
+            callSign = "KXO";
+            break;
+         }
+      case 0x997E:
+         {
+            callSign = "WLW";
+            break;
+         }
+      case 0x9956:
+         {
+            callSign = "KGW";
+            break;
+         }
+      case 0x996B:
+         {
+            callSign = "KYW";
+            break;
+         }
+      case 0x999E:
+         {
+            callSign = "WMC";
+            break;
+         }
+      case 0x9957:
+         {
+            callSign = "KGY";
+            break;
+         }
+      case 0x9999:
+         {
+            callSign = "WBT";
+            break;
+         }
+      case 0x999F:
+         {
+            callSign = "WMT";
+            break;
+         }
+      case 0x99AA:
+         {
+            callSign = "KHQ";
+            break;
+         }
+      case 0x996D:
+         {
+            callSign = "WBZ";
+            break;
+         }
+      case 0x9981:
+         {
+            callSign = "WOC";
+            break;
+         }
+      case 0x9958:
+         {
+            callSign = "KID";
+            break;
+         }
+      case 0x996E:
+         {
+            callSign = "WDZ";
+            break;
+         }
+      case 0x99A0:
+         {
+            callSign = "WOI";
+            break;
+         }
+      case 0x9959:
+         {
+            callSign = "KIT";
+            break;
+         }
+      case 0x996F:
+         {
+            callSign = "WEW";
+            break;
+         }
+      case 0x9983:
+         {
+            callSign = "WOL";
+            break;
+         }
+      case 0x995A:
+         {
+            callSign = "KJR";
+            break;
+         }
+      case 0x999A:
+         {
+            callSign = "WGH";
+            break;
+         }
+      case 0x9984:
+         {
+            callSign = "WOR";
+            break;
+         }
+      case 0x995B:
+         {
+            callSign = "KLO";
+            break;
+         }
+      case 0x9971:
+         {
+            callSign = "WGL";
+            break;
+         }
+      case 0x99A1:
+         {
+            callSign = "WOW";
+            break;
+         }
+      case 0x995C:
+         {
+            callSign = "KLZ";
+            break;
+         }
+      case 0x9972:
+         {
+            callSign = "WGN";
+            break;
+         }
+      case 0x99B9:
+         {
+            callSign = "WRC";
+            break;
+         }
+      case 0x995D:
+         {
+            callSign = "KMA";
+            break;
+         }
+      case 0x9973:
+         {
+            callSign = "WGR";
+            break;
+         }
+      case 0x99A2:
+         {
+            callSign = "WRR";
+            break;
+         }
+      case 0x995E:
+         {
+            callSign = "KMJ";
+            break;
+         }
+      case 0x999B:
+         {
+            callSign = "WGY";
+            break;
+         }
+      case 0x99A3:
+         {
+            callSign = "WSB";
+            break;
+         }
+      case 0x995F:
+         {
+            callSign = "KNX";
+            break;
+         }
+      case 0x9975:
+         {
+            callSign = "WHA";
+            break;
+         }
+      case 0x99A4:
+         {
+            callSign = "WSM";
+            break;
+         }
+      case 0x9960:
+         {
+            callSign = "KOA";
+            break;
+         }
+      case 0x9976:
+         {
+            callSign = "WHB";
+            break;
+         }
+      case 0x9988:
+         {
+            callSign = "WWJ";
+            break;
+         }
+      case 0x99AB:
+         {
+            callSign = "KOB";
+            break;
+         }
+      case 0x9977:
+         {
+            callSign = "WHK";
+            break;
+         }
+      case 0x9989:
+         {
+            callSign = "WWL";
+            break;
+         }
+      }
+      return callSign;
+   }
+
+   /**
+    *  Get the Text String for the Program type Code
+    */
+   public static String parsePTY(int pty)
+   {
+      String ptyStr="";
+      int rdsStd = FmSharedPreferences.getFMConfiguration().getRdsStd();
+      if(rdsStd ==  FmReceiver.FM_RDS_STD_RBDS)
+      {
+         ptyStr = getRBDSPtyString(pty);
+      }
+      else if(rdsStd ==  FmReceiver.FM_RDS_STD_RDS)
+      {
+         ptyStr = getRDSPtyString(pty);
+      }
+      return (ptyStr);
+   }
+
+   /**
+    *  get the Text String for the RBDS Program type Code
+    */
+   public static String getRBDSPtyString(int pty)
+   {
+      String ptyStr = "";
+      switch (pty)
+      {
+         case 1:
+         {
+            ptyStr = "News";
+            break;
+         }
+         case 2:
+         {
+            ptyStr = "Information";
+            break;
+         }
+         case 3:
+         {
+            ptyStr = "Sports";
+            break;
+         }
+         case 4:
+         {
+            ptyStr = "Talk";
+            break;
+         }
+         case 5:
+         {
+            ptyStr = "Rock";
+            break;
+         }
+         case 6:
+         {
+            ptyStr = "Classic Rock";
+            break;
+         }
+         case 7:
+         {
+            ptyStr = "Adult Hits";
+            break;
+         }
+         case 8:
+         {
+            ptyStr = "Soft Rock";
+            break;
+         }
+         case 9:
+         {
+            ptyStr = "Top 40";
+            break;
+         }
+         case 10:
+         {
+            ptyStr = "Country";
+            break;
+         }
+         case 11:
+         {
+            ptyStr = "Oldies";
+            break;
+         }
+         case 12:
+         {
+            ptyStr = "Soft";
+            break;
+         }
+         case 13:
+         {
+            ptyStr = "Nostalgia";
+            break;
+         }
+         case 14:
+         {
+            ptyStr = "Jazz";
+            break;
+         }
+         case 15:
+         {
+            ptyStr = "Classical";
+            break;
+         }
+         case 16:
+         {
+            ptyStr = "Rhythm and Blues";
+            break;
+         }
+         case 17:
+         {
+            ptyStr = "Soft Rhythm and Blues";
+            break;
+         }
+         case 18:
+         {
+            ptyStr = "Foreign Language";
+            break;
+         }
+         case 19:
+         {
+            ptyStr = "Religious Music";
+            break;
+         }
+         case 20:
+         {
+            ptyStr = "Religious Talk";
+            break;
+         }
+         case 21:
+         {
+            ptyStr = "Personality";
+            break;
+         }
+         case 22:
+         {
+            ptyStr = "Public";
+            break;
+         }
+         case 23:
+         {
+            ptyStr = "College";
+            break;
+         }
+         case 29:
+         {
+            ptyStr = "Weather";
+            break;
+         }
+         case 30:
+         {
+            ptyStr = "Emergency Test";
+            break;
+         }
+         case 31:
+         {
+            ptyStr = "Emergency";
+            break;
+         }
+         default:
+         {
+            ptyStr = "";
+            //Log.e(FMRadio.LOGTAG, "Unknown RBDS ProgramType [" + pty + "]");
+            break;
+         }
+      }
+      return ptyStr;
+   }
+
+   /** get the Text String for the Program type Code */
+   public static String getRDSPtyString(int pty)
+   {
+      String ptyStr = "";
+      switch (pty)
+      {
+         case 1:
+         {
+            ptyStr = "News";
+            break;
+         }
+         case 2:
+         {
+            ptyStr = "Current Affairs";
+            break;
+         }
+         case 3:
+         {
+            ptyStr = "Information";
+            break;
+         }
+         case 4:
+         {
+            ptyStr = "Sport";
+            break;
+         }
+         case 5:
+         {
+            ptyStr = "Education";
+            break;
+         }
+         case 6:
+         {
+            ptyStr = "Drama";
+            break;
+         }
+         case 7:
+         {
+            ptyStr = "Culture";
+            break;
+         }
+         case 8:
+         {
+            ptyStr = "Science";
+            break;
+         }
+         case 9:
+         {
+            ptyStr = "Varied";
+            break;
+         }
+         case 10:
+         {
+            ptyStr = "Pop Music";
+            break;
+         }
+         case 11:
+         {
+            ptyStr = "Rock Music";
+            break;
+         }
+         case 12:
+         {
+            ptyStr = "Easy Listening Music";
+            break;
+         }
+         case 13:
+         {
+            ptyStr = "Light classical";
+            break;
+         }
+         case 14:
+         {
+            ptyStr = "Serious classical";
+            break;
+         }
+         case 15:
+         {
+            ptyStr = "Other Music";
+            break;
+         }
+         case 16:
+         {
+            ptyStr = "Weather";
+            break;
+         }
+         case 17:
+         {
+            ptyStr = "Finance";
+            break;
+         }
+         case 18:
+         {
+            ptyStr = "Children programs";
+            break;
+         }
+         case 19:
+         {
+            ptyStr = "Social Affairs";
+            break;
+         }
+         case 20:
+         {
+            ptyStr = "Religion";
+            break;
+         }
+         case 21:
+         {
+            ptyStr = "Phone In";
+            break;
+         }
+         case 22:
+         {
+            ptyStr = "Travel";
+            break;
+         }
+         case 23:
+         {
+            ptyStr = "Leisure";
+            break;
+         }
+         case 24:
+         {
+            ptyStr = "Jazz Music";
+            break;
+         }
+         case 25:
+         {
+            ptyStr = "Country Music";
+            break;
+         }
+         case 26:
+         {
+            ptyStr = "National Music";
+            break;
+         }
+         case 27:
+         {
+            ptyStr = "Oldies Music";
+            break;
+         }
+         case 28:
+         {
+            ptyStr = "Folk Music";
+            break;
+         }
+         case 29:
+         {
+            ptyStr = "Documentary";
+            break;
+         }
+         case 30:
+         {
+            ptyStr = "Emergency Test";
+            break;
+         }
+         case 31:
+         {
+            ptyStr = "Emergency";
+            break;
+         }
+         default:
+         {
+            ptyStr = "";
+            //Log.e(FMRadio.LOGTAG, "Unknown RDS ProgramType [" + pty + "]");
+            break;
+         }
+      }
+      return ptyStr;
+   }
+
+
+}
diff --git a/fmapp2/src/com/caf/fmradio/Settings.java b/fmapp2/src/com/caf/fmradio/Settings.java
new file mode 100644
index 0000000..f5c5d07
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/Settings.java
@@ -0,0 +1,397 @@
+/*
+ * 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.fmradio;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.SharedPreferences;
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.content.Intent;
+import android.os.Bundle;
+import android.preference.PreferenceActivity;
+import android.preference.PreferenceScreen;
+import android.preference.ListPreference;
+import android.preference.CheckBoxPreference;
+import android.preference.PreferenceCategory;
+import android.preference.Preference;
+import android.preference.Preference.OnPreferenceClickListener;
+import java.util.Locale;
+
+import android.util.Log;
+
+public class Settings extends PreferenceActivity implements
+                OnSharedPreferenceChangeListener, OnPreferenceClickListener {
+        public static final String RX_MODE = "rx_mode";
+        public static final String REGIONAL_BAND_KEY = "regional_band";
+        public static final String AUDIO_OUTPUT_KEY = "audio_output_mode";
+        public static final String RECORD_DURATION_KEY = "record_duration";
+        public static final String AUTO_AF = "af_checkbox_preference";
+        public static final String RESTORE_FACTORY_DEFAULT = "revert_to_fac";
+        public static final int RESTORE_FACTORY_DEFAULT_INT = 1;
+        public static final String RESTORE_FACTORY_DEFAULT_ACTION = "com.caf.fmradio.settings.revert_to_defaults";
+
+        private static final String LOGTAG = FMRadio.LOGTAG;
+
+        private ListPreference mBandPreference;
+        private ListPreference mAudioPreference;
+        private ListPreference mRecordDurPreference;
+        private CheckBoxPreference mAfPref;
+        private Preference mRestoreDefaultPreference;
+
+        private FmSharedPreferences mPrefs = null;
+        private boolean mRxMode = false;
+
+        @Override
+        protected void onCreate(Bundle savedInstanceState) {
+          super.onCreate(savedInstanceState);
+          Intent intent = getIntent();
+          if (intent != null) {
+              mRxMode = intent.getBooleanExtra(RX_MODE, false);
+          }
+          mPrefs = new FmSharedPreferences(this);
+          if (mPrefs != null) {
+              setPreferenceScreen(createPreferenceHierarchy());
+          }
+        }
+
+        private PreferenceScreen createPreferenceHierarchy() {
+          int index = 0;
+          if (mPrefs == null) {
+              return null;
+          }
+          // Root
+          PreferenceScreen root = getPreferenceManager().createPreferenceScreen(
+                                this);
+
+          // Band/Country
+          String[] summaryBandItems = getResources().getStringArray(
+                                R.array.regional_band_summary);
+          mBandPreference = new ListPreference(this);
+          mBandPreference.setEntries(R.array.regional_band_entries);
+          mBandPreference.setEntryValues(R.array.regional_band_values);
+          mBandPreference.setDialogTitle(R.string.sel_band_menu);
+          mBandPreference.setKey(REGIONAL_BAND_KEY);
+          mBandPreference.setTitle(R.string.regional_band);
+          index = FmSharedPreferences.getCountry();
+          Log.d(LOGTAG, "createPreferenceHierarchy: Country: " + index);
+          // Get the preference and list the value.
+          if ((index < 0) || (index >= summaryBandItems.length)) {
+                index = 0;
+          }
+          Log.d(LOGTAG, "createPreferenceHierarchy: CountrySummary: "
+                               + summaryBandItems[index]);
+          mBandPreference.setSummary(summaryBandItems[index]);
+          mBandPreference.setValueIndex(index);
+          root.addPreference(mBandPreference);
+
+          if (mRxMode) {
+             // Audio Output (Stereo or Mono)
+             String[] summaryAudioModeItems = getResources().getStringArray(
+                                  R.array.ster_mon_entries);
+             mAudioPreference = new ListPreference(this);
+             mAudioPreference.setEntries(R.array.ster_mon_entries);
+             mAudioPreference.setEntryValues(R.array.ster_mon_values);
+             mAudioPreference.setDialogTitle(R.string.sel_audio_output);
+             mAudioPreference.setKey(AUDIO_OUTPUT_KEY);
+             mAudioPreference.setTitle(R.string.aud_output_mode);
+             boolean audiomode = FmSharedPreferences.getAudioOutputMode();
+             if (audiomode) {
+                 index = 0;
+             }else {
+                 index = 1;
+             }
+             Log.d(LOGTAG, "createPreferenceHierarchy: audiomode: " + audiomode);
+             mAudioPreference.setSummary(summaryAudioModeItems[index]);
+             mAudioPreference.setValueIndex(index);
+             root.addPreference(mAudioPreference);
+
+             // AF Auto Enable (Checkbox)
+             mAfPref = new CheckBoxPreference(this);
+             mAfPref.setKey(AUTO_AF);
+             mAfPref.setTitle(R.string.auto_select_af);
+             mAfPref.setSummaryOn(R.string.auto_select_af_enabled);
+             mAfPref.setSummaryOff(R.string.auto_select_af_disabled);
+             boolean bAFAutoSwitch = FmSharedPreferences.getAutoAFSwitch();
+             Log.d(LOGTAG, "createPreferenceHierarchy: bAFAutoSwitch: "
+                                   + bAFAutoSwitch);
+             mAfPref.setChecked(bAFAutoSwitch);
+             root.addPreference(mAfPref);
+
+             if(FMRadio.RECORDING_ENABLE) {
+                String[] summaryRecordItems = getResources().getStringArray(
+                   R.array.record_durations_entries);
+                int nRecordDuration = 0;
+                mRecordDurPreference = new ListPreference(this);
+                mRecordDurPreference.setEntries(R.array.record_durations_entries);
+                mRecordDurPreference.setEntryValues(R.array.record_duration_values);
+                mRecordDurPreference.setDialogTitle(R.string.sel_rec_dur);
+                mRecordDurPreference.setKey(RECORD_DURATION_KEY);
+                mRecordDurPreference.setTitle(R.string.record_dur);
+                nRecordDuration = FmSharedPreferences.getRecordDuration();
+                Log.d(LOGTAG, "createPreferenceHierarchy: recordDuration: "
+                        + nRecordDuration);
+                switch(nRecordDuration) {
+                case FmSharedPreferences.RECORD_DUR_INDEX_0_VAL:
+                     index = 0;
+                     break;
+                case FmSharedPreferences.RECORD_DUR_INDEX_1_VAL:
+                     index = 1;
+                     break;
+                case FmSharedPreferences.RECORD_DUR_INDEX_2_VAL:
+                     index = 2;
+                     break;
+                case FmSharedPreferences.RECORD_DUR_INDEX_3_VAL:
+                     index = 3;
+                     break;
+                }
+                // Get the preference and list the value.
+                if ((index < 0) || (index >= summaryRecordItems.length)) {
+                   index = 0;
+                }
+                Log.d(LOGTAG, "createPreferenceHierarchy: recordDurationSummary: "
+                    + summaryRecordItems[index]);
+                mRecordDurPreference.setSummary(summaryRecordItems[index]);
+                mRecordDurPreference.setValueIndex(index);
+                root.addPreference(mRecordDurPreference);
+             }
+          }
+
+          // Add a new category
+          PreferenceCategory prefCat = new PreferenceCategory(this);
+          root.addPreference(prefCat);
+
+          mRestoreDefaultPreference = new Preference(this);
+          mRestoreDefaultPreference.setTitle(
+                                       R.string.settings_revert_defaults_title);
+          mRestoreDefaultPreference.setKey(RESTORE_FACTORY_DEFAULT);
+          mRestoreDefaultPreference
+                                .setSummary(R.string.settings_revert_defaults_summary);
+          mRestoreDefaultPreference.setOnPreferenceClickListener(this);
+          root.addPreference(mRestoreDefaultPreference);
+          return root;
+        }
+	public void clearStationList() {
+          SharedPreferences sp = getSharedPreferences(FMRadio.SCAN_STATION_PREFS_NAME, 0);
+          SharedPreferences.Editor editor = sp.edit();
+          editor.clear();
+          editor.commit();
+        }
+        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
+                        String key) {
+          int mTunedFreq = 0;
+          boolean bStatus = false;
+          if (key.equals(REGIONAL_BAND_KEY)) {
+	      int curListIndex = FmSharedPreferences.getCurrentListIndex();
+	      PresetList curList = FmSharedPreferences.getStationList(curListIndex);
+              String[] summaryBandItems = getResources().getStringArray(
+                                       R.array.regional_band_summary);
+              String valueStr = sharedPreferences.getString(key, "");
+              int index = 0;
+              if (valueStr != null) {
+                  index = mBandPreference.findIndexOfValue(valueStr);
+              }
+              if ((index < 0) || (index >= summaryBandItems.length)) {
+                  index = 0;
+                  mBandPreference.setValueIndex(0);
+              }
+              Log.d(LOGTAG, "onSharedPreferenceChanged: Country Change: "
+                                                        + index);
+              mBandPreference.setSummary(summaryBandItems[index]);
+              FmSharedPreferences.setCountry(index);
+              bStatus = FMRadio.fmConfigure();
+              FMTransmitterActivity.fmConfigure();
+              if (curList != null) {
+                  curList.clear();
+              }
+              clearStationList();
+          }else {
+              if(mRxMode) {
+                 if (key.equals(AUTO_AF)) {
+                     boolean bAFAutoSwitch = mAfPref.isChecked();
+                     Log.d(LOGTAG, "onSharedPreferenceChanged: Auto AF Enable: "
+                                               + bAFAutoSwitch);
+                     FmSharedPreferences.setAutoAFSwitch(bAFAutoSwitch);
+                     FMRadio.fmAutoAFSwitch();
+                     mPrefs.Save();
+                 }else if(key.equals(RECORD_DURATION_KEY)) {
+                     if(FMRadio.RECORDING_ENABLE) {
+                        String[] recordItems = getResources().getStringArray(
+                                                    R.array.record_durations_entries);
+                        String valueStr = mRecordDurPreference.getValue();
+                        int index = 0;
+                        if (valueStr != null) {
+                            index = mRecordDurPreference.findIndexOfValue(valueStr);
+                        }
+                        if ((index < 0) || (index >= recordItems.length)) {
+                             index = 0;
+                             mRecordDurPreference.setValueIndex(index);
+                        }
+                        Log.d(LOGTAG, "onSharedPreferenceChanged: recorddur: "
+                                                 + recordItems[index]);
+                        mRecordDurPreference.setSummary(recordItems[index]);
+                        FmSharedPreferences.setRecordDuration(index);
+                     }
+                 }else if (key.equals(AUDIO_OUTPUT_KEY)) {
+                     String[] bandItems = getResources().getStringArray(
+                                                R.array.ster_mon_entries);
+                     String valueStr = mAudioPreference.getValue();
+                     int index = 0;
+                     if (valueStr != null) {
+                         index = mAudioPreference.findIndexOfValue(valueStr);
+                     }
+                     if (index != 1) {
+                         if (index != 0) {
+                             index = 0;
+                             /* It shud be 0(Stereo) or 1(Mono) */
+                             mAudioPreference.setValueIndex(index);
+                         }
+                     }
+                     Log.d(LOGTAG, "onSharedPreferenceChanged: audiomode: "
+                                              + bandItems[index]);
+                     mAudioPreference.setSummary(bandItems[index]);
+                     if (index == 0) {
+                         // Stereo
+                         FmSharedPreferences.setAudioOutputMode(true);
+                     }else {
+                         // Mono
+                         FmSharedPreferences.setAudioOutputMode(false);
+                     }
+                     FMRadio.fmAudioOutputMode();
+                 }
+              }
+          }
+          if (mPrefs != null) {
+              if(bStatus) {
+                 mPrefs.Save();
+              }else {
+                 mTunedFreq = FmSharedPreferences.getTunedFrequency();
+                 if (mTunedFreq > FmSharedPreferences.getUpperLimit() ||
+                          mTunedFreq < FmSharedPreferences.getLowerLimit()) {
+                     FmSharedPreferences.setTunedFrequency(
+                          FmSharedPreferences.getLowerLimit());
+                 }
+                 mPrefs.Save();
+              }
+          }
+        }
+
+        public boolean onPreferenceClick(Preference preference) {
+          boolean handled = false;
+          if (preference == mRestoreDefaultPreference) {
+              showDialog(RESTORE_FACTORY_DEFAULT_INT);
+          }
+          return handled;
+        }
+
+        @Override
+        protected Dialog onCreateDialog(int id) {
+          switch (id) {
+          case RESTORE_FACTORY_DEFAULT_INT:
+               return new AlertDialog.Builder(this).setIcon(
+                      R.drawable.alert_dialog_icon).setTitle(
+                      R.string.settings_revert_confirm_title).setMessage(
+                      R.string.settings_revert_confirm_msg).setPositiveButton(
+                      R.string.alert_dialog_ok,
+                      new DialogInterface.OnClickListener() {
+                           public void onClick(DialogInterface dialog,
+                              int whichButton) {
+                              Intent data = new Intent(
+                                         RESTORE_FACTORY_DEFAULT_ACTION);
+                              setResult(RESULT_OK, data);
+                              restoreSettingsDefault();
+                              finish();
+                           }
+                      }).setNegativeButton(R.string.alert_dialog_cancel,
+                              new DialogInterface.OnClickListener() {
+                                public void onClick(DialogInterface dialog,
+                                                       int whichButton) {
+                                }
+                              }).create();
+                default:
+                        break;
+                }
+                return null;
+        }
+
+        private void restoreSettingsDefault() {
+          if (mPrefs != null) {
+             if (Locale.getDefault().equals(Locale.CHINA)) {
+                 mBandPreference
+                        .setValueIndex(FmSharedPreferences.REGIONAL_BAND_CHINA);
+             }else {
+                 mBandPreference
+                        .setValueIndex(FmSharedPreferences.REGIONAL_BAND_NORTH_AMERICA);
+             }
+             if (mRxMode) {
+                mAudioPreference.setValueIndex(0);
+                if (FMRadio.RECORDING_ENABLE) {
+                    mRecordDurPreference.setValueIndex(0);
+                }
+                mAfPref.setChecked(true);
+                FmSharedPreferences.SetDefaults();
+             }else {
+                if (Locale.getDefault().equals(Locale.CHINA)) {
+                    FmSharedPreferences
+                    .setCountry(FmSharedPreferences.REGIONAL_BAND_CHINA);
+                }else{
+                    FmSharedPreferences
+                    .setCountry(FmSharedPreferences.REGIONAL_BAND_NORTH_AMERICA);
+                }
+             }
+             mPrefs.Save();
+          }
+        }
+
+        @Override
+        protected void onResume() {
+          super.onResume();
+          PreferenceScreen preferenceScreen = getPreferenceScreen();
+          SharedPreferences sharedPreferences = null;
+          if (preferenceScreen != null) {
+              sharedPreferences = preferenceScreen.getSharedPreferences();
+          }
+          if (sharedPreferences != null) {
+              sharedPreferences.registerOnSharedPreferenceChangeListener(this);
+          }
+        }
+
+        @Override
+        protected void onPause() {
+          super.onPause();
+          PreferenceScreen preferenceScreen = getPreferenceScreen();
+          SharedPreferences sharedPreferences = null;
+          if (preferenceScreen != null) {
+              sharedPreferences = preferenceScreen.getSharedPreferences();
+          }
+          if (sharedPreferences != null) {
+              sharedPreferences.unregisterOnSharedPreferenceChangeListener(this);
+          }
+        }
+}
diff --git a/fmapp2/src/com/caf/fmradio/StationListActivity.java b/fmapp2/src/com/caf/fmradio/StationListActivity.java
new file mode 100644
index 0000000..46b59ad
--- /dev/null
+++ b/fmapp2/src/com/caf/fmradio/StationListActivity.java
@@ -0,0 +1,341 @@
+/*
+ * Copyright (C) 2012-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:
+ *     * Redistributions of source code must retain the above copyright
+ *       notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ *       copyright notice, this list of conditions and the following
+ *       disclaimer in the documentation and/or other materials provided
+ *       with the distribution.
+ *     * Neither the name of The Linux Foundation nor the names of its
+ *       contributors may be used to endorse or promote products derived
+ *       from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+package com.caf.fmradio;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.Handler.Callback;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.ContextMenu;
+import android.view.Gravity;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.ContextMenu.ContextMenuInfo;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ListView;
+import android.widget.SimpleAdapter;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.AdapterView.OnItemClickListener;
+import android.widget.AdapterView.OnItemLongClickListener;
+
+public class StationListActivity extends Activity implements
+        View.OnCreateContextMenuListener {
+
+    private static final String LOGTAG = "StationList";
+    private ListView mStationList;
+    private PresetList mPresetList;
+    private SimpleAdapter mAdapter;
+    private static IFMRadioService mService = null;
+    private static final int CONTEXT_MENU_RENAME = 1;
+    private static final int CONTEXT_MENU_DELETE = 2;
+
+    static final int DIALOG_RENAME_ID = 0;
+    static final int DIALOG_DELETE_ID = 1;
+    // private static String mDialogTitle;
+    private static String mDialogStationName;
+    private static int mItemId;
+    private Dialog mRenameDialog;
+    private Dialog mDeleteDialog;
+    //whether is the first headset plug event
+    private boolean isFirst = true;
+    private ServiceConnection osc = new ServiceConnection() {
+        public void onServiceConnected(ComponentName classname, IBinder obj) {
+            mService = IFMRadioService.Stub.asInterface(obj);
+            if (mService != null) {
+                return;
+            } else {
+                Log.e(LOGTAG, "IFMRadioService onServiceConnected failed");
+            }
+        }
+
+        public void onServiceDisconnected(ComponentName classname) {
+        }
+    };
+
+    ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
+    HashMap<Integer, Integer> mIndex = new HashMap<Integer, Integer>();
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.station_list);
+        bindService((new Intent()).setClass(this, FMRadioService.class), osc, 0);
+
+        mStationList = (ListView) findViewById(R.id.station_list);
+        // mPresetList = new PresetList("StationList");
+        mStationList.setOnCreateContextMenuListener(this);
+        mStationList.setOnItemClickListener(new OnItemClickListener() {
+
+            @Override
+            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
+                    long arg3) {
+                String freq = ((HashMap<String, String>) mAdapter.getItem(arg2))
+                        .get("freq");
+                Float fFreq = Float.parseFloat(freq);
+                if (mService != null) {
+                    try {
+                        mService.tune((int) ((fFreq * 1000)));
+                    } catch (RemoteException e) {
+                        e.printStackTrace();
+                    }
+                } else {
+                    Log.d(LOGTAG, "mService is null........");
+                }
+            }
+        });
+    }
+
+    @Override
+    public boolean onContextItemSelected(MenuItem item) {
+        // TODO Auto-generated method stub
+        AdapterContextMenuInfo mi = (AdapterContextMenuInfo) item.getMenuInfo();
+        switch (item.getItemId()) {
+        case CONTEXT_MENU_RENAME:
+            showDialog(DIALOG_RENAME_ID);
+            break;
+        case CONTEXT_MENU_DELETE:
+            showDialog(DIALOG_DELETE_ID);
+            break;
+
+        }
+
+        return true;
+    }
+
+    @Override
+    public void onCreateContextMenu(ContextMenu menu, View v,
+            ContextMenuInfo menuInfo) {
+        // TODO Auto-generated method stub
+        AdapterContextMenuInfo mi = (AdapterContextMenuInfo) menuInfo;
+        menu.add(0, CONTEXT_MENU_RENAME, 0, getString(R.string.preset_rename));
+        menu.add(0, CONTEXT_MENU_DELETE, 0, getString(R.string.preset_delete));
+        mItemId = mi.position;
+        menu.setHeaderTitle(getString(R.string.station_name)+getNameFromId(mItemId));
+    }
+
+    @Override
+    protected void onResume() {
+        // TODO Auto-generated method stub
+        load();
+        super.onResume();
+    }
+
+    private boolean stationNameExist(String name) {
+        for (HashMap<String, String> item : list) {
+            if (item != null && name.equals(item.get("name"))) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog, Bundle b) {
+        // TODO Auto-generated method stub
+        // super.onPrepareDialog(id, dialog);
+        // After change system language, current function will be executed before
+        // onResume , so execute load to ensure adapter is not null.
+        load();
+        switch (id) {
+        case DIALOG_RENAME_ID:
+            mRenameDialog.setTitle(getString(R.string.station_name)+getNameFromId(mItemId));
+            final EditText editText = (EditText) mRenameDialog
+                    .findViewById(R.id.name);
+            editText.setText(getNameFromId(mItemId));
+            Button bOk = (Button) mRenameDialog.findViewById(R.id.save);
+
+            bOk.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    String rename = editText.getText().toString();
+                    if (TextUtils.isEmpty(rename) || TextUtils.isEmpty(rename.trim())) {
+                        Context context = getApplicationContext();
+                        Toast toast = Toast.makeText(context, getString(R.string.station_name_empty),
+                                Toast.LENGTH_SHORT);
+                        toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0);
+                        toast.show();
+                    } else if (stationNameExist(rename)) {
+                        Context context = getApplicationContext();
+                        Toast toast = Toast.makeText(context,
+                                getString(R.string.station_name_exist, rename), Toast.LENGTH_SHORT);
+                        toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0);
+                        toast.show();
+                    } else {
+                        saveStationName(mItemId,rename);
+                        mRenameDialog.dismiss();
+                    }
+                }
+
+            });
+            Button bCancel = (Button) mRenameDialog.findViewById(R.id.cancel);
+            bCancel.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    // TODO Auto-generated method stub
+                    mRenameDialog.dismiss();
+                }
+            });
+            break;
+        case DIALOG_DELETE_ID:
+            mDeleteDialog.setTitle(getString(R.string.station_list_delete_station, getNameFromId(mItemId)));
+            TextView prompt = (TextView) mDeleteDialog.findViewById(R.id.prompt);
+            prompt.setText(getString(R.string.station_list_delete_station_prompt,getNameFromId(mItemId)));
+            Button bDelete = (Button) mDeleteDialog.findViewById(R.id.delete);
+
+            bDelete.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    deleteStation(mItemId);
+                    mDeleteDialog.dismiss();
+                }
+            });
+            Button bCancelDelete = (Button) mDeleteDialog.findViewById(R.id.cancel);
+            bCancelDelete.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mDeleteDialog.dismiss();
+                }
+            });
+            break;
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id, Bundle b) {
+        // TODO Auto-generated method stub
+        //should return different dialog
+        switch (id) {
+        case DIALOG_RENAME_ID:
+            mRenameDialog = new Dialog(this);
+            mRenameDialog.setContentView(R.layout.rename_dialog);
+            return mRenameDialog;
+        case DIALOG_DELETE_ID:
+            mDeleteDialog = new Dialog(this);
+            mDeleteDialog.setContentView(R.layout.delete_dialog);
+            return mDeleteDialog;
+        default:
+            ;
+        }
+        return null;
+    }
+
+    private void saveStationName(int id, String name) {
+        Integer stationIndex = mIndex.get(new Integer(id));
+        SharedPreferences sp = getSharedPreferences(
+                FMRadio.SCAN_STATION_PREFS_NAME, 0);
+        SharedPreferences.Editor editor = sp.edit();
+        editor
+                .putString(FMRadio.STATION_NAME + (stationIndex.intValue()),
+                        name);
+        editor.commit();
+        load();
+    }
+
+    private void deleteStation(int id) {
+        SharedPreferences sp = getSharedPreferences(
+                FMRadio.SCAN_STATION_PREFS_NAME, 0);
+        Integer stationIndex = mIndex.get(new Integer(id));
+        SharedPreferences.Editor editor = sp.edit();
+        editor.remove(FMRadio.STATION_NAME + (stationIndex));
+        editor.remove(FMRadio.STATION_FREQUENCY + (stationIndex));
+        editor.commit();
+        load();
+    }
+
+    private int getFrequencyFromId(int id) {
+        String freq = ((HashMap<String, String>) mAdapter.getItem(id))
+                .get("freq");
+        Float fFreq = Float.parseFloat(freq);
+        return (int) ((fFreq * 1000));
+    }
+
+    private String getNameFromId(int id) {
+        String name = ((HashMap<String, String>) mAdapter.getItem(id))
+                .get("name");
+        return name;
+
+    }
+
+    protected void load() {
+        list.clear();
+        mIndex.clear();
+        SharedPreferences sp = getSharedPreferences(
+                FMRadio.SCAN_STATION_PREFS_NAME, 0);
+        int station_number = sp.getInt(FMRadio.NUM_OF_STATIONS, 0);
+        for (int i = 1; i <= station_number; i++) {
+            HashMap<String, String> item = new HashMap<String, String>();
+            String name = sp.getString(FMRadio.STATION_NAME + i, "");
+
+            int frequency = sp.getInt(FMRadio.STATION_FREQUENCY + i, 0);
+
+            if (!name.equals("") && frequency != 0) {
+                item.put("name", name);
+                item.put("freq", String.valueOf(frequency / 1000.0f));
+                mIndex.put(new Integer(list.size()), new Integer(i));
+                list.add(item);
+            }
+        }
+
+        mAdapter = new SimpleAdapter(this, list, R.layout.station_list_item,
+                new String[] { "name", "freq" }, new int[] { R.id.name,
+                        R.id.freq });
+
+        mStationList.setAdapter(mAdapter);
+    }
+
+    @Override
+    protected void onDestroy() {
+        unbindService(osc);
+        mService = null;
+        super.onDestroy();
+    }
+
+}
diff --git a/fmapp2/src/com/caf/hc_utils/A2dpDeviceStatus.java b/fmapp2/src/com/caf/hc_utils/A2dpDeviceStatus.java
new file mode 100644
index 0000000..45b647e
--- /dev/null
+++ b/fmapp2/src/com/caf/hc_utils/A2dpDeviceStatus.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2011-2012, 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.utils;
+
+import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.content.Intent;
+import android.content.Context;
+
+public class A2dpDeviceStatus {
+    private BluetoothAdapter mAdapter;
+    private BluetoothA2dp mA2dp = null;
+    public String getActionSinkStateChangedString (){
+        return BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED;
+    }
+    public String getActionPlayStateChangedString (){
+        return BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED;
+    }
+    public boolean  isA2dpStateChange( String action) {
+        if(action.equals(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED) ) {
+           return true;
+        }
+        return false;
+    }
+    public boolean  isA2dpPlayStateChange( String action) {
+        if(action.equals(BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED) ) {
+           return true;
+        }
+        return false;
+    }
+    public boolean isConnected(Intent intent) {
+        boolean isConnected = false;
+        int state = intent.getIntExtra(BluetoothA2dp.EXTRA_STATE,
+                                BluetoothA2dp.STATE_DISCONNECTED);
+        if((state == BluetoothA2dp.STATE_CONNECTED) || (state == BluetoothProfile.STATE_CONNECTED)) {
+            isConnected = true;
+        }
+        return isConnected;
+    }
+    public boolean isPlaying(Intent intent) {
+        boolean isPlaying = false;
+        int state = intent.getIntExtra(BluetoothA2dp.EXTRA_STATE,
+                                BluetoothA2dp.STATE_DISCONNECTED);
+        if(state == BluetoothA2dp.STATE_PLAYING ) {
+            isPlaying = true;
+        }
+        return isPlaying;
+    }
+    public boolean isDeviceAvailable() {
+        if(null != mA2dp) {
+            if( 0 != mA2dp.getConnectedDevices().size() ) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    public A2dpDeviceStatus(Context mContext) {
+        mAdapter = BluetoothAdapter.getDefaultAdapter();
+        mAdapter.getProfileProxy(mContext, mProfileListener,
+                BluetoothProfile.A2DP);
+    }
+    private BluetoothProfile.ServiceListener mProfileListener =
+        new BluetoothProfile.ServiceListener() {
+    public void onServiceConnected(int profile, BluetoothProfile proxy) {
+        if (profile == BluetoothProfile.A2DP) {
+            mA2dp = (BluetoothA2dp) proxy;
+        }
+    }
+    public void onServiceDisconnected(int profile) {
+        if (profile == BluetoothProfile.A2DP) {
+            mA2dp = null;
+        }
+    }
+};
+}
+
diff --git a/fmapp2/src/com/caf/hc_utils/FrequencyPicker.java b/fmapp2/src/com/caf/hc_utils/FrequencyPicker.java
new file mode 100644
index 0000000..c88bb0a
--- /dev/null
+++ b/fmapp2/src/com/caf/hc_utils/FrequencyPicker.java
@@ -0,0 +1,429 @@
+/*
+ * Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ *
+ * Copyright (C) 2007 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.caf.utils;
+
+
+import android.content.Context;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.util.SparseArray;
+import android.view.LayoutInflater;
+import android.widget.FrameLayout;
+
+import com.caf.fmradio.R;
+import android.widget.NumberPicker;
+import android.widget.NumberPicker.OnValueChangeListener;
+
+/**
+ * A view for selecting the frequency
+ *
+ * For a dialog using this view, see {FrequencyPickerDialog}.
+ */
+
+public class FrequencyPicker extends FrameLayout {
+
+    /* UI Components */
+    private final NumberPicker mMHzPicker;
+    private final NumberPicker mKHzPicker;
+
+    /**
+     * How we notify users the Frequency has changed.
+     */
+    private OnFrequencyChangedListener mOnFrequencyChangedListener;
+
+    private int mFrequency;
+    private int mMin;
+    private int mMax;
+    private int mStep;
+    private int mMhz;
+    private int mKhz;
+
+    /**
+     * The callback used to indicate the user changes the Frequency.
+     */
+    public interface OnFrequencyChangedListener {
+
+        /**
+         * @param view The view associated with this listener.
+         * @param frequency The Frequency that was set.
+         */
+        void onFrequencyChanged(FrequencyPicker view, int frequency);
+    }
+
+    public FrequencyPicker(Context context) {
+        this(context, null);
+    }
+
+    public FrequencyPicker(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public FrequencyPicker(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        inflater.inflate(R.layout.frequency_picker, this, true);
+
+        mMHzPicker = (NumberPicker) findViewById(R.id.mhz);
+        if (mMHzPicker != null) {
+           mMHzPicker.setOnLongPressUpdateInterval(100);
+
+           mMHzPicker.setOnValueChangedListener(new OnValueChangeListener() {
+              public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+                  mMhz = newVal;
+                  mFrequency = (mMhz*1000) + (getFrequencyKHz(mKhz, mMin, mStep));
+                  validateFrequencyRange();
+                  if (mOnFrequencyChangedListener != null) {
+                        mOnFrequencyChangedListener.onFrequencyChanged(FrequencyPicker.this, mFrequency);
+                  }
+              }
+           });
+        }
+        mKHzPicker = (NumberPicker) findViewById(R.id.khz);
+        if (mKHzPicker != null) {
+           mKHzPicker.setOnLongPressUpdateInterval(100);
+           mKHzPicker.setOnValueChangedListener(new OnValueChangeListener() {
+              public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
+                  mKhz = newVal;
+                  mFrequency = (mMhz*1000) + (getFrequencyKHz(mKhz, mMin, mStep));
+
+                  validateFrequencyRange();
+
+                  if (mOnFrequencyChangedListener != null) {
+                        mOnFrequencyChangedListener.onFrequencyChanged(FrequencyPicker.this, mFrequency);
+                  }
+              }
+           });
+        }
+
+        updateSpinnerRange();
+
+        if (!isEnabled()) {
+            setEnabled(false);
+        }
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        mMHzPicker.setEnabled(enabled);
+        mKHzPicker.setEnabled(enabled);
+    }
+
+
+    public void updateFrequency(int frequency) {
+        mFrequency = frequency;
+        updateSpinners();
+    }
+
+    private static class SavedState extends BaseSavedState {
+
+        private final int mMHZ;
+        private final int mKHZ;
+
+        /**
+         * Constructor called from {@link FrequencyPicker#onSaveInstanceState()}
+         */
+        private SavedState(Parcelable superState, int mhz, int khz) {
+            super(superState);
+            mMHZ = mhz;
+            mKHZ = khz;
+        }
+
+        /**
+         * Constructor called from {@link #CREATOR}
+         */
+        private SavedState(Parcel in) {
+            super(in);
+            mMHZ = in.readInt();
+            mKHZ = in.readInt();
+        }
+
+        public int getMHz() {
+            return mMHZ;
+        }
+
+        public int getKHz() {
+            return mKHZ;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeInt(mMHZ);
+            dest.writeInt(mKHZ);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+                new Creator<SavedState>() {
+
+                    public SavedState createFromParcel(Parcel in) {
+                        return new SavedState(in);
+                    }
+
+                    public SavedState[] newArray(int size) {
+                        return new SavedState[size];
+                    }
+                };
+    }
+
+
+    /**
+     * Override so we are in complete control of save / restore for this widget.
+     */
+    @Override
+    protected void dispatchRestoreInstanceState(SparseArray<Parcelable> container) {
+        dispatchThawSelfOnly(container);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Parcelable superState = super.onSaveInstanceState();
+
+        return new SavedState(superState, mMhz, mKhz);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+        mMhz = ss.getMHz();
+        mKhz = ss.getKHz();
+    }
+
+    private String[] getKHzStrings(int min, int stepSize)
+    {
+            if(stepSize == 100)
+            {
+                    return (get100KHzStrings());
+            }
+            else if(stepSize == 50)
+            {
+                    return (get50KHzStrings());
+            }
+                   return (get200KHzStrings(min));
+    }
+
+    private int getKHzCount(int stepSize)
+    {
+            if(stepSize == 100)
+            {
+                    return (10);
+            }
+            else if(stepSize == 50)
+            {
+                    return (20);
+            }
+                   return (5);
+    }
+    private int getCurrentKHz(int frequency, int min, int stepSize)
+    {
+            if(stepSize == 100)
+            {
+                    return (getCurrent100KHz(frequency));
+            }
+            else if(stepSize == 50)
+            {
+                    return (getCurrent50KHz(frequency));
+            }
+                   return (getCurrent200KHz(frequency, min));
+    }
+
+    private int getFrequencyKHz(int kHz, int min, int stepSize)
+    {
+            if(stepSize == 100)
+            {
+                    return (getFrequency100KHz(kHz));
+            }
+            else if(stepSize == 50)
+            {
+                    return (getFrequency50KHz(kHz));
+            }
+                   return (getFrequency200KHz(kHz, min));
+    }
+
+    private int getFrequency100KHz(int kHz)
+    {
+            int frequencykhz = ((kHz-1)*100) ;
+        //Log.d("FMRadio", "FP: getCurrent100KHz: " + frequencykhz);
+                   return (frequencykhz);
+    }
+
+    private int getFrequency50KHz(int kHz)
+    {
+            int frequencykhz = ((kHz-1)*50) ;
+        //Log.d("FMRadio", "FP: getCurrent100KHz: " + frequencykhz);
+                   return (frequencykhz);
+    }
+
+    private int getFrequency200KHz(int kHz, int min)
+    {
+            int frequencykhz = ((kHz-1)*200) ;
+            if(min%200 != 0)
+            {
+                    frequencykhz = ((kHz-1)*200)+100 ;
+            }
+            //Log.d("FMRadio", "FP: getCurrent200KHz: " + frequencykhz);
+                   return (frequencykhz);
+    }
+
+    private int getCurrent100KHz(int frequency)
+    {
+            int khz = ((frequency%1000)/100) ;
+        //Log.d("FMRadio", "FP: getCurrent100KHz: " + khz);
+                   return (khz+1);
+    }
+
+    private int getCurrent50KHz(int frequency)
+    {
+            int khz = ((frequency%1000)/50)  ;
+        //Log.d("FMRadio", "FP: getCurrent50KHz: " + khz);
+                   return (khz+1);
+    }
+
+    private int getCurrent200KHz(int frequency, int min)
+    {
+            int khz = ((frequency%1000)/200);
+        //Log.d("FMRadio", "FP: getCurrent200KHz: " + khz);
+                   return (khz+1);
+    }
+
+    private String[] get50KHzStrings()
+    {
+                   String[] khzStrings= {"00","05","10","15","20","25","30","35","40","45",
+                                                 "50","55","60","65","70","75","80","85","90","95"};
+        //Log.d("FMRadio", "FP: get50KHzStrings");
+            return khzStrings;
+    }
+
+    private String[] get100KHzStrings()
+    {
+                   String[] khzStrings= {"0","1","2","3","4","5",
+                                         "6","7","8","9"};
+        //Log.d("FMRadio", "FP: get100KHzStrings");
+            return khzStrings;
+    }
+
+    private String[] get200KHzStrings(int min)
+    {
+            if(min%200 == 0)
+            {
+                    return (getEven200KHzStrings());
+            }
+                   return (getOdd200KHzStrings());
+    }
+
+    private String[] getEven200KHzStrings()
+    {
+                   String[] khzStrings= {"0","2","4","6","8"};
+        //Log.d("FMRadio", "FP: getEven200KHzStrings");
+            return khzStrings;
+    }
+    private String[] getOdd200KHzStrings()
+    {
+                   String[] khzStrings= {"1","3","5","7","9"};
+        //Log.d("FMRadio", "FP: getOdd200KHzStrings");
+            return khzStrings;
+    }
+    public void updateSteps(int steps)
+    {
+       mStep = steps;
+    }
+    public void updateMinFreq(int freq)
+    {
+       mMin = freq;
+    }
+    public void updateMaxFreq(int freq)
+    {
+       mMax = freq;
+    }
+    /**
+     * Initialize the state.
+     * @param year The initial year.
+     * @param monthOfYear The initial month.
+     * @param dayOfMonth The initial day of the month.
+     * @param onDateChangedListener How user is notified date is changed by user, can be null.
+     */
+    public void init(int min, int max, int step, int frequency,
+            OnFrequencyChangedListener onFrequencyChangedListener) {
+
+            mMin = min;
+            mMax = max;
+            mStep = step;
+        mFrequency = frequency;
+        mOnFrequencyChangedListener = onFrequencyChangedListener;
+
+        updateSpinners();
+    }
+    private void updateSpinnerRange() {
+        String[] khzStrings = getKHzStrings(mMin, mStep);
+        int khzNumSteps = getKHzCount(mStep);
+
+        if (mMHzPicker != null) {
+           mMHzPicker.setMinValue(mMin/1000);
+           mMHzPicker.setMaxValue(mMax/1000);
+        }
+        if (mKHzPicker != null) {
+           mKHzPicker.setDisplayedValues(get50KHzStrings());
+           mKHzPicker.setMinValue(1);
+           mKHzPicker.setMaxValue(khzNumSteps);
+           mKHzPicker.setDisplayedValues(khzStrings);
+        }
+    }
+
+    private void updateSpinners() {
+        int khzNumSteps = getKHzCount(mStep);
+        updateSpinnerRange();
+        mMhz = (int)(mFrequency/1000);
+            mKhz = getCurrentKHz(mFrequency, mMin, mStep) ;
+        if((mMin/1000 <=mMhz) && (mMax/1000 >=mMhz))
+        {
+            mMHzPicker.setValue(mMhz);
+        }
+        if(mKhz <= khzNumSteps)
+        {
+            mKHzPicker.setValue(mKhz);
+        }
+    }
+    private void validateFrequencyRange()
+    {
+            boolean bUpdateSpinner=false;
+        if(mFrequency < mMin)
+        {
+                mFrequency = mMin;
+                bUpdateSpinner = true;
+        }
+        if(mFrequency > mMax)
+        {
+                mFrequency = mMax;
+                bUpdateSpinner = true;
+        }
+        if(bUpdateSpinner == true)
+        {
+                updateSpinners();
+        }
+    }
+
+    public int getFrequency() {
+        return (mFrequency);
+    }
+}
diff --git a/fmapp2/src/com/caf/hc_utils/FrequencyPickerDialog.java b/fmapp2/src/com/caf/hc_utils/FrequencyPickerDialog.java
new file mode 100644
index 0000000..cac7dc1
--- /dev/null
+++ b/fmapp2/src/com/caf/hc_utils/FrequencyPickerDialog.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (c) 2012 - 2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ *
+ * Copyright (C) 2007 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.caf.utils;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import qcom.fmradio.FmConfig;
+import qcom.fmradio.FmReceiver;
+
+import com.caf.fmradio.R;
+import com.caf.utils.FrequencyPicker.OnFrequencyChangedListener;
+
+/**
+ * A simple dialog containing an FrequencyPicker.
+ */
+public class FrequencyPickerDialog extends AlertDialog implements OnClickListener,
+OnFrequencyChangedListener {
+
+    private static final String FREQUENCY = "FREQUENCY";
+    private static final String FREQ_MIN = "FREQ_MIN";
+    private static final String FREQ_MAX = "FREQ_MAX";
+    private static final String FREQ_STEP = "FREQ_STEP";
+
+    private final FrequencyPicker mFrequencyPicker;
+    private final OnFrequencySetListener mCallBack;
+    private int mMinFrequency;
+    private int mMaxFrequency;
+    private int mChannelSpacing;
+
+    /**
+     * The callback used to indicate the user is done filling in the date.
+     */
+    public interface OnFrequencySetListener {
+
+        void onFrequencySet(FrequencyPicker view, int frequency);
+    }
+    /**
+     */
+    public FrequencyPickerDialog(Context context,
+                                                            FmConfig fmConfig,
+                                                            int frequency,
+                                 OnFrequencySetListener callback) {
+        //this(context, android.R.style.Theme_Dialog, fmConfig, frequency, callback);
+       this(context, com.android.internal.R.style.Theme_Dialog_Alert, fmConfig, frequency, callback);
+    }
+
+    /**
+     */
+    public FrequencyPickerDialog(Context context,
+            int theme,
+            FmConfig fmConfig,
+                        int frequency,
+                        OnFrequencySetListener callback) {
+        super(context, theme);
+        mMinFrequency = fmConfig.getLowerLimit();
+        mMaxFrequency = fmConfig.getUpperLimit();
+        mChannelSpacing = 200;
+        if(FmReceiver.FM_CHSPACE_200_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 200;
+        }
+        else if(FmReceiver.FM_CHSPACE_100_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 100;
+        }
+        else if(FmReceiver.FM_CHSPACE_50_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 50;
+        }
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+        mCallBack = callback;
+
+        setButton("Set", this);
+        setButton2("Cancel", (OnClickListener) null);
+        setIcon(R.drawable.alert_dialog_icon);
+
+        LayoutInflater inflater =
+                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflater.inflate(R.layout.frequency_picker_dialog, null);
+        setView(view);
+        mFrequencyPicker = (FrequencyPicker) view.findViewById(R.id.frequencyPicker);
+        if(mFrequencyPicker != null)
+        {
+                mFrequencyPicker.init(mMinFrequency, mMaxFrequency, mChannelSpacing, frequency, this);
+        }
+        else
+        {
+            Log.e("fmRadio", "Failed to find ID: R.id.frequencyPicker");
+        }
+    }
+
+    public void UpdateFrequency(int frequency)
+    {
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+            mFrequencyPicker.updateFrequency(frequency);
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        if (mCallBack != null) {
+            mFrequencyPicker.clearFocus();
+            int frequency = mFrequencyPicker.getFrequency();
+            mCallBack.onFrequencySet(mFrequencyPicker, frequency);
+        }
+    }
+
+    public void onFrequencyChanged(FrequencyPicker view, int frequency) {
+            UpdateFrequency(frequency);
+    }
+
+    @Override
+    public Bundle onSaveInstanceState() {
+        Bundle state = super.onSaveInstanceState();
+        state.putInt(FREQUENCY, mFrequencyPicker.getFrequency());
+        state.putInt(FREQ_MIN, mMinFrequency);
+        state.putInt(FREQ_MAX, mMaxFrequency);
+        state.putInt(FREQ_STEP, mChannelSpacing);
+        return state;
+    }
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        int frequency = savedInstanceState.getInt(FREQUENCY);
+        mMinFrequency = savedInstanceState.getInt(FREQ_MIN);
+        mMaxFrequency = savedInstanceState.getInt(FREQ_MAX );
+        mChannelSpacing = savedInstanceState.getInt(FREQ_STEP);
+        mFrequencyPicker.init(mMinFrequency, mMaxFrequency, mChannelSpacing, frequency, this);
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+    }
+    public void updateSteps(int steps)
+    {
+        mChannelSpacing = 200;
+        if(FmReceiver.FM_CHSPACE_200_KHZ == steps)
+        {
+                mChannelSpacing = 200;
+        }
+        else if(FmReceiver.FM_CHSPACE_100_KHZ == steps)
+        {
+                mChannelSpacing = 100;
+        }
+        else if(FmReceiver.FM_CHSPACE_50_KHZ == steps)
+        {
+                mChannelSpacing = 50;
+        }
+        mFrequencyPicker.updateSteps(mChannelSpacing);
+    }
+    public void updateMinFreq(int freq)
+    {
+       mMinFrequency = freq;
+       mFrequencyPicker.updateMinFreq(mMinFrequency);
+    }
+    public void updateMaxFreq(int freq)
+    {
+       mMaxFrequency = freq;
+       mFrequencyPicker.updateMaxFreq(mMaxFrequency);
+    }
+}
diff --git a/fmapp2/src/com/caf/utils/A2dpDeviceStatus.java b/fmapp2/src/com/caf/utils/A2dpDeviceStatus.java
new file mode 100644
index 0000000..3f1c010
--- /dev/null
+++ b/fmapp2/src/com/caf/utils/A2dpDeviceStatus.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2011, 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:
+ *        * Redistributions of source code must retain the above copyright
+ *            notice, this list of conditions and the following disclaimer.
+ *        * Redistributions in binary form must reproduce the above copyright
+ *            notice, this list of conditions and the following disclaimer in the
+ *            documentation and/or other materials provided with the distribution.
+ *        * Neither the name of The Linux Foundation nor
+ *            the names of its contributors may be used to endorse or promote
+ *            products derived from this software without specific prior written
+ *            permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED.    IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.caf.utils;
+
+import android.bluetooth.BluetoothA2dp;
+import android.bluetooth.BluetoothDevice;
+import android.content.Context;
+import android.content.Intent;
+
+import java.util.Set;
+
+
+public class A2dpDeviceStatus {
+    private BluetoothA2dp mA2dp = null;
+    public String getActionSinkStateChangedString (){
+        return BluetoothA2dp.ACTION_SINK_STATE_CHANGED;
+    }
+    public String getActionPlayStateChangedString (){
+        return BluetoothA2dp.ACTION_SINK_STATE_CHANGED;
+    }
+    public boolean  isA2dpStateChange( String action) {
+        if(action.equals(BluetoothA2dp.ACTION_SINK_STATE_CHANGED) ) {
+           return true;
+        }
+        return false;
+    }
+    public boolean  isA2dpPlayStateChange( String action) {
+        return isA2dpStateChange(action);
+    }
+    public boolean isConnected(Intent intent) {
+        boolean isConnected = false;
+        int state = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE,
+                                BluetoothA2dp.STATE_DISCONNECTED);
+        if (state == BluetoothA2dp.STATE_CONNECTED ||
+                state == BluetoothA2dp.STATE_PLAYING){
+            isConnected = true;
+        }
+        return isConnected;
+    }
+    public boolean isPlaying(Intent intent) {
+        boolean isPlaying = false;
+        int state = intent.getIntExtra(BluetoothA2dp.EXTRA_SINK_STATE,
+                                BluetoothA2dp.STATE_DISCONNECTED);
+        if(state == BluetoothA2dp.STATE_PLAYING){
+            isPlaying = true;
+        }
+        return isPlaying;
+    }
+    public boolean isDeviceAvailable() {
+        if(null == mA2dp) return false;
+        Set<BluetoothDevice> sinks = mA2dp.getConnectedSinks();
+        if (sinks != null && sinks.size() != 0) {
+           return true;
+        }
+        return false;
+    }
+
+    public A2dpDeviceStatus(Context mContext) {
+        mA2dp = new BluetoothA2dp(mContext);
+    }
+
+}
diff --git a/fmapp2/src/com/caf/utils/FrequencyPicker.java b/fmapp2/src/com/caf/utils/FrequencyPicker.java
new file mode 100644
index 0000000..1ea10e8
--- /dev/null
+++ b/fmapp2/src/com/caf/utils/FrequencyPicker.java
@@ -0,0 +1,407 @@
+/*
+ * Copyright (c) 2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution.
+ *
+ * Copyright (C) 2007 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.caf.utils;
+
+
+import android.content.Context;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.util.AttributeSet;
+import android.util.SparseArray;
+import android.view.LayoutInflater;
+import android.widget.FrameLayout;
+
+import com.caf.fmradio_2.R;
+import android.widget.NumberPicker;
+import android.widget.NumberPicker.OnChangedListener;
+
+/**
+ * A view for selecting the frequency
+ *
+ * For a dialog using this view, see {FrequencyPickerDialog}.
+ */
+
+public class FrequencyPicker extends FrameLayout {
+
+    /* UI Components */
+    private final NumberPicker mMHzPicker;
+    private final NumberPicker mKHzPicker;
+
+    /**
+     * How we notify users the Frequency has changed.
+     */
+    private OnFrequencyChangedListener mOnFrequencyChangedListener;
+
+    private int mFrequency;
+    private int mMin;
+    private int mMax;
+    private int mStep;
+    private int mMhz;
+    private int mKhz;
+
+    /**
+     * The callback used to indicate the user changes the Frequency.
+     */
+    public interface OnFrequencyChangedListener {
+
+        /**
+         * @param view The view associated with this listener.
+         * @param frequency The Frequency that was set.
+         */
+        void onFrequencyChanged(FrequencyPicker view, int frequency);
+    }
+
+    public FrequencyPicker(Context context) {
+        this(context, null);
+    }
+
+    public FrequencyPicker(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public FrequencyPicker(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        inflater.inflate(R.layout.frequency_picker, this, true);
+
+        mMHzPicker = (NumberPicker) findViewById(R.id.mhz);
+        if (mMHzPicker != null) {
+            mMHzPicker.setSpeed(100);
+            mMHzPicker.setOnChangeListener(new OnChangedListener() {
+              public void onChanged(NumberPicker picker, int oldVal, int newVal) {
+                 mMhz = newVal;
+                 mFrequency = (mMhz * 1000) + (getFrequencyKHz(mKhz, mMin, mStep));
+                 validateFrequencyRange();
+                 if (mOnFrequencyChangedListener != null) {
+                     mOnFrequencyChangedListener.onFrequencyChanged(FrequencyPicker.this, mFrequency);
+                 }
+              }
+           });
+        }
+        mKHzPicker = (NumberPicker) findViewById(R.id.khz);
+        if (mKHzPicker != null) {
+            mKHzPicker.setSpeed(100);
+            mKHzPicker.setOnChangeListener(new OnChangedListener() {
+              public void onChanged(NumberPicker picker, int oldVal, int newVal) {
+                 mKhz = newVal;
+                 mFrequency = (mMhz * 1000) + (getFrequencyKHz(mKhz, mMin, mStep));
+
+                 validateFrequencyRange();
+
+                 if (mOnFrequencyChangedListener != null) {
+                     mOnFrequencyChangedListener.onFrequencyChanged(FrequencyPicker.this, mFrequency);
+                 }
+              }
+           });
+        }
+
+        updateSpinnerRange();
+
+        if (!isEnabled()) {
+            setEnabled(false);
+        }
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        if (mMHzPicker != null) {
+            mMHzPicker.setEnabled(enabled);
+        }
+        if (mKHzPicker != null) {
+            mKHzPicker.setEnabled(enabled);
+        }
+    }
+
+
+    public void updateFrequency(int frequency) {
+        mFrequency = frequency;
+        updateSpinners();
+    }
+
+    private static class SavedState extends BaseSavedState {
+
+        private final int mMHZ;
+        private final int mKHZ;
+
+        /**
+         * Constructor called from {@link FrequencyPicker#onSaveInstanceState()}
+         */
+        private SavedState(Parcelable superState, int mhz, int khz) {
+            super(superState);
+            mMHZ = mhz;
+            mKHZ = khz;
+        }
+
+        /**
+         * Constructor called from {@link #CREATOR}
+         */
+        private SavedState(Parcel in) {
+            super(in);
+            mMHZ = in.readInt();
+            mKHZ = in.readInt();
+        }
+
+        public int getMHz() {
+            return mMHZ;
+        }
+
+        public int getKHz() {
+            return mKHZ;
+        }
+
+        @Override
+        public void writeToParcel(Parcel dest, int flags) {
+            super.writeToParcel(dest, flags);
+            dest.writeInt(mMHZ);
+            dest.writeInt(mKHZ);
+        }
+
+        public static final Parcelable.Creator<SavedState> CREATOR =
+             new Creator<SavedState>() {
+
+               public SavedState createFromParcel(Parcel in) {
+                    return new SavedState(in);
+               }
+
+               public SavedState[] newArray(int size) {
+                    return new SavedState[size];
+               }
+            };
+    }
+
+
+    /**
+     * Override so we are in complete control of save / restore for this widget.
+     */
+    @Override
+    protected void dispatchRestoreInstanceState(SparseArray<Parcelable> container) {
+        dispatchThawSelfOnly(container);
+    }
+
+    @Override
+    protected Parcelable onSaveInstanceState() {
+        Parcelable superState = super.onSaveInstanceState();
+
+        return new SavedState(superState, mMhz, mKhz);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Parcelable state) {
+        SavedState ss = (SavedState) state;
+        super.onRestoreInstanceState(ss.getSuperState());
+        mMhz = ss.getMHz();
+        mKhz = ss.getKHz();
+    }
+
+    private String[] getKHzStrings(int min, int stepSize)
+    {
+        if(stepSize == 100)
+        {
+           return (get100KHzStrings());
+        }
+        else if(stepSize == 50)
+        {
+           return (get50KHzStrings());
+        }
+        return (get200KHzStrings(min));
+    }
+
+    private int getKHzCount(int stepSize)
+    {
+        if(stepSize == 100)
+        {
+           return (10);
+        }
+        else if(stepSize == 50)
+        {
+           return (20);
+        }
+        return (5);
+    }
+
+    private int getCurrentKHz(int frequency, int min, int stepSize)
+    {
+        if(stepSize == 100)
+        {
+            return (getCurrent100KHz(frequency));
+        }
+        else if(stepSize == 50)
+        {
+            return (getCurrent50KHz(frequency));
+        }
+        return (getCurrent200KHz(frequency, min));
+    }
+
+    private int getFrequencyKHz(int kHz, int min, int stepSize)
+    {
+        if(stepSize == 100)
+        {
+           return (getFrequency100KHz(kHz));
+        }
+        else if(stepSize == 50)
+        {
+           return (getFrequency50KHz(kHz));
+        }
+        return (getFrequency200KHz(kHz, min));
+    }
+
+    private int getFrequency100KHz(int kHz)
+    {
+        int frequencykhz = ((kHz - 1) * 100);
+        return (frequencykhz);
+    }
+
+    private int getFrequency50KHz(int kHz)
+    {
+        int frequencykhz = ((kHz - 1) * 50);
+        return (frequencykhz);
+    }
+
+    private int getFrequency200KHz(int kHz, int min)
+    {
+        int frequencykhz = ((kHz - 1) * 200);
+        if((min % 200) != 0)
+        {
+            frequencykhz = ((kHz - 1) * 200) + 100;
+        }
+        return (frequencykhz);
+    }
+
+    private int getCurrent100KHz(int frequency)
+    {
+        int khz = ((frequency % 1000) / 100);
+        return (khz + 1);
+    }
+
+    private int getCurrent50KHz(int frequency)
+    {
+        int khz = ((frequency % 1000) / 50);
+        return (khz + 1);
+    }
+
+    private int getCurrent200KHz(int frequency, int min)
+    {
+        int khz = ((frequency % 1000) / 200);
+        return (khz + 1);
+    }
+
+    private String[] get50KHzStrings()
+    {
+        String[] khzStrings= {"00","05","10","15","20","25","30","35","40","45",
+                                                 "50","55","60","65","70","75","80","85","90","95"};
+        return khzStrings;
+    }
+
+    private String[] get100KHzStrings()
+    {
+        String[] khzStrings= {"0","1","2","3","4","5",
+                                         "6","7","8","9"};
+        return khzStrings;
+    }
+
+    private String[] get200KHzStrings(int min)
+    {
+        if((min % 200) == 0)
+        {
+           return (getEven200KHzStrings());
+        }
+        return (getOdd200KHzStrings());
+    }
+
+    private String[] getEven200KHzStrings()
+    {
+        String[] khzStrings= {"0","2","4","6","8"};
+        return khzStrings;
+    }
+    private String[] getOdd200KHzStrings()
+    {
+        String[] khzStrings= {"1","3","5","7","9"};
+        return khzStrings;
+    }
+
+    /**
+     * Initialize the state.
+     * @param year The initial year.
+     * @param monthOfYear The initial month.
+     * @param dayOfMonth The initial day of the month.
+     * @param onDateChangedListener How user is notified date is changed by user, can be null.
+     */
+    public void init(int min, int max, int step, int frequency,
+            OnFrequencyChangedListener onFrequencyChangedListener) {
+
+        mMin = min;
+        mMax = max;
+        mStep = step;
+        mFrequency = frequency;
+        mOnFrequencyChangedListener = onFrequencyChangedListener;
+
+        updateSpinners();
+    }
+    private void updateSpinnerRange() {
+        String[] khzStrings = getKHzStrings(mMin, mStep);
+        int khzNumSteps = getKHzCount(mStep);
+
+        if (mMHzPicker != null) {
+           mMHzPicker.setRange(mMin / 1000, mMax / 1000);
+        }
+        if (mKHzPicker != null) {
+           mKHzPicker.setRange(1, khzNumSteps, khzStrings);
+        }
+    }
+
+    private void updateSpinners() {
+        int khzNumSteps = getKHzCount(mStep);
+        updateSpinnerRange();
+        mMhz = (int)(mFrequency / 1000);
+        mKhz = getCurrentKHz(mFrequency, mMin, mStep) ;
+        if((mMin / 1000 <= mMhz) && (mMax / 1000 >= mMhz))
+        {
+            mMHzPicker.setCurrent(mMhz);
+        }
+        if(mKhz <= khzNumSteps)
+        {
+            mKHzPicker.setCurrent(mKhz);
+        }
+    }
+    private void validateFrequencyRange()
+    {
+        boolean bUpdateSpinner = false;
+        if(mFrequency < mMin)
+        {
+                mFrequency = mMin;
+                bUpdateSpinner = true;
+        }
+        if(mFrequency > mMax)
+        {
+                mFrequency = mMax;
+                bUpdateSpinner = true;
+        }
+        if(bUpdateSpinner == true)
+        {
+                updateSpinners();
+        }
+    }
+
+    public int getFrequency() {
+        return (mFrequency);
+    }
+}
diff --git a/fmapp2/src/com/caf/utils/FrequencyPickerDialog.java b/fmapp2/src/com/caf/utils/FrequencyPickerDialog.java
new file mode 100644
index 0000000..3c6168b
--- /dev/null
+++ b/fmapp2/src/com/caf/utils/FrequencyPickerDialog.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2013, The Linux Foundation. All rights reserved.
+ * Not a Contribution
+ *
+ * Copyright (C) 2007 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.caf.utils;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import qcom.fmradio.FmConfig;
+import qcom.fmradio.FmReceiver;
+
+import com.caf.fmradio.R;
+import com.caf.utils.FrequencyPicker.OnFrequencyChangedListener;
+
+/**
+ * A simple dialog containing an FrequencyPicker.
+ */
+public class FrequencyPickerDialog extends AlertDialog implements OnClickListener,
+OnFrequencyChangedListener {
+
+    private static final String FREQUENCY = "FREQUENCY";
+    private static final String FREQ_MIN = "FREQ_MIN";
+    private static final String FREQ_MAX = "FREQ_MAX";
+    private static final String FREQ_STEP = "FREQ_STEP";
+
+    private final FrequencyPicker mFrequencyPicker;
+    private final OnFrequencySetListener mCallBack;
+    private int mMinFrequency;
+    private int mMaxFrequency;
+    private int mChannelSpacing;
+
+    /**
+     * The callback used to indicate the user is done filling in the date.
+     */
+    public interface OnFrequencySetListener {
+
+        void onFrequencySet(FrequencyPicker view, int frequency);
+    }
+    /**
+     */
+    public FrequencyPickerDialog(Context context,
+                                                            FmConfig fmConfig,
+                                                            int frequency,
+                                 OnFrequencySetListener callback) {
+        //this(context, android.R.style.Theme_Dialog, fmConfig, frequency, callback);
+       this(context, com.android.internal.R.style.Theme_Dialog_Alert, fmConfig, frequency, callback);
+    }
+
+    /**
+     */
+    public FrequencyPickerDialog(Context context,
+            int theme,
+            FmConfig fmConfig,
+                        int frequency,
+                        OnFrequencySetListener callback) {
+        super(context, theme);
+        mMinFrequency = fmConfig.getLowerLimit();
+        mMaxFrequency = fmConfig.getUpperLimit();
+        mChannelSpacing = 200;
+        if(FmReceiver.FM_CHSPACE_200_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 200;
+        }
+        else if(FmReceiver.FM_CHSPACE_100_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 100;
+        }
+        else if(FmReceiver.FM_CHSPACE_50_KHZ == fmConfig.getChSpacing())
+        {
+                mChannelSpacing = 50;
+        }
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+        mCallBack = callback;
+
+        setButton("Set", this);
+        setButton2("Cancel", (OnClickListener) null);
+        setIcon(R.drawable.alert_dialog_icon);
+
+        LayoutInflater inflater =
+                (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+        View view = inflater.inflate(R.layout.frequency_picker_dialog, null);
+        setView(view);
+        mFrequencyPicker = (FrequencyPicker) view.findViewById(R.id.frequencyPicker);
+        if(mFrequencyPicker != null)
+        {
+                mFrequencyPicker.init(mMinFrequency, mMaxFrequency, mChannelSpacing, frequency, this);
+        }
+        else
+        {
+            Log.e("fmRadio", "Failed to find ID: R.id.frequencyPicker");
+        }
+    }
+
+    public void UpdateFrequency(int frequency)
+    {
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+            mFrequencyPicker.updateFrequency(frequency);
+    }
+
+    public void onClick(DialogInterface dialog, int which) {
+        if (mCallBack != null) {
+            mFrequencyPicker.clearFocus();
+            int frequency = mFrequencyPicker.getFrequency();
+            mCallBack.onFrequencySet(mFrequencyPicker, frequency);
+        }
+    }
+
+    public void onFrequencyChanged(FrequencyPicker view, int frequency) {
+            UpdateFrequency(frequency);
+    }
+
+    @Override
+    public Bundle onSaveInstanceState() {
+        Bundle state = super.onSaveInstanceState();
+        state.putInt(FREQUENCY, mFrequencyPicker.getFrequency());
+        state.putInt(FREQ_MIN, mMinFrequency);
+        state.putInt(FREQ_MAX, mMaxFrequency);
+        state.putInt(FREQ_STEP, mChannelSpacing);
+        return state;
+    }
+
+    @Override
+    public void onRestoreInstanceState(Bundle savedInstanceState) {
+        super.onRestoreInstanceState(savedInstanceState);
+        int frequency = savedInstanceState.getInt(FREQUENCY);
+        mMinFrequency = savedInstanceState.getInt(FREQ_MIN);
+        mMaxFrequency = savedInstanceState.getInt(FREQ_MAX );
+        mChannelSpacing = savedInstanceState.getInt(FREQ_STEP);
+        mFrequencyPicker.init(mMinFrequency, mMaxFrequency, mChannelSpacing, frequency, this);
+        int MHz = frequency/1000;
+        int KHz = (frequency%1000)/100;
+            setTitle("FM - "+MHz+"."+KHz);
+    }
+}
-- 
GitLab