diff options
Diffstat (limited to 'app/src/main/java')
| -rw-r--r-- | app/src/main/java/com/draco/buoy/recyclers/BatterySaverProfileRecyclerAdapter.kt | 80 | ||||
| -rw-r--r-- | app/src/main/java/com/draco/buoy/views/MainActivity.kt | 11 |
2 files changed, 91 insertions, 0 deletions
diff --git a/app/src/main/java/com/draco/buoy/recyclers/BatterySaverProfileRecyclerAdapter.kt b/app/src/main/java/com/draco/buoy/recyclers/BatterySaverProfileRecyclerAdapter.kt new file mode 100644 index 0000000..3e4669b --- /dev/null +++ b/app/src/main/java/com/draco/buoy/recyclers/BatterySaverProfileRecyclerAdapter.kt @@ -0,0 +1,80 @@ +package com.draco.buoy.recyclers + +import android.content.ContentResolver +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.draco.buoy.R +import com.draco.buoy.repositories.BatterySaverConstantsConfigProfiles +import com.draco.buoy.utils.BatterySaverManager + +class BatterySaverProfileRecyclerAdapter( + contentResolver: ContentResolver +) : RecyclerView.Adapter<BatterySaverProfileRecyclerAdapter.ViewHolder>() { + private val batterySaverProfiles = arrayOf( + BatterySaverConstantsConfigProfiles.DEFAULT, + BatterySaverConstantsConfigProfiles.LIGHT, + BatterySaverConstantsConfigProfiles.MODERATE, + BatterySaverConstantsConfigProfiles.HIGH, + BatterySaverConstantsConfigProfiles.EXTREME, + ) + + private val batterySaverManager = BatterySaverManager(contentResolver) + + class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView) { + val title = itemView.findViewById<TextView>(R.id.title) + val description = itemView.findViewById<TextView>(R.id.description) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(parent.context).inflate(R.layout.recycler_item_profile, parent, false) + return ViewHolder(view) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + val profile = batterySaverProfiles[position] + + val isDefaultProfile = (profile == BatterySaverConstantsConfigProfiles.DEFAULT) + + when (profile) { + BatterySaverConstantsConfigProfiles.DEFAULT -> { + holder.title.setText(R.string.profile_title_default) + holder.description.setText(R.string.profile_description_default) + } + + BatterySaverConstantsConfigProfiles.LIGHT -> { + holder.title.setText(R.string.profile_title_light) + holder.description.setText(R.string.profile_description_light) + } + + BatterySaverConstantsConfigProfiles.MODERATE -> { + holder.title.setText(R.string.profile_title_moderate) + holder.description.setText(R.string.profile_description_moderate) + } + + BatterySaverConstantsConfigProfiles.HIGH -> { + holder.title.setText(R.string.profile_title_high) + holder.description.setText(R.string.profile_description_high) + } + + BatterySaverConstantsConfigProfiles.EXTREME -> { + holder.title.setText(R.string.profile_title_extreme) + holder.description.setText(R.string.profile_description_extreme) + } + } + + holder.itemView.setOnClickListener { + /* Apply profile */ + batterySaverManager.setConstantsConfig(profile) + /* Enable low power mode */ + batterySaverManager.setLowPower(true) + /* If this is not the default config, set sticky and don't auto disable */ + batterySaverManager.setLowPowerSticky(!isDefaultProfile) + batterySaverManager.setLowPowerStickyAutoDisableEnabled(isDefaultProfile) + } + } + + override fun getItemCount(): Int = batterySaverProfiles.size +}
\ No newline at end of file diff --git a/app/src/main/java/com/draco/buoy/views/MainActivity.kt b/app/src/main/java/com/draco/buoy/views/MainActivity.kt index 224d851..b8f1fc2 100644 --- a/app/src/main/java/com/draco/buoy/views/MainActivity.kt +++ b/app/src/main/java/com/draco/buoy/views/MainActivity.kt @@ -4,17 +4,28 @@ import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import androidx.activity.viewModels +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import com.draco.buoy.R +import com.draco.buoy.recyclers.BatterySaverProfileRecyclerAdapter import com.draco.buoy.utils.PermissionUtils import com.draco.buoy.viewmodels.MainActivityViewModel class MainActivity : AppCompatActivity() { private val viewModel: MainActivityViewModel by viewModels() + private lateinit var recycler: RecyclerView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + recycler = findViewById(R.id.recycler_profile) + + recycler.apply { + adapter = BatterySaverProfileRecyclerAdapter(contentResolver) + layoutManager = LinearLayoutManager(this@MainActivity) + } + if (!PermissionUtils.isPermissionsGranted(this, android.Manifest.permission.WRITE_SECURE_SETTINGS)) goToPermissionActivity() } |
