diff --git a/universal7885-common/apps/FMRadio/res/values/strings.xml b/universal7885-common/apps/FMRadio/res/values/strings.xml
index f04a807..7725abf 100644
--- a/universal7885-common/apps/FMRadio/res/values/strings.xml
+++ b/universal7885-common/apps/FMRadio/res/values/strings.xml
@@ -40,4 +40,5 @@
Retry
Exit App
FM %s Mhz
+ Updating channel freqs list
diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt
index 37859f4..1d41d5a 100644
--- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt
+++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt
@@ -64,12 +64,12 @@ class FMRadioService : Service() {
}
ACTION_START -> {
mMediaSession = MediaSession(this, "FMRadio")
- mContext = this
setPlaybackState()
mMediaSession.isActive = true
}
}
}
+ mContext = this
sendMetaData("FM ${mNativeFMInterface.mDefaultCtl.getValue(GetType.GET_TYPE_FM_FREQ).toFloat() / 1000} Mhz")
startForeground(51, pushNotification())
Log.i("--- FMRadio Background (OUT) ---")
diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/MainActivity.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/MainActivity.kt
index cb3c53e..184c4c1 100644
--- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/MainActivity.kt
+++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/MainActivity.kt
@@ -25,6 +25,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.color.DynamicColors
import com.google.android.material.textview.MaterialTextView
import vendor.eureka.hardware.fmradio.SetType
+import vendor.eureka.hardware.fmradio.GetType
class MainActivity : AppCompatActivity() {
private lateinit var mIntent: Intent
@@ -96,6 +97,7 @@ class MainActivity : AppCompatActivity() {
}, 500)
}
.show()
+ return
}
val receiverFilter = IntentFilter(Intent.ACTION_HEADSET_PLUG)
registerReceiver(mWiredHeadsetReceiver, receiverFilter)
@@ -167,16 +169,23 @@ class MainActivity : AppCompatActivity() {
override fun onPause() {
super.onPause()
Log.i("Application onPause")
- mIntent.action = ACTION_START
- startService(mIntent)
+ if (mFMInterface.mDefaultCtl.getValue(GetType.GET_TYPE_FM_MUTEX_LOCKED) == 0) {
+ mIntent.action = ACTION_START
+ startService(mIntent)
+ mStartedService = true
+ }
}
override fun onRestart() {
super.onRestart()
- stopService(mIntent)
+ if (mStartedService) {
+ stopService(mIntent)
+ mStartedService = false
+ }
}
companion object {
private const val ACTION_START = "com.eurekateam.fmradio.START"
+ private var mStartedService = false
}
}
diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/ChannelListFragment.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/ChannelListFragment.kt
index 36240fe..e6ab219 100644
--- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/ChannelListFragment.kt
+++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/ChannelListFragment.kt
@@ -1,5 +1,6 @@
package com.eurekateam.fmradio.fragments
+import android.app.ProgressDialog
import android.content.res.Configuration
import android.os.Bundle
import android.view.LayoutInflater
@@ -56,19 +57,23 @@ class ChannelListFragment :
override fun onClick(v: View?) {
mNativeIF.mDefaultCtl.setValue(SetType.SET_TYPE_FM_SEARCH_START, 0)
- requireActivity().window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)
+ val loading = ProgressDialog(requireContext())
+ loading.setMessage(requireContext().resources.getString(R.string.update_freq))
+ loading.setCancelable(false)
+ loading.setInverseBackgroundForced(false)
+ loading.show()
WaitUntil.setTimer(
requireActivity(),
object : IWaitUntil {
override fun cond(): Boolean = mNativeIF.mDefaultCtl.getValue(GetType.GET_TYPE_FM_MUTEX_LOCKED) == 0
override fun todo() {
if (isAdded()) {
+ loading.hide()
(requireActivity() as MainActivity).getMySupportFragmentManager().apply {
beginTransaction().remove(this@ChannelListFragment).commit()
executePendingTransactions()
- beginTransaction().add(R.id.container_view, this@ChannelListFragment).commit()
+ beginTransaction().add(R.id.container_view, this@ChannelListFragment).commit()
}
- requireActivity().window.clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE)
}
}
}
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 0b69c4b..5a21922 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
@@ -1,5 +1,6 @@
package com.eurekateam.fmradio.fragments
+import android.app.ProgressDialog
import android.content.Context
import android.content.SharedPreferences
import android.content.res.Configuration
@@ -123,9 +124,12 @@ class MainFragment :
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)
+ val loading = ProgressDialog(requireContext())
+ loading.setMessage(requireContext().resources.getString(R.string.update_freq))
+ loading.setCancelable(false)
+ loading.setInverseBackgroundForced(false)
+ loading.show()
+ mFMInterface.mDefaultCtl.setValue(SetType.SET_TYPE_FM_SEARCH_START, 0)
WaitUntil.setTimer(
requireActivity(),
object : IWaitUntil {
@@ -136,8 +140,7 @@ class MainFragment :
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()
+ loading.hide()
}
}
)
diff --git a/universal7885-common/sepolicy/private/hal_fmradio_default.te b/universal7885-common/sepolicy/private/hal_fmradio_default.te
index b8cba6d..cd8ef75 100644
--- a/universal7885-common/sepolicy/private/hal_fmradio_default.te
+++ b/universal7885-common/sepolicy/private/hal_fmradio_default.te
@@ -13,5 +13,7 @@ allow hal_fmradio_default sysfs_virtual:dir search;
allow hal_fmradio_default fm_radio_device:chr_file { read write open ioctl };
allow hal_fmradio_default hal_audio_route_service:service_manager find;
+allow hal_fmradio_default self:capability kill;
+allow hal_fmradio_default system_app:process signull;
binder_call(hal_fmradio_default, hal_audio_route_default)