summaryrefslogtreecommitdiffstats
path: root/fmapp2/src
diff options
context:
space:
mode:
authorHamster Tian <haotia@gmail.com>2015-05-16 22:08:47 +0800
committerMatt Wagantall <mwagantall@cyngn.com>2016-02-19 14:07:45 -0800
commit0a446a8c1a1d9b0a1448020e937ed255b98ebfab (patch)
tree45a3d5112bb5fb35d71f8cc0152e51f689117a7a /fmapp2/src
parent31d626072e8bd49462a116367add70dea661b0a2 (diff)
downloadandroid_hardware_qcom_fm-0a446a8c1a1d9b0a1448020e937ed255b98ebfab.tar.gz
android_hardware_qcom_fm-0a446a8c1a1d9b0a1448020e937ed255b98ebfab.tar.bz2
android_hardware_qcom_fm-0a446a8c1a1d9b0a1448020e937ed255b98ebfab.zip
FM: fix mRadioTextScroller usage in transmitter activity
Reproduction of NPE: 1. Add "ro.fm.transmitter=true" to build.prop 2. Reboot the device 3. FM Transmitter app appears 4. Remove headphones (if plugged in) and open the app Reason: mRadioTextScroller is not initialized when activity is being created. When transmission starts (which will happen automatically on app start if antenna is available) enableRadioOnOffUI will be called, and calls to mRadioTextScroller in enableRadioOnOffUI will fail. Fix: Add initialization for mRadioTextScroller. Also added some mRadioTextScroller.mOriginalString operations just like FMRadio.java Change-Id: I81d0c924801446258e3a62f479f0f9b31b7f15a8
Diffstat (limited to 'fmapp2/src')
-rw-r--r--fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java b/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
index a26339e..b2f22b8 100644
--- a/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
+++ b/fmapp2/src/com/caf/fmradio/FMTransmitterActivity.java
@@ -231,6 +231,10 @@ public class FMTransmitterActivity extends Activity {
}
mRadioTextTV = (TextView)findViewById(R.id.radio_text_tv);
+ if ((mRadioTextScroller == null) && (mRadioTextTV != null)) {
+ mRadioTextScroller = new ScrollerText(mRadioTextTV);
+ }
+
enableRadioOnOffUI(false);
if(false == bindToService(this, osc)) {
@@ -270,7 +274,9 @@ public class FMTransmitterActivity extends Activity {
@Override
protected void onPause() {
super.onPause();
- mRadioTextScroller.stopScroll();
+ if (mRadioTextScroller != null) {
+ mRadioTextScroller.stopScroll();
+ }
SavePreferences();
}
@@ -944,6 +950,8 @@ public class FMTransmitterActivity extends Activity {
if(mRadioTextTV != null) {
mRadioTextTV.setVisibility(View.VISIBLE);
mRadioTextTV.setText(getString(R.string.msg_headsetpluggedin));
+ mRadioTextScroller.mOriginalString =
+ getString(R.string.msg_headsetpluggedin);
}
if(mOnOffButton != null) {
mOnOffButton.setEnabled(false);
@@ -953,6 +961,7 @@ public class FMTransmitterActivity extends Activity {
if(mRadioTextTV != null) {
mRadioTextTV.setVisibility(View.VISIBLE);
mRadioTextTV.setText(getString(R.string.fm_call));
+ mRadioTextScroller.mOriginalString = getString(R.string.fm_call);
}
if(mOnOffButton != null) {
mOnOffButton.setEnabled(false);
@@ -960,6 +969,7 @@ public class FMTransmitterActivity extends Activity {
}else {
if(mRadioTextTV != null) {
mRadioTextTV.setText("");
+ mRadioTextScroller.mOriginalString = "";
}
if(mOnOffButton != null) {
mOnOffButton.setEnabled(true);
@@ -970,6 +980,7 @@ public class FMTransmitterActivity extends Activity {
if(mRadioTextTV != null) {
mRadioTextTV.setVisibility(View.VISIBLE);
mRadioTextTV.setText(getString(R.string.fm_off));
+ mRadioTextScroller.mOriginalString = getString(R.string.fm_off);
}
if(mOnOffButton != null) {
mOnOffButton.setEnabled(true);
@@ -1034,6 +1045,9 @@ public class FMTransmitterActivity extends Activity {
/ mPrefs.getFrequencyStepSize()));
}
mRadioTextTV.setText("");
+ mRadioTextScroller.mOriginalString = "";
+ mRadioTextScroller.mStringlength = 0;
+ mRadioTextScroller.mIteration = 0;
setupPresetLayout();
}
@@ -1144,6 +1158,10 @@ public class FMTransmitterActivity extends Activity {
private void resetFMStationInfoUI() {
mRadioTextTV.setText("");
+ if (mRadioTextScroller != null) {
+ mRadioTextScroller.stopScroll();
+ }
+ mRadioTextScroller.mOriginalString = "";
mRadioTextScroller.stopScroll();
mUpdatePickerValue = true;
updateStationInfoToUI();
@@ -1216,14 +1234,19 @@ public class FMTransmitterActivity extends Activity {
Log.d(LOGTAG, "mUpdateRadioText: Updatable string: ["
+ str + "]");
mRadioTextTV.setText(str);
+ mRadioTextScroller.mOriginalString = str;
}else if (TextUtils.isEmpty(str)) {
mRadioTextTV.setText("");
+ mRadioTextScroller.mOriginalString = "";
}else {
Log.d(LOGTAG, "RDS has non printable stuff");
mRadioTextTV.setText("");
+ mRadioTextScroller.mOriginalString = "";
}
- mRadioTextScroller.startScroll();
+ if (mRadioTextScroller != null) {
+ mRadioTextScroller.startScroll();
+ }
String szRTStr = getString(R.string.transmit_msg_string);
mPSData = mService.getPSData();
if(null != mPSData ) {