diff options
author | Hamster Tian <haotia@gmail.com> | 2015-05-16 22:08:47 +0800 |
---|---|---|
committer | Matt Wagantall <mwagantall@cyngn.com> | 2016-02-19 14:07:45 -0800 |
commit | 0a446a8c1a1d9b0a1448020e937ed255b98ebfab (patch) | |
tree | 45a3d5112bb5fb35d71f8cc0152e51f689117a7a /fmapp2/src | |
parent | 31d626072e8bd49462a116367add70dea661b0a2 (diff) | |
download | android_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.java | 27 |
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 ) { |