From 8a7743ac673df17cb46335d0585709a3e45520b6 Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Mon, 24 Oct 2022 21:17:20 +0900 Subject: [PATCH] universal7885: FMradio: Crash fixups - Init favlist - Search freqs only once, with a static variable - Update the UI of disabled view, forgot this --- .../fmradio/fragments/MainFragment.kt | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/MainFragment.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/MainFragment.kt index b051159..a31ca06 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/MainFragment.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/MainFragment.kt @@ -49,7 +49,7 @@ class MainFragment : private lateinit var mAudioManager: AudioManager private lateinit var mStar: Drawable private lateinit var mStarFilled: Drawable - private lateinit var mFavList: List + private var mFavList : List = emptyList() private lateinit var mSharedPref: SharedPreferences override fun onCreateView( @@ -121,24 +121,28 @@ class MainFragment : val mRestoreFreq = mSharedPref.getInt("freq", mFMInterface.mDevCtl.getValue(GetType.GET_TYPE_FM_LOWER_LIMIT)) mFMInterface.mDefaultCtl.setValue(SetType.SET_TYPE_FM_FREQ, mRestoreFreq) mFMFreq.text = mCleanFormat.format(mRestoreFreq.toFloat() / 1000) - mFMInterface.mDevCtl.setValue(SetType.SET_TYPE_FM_THREAD, 1) - Toast.makeText(requireContext(), "Updating freqs list... Please wait", Toast.LENGTH_LONG).show() - requireActivity().window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE) - mFMInterface.mDefaultCtl.setValue(SetType.SET_TYPE_FM_SEARCH_START, 0) - WaitUntil.setTimer( - requireActivity(), - object : IWaitUntil { - override fun cond(): Boolean = mFMInterface.mDefaultCtl.getValue(GetType.GET_TYPE_FM_MUTEX_LOCKED) == 0 - override fun todo() { - val mList = mFMInterface.mDefaultCtl.getFreqsList() - for (i in mList) { - if (mSharedPref.getBoolean("fav_$i", false)) mFavList += i - } - requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE) - Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show() - } - } - ) + if (!mFreqSearchDone) { + mFMInterface.mDevCtl.setValue(SetType.SET_TYPE_FM_THREAD, 1) + Toast.makeText(requireContext(), "Updating freqs list... Please wait", Toast.LENGTH_LONG).show() + requireActivity().window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE) + mFMInterface.mDefaultCtl.setValue(SetType.SET_TYPE_FM_SEARCH_START, 0) + WaitUntil.setTimer( + requireActivity(), + object : IWaitUntil { + override fun cond(): Boolean = mFMInterface.mDefaultCtl.getValue(GetType.GET_TYPE_FM_MUTEX_LOCKED) == 0 + override fun todo() { + val mList = mFMInterface.mDefaultCtl.getFreqsList() + for (i in mList) { + if (mSharedPref.getBoolean("fav_$i", false)) mFavList += i + } + if (!mFMPower) mUpdateEnableDisable(false) + requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE) + Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show() + } + } + ) + mFreqSearchDone = true + } // Update track list and fav button return mRootView } @@ -288,6 +292,7 @@ class MainFragment : companion object { var mFMPower = false + var mFreqSearchDone = false var mHeadSetPlugged: HeadsetState = HeadsetState.HEADSET_STATE_DISCONNECTED }