From 8d1811d574e4c11416700648457b995135b8721a Mon Sep 17 00:00:00 2001 From: roynatech2544 Date: Thu, 13 Oct 2022 16:04:00 +0900 Subject: [PATCH] universal7885: parts: Implement SmartCharge settings Using the interface vendor.eureka.hardware.parts.ISmartCharge, this intends to add simple implementation of smart charge. If the battery percent is above set limit percent, it will stop charging, else if the battery percents goes under the set restart percent, it will start charging again. While I'm on this parts, I refactored kotlin srcs using ktlint, formatted xml manually. --- .../CameraLightSensorService.kt | 52 ++++-- .../com/eurekateam/fmradio/FMRadioService.kt | 24 ++- .../eurekateam/fmradio/NativeFMInterface.kt | 15 +- .../com/eurekateam/fmradio/PebbleTextView.kt | 1 - .../fmradio/adapters/ListViewAdapter.kt | 16 +- .../fmradio/adapters/PebbleLayoutAdapter.kt | 10 +- .../eurekateam/fmradio/enums/HeadsetState.kt | 2 +- .../fmradio/fragments/ChannelListFragment.kt | 5 +- .../fmradio/fragments/FavouriteFragment.kt | 5 +- .../fmradio/fragments/MainFragment.kt | 67 ++++--- .../SamsungParts/res/drawable/ic_charge.xml | 21 +++ .../SamsungParts/res/values-de/strings.xml | 79 --------- .../SamsungParts/res/values-es/strings.xml | 77 --------- .../res/values-pt-rBR/strings.xml | 79 --------- .../SamsungParts/res/values-ro/strings.xml | 79 --------- .../SamsungParts/res/values-ru/strings.xml | 77 --------- .../apps/SamsungParts/res/values/strings.xml | 16 ++ .../SamsungParts/res/xml/battery_settings.xml | 68 ++++++-- .../res/xml/clear_speaker_settings.xml | 13 +- .../SamsungParts/res/xml/dolby_settings.xml | 58 +++++-- .../res/xml/flashlight_settings.xml | 20 ++- .../res/xml/preferences_samsung_parts.xml | 130 ++++++++++---- .../res/xml/smartcharge_settings.xml | 55 ++++++ .../SamsungParts/res/xml/swap_settings.xml | 28 ++- .../eurekateam/samsungextras/BootReceiver.kt | 7 +- .../samsungextras/DeviceSettings.kt | 9 + .../samsungextras/battery/BatteryFragment.kt | 7 +- .../samsungextras/dolby/DolbyCore.kt | 4 +- .../samsungextras/dolby/DolbyFragment.kt | 2 +- .../dolby/DolbySearchIndexablesProvider.kt | 5 +- .../flashlight/FlashLightFragment.kt | 4 +- .../samsungextras/fps/FPSInfoService.kt | 3 +- .../samsungextras/interfaces/Battery.kt | 19 +- .../samsungextras/interfaces/BatteryIds.kt | 12 +- .../samsungextras/interfaces/Display.kt | 9 +- .../samsungextras/interfaces/Flashlight.kt | 9 +- .../samsungextras/interfaces/SmartCharge.kt | 37 ++++ .../samsungextras/interfaces/StatsType.kt | 6 + .../samsungextras/interfaces/Swap.kt | 10 +- .../smartcharge/SelectedOption.kt | 6 + .../smartcharge/SmartChargeActivity.kt | 30 ++++ .../smartcharge/SmartChargeFragment.kt | 163 ++++++++++++++++++ .../samsungextras/swap/SwapFragment.kt | 8 +- 43 files changed, 779 insertions(+), 568 deletions(-) create mode 100644 universal7885-common/apps/SamsungParts/res/drawable/ic_charge.xml delete mode 100644 universal7885-common/apps/SamsungParts/res/values-de/strings.xml delete mode 100644 universal7885-common/apps/SamsungParts/res/values-es/strings.xml delete mode 100644 universal7885-common/apps/SamsungParts/res/values-pt-rBR/strings.xml delete mode 100644 universal7885-common/apps/SamsungParts/res/values-ro/strings.xml delete mode 100644 universal7885-common/apps/SamsungParts/res/values-ru/strings.xml create mode 100644 universal7885-common/apps/SamsungParts/res/xml/smartcharge_settings.xml create mode 100644 universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SmartCharge.kt create mode 100644 universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/StatsType.kt create mode 100644 universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SelectedOption.kt create mode 100644 universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeActivity.kt create mode 100644 universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeFragment.kt diff --git a/universal7885-common/apps/CameraLightSensor/src/com/eurekateam/cameralightsensor/CameraLightSensorService.kt b/universal7885-common/apps/CameraLightSensor/src/com/eurekateam/cameralightsensor/CameraLightSensorService.kt index 4c8c4d5..2bca323 100755 --- a/universal7885-common/apps/CameraLightSensor/src/com/eurekateam/cameralightsensor/CameraLightSensorService.kt +++ b/universal7885-common/apps/CameraLightSensor/src/com/eurekateam/cameralightsensor/CameraLightSensorService.kt @@ -37,7 +37,8 @@ class CameraLightSensorService : Service() { private fun pushNotification(): Notification { val nm = mContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager val channel = NotificationChannel( - mContext.packageName, "CameraLightSensor", + mContext.packageName, + "CameraLightSensor", NotificationManager.IMPORTANCE_NONE ) channel.isBlockable = true @@ -45,8 +46,10 @@ class CameraLightSensorService : Service() { val builder = NotificationCompat.Builder(mContext, mContext.packageName) val notificationIntent = Intent(mContext, CameraLightSensorService::class.java) val contentIntent = PendingIntent.getActivity( - mContext, 50, - notificationIntent, PendingIntent.FLAG_IMMUTABLE + mContext, + 50, + notificationIntent, + PendingIntent.FLAG_IMMUTABLE ) builder.setContentIntent(contentIntent) @@ -88,7 +91,10 @@ class CameraLightSensorService : Service() { if (mPoolExecutor == null) { mPoolExecutor = ScheduledThreadPoolExecutor(4) mPoolExecutor!!.scheduleWithFixedDelay( - mScheduler, 0, 2, TimeUnit.SECONDS + mScheduler, + 0, + 2, + TimeUnit.SECONDS ) } } else if (intent.action == Intent.ACTION_SCREEN_OFF) { @@ -119,7 +125,10 @@ class CameraLightSensorService : Service() { if (mPoolExecutor == null) { mPoolExecutor = ScheduledThreadPoolExecutor(4) mPoolExecutor!!.scheduleWithFixedDelay( - mScheduler, 0, 2, TimeUnit.SECONDS + mScheduler, + 0, + 2, + TimeUnit.SECONDS ) } } else { @@ -196,7 +205,7 @@ class CameraLightSensorService : Service() { @SuppressLint("MissingPermission") fun readyCamera() { - if (mIAutoBrightness != null){ + if (mIAutoBrightness != null) { if (!mIAutoBrightness!!.CameraIsFree()) return } try { @@ -213,9 +222,13 @@ class CameraLightSensorService : Service() { mCameraHandlerThread.start() mCameraHandler = Handler(mCameraHandlerThread.looper) mContext = this - bindService(Intent(mContext, IAutoBrightness::class.java).apply { - setClassName("com.eurekateam.camera", "com.eurekateam.camera.CameraAIDL") - }, mConnection, Context.BIND_AUTO_CREATE) + bindService( + Intent(mContext, IAutoBrightness::class.java).apply { + setClassName("com.eurekateam.camera", "com.eurekateam.camera.CameraAIDL") + }, + mConnection, + Context.BIND_AUTO_CREATE + ) @Suppress("SameParameterValue") startForeground(50, pushNotification(), ServiceInfo.FOREGROUND_SERVICE_TYPE_CAMERA) mRegistered = false @@ -248,8 +261,13 @@ class CameraLightSensorService : Service() { fun actOnReadyCameraDevice() { try { cameraDevice.createCaptureSession( - SessionConfiguration(SessionConfiguration.SESSION_REGULAR, - listOf(OutputConfiguration(imageReader.surface)), mExecutor, sessionStateCallback)) + SessionConfiguration( + SessionConfiguration.SESSION_REGULAR, + listOf(OutputConfiguration(imageReader.surface)), + mExecutor, + sessionStateCallback + ) + ) } catch (e: CameraAccessException) { e.printStackTrace() } @@ -301,11 +319,13 @@ class CameraLightSensorService : Service() { if (DEBUG) Log.i(TAG, "AdjustBrightness: Received Brightness Value $brightness") val oldbrightness = Settings.System.getInt(contentResolver, Settings.System.SCREEN_BRIGHTNESS) - if (DEBUG) Log.i( - TAG, - "AdjustBrightness: OldVal = " + oldbrightness + " NewVal = " + - brightness + " Adjusting.." - ) + if (DEBUG) { + Log.i( + TAG, + "AdjustBrightness: OldVal = " + oldbrightness + " NewVal = " + + brightness + " Adjusting.." + ) + } var newbrightness = 2 * brightness - oldbrightness if (newbrightness > 255) { newbrightness = 255 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 992ef98..97b2593 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/FMRadioService.kt @@ -48,16 +48,18 @@ class FMRadioService : Service() { ACTION_BEFORE -> { mPlayState = PlayState.STATE_PLAYING Log.i("mCurrentIndex $mIndex") - if (mIndex > 0) + if (mIndex > 0) { mIndex -= 1 + } mNativeFMInterface.setFMFreq(fd, mTracks[mIndex].toInt()) MainFragment.mFreqCurrent = mTracks[mIndex].toInt() } ACTION_NEXT -> { mPlayState = PlayState.STATE_PLAYING Log.i("mCurrentIndex $mIndex") - if (mIndex < mTracks.size - 1) + if (mIndex < mTracks.size - 1) { mIndex += 1 + } mNativeFMInterface.setFMFreq(fd, mTracks[mIndex].toInt()) MainFragment.mFreqCurrent = mTracks[mIndex].toInt() } @@ -118,7 +120,8 @@ class FMRadioService : Service() { private fun pushNotification(): Notification { val nm = mContext.getSystemService(NOTIFICATION_SERVICE) as NotificationManager val channel = NotificationChannel( - mContext.packageName, "FM Radio Playing", + mContext.packageName, + "FM Radio Playing", NotificationManager.IMPORTANCE_HIGH ) nm.createNotificationChannel(channel) @@ -146,7 +149,8 @@ class FMRadioService : Service() { Icon.createWithResource(this, R.drawable.ic_headphones) } }, - "Output Configuration", output + "Output Configuration", + output ).build() val mPausePlayAction: Notification.Action = Notification.Action.Builder( when (mPlayState) { @@ -157,20 +161,24 @@ class FMRadioService : Service() { Icon.createWithResource(this, R.drawable.ic_play) } }, - "Start/Stop", togglePlay + "Start/Stop", + togglePlay ).build() val mRewindAction: Notification.Action = Notification.Action.Builder( Icon.createWithResource(this, R.drawable.ic_rewind), - "Rewind", rewind + "Rewind", + rewind ).build() val mForwardAction: Notification.Action = Notification.Action.Builder( Icon.createWithResource(this, R.drawable.ic_forward), - "Forward", forward + "Forward", + forward ).build() val mCloseAction: Notification.Action = Notification.Action.Builder( Icon.createWithResource(this, R.drawable.ic_close), - "Close", close + "Close", + close ).build() builder.addAction(mOutputAction) builder.addAction(mRewindAction) diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/NativeFMInterface.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/NativeFMInterface.kt index bb7b4c0..4686f54 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/NativeFMInterface.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/NativeFMInterface.kt @@ -1,15 +1,14 @@ package com.eurekateam.fmradio -import vendor.eureka.hardware.fmradio.IFMDevControl +import android.os.ServiceManager import vendor.eureka.hardware.fmradio.GetType +import vendor.eureka.hardware.fmradio.IFMDevControl import vendor.eureka.hardware.fmradio.SetType -import android.os.ServiceManager - class NativeFMInterface { - private val mDevCtl : IFMDevControl - private val mSysfsCtl : IFMDevControl - private val mDefaultCtl : IFMDevControl + private val mDevCtl: IFMDevControl + private val mSysfsCtl: IFMDevControl + private val mDefaultCtl: IFMDevControl init { mDevCtl = IFMDevControl.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.fmradio.IFMDevControl/default")) @@ -26,7 +25,7 @@ class NativeFMInterface { fun setFMFreq(a: Int, freq: Int) = mDevCtl.setValue(SetType.SET_TYPE_FM_FREQ, freq) fun setFMVolume(a: Int, volume: Int) = mDevCtl.setValue(SetType.SET_TYPE_FM_VOLUME, volume) fun setFMMute(a: Int, mute: Boolean) = mDevCtl.setValue(SetType.SET_TYPE_FM_MUTE, if (mute) 1 else 0) - fun getFmUpper(a: Int) : Int = mDevCtl.getValue(GetType.GET_TYPE_FM_UPPER_LIMIT) + fun getFmUpper(a: Int): Int = mDevCtl.getValue(GetType.GET_TYPE_FM_UPPER_LIMIT) fun getFMLower(a: Int): Int = mDevCtl.getValue(GetType.GET_TYPE_FM_LOWER_LIMIT) fun getRMSSI(a: Int): Int = mDevCtl.getValue(GetType.GET_TYPE_FM_RMSSI) fun getFMTracks(fd: Int): IntArray = mDefaultCtl.getFreqsList() @@ -37,5 +36,5 @@ class NativeFMInterface { fun setFMRSSI(a: Int, rssi: Long) = mDevCtl.setValue(SetType.SET_TYPE_FM_RMSSI, rssi.toInt()) fun closeFMDevice(fd: Int) = mDevCtl.close() fun getSysfsSupport(): Boolean = mSysfsCtl.getValue(GetType.GET_TYPE_FM_SYSFS_IF) == 0 - fun setAudioRoute(speaker: Boolean) = mDevCtl.setValue(SetType.SET_TYPE_FM_SPEAKER_ROUTE, if (speaker) 1 else 0) + fun setAudioRoute(speaker: Boolean) = mDevCtl.setValue(SetType.SET_TYPE_FM_SPEAKER_ROUTE, if (speaker) 1 else 0) } diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/PebbleTextView.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/PebbleTextView.kt index db212d2..2921a38 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/PebbleTextView.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/PebbleTextView.kt @@ -45,7 +45,6 @@ class PebbleTextView(context: Context, attrs: AttributeSet?, defStyleAttr: Int) desiredWidth: Float, text: String ) { - // Pick a reasonably large value for the test. Larger values produce // more accurate results, but may cause problems with hardware // acceleration. But there are workarounds for that, too; refer to diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/ListViewAdapter.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/ListViewAdapter.kt index 544be7d..9ddceb2 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/ListViewAdapter.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/ListViewAdapter.kt @@ -32,7 +32,9 @@ class ListViewAdapter(private val mContext: Context) : BaseAdapter() { override fun getView(id: Int, mConvertView: View?, parent: ViewGroup?): View { val mAnotherConvertView = mConvertView ?: (mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater).inflate( - R.layout.channel_list_items, parent, false + R.layout.channel_list_items, + parent, + false ) mAnotherConvertView.findViewById(R.id.channel_list_title).text = String.format( @@ -44,7 +46,8 @@ class ListViewAdapter(private val mContext: Context) : BaseAdapter() { MainFragment.mFreqCurrent = MainFragment.mTracks[id].toInt() FileUtilities.writeToFile( FileUtilities.mFMFreqFileName, - MainFragment.mFreqCurrent.toString(), mContext + MainFragment.mFreqCurrent.toString(), + mContext ) setCurrentFMChannel(id) } @@ -52,7 +55,8 @@ class ListViewAdapter(private val mContext: Context) : BaseAdapter() { val mStar = ResourcesCompat.getDrawable(mContext.resources, R.drawable.ic_star, mContext.theme) val mStarFilled = ResourcesCompat.getDrawable( mContext.resources, - R.drawable.ic_star_filled, mContext.theme + R.drawable.ic_star_filled, + mContext.theme ) val mIndex = MainFragment.mTracks[id].toInt() if (MainFragment.mFavStats[mIndex] == null) { @@ -77,14 +81,16 @@ class ListViewAdapter(private val mContext: Context) : BaseAdapter() { mItem.value.setBackgroundColor( ResourcesCompat.getColor( mContext.resources, - android.R.color.system_accent2_100, mContext.theme + android.R.color.system_accent2_100, + mContext.theme ) ) } mListofViews[mPosition]?.setBackgroundColor( ResourcesCompat.getColor( mContext.resources, - android.R.color.system_accent3_400, mContext.theme + android.R.color.system_accent3_400, + mContext.theme ) ) } diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/PebbleLayoutAdapter.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/PebbleLayoutAdapter.kt index bb76ce4..646e1a4 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/PebbleLayoutAdapter.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/adapters/PebbleLayoutAdapter.kt @@ -43,12 +43,15 @@ class PebbleLayoutAdapter(private val mContext: Context) : BaseAdapter() { override fun getView(id: Int, mConvertView: View?, parent: ViewGroup?): View { val mAnotherConvertView = mConvertView ?: (mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater).inflate( - R.layout.favorite_channel_items, parent, false + R.layout.favorite_channel_items, + parent, + false ) mAnotherConvertView.findViewById(R.id.pebble_textview).apply { mText = (mFavoriteList[id].toFloat() / 1000).toString() mColor = ResourcesCompat.getColor( - mContext.resources, android.R.color.system_accent1_400, + mContext.resources, + android.R.color.system_accent1_400, mContext.theme ) setOnClickListener { @@ -56,7 +59,8 @@ class PebbleLayoutAdapter(private val mContext: Context) : BaseAdapter() { MainFragment.mFreqCurrent = mFavoriteList[id] FileUtilities.writeToFile( FileUtilities.mFMFreqFileName, - MainFragment.mFreqCurrent.toString(), mContext + MainFragment.mFreqCurrent.toString(), + mContext ) } } diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/enums/HeadsetState.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/enums/HeadsetState.kt index 45954c1..2c2476a 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/enums/HeadsetState.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/enums/HeadsetState.kt @@ -7,5 +7,5 @@ package com.eurekateam.fmradio.enums */ enum class HeadsetState { HEADSET_STATE_CONNECTED, - HEADSET_STATE_DISCONNECTED, + HEADSET_STATE_DISCONNECTED } 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 f2cfa1d..050501d 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 @@ -41,10 +41,11 @@ class ChannelListFragment : Configuration.UI_MODE_NIGHT_UNDEFINED -> mIsLight = true } mRootView.findViewById(R.id.channel_list_layout).apply { - if (mIsLight) + if (mIsLight) { setBackgroundColor(resources.getColor(android.R.color.system_accent1_50, requireContext().theme)) - else + } else { setBackgroundColor(resources.getColor(android.R.color.system_accent1_100, requireContext().theme)) + } } return mRootView } diff --git a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/FavouriteFragment.kt b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/FavouriteFragment.kt index 1f75983..4bcec5c 100644 --- a/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/FavouriteFragment.kt +++ b/universal7885-common/apps/FMRadio/src/com/eurekateam/fmradio/fragments/FavouriteFragment.kt @@ -28,10 +28,11 @@ class FavouriteFragment : Fragment(R.layout.fragment_fav_list) { Configuration.UI_MODE_NIGHT_UNDEFINED -> mIsLight = true } mRootView.findViewById(R.id.fav_list_grid).apply { - if (mIsLight) + if (mIsLight) { setBackgroundColor(resources.getColor(android.R.color.system_accent1_50, requireContext().theme)) - else + } else { setBackgroundColor(resources.getColor(android.R.color.system_accent1_100, requireContext().theme)) + } } return mRootView } 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 954db7a..7ba3282 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 @@ -57,11 +57,13 @@ class MainFragment : super.onCreate(savedInstanceState) mStar = ResourcesCompat.getDrawable( requireContext().resources, - R.drawable.ic_star, requireContext().theme + R.drawable.ic_star, + requireContext().theme )!! mStarFilled = ResourcesCompat.getDrawable( requireContext().resources, - R.drawable.ic_star_filled, requireContext().theme + R.drawable.ic_star_filled, + requireContext().theme )!! mAudioManager = requireContext().getSystemService(Context.AUDIO_SERVICE) as AudioManager mVolumeUp = mRootView.findViewById(R.id.volume_up) @@ -92,27 +94,31 @@ class MainFragment : val mTextViewList = listOf(R.id.app_banner, R.id.fm_freq, R.id.freq_misc) for (mResID in mTextViewList) { mRootView.findViewById(mResID).apply { - if (mIsLight) + if (mIsLight) { setTextColor(resources.getColor(android.R.color.system_accent2_500, requireContext().theme)) - else + } else { setTextColor(resources.getColor(android.R.color.system_accent2_100, requireContext().theme)) + } } } mRootView.findViewById(R.id.main_fragment).apply { - if (mIsLight) + if (mIsLight) { setBackgroundColor(resources.getColor(android.R.color.system_accent1_100, requireContext().theme)) - else + } else { setBackgroundColor(resources.getColor(android.R.color.system_accent1_700, requireContext().theme)) + } } GlobalScope.launch { withContext(Dispatchers.IO) { if (FileUtilities.checkIfExistFile(FileUtilities.mFavouriteChannelFileName, requireContext())) { val mFavData = FileUtilities.readFromFile( - FileUtilities.mFavouriteChannelFileName, requireContext() + FileUtilities.mFavouriteChannelFileName, + requireContext() ) for (mItem in mFavData.split("\\r?\\n".toRegex())) { - if (mItem.isNotBlank()) + if (mItem.isNotBlank()) { mFavStats[mItem.toInt()] = true + } } } var mMute = false @@ -157,8 +163,9 @@ class MainFragment : } } } - if (!mMute) + if (!mMute) { mFMInterface.setFMMute(fd, true) + } mFMInterface.setFMFreq(fd, mFMInterface.getFMLower(fd)) mRefreshTracks() if (mFreqCurrent != -1) { @@ -171,10 +178,12 @@ class MainFragment : withContext(Dispatchers.Main) { mFMFreq.text = mCleanFormat.format(mFreqCurrent.toFloat() / 1000) } - if (!mMute) + if (!mMute) { mFMInterface.setFMMute(fd, false) - if (mFreqCurrent == -1) + } + if (mFreqCurrent == -1) { mFMInterface.setFMThread(fd, true) + } withContext(Dispatchers.Main) { mFavButton.let { if (mFavStats[mFreqCurrent] == null) { @@ -201,6 +210,7 @@ class MainFragment : alpha = .7f if (!mTextView) isEnabled = false } + /** * Extension function for [View], for reverting Grayed out, disabled View * @param mTextView Whether the target view is touchable [FloatingActionButton] or @@ -222,20 +232,25 @@ class MainFragment : private fun mUpdateEnableDisable(mEnabled: Boolean, mView: View = requireView()) { val mTextViewList = listOf(R.id.fm_freq, R.id.freq_misc) val mFloatButtonList = listOf( - R.id.volume_down, R.id.volume_up, - R.id.before_channel, R.id.next_channel, R.id.fm_output_btn + R.id.volume_down, + R.id.volume_up, + R.id.before_channel, + R.id.next_channel, + R.id.fm_output_btn ) for (i in mTextViewList) { - if (mEnabled) + if (mEnabled) { mView.findViewById(i).enable(true) - else + } else { mView.findViewById(i).disable(true) + } } for (i in mFloatButtonList) { - if (mEnabled) + if (mEnabled) { mView.findViewById(i).enable() - else + } else { mView.findViewById(i).disable() + } } } @@ -268,25 +283,29 @@ class MainFragment : } } mVolumeUp.id -> { - if (mVolume < 15) + if (mVolume < 15) { mVolume += 1 + } mFMInterface.setFMVolume(fd, mVolume) mSeekBar.progress = mVolume Toast.makeText(requireContext(), "Volume set to $mVolume", Toast.LENGTH_SHORT).show() FileUtilities.writeToFile( FileUtilities.mFMVolumeFileName, - mVolume.toString(), requireContext() + mVolume.toString(), + requireContext() ) } mVolumeDown.id -> { - if (mVolume > 0) + if (mVolume > 0) { mVolume -= 1 + } mFMInterface.setFMVolume(fd, mVolume) mSeekBar.progress = mVolume Toast.makeText(requireContext(), "Volume set to $mVolume", Toast.LENGTH_SHORT).show() FileUtilities.writeToFile( FileUtilities.mFMVolumeFileName, - mVolume.toString(), requireContext() + mVolume.toString(), + requireContext() ) } mBeforeChannelBtn.id -> { @@ -304,7 +323,8 @@ class MainFragment : mFMInterface.setFMMute(fd, false) FileUtilities.writeToFile( FileUtilities.mFMFreqFileName, - mFreqCurrent.toString(), requireContext() + mFreqCurrent.toString(), + requireContext() ) mFavButton.let { if (mFavStats[mFreqCurrent] == null) { @@ -343,7 +363,8 @@ class MainFragment : mFMInterface.setFMMute(fd, false) FileUtilities.writeToFile( FileUtilities.mFMFreqFileName, - mFreqCurrent.toString(), requireContext() + mFreqCurrent.toString(), + requireContext() ) mFavButton.let { if (mFavStats[mFreqCurrent] == null) { diff --git a/universal7885-common/apps/SamsungParts/res/drawable/ic_charge.xml b/universal7885-common/apps/SamsungParts/res/drawable/ic_charge.xml new file mode 100644 index 0000000..bfe6e00 --- /dev/null +++ b/universal7885-common/apps/SamsungParts/res/drawable/ic_charge.xml @@ -0,0 +1,21 @@ + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/values-de/strings.xml b/universal7885-common/apps/SamsungParts/res/values-de/strings.xml deleted file mode 100644 index 444dea8..0000000 --- a/universal7885-common/apps/SamsungParts/res/values-de/strings.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - SamsungParts - Gerät Spezifische Tweaks - - Display - - FPS Info Overlay - Zeige Overlay mit aktueller Frames per Second. (FPS) - - Sound - - Lautsprecher reinigen - Spiele ein 30 sekündigen Ton ab, um den Lautsprecher zu reinigen. - Starte die Eigenschaft, um den Lautsprecher von Schmutz und Staub zu befreien. Setzte die Lautstärke dabei auf das Maximum.\n\nWenn in dem Lautsprecher zuviel Schmutz und Staub ist, führe dies 2-5 mal aus. - - Dolby Atmos - Aktivere den Dolby Atmos Sound Effekt - Aktiviere Dolby Sound, wie in OneUI (Stock ROM). - Verfügbare Dolby Modi - Wähle ein Modi aus - Auto Profil - Film Profil - Musik Profil - Sprach Profil - Spiel Profil - Kein Profil - Spiel 1 Profil - Spiel 2 Profil - Spezial Sound Profil - - Eureka Kernel Eigenschaften - - Taschenlampe Helligkeit - Einstellen der Taschenlampe Helligkeit - Samsung\'s OneUI hat eine Option zum Einstellen der - Taschenlampe Helligkeit. AOSP hat nicht diese möglichkeit.\n\n - Benutze das feature zum Einstellen der Helligkeit von wenig bis viel. Parameter zwischen 0 bis 10 wählbar. - - Sonstiges - - Batterie - Schnellladen Einstellung - Laden Einstellung - Aktiviere/Deaktiviere den Ladevorgang hier. - Batterie Info und Einstellungen - Aktiviere/Deaktiviere Schnellladen Eigenschaft - Verwalte die Ladevorgang Eigenschaft hier. - Sonstige Batterie Info - Sektion für Geeks - Batterie Max Kapazität (mAh) - Batterie Status - Batterie geladen in (%) - Batterie geladen in (mAh) - Aktuelle Batterie Temperatur - Batterie aktuell (mA) - - An - - Aus - - Werte: %s - Standard - Standard Wert: %s\nLanges drücken um zu setzen. - Standard Werte sind gesetzt. - diff --git a/universal7885-common/apps/SamsungParts/res/values-es/strings.xml b/universal7885-common/apps/SamsungParts/res/values-es/strings.xml deleted file mode 100644 index cc39c68..0000000 --- a/universal7885-common/apps/SamsungParts/res/values-es/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - SamsungParts - Ajustes específicos del dispositivo - - Pantalla - - Superposición FPS - Muestra una superposición con los fotogramas actuales por segundo - - Audio - - Limpiar altavoz - Reproduce un audio de 30 segundos para limpiar el altavoz - Ejecuta esta función una o varias veces si encuentra que su altavoz está ligeramente bloqueado por el polvo. Establezca el volumen multimedia al máximo.\n\nSi el altavoz está muy bloqueado, ejecute esta función de 2 a 5 veces mientras agita el dispositivo con el altavoz hacia abajo. - - Dolby Atmos - Habilita el efecto de audio Dolby Atmos - Habilita el audio Dolby, como en One UI. - Modos Dolby disponibles - Elige uno de estos - Auto Profile - Movie Profile - Music Profile - Voice Profile - Game Profile - No Profile - Game 1 Profile - Game 2 Profile - Special Audio Profile - - Características de Eureka Kernel - - Brillo de la linterna - Ajusta el brillo de la linterna - Samsung OneUI Tiene una opción para ajustar el brillo de la linterna. AOSP no tiene esta función.\n\nUtilice esta función para ajustar el brillo de la linterna bajo o alto. Va de 1 a 10. - - Misc - - Batería - Configuración de Carga rápida - Configuración de carga - Habilite / deshabilite la carga aquí. - Información y configuración de la batería - Habilitar / deshabilitar la función de carga rápida - Administre la función de carga aquí. - Info Variada de la batería - Sección para geeks - Capacidad máxima de la batería (mAh) - Estado de la batería - Batería cargada hasta (%) - Batería cargada hasta (mAh) - Temperatura actual de la batería - Corriente de la batería (mA) - - On - - Off - - Value: %s - Default - Default value: %s\nLong press to set - Default value is set - diff --git a/universal7885-common/apps/SamsungParts/res/values-pt-rBR/strings.xml b/universal7885-common/apps/SamsungParts/res/values-pt-rBR/strings.xml deleted file mode 100644 index 5f657aa..0000000 --- a/universal7885-common/apps/SamsungParts/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - SamsungParts - Tweaks específicos do dispositivo - - Tela - - FPS info overlay - Mostrar overlay com informações atuais sobre o FPS - - Áudio - - Limpar alto falante - Tocar um áudio de 30 segundos para limpar o alto falante - Execute este recurso uma ou duas vezes se o alto-falante está ligeiramente bloqueado por poeira. Defina o volume da mídia para o máximo.\n\nSe o alto-falante estiver muito bloqueado, execute este recurso 2 a 5 vezes enquanto agita seu dispositivo com o alto-falante voltado para baixo. - - Dolby Atmos - Ativar o efeito de áudio Dolby Atmos - Ativar Dolby Atmos, Assim como na OneUI. - Modos do Dolby Disponíveis - Selecione um destes - Perfil automático - Perfil de Filme - Perfil de Música - Perfil de Voz - Perfil de Jogos - Nenhum Perfil - Perfil de Jogos 1 - Perfil de Jogos 2 - Perfil automático especial - - Recursos do Eureka Kernel - - Brilho da lanterna - Ajustar o brilho da lanterna - a OneUI da Samsung tem um recurso para ajustar - o brilho da lanterna. AOSP não tem esse recurso.\n\n - Use isto para deixar o brilho da lanterna baixo ou alto. Varia de 0 a 10. - - Diversos - - Bateria - Configurações do Carregamento rápido - Configurações de Carregamento - Ative/Desative o carregamento aqui. - Informações da bateria e configurações - Ativar/Desativar o recurso de carregamento rápido - Controle o carregamento rápido aqui. - Informações diversas sobre a bateria - Seção para Geeks - Capacidade máxima da bateria (mAh) - Status da bateria - Bateria carregada até (%) - Bateria carregada até (mAh) - Temperatura atual da bateria - Corrente da bateria (mA) - - Ligado - - Desligado - - Valor: %s - Padrão - Valor padrão: %s\nPressione longamente para definir - Valor padrão está definido - diff --git a/universal7885-common/apps/SamsungParts/res/values-ro/strings.xml b/universal7885-common/apps/SamsungParts/res/values-ro/strings.xml deleted file mode 100644 index b1f26b0..0000000 --- a/universal7885-common/apps/SamsungParts/res/values-ro/strings.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - Parti Samsung - Tweak-uri specifice dispozitivului - - Afisaj - - FPS Overlay - Arata un overlay cu cate FPS-uri sunt - - Speaker - - Curata speakerul - Audiaza un sunet de 30 de secunde cu care sa cureti speakerul - Utilizeaza acest feature odata sau de doua ori daca speakerul tau este blocat de praf. Seteaza volumul media la maxim.\n\nDaca speakerul este blocat greu, utilizeaza acest feature de 2-5 ori miscand device-ul cu speakerul in jos. - - Dolby Atmos - Activeaza efectul de Dolby Atmos - Activeaza Dolby Audio, ca in OneUI. - Moduri existente Dolby - Alege una din cele de mai jos - Profil Auto - Profil Film - Profil Muzica - Profil Voce - Profil Jocuri - Profil No - Profil joc 1 - Profil joc 2 - Profil Audio Special - - Eureka Kernel Features - - Luminozitate lanterna - Ajusteaza luminozitatea lanternei - OneUI-ul samsungului are o optiune de ajustare a luminozitatii lanternei - AOSP nu are acest feature.\n\n - Utilizeaza acest feature pentru a ajusta luminozitatea lanternei mare sau mica. Intre 0 si 10. - - Misc - - Baterie - Setari FastCharge - Setari incarcare. - Activeaza/Dezactiveaza incarcarea aici. - Informatii baterie si Setari - Activeaza/Dezactiveaza feature-ul Fastcharge - Manage Charging Feature here. - Battery Misc Info - Section for geeks - Capacitate maxima baterie (mAh) - Status baterie - Bateria se poate incarca pana la (%) - Bateria s-a incarcat pana la (mAh) - Temperatura actuala a bateriei - Curent Baterie (mA) - - Activat - - Dezactivat - - Value: %s - Default - Valoare Default: %s\nTine apasat pentru a face modificari. - Valoarea Default este setata - diff --git a/universal7885-common/apps/SamsungParts/res/values-ru/strings.xml b/universal7885-common/apps/SamsungParts/res/values-ru/strings.xml deleted file mode 100644 index d1bfc75..0000000 --- a/universal7885-common/apps/SamsungParts/res/values-ru/strings.xml +++ /dev/null @@ -1,77 +0,0 @@ - - - Опции Samsung - Дополнительные функции устройства - - Экран - - Мониторинг FPS - Показывать частоту кадров в секунду - - Звук - - Очистка динамика - Воспроизведение 30-секундного звука для очистки динамика - Запустите эту функцию один или два раза, если обнаружите, что ваш динамик слегка загрязнён пылью. Установите максимальную громкость мультимедиа.\n\nЕсли динамик сильно загрязнён, запустите эту опцию 2-5 раз, встряхивая устройство динамиком вниз. - - Dolby Atmos - Включение звуковых эффектов от Dolby Atmos - Включите звук Dolby, как в OneUI. - Доступные режимы Dolby - Выберите один из них - Автомотический - Фильм - Музыка - Голос - Игра - Без профиля - Игровой профиль 1 - Игровой профиль 2 - Свой профиль звука - - Функции Eureka Kernel - - Яркость фонарика - Отрегулируйте яркость фонарика - У OneUI есть возможность регулировать яркость фонарика, но данной опции нет в AOSP.\n\nИспользуйте эту функцию для регулировки низкой или высокой яркости фонарика. Колеблется от 0 до 10. - - Разное - - Батарея - Экспресс зарядка - Зарядка - Включение/Отключение зарядки - Информация о батареи и настройки - Включение/Отключение функции быстрой зарядки - Здесь происходит управление зарядкой. - Прочая информация о батареи - Полезная информация (не для всех) - Максимальная ёмкость АКБ (mAh) - Статус батареи - Заряд батареи (%) - Заряд батареи (mAh) - Текущая температура АКБ - Использовано заряда (mA) - - Включено - - Отключено - - Значение: %s - По-умолчанию - Значение по-умолчанию: %s\nДлительное нажатие для настройки - Установлено значение по-умолчанию - diff --git a/universal7885-common/apps/SamsungParts/res/values/strings.xml b/universal7885-common/apps/SamsungParts/res/values/strings.xml index 3d453b3..42f28e1 100644 --- a/universal7885-common/apps/SamsungParts/res/values/strings.xml +++ b/universal7885-common/apps/SamsungParts/res/values/strings.xml @@ -86,4 +86,20 @@ On Off + + Simple SmartCharge Implementation + Enable The Implementation + Adjust Charge Limit % + Tap here to adjust the settings + Adjust Charge Restart % + Current Limit Charge % Setting + Current Restart Charge % Setting + Stats of limited charging count since last boot + Stats of restarted charging count since last boot + Apply current settings + Move the seekbar to adjust values + From the most left, the value will move by -10 -1 0 1 10 + This is a simple smartcharge implementation based on + battery percentage. If the battery percent is above limit, the charging stops, or if it is + below restart, it charges again. Said to improve battery life in long term diff --git a/universal7885-common/apps/SamsungParts/res/xml/battery_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/battery_settings.xml index 2590523..3e86850 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/battery_settings.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/battery_settings.xml @@ -1,12 +1,60 @@ - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/clear_speaker_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/clear_speaker_settings.xml index c9549fc..65e2457 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/clear_speaker_settings.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/clear_speaker_settings.xml @@ -1,4 +1,13 @@ - - + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/dolby_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/dolby_settings.xml index b8d94ee..4ff737a 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/dolby_settings.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/dolby_settings.xml @@ -1,13 +1,49 @@ - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/flashlight_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/flashlight_settings.xml index 62aa3cd..aca83f8 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/flashlight_settings.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/flashlight_settings.xml @@ -1,5 +1,19 @@ - - - + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/preferences_samsung_parts.xml b/universal7885-common/apps/SamsungParts/res/xml/preferences_samsung_parts.xml index 2438be2..8eb972f 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/preferences_samsung_parts.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/preferences_samsung_parts.xml @@ -1,31 +1,103 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/smartcharge_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/smartcharge_settings.xml new file mode 100644 index 0000000..0a84cf7 --- /dev/null +++ b/universal7885-common/apps/SamsungParts/res/xml/smartcharge_settings.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/res/xml/swap_settings.xml b/universal7885-common/apps/SamsungParts/res/xml/swap_settings.xml index 05c424a..91919f2 100644 --- a/universal7885-common/apps/SamsungParts/res/xml/swap_settings.xml +++ b/universal7885-common/apps/SamsungParts/res/xml/swap_settings.xml @@ -1,7 +1,25 @@ - - - - - + + + + + + + + diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/BootReceiver.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/BootReceiver.kt index 6d10689..ef676bc 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/BootReceiver.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/BootReceiver.kt @@ -42,8 +42,11 @@ class BootReceiver : BroadcastReceiver() { // ZRAM val mSwap = Swap() - if (mSharedPreferences.getBoolean(SwapFragment.PREF_SWAP_ENABLE, false)) - mSwap.setSwapOn(false) else mSwap.setSwapOff() + if (mSharedPreferences.getBoolean(SwapFragment.PREF_SWAP_ENABLE, false)) { + mSwap.setSwapOn(false) + } else { + mSwap.setSwapOff() + } // Display val mDisplay = Display() diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.kt index cbdf7cd..fdfe856 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/DeviceSettings.kt @@ -28,6 +28,7 @@ import com.eurekateam.samsungextras.flashlight.FlashLightActivity import com.eurekateam.samsungextras.fps.FPSInfoService import com.eurekateam.samsungextras.interfaces.Display import com.eurekateam.samsungextras.speaker.ClearSpeakerActivity +import com.eurekateam.samsungextras.smartcharge.SmartChargeActivity class DeviceSettings : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener { @@ -69,6 +70,13 @@ class DeviceSettings : PreferenceFragmentCompat(), Preference.OnPreferenceChange startActivity(intent) true } + val mSmartCharge = findPreference(PREF_SMARTCHARGE)!! + mSmartCharge.onPreferenceClickListener = + Preference.OnPreferenceClickListener { + val intent = Intent(requireActivity().applicationContext, SmartChargeActivity::class.java) + startActivity(intent) + true + } } override fun onPreferenceChange(preference: Preference, value: Any): Boolean { @@ -106,5 +114,6 @@ class DeviceSettings : PreferenceFragmentCompat(), Preference.OnPreferenceChange const val PREF_DOUBLE_TAP = "dt2w_settings" const val PREF_GLOVE_MODE = "glove_mode_settings" const val PREF_BATTERY = "battery_settings" + const val PREF_SMARTCHARGE = "smartcharge_settings" } } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt index 6eda7f9..26a59b4 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/battery/BatteryFragment.kt @@ -64,7 +64,7 @@ class BatteryFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChang return true } else if (preference == mFastChargePref) { mBattery.FastCharge = newValue as Boolean - mFastChargePref.isChecked = mBattery.FastCharge + mFastChargePref.isChecked = mBattery.FastCharge mSharedPreferences.edit().putBoolean(PREF_FASTCHARGE, mBattery.FastCharge).apply() return true } @@ -86,7 +86,10 @@ class BatteryFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChang if (mPoolExecutor == null) { mPoolExecutor = ScheduledThreadPoolExecutor(2) mPoolExecutor!!.scheduleWithFixedDelay( - mScheduler, 0, 2, TimeUnit.SECONDS + mScheduler, + 0, + 2, + TimeUnit.SECONDS ) } } else { diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyCore.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyCore.kt index 8e5c978..c68d3b8 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyCore.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyCore.kt @@ -53,7 +53,9 @@ object DolbyCore { return context.resources.getString( context.resources.getIdentifier( - resourceName, "string", context.packageName + resourceName, + "string", + context.packageName ) ) } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt index d6a55fc..8f9c927 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbyFragment.kt @@ -73,7 +73,7 @@ class DolbyFragment : PreferenceFragmentCompat(), OnMainSwitchChangeListener { "dolby_profile_off" to DolbyCore.PROFILE_OFF, "dolby_profile_game_1" to DolbyCore.PROFILE_GAME_1, "dolby_profile_game_2" to DolbyCore.PROFILE_GAME_2, - "dolby_profile_spacial_audio" to DolbyCore.PROFILE_SPACIAL_AUDIO, + "dolby_profile_spacial_audio" to DolbyCore.PROFILE_SPACIAL_AUDIO ) } } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbySearchIndexablesProvider.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbySearchIndexablesProvider.kt index abb15df..8f6d23f 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbySearchIndexablesProvider.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/dolby/DolbySearchIndexablesProvider.kt @@ -68,7 +68,10 @@ class DolbySearchIndexablesProvider : SearchIndexablesProvider() { private val INDEXABLE_RES = arrayOf( SearchIndexableResource( - 1, R.xml.dolby_settings, DolbyActivity::class.java.name, 0 + 1, + R.xml.dolby_settings, + DolbyActivity::class.java.name, + 0 ) ) } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt index fee0b3e..ca40707 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/flashlight/FlashLightFragment.kt @@ -63,9 +63,7 @@ class FlashLightFragment : PreferenceFragmentCompat(), Preference.OnPreferenceCh mFlash.setEnabled(isChecked) mSharedPreferences.edit().putBoolean(PREF_FLASHLIGHT_ENABLE, isChecked) mFlashLightPref.isEnabled = isChecked - } - - companion object { + } companion object { const val PREF_FLASHLIGHT = "flashlight_pref" const val PREF_FLASHLIGHT_ENABLE = "flashlight_enable" } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt index 7177374..9e199fd 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/fps/FPSInfoService.kt @@ -78,7 +78,8 @@ open class FPSInfoService : Service() { val y = mPaddingTop - mAscent.toInt() val s = fPSInfoString canvas.drawText( - s, (LEFT - mPaddingLeft - mMaxWidth).toFloat(), + s, + (LEFT - mPaddingLeft - mMaxWidth).toFloat(), ( y - 1 ).toFloat(), diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.kt index 768bd22..3f37498 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Battery.kt @@ -15,13 +15,12 @@ */ package com.eurekateam.samsungextras.interfaces -import vendor.eureka.hardware.parts.IBatteryStats -import vendor.eureka.hardware.parts.BatterySys - import android.os.ServiceManager +import vendor.eureka.hardware.parts.BatterySys +import vendor.eureka.hardware.parts.IBatteryStats class Battery { - private val mBattery : IBatteryStats + private val mBattery: IBatteryStats init { mBattery = IBatteryStats.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.IBatteryStats/default")) @@ -44,11 +43,11 @@ class Battery { } fun getGeneralBatteryStats(id: BatteryIds): Int = when (id) { - BatteryIds.BATTERY_CAPACITY_MAX -> mBattery.getBatteryStats(BatterySys.CAPACITY_MAX) / 1000 - BatteryIds.BATTERY_CAPACITY_CURRENT -> mBattery.getBatteryStats(BatterySys.CAPACITY_CURRENT) - BatteryIds.BATTERY_CAPACITY_CURRENT_MAH -> (mBattery.getBatteryStats(BatterySys.CAPACITY_CURRENT).toFloat() * mBattery.getBatteryStats(BatterySys.CAPACITY_MAX).toFloat() / 100000).toInt() - BatteryIds.CHARGING_STATE -> if (mBattery.getBatteryStats(BatterySys.CURRENT) > 0) 1 else 0 - BatteryIds.BATTERY_TEMP -> mBattery.getBatteryStats(BatterySys.TEMP) / 10 - BatteryIds.BATTERY_CURRENT -> mBattery.getBatteryStats(BatterySys.CURRENT) + BatteryIds.BATTERY_CAPACITY_MAX -> mBattery.getBatteryStats(BatterySys.CAPACITY_MAX) / 1000 + BatteryIds.BATTERY_CAPACITY_CURRENT -> mBattery.getBatteryStats(BatterySys.CAPACITY_CURRENT) + BatteryIds.BATTERY_CAPACITY_CURRENT_MAH -> (mBattery.getBatteryStats(BatterySys.CAPACITY_CURRENT).toFloat() * mBattery.getBatteryStats(BatterySys.CAPACITY_MAX).toFloat() / 100000).toInt() + BatteryIds.CHARGING_STATE -> if (mBattery.getBatteryStats(BatterySys.CURRENT) > 0) 1 else 0 + BatteryIds.BATTERY_TEMP -> mBattery.getBatteryStats(BatterySys.TEMP) / 10 + BatteryIds.BATTERY_CURRENT -> mBattery.getBatteryStats(BatterySys.CURRENT) } } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/BatteryIds.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/BatteryIds.kt index 67366cd..ec56132 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/BatteryIds.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/BatteryIds.kt @@ -1,10 +1,10 @@ package com.eurekateam.samsungextras.interfaces enum class BatteryIds { - BATTERY_CAPACITY_MAX, - BATTERY_CAPACITY_CURRENT, - BATTERY_CAPACITY_CURRENT_MAH, - CHARGING_STATE, - BATTERY_TEMP, - BATTERY_CURRENT + BATTERY_CAPACITY_MAX, + BATTERY_CAPACITY_CURRENT, + BATTERY_CAPACITY_CURRENT_MAH, + CHARGING_STATE, + BATTERY_TEMP, + BATTERY_CURRENT } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Display.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Display.kt index 66d951c..44e5b48 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Display.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Display.kt @@ -16,16 +16,15 @@ package com.eurekateam.samsungextras.interfaces -import vendor.eureka.hardware.parts.IDisplayConfigs -import vendor.eureka.hardware.parts.DisplaySys - import android.os.ServiceManager +import vendor.eureka.hardware.parts.DisplaySys +import vendor.eureka.hardware.parts.IDisplayConfigs class Display { - private val mDisplay : IDisplayConfigs + private val mDisplay: IDisplayConfigs init { - mDisplay = IDisplayConfigs.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.IDisplayConfigs/default")) + mDisplay = IDisplayConfigs.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.IDisplayConfigs/default")) } var DT2W: Boolean = false diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.kt index e2b1995..459c9df 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Flashlight.kt @@ -16,19 +16,18 @@ package com.eurekateam.samsungextras.interfaces +import android.os.ServiceManager import vendor.eureka.hardware.parts.IFlashBrightness -import android.os.ServiceManager - class Flashlight { - private val mFlash : IFlashBrightness + private val mFlash: IFlashBrightness init { - mFlash = IFlashBrightness.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.IFlashBrightness/default")) + mFlash = IFlashBrightness.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.IFlashBrightness/default")) } fun setFlash(value: Int) = mFlash.setFlashlightWritable(value) - + fun getFlash(a10: Boolean): Int = mFlash.readFlashlightstats(!a10) fun setEnabled(enable: Boolean) = mFlash.setFlashlightEnable(enable) } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SmartCharge.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SmartCharge.kt new file mode 100644 index 0000000..2a778aa --- /dev/null +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/SmartCharge.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 Eureka Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.eurekateam.samsungextras.interfaces + +import android.os.ServiceManager +import vendor.eureka.hardware.parts.ISmartCharge + +class SmartCharge { + private val mSmartCharge: ISmartCharge + + init { + mSmartCharge = ISmartCharge.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.ISmartCharge/default")) + } + + fun start() = mSmartCharge.start() + fun stop() = mSmartCharge.stop() + fun setConfig(limit: Int, restart: Int) = mSmartCharge.setConfig(limit, restart) + + fun getStats(type: StatsType): Int = when (type) { + StatsType.TYPE_LIMITED_CNT -> mSmartCharge.getLimitCnt() + StatsType.TYPE_RESTARTED_CNT -> mSmartCharge.getRestartCnt() + } +} diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/StatsType.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/StatsType.kt new file mode 100644 index 0000000..86e719d --- /dev/null +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/StatsType.kt @@ -0,0 +1,6 @@ +package com.eurekateam.samsungextras.interfaces + +enum class StatsType { + TYPE_LIMITED_CNT, + TYPE_RESTARTED_CNT +} diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Swap.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Swap.kt index f620c1f..98b9229 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Swap.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/interfaces/Swap.kt @@ -16,22 +16,20 @@ package com.eurekateam.samsungextras.interfaces -import vendor.eureka.hardware.parts.ISwapOnData -import vendor.eureka.hardware.parts.IBoolCallback - import android.os.ServiceManager +import vendor.eureka.hardware.parts.ISwapOnData class Swap { - private val mSwap : ISwapOnData + private val mSwap: ISwapOnData init { - mSwap = ISwapOnData.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.ISwapOnData/default")) + mSwap = ISwapOnData.Stub.asInterface(ServiceManager.waitForDeclaredService("vendor.eureka.hardware.parts.ISwapOnData/default")) } external fun setSwapOn(mCallBackEnabled: Boolean) fun setSwapOff() = mSwap.setSwapOff() fun mkFile(mSize: Int) = mSwap.makeSwapFile(mSize) fun delFile() = mSwap.removeSwapFile() - fun isLocked() : Boolean = mSwap.isMutexLocked() + fun isLocked(): Boolean = mSwap.isMutexLocked() external fun getFreeSpace(): Double external fun getSwapSize(): Long } diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SelectedOption.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SelectedOption.kt new file mode 100644 index 0000000..c4adfe6 --- /dev/null +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SelectedOption.kt @@ -0,0 +1,6 @@ +package com.eurekateam.samsungextras.smartcharge + +enum class SelectedOption { + SELECTED_LIMIT, + SELECTED_RESTART +} diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeActivity.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeActivity.kt new file mode 100644 index 0000000..dafc48d --- /dev/null +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeActivity.kt @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2022 Eureka Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.eurekateam.samsungextras.smartcharge + +import android.os.Bundle +import com.android.settingslib.collapsingtoolbar.CollapsingToolbarBaseActivity +import com.android.settingslib.collapsingtoolbar.R + +class SmartChargeActivity : CollapsingToolbarBaseActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + supportFragmentManager.beginTransaction().replace( + R.id.content_frame, + SmartChargeFragment() + ).commit() + } +} diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeFragment.kt new file mode 100644 index 0000000..891b1c4 --- /dev/null +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/smartcharge/SmartChargeFragment.kt @@ -0,0 +1,163 @@ +/* + * Copyright (C) 2022 Eureka Team + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.eurekateam.samsungextras.smartcharge + +import android.content.SharedPreferences +import android.os.Bundle +import android.view.View +import android.widget.Switch +import androidx.preference.Preference +import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceManager +import androidx.preference.SeekBarPreference +import com.android.settingslib.widget.ButtonPreference +import com.android.settingslib.widget.MainSwitchPreference +import com.android.settingslib.widget.OnMainSwitchChangeListener +import com.android.settingslib.widget.SelectorWithWidgetPreference +import com.eurekateam.samsungextras.R +import com.eurekateam.samsungextras.interfaces.StatsType +import com.eurekateam.samsungextras.interfaces.SmartCharge +import java.util.concurrent.ScheduledThreadPoolExecutor +import java.util.concurrent.TimeUnit + +class SmartChargeFragment : PreferenceFragmentCompat(), OnMainSwitchChangeListener, View.OnClickListener, Preference.OnPreferenceChangeListener, SelectorWithWidgetPreference.OnClickListener { + private lateinit var mLimit: SelectorWithWidgetPreference + private lateinit var mRestart: SelectorWithWidgetPreference + private lateinit var mSharedPreferences: SharedPreferences + private lateinit var mSmartChargeBtn: MainSwitchPreference + private lateinit var mAdjust: SeekBarPreference + private lateinit var mApplyBtn: ButtonPreference + private lateinit var mLimitShow: Preference + private lateinit var mRestartShow: Preference + private lateinit var mLimitStat: Preference + private lateinit var mRestartStat: Preference + private val mPoolExecutor = ScheduledThreadPoolExecutor(3) + private var mSelected = SelectedOption.SELECTED_LIMIT + private val mSmartCharge = SmartCharge() + + override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { + addPreferencesFromResource(R.xml.smartcharge_settings) + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(requireContext()) + + mSmartChargeBtn = findPreference(PREF_SMARTCHARGE_MAIN)!! + mAdjust = findPreference(PREF_ADJUST)!! + mLimit = findPreference(PREF_LIMIT_SELECT)!! + mRestart = findPreference(PREF_RESTART_SELECT)!! + + mLimitShow = findPreference(PREF_LIMIT)!! + mRestartShow = findPreference(PREF_RESTART)!! + mLimitStat = findPreference(PREF_LIMIT_STAT)!! + mRestartStat = findPreference(PREF_RESTART_STAT)!! + mApplyBtn = findPreference(PREF_APPLY)!! + + mApplyBtn.setOnClickListener(this) + mApplyBtn.isEnabled = false + mSmartChargeBtn.addOnSwitchChangeListener(this) + mAdjust.min = 1 + mAdjust.max = 5 + mAdjust.value = 3 + mAdjust.onPreferenceChangeListener = this + mLimit.setOnClickListener(this) + mRestart.setOnClickListener(this) + } + + override fun onRadioButtonClicked(btn: SelectorWithWidgetPreference) { + when (btn) { + mLimit -> { + mSelected = SelectedOption.SELECTED_LIMIT + mRestart.isChecked = false + } + mRestart -> { + mSelected = SelectedOption.SELECTED_RESTART + mLimit.isChecked = false + } + else -> {} + } + } + + private inline fun fromStringToNum(s: String): Int { + return if (s.contains("ten")) 10 else if (s.contains("one")) 1 else 0 + } + + private inline fun fromSelectedToId(): String = when (mSelected) { + SelectedOption.SELECTED_LIMIT -> PREF_LIMIT + SelectedOption.SELECTED_RESTART -> PREF_RESTART + } + + override fun onPreferenceChange(preference: Preference, newValue: Any): Boolean { + if (preference == mAdjust) { + var tmp = mSharedPreferences.getInt(fromSelectedToId(), 50) + val toAdd = when (newValue as Int) { + 0 -> -10 + 1 -> -1 + 3 -> 1 + 4 -> 10 + else -> 0 + } + if (tmp + toAdd > 99) tmp = 99 else if (tmp + toAdd < 1) tmp = 1 else tmp += toAdd + mSharedPreferences.edit().putInt(fromSelectedToId(), tmp).apply() + when (mSelected) { + SelectedOption.SELECTED_LIMIT -> mLimitShow + SelectedOption.SELECTED_RESTART -> mRestartShow + }.summary = "$tmp %" + mSmartChargeBtn.isEnabled = false + mApplyBtn.isEnabled = true + mAdjust.value = 3 + return true + } + return false + } + + override fun onClick(v: View) { + if (v == mApplyBtn) { + val limit = mSharedPreferences.getInt(PREF_LIMIT, 20) + val restart = mSharedPreferences.getInt(PREF_RESTART, 80) + if (limit < restart) { + mSmartCharge.setConfig(limit, restart) + mSmartChargeBtn.isEnabled = true + mApplyBtn.isEnabled = false + } + } + } + + private val mScheduler = Runnable { + requireActivity().runOnUiThread { + mLimitStat.summary = "${mSmartCharge.getStats(StatsType.TYPE_LIMITED_CNT)} times" + mRestartStat.summary = "${mSmartCharge.getStats(StatsType.TYPE_RESTARTED_CNT)} times" + } + } + + override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) { + if (isChecked) { + mSmartCharge.start() + mPoolExecutor.scheduleWithFixedDelay(mScheduler, 0, 5, TimeUnit.MINUTES) + } else { + mSmartCharge.stop() + mPoolExecutor.shutdown() + } + } + companion object { + const val PREF_SMARTCHARGE_MAIN = "smartcharge" + const val PREF_LIMIT_SELECT = "choose_limit" + const val PREF_RESTART_SELECT = "choose_restart" + const val PREF_LIMIT = "limit" + const val PREF_RESTART = "restart" + const val PREF_LIMIT_STAT = "limit_stat" + const val PREF_RESTART_STAT = "restart_stat" + const val PREF_APPLY = "apply" + const val PREF_ADJUST = "adjust" + } +} diff --git a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/swap/SwapFragment.kt b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/swap/SwapFragment.kt index c682e15..c10d437 100644 --- a/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/swap/SwapFragment.kt +++ b/universal7885-common/apps/SamsungParts/src/com/eurekateam/samsungextras/swap/SwapFragment.kt @@ -28,10 +28,8 @@ import com.android.settingslib.widget.MainSwitchPreference import com.android.settingslib.widget.OnMainSwitchChangeListener import com.eurekateam.samsungextras.R import com.eurekateam.samsungextras.interfaces.Swap -import java.lang.Thread import java.util.concurrent.ScheduledThreadPoolExecutor import java.util.concurrent.TimeUnit -import vendor.eureka.hardware.parts.IBoolCallback class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeListener, OnMainSwitchChangeListener { private lateinit var mSwapSizePref: SeekBarPreference @@ -79,7 +77,7 @@ class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeLi } // This is called from native - DO NOT CHANGE SIGNATURE - fun reactToCallbackNative(res : Boolean) { + fun reactToCallbackNative(res: Boolean) { if (!res) { mSwap.delFile() mSharedPreferences.edit().putBoolean(PREF_SWAP_ENABLE, false).apply() @@ -101,8 +99,8 @@ class SwapFragment : PreferenceFragmentCompat(), Preference.OnPreferenceChangeLi mSwapEnable.isEnabled = true mSharedPreferences.edit().putBoolean(PREF_SWAP_ENABLE, isChecked).apply() mSwapSizePref.isEnabled = !isChecked - mFreeSpace.summary = "${mSwap.getFreeSpace()} GB" - mSwapFileSize.summary = "${mSwap.getSwapSize()} MB" + mFreeSpace.summary = "${mSwap.getFreeSpace()} GB" + mSwapFileSize.summary = "${mSwap.getSwapSize()} MB" } companion object {