summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHamster Tian <haotia@gmail.com>2015-05-16 22:08:47 +0800
committerMichael Bestas <mikeioannina@gmail.com>2017-01-04 20:05:24 +0200
commitfcd109aaa4cd3fc4478b7c006866b6598f56a780 (patch)
tree45f5a661fe7ae3452238f89faf49828fe8285e57
parentc24634b30de3afd636193a4218aa9b282839014d (diff)
downloadandroid_hardware_qcom_fm-fcd109aaa4cd3fc4478b7c006866b6598f56a780.tar.gz
android_hardware_qcom_fm-fcd109aaa4cd3fc4478b7c006866b6598f56a780.tar.bz2
android_hardware_qcom_fm-fcd109aaa4cd3fc4478b7c006866b6598f56a780.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
-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 ) {