summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/draco/buoy/receivers/ExternalProfileReceiver.kt
blob: c93e563ca6ce07d2537f5d860253daea69e7b9a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.draco.buoy.receivers

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.draco.buoy.R
import com.draco.buoy.repositories.constants.ExternalProfileReceiverIntentConstants
import com.draco.buoy.repositories.profiles.BatterySaverConstantsConfigProfiles
import com.draco.buoy.utils.BatterySaverManager

class ExternalProfileReceiver : BroadcastReceiver() {
    private lateinit var batterySaverManager: BatterySaverManager

    override fun onReceive(context: Context, intent: Intent) {
        batterySaverManager = BatterySaverManager(context.contentResolver)

        val profileName = intent.getStringExtra(ExternalProfileReceiverIntentConstants.KEY_PROFILE_NAME)
        val constants = intent.getStringExtra(ExternalProfileReceiverIntentConstants.KEY_CONSTANTS)

        profileName?.let {
            when (it) {
                context.getString(R.string.pref_profile_key_light) -> batterySaverManager.apply(BatterySaverConstantsConfigProfiles.LIGHT)
                context.getString(R.string.pref_profile_key_moderate) -> batterySaverManager.apply(BatterySaverConstantsConfigProfiles.MODERATE)
                context.getString(R.string.pref_profile_key_high) -> batterySaverManager.apply(BatterySaverConstantsConfigProfiles.HIGH)
                context.getString(R.string.pref_profile_key_extreme) -> batterySaverManager.apply(BatterySaverConstantsConfigProfiles.EXTREME)
            }
        }

        constants?.let {
            batterySaverManager.apply(it)
        }

        resultData = batterySaverManager.getConstantsString()
    }
}