Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ import com.sameerasw.essentials.ui.composables.configs.LiveWallpaperSettingsUI
import com.sameerasw.essentials.ui.composables.configs.LocationReachedSettingsUI
import com.sameerasw.essentials.ui.composables.configs.LockScreenClockSettingsUI
import com.sameerasw.essentials.ui.composables.configs.MapsPowerSavingSettingsUI
import com.sameerasw.essentials.ui.composables.configs.NetworksSettingsUI
import com.sameerasw.essentials.ui.composables.configs.NotificationLightingSettingsUI
import com.sameerasw.essentials.ui.composables.configs.NotificationSnoozingSettingsUI
import com.sameerasw.essentials.ui.composables.configs.OtherCustomizationsSettingsUI
Expand All @@ -83,6 +84,7 @@ import com.sameerasw.essentials.ui.composables.configs.ScreenOffWidgetSettingsUI
import com.sameerasw.essentials.ui.composables.configs.ShutUpSettingsUI
import com.sameerasw.essentials.ui.composables.configs.SnoozeNotificationsSettingsUI
import com.sameerasw.essentials.ui.composables.configs.SoundModeTileSettingsUI
import com.sameerasw.essentials.ui.composables.configs.StandbyAppsSettingsUI
import com.sameerasw.essentials.ui.composables.configs.StatusBarIconSettingsUI
import com.sameerasw.essentials.ui.composables.configs.TextAnimationsSettingsUI
import com.sameerasw.essentials.ui.composables.configs.WatchControlsSettingsUI
Expand Down Expand Up @@ -337,6 +339,7 @@ class FeatureSettingsActivity : AppCompatActivity() {

"Shut-Up!" -> !isWriteSecureSettingsEnabled || !viewModel.isUsageStatsPermissionGranted.value
"Power and Battery" -> !isWriteSecureSettingsEnabled
"Networks" -> !isWriteSecureSettingsEnabled && !com.sameerasw.essentials.utils.ShellUtils.hasPermission(context)
else -> false
}
if (hasMissingPermissions) {
Expand Down Expand Up @@ -513,7 +516,7 @@ class FeatureSettingsActivity : AppCompatActivity() {
context,
viewModel.isEnableUnsupportedFeatures.value
).filter { it.parentFeatureId == featureId }
if (children.isNotEmpty()) {
if (children.isNotEmpty() && featureId != "Networks") {
RoundedCardContainer(
modifier = Modifier
.padding(horizontal = 16.dp)
Expand Down Expand Up @@ -560,6 +563,7 @@ class FeatureSettingsActivity : AppCompatActivity() {

"Shut-Up!" -> !isWriteSecureSettingsEnabled || !viewModel.isUsageStatsPermissionGranted.value
"Power and Battery" -> !isWriteSecureSettingsEnabled
"Networks" -> !isWriteSecureSettingsEnabled && !com.sameerasw.essentials.utils.ShellUtils.hasPermission(context)
"Disable safe volume warning" -> !isWriteSecureSettingsEnabled
"Notification snoozing" -> !isWriteSecureSettingsEnabled
else -> false
Expand Down Expand Up @@ -896,6 +900,21 @@ class FeatureSettingsActivity : AppCompatActivity() {
highlightSetting = highlightSetting
)
}

"Networks" -> {
NetworksSettingsUI(
viewModel = viewModel,
modifier = Modifier.padding(top = 16.dp),
highlightSetting = highlightSetting
)
}

"Standby apps" -> {
StandbyAppsSettingsUI(
viewModel = viewModel,
modifier = Modifier.padding(top = 16.dp)
)
}
}

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,13 @@ class SettingsRepository(private val context: Context) {
const val KEY_SHIZUKU_AUTH_TOKEN = "shizuku_auth_token"
const val KEY_EDGE_LIGHTING_SWEEP_SELECTED_SHAPES = "edge_lighting_sweep_selected_shapes"
const val KEY_DISABLE_ROTATION_SUGGESTION = "disable_rotation_suggestion"
const val KEY_ALLOW_OVERLAYS_IN_SETTINGS = "allow_overlays_in_settings"
const val KEY_NETWORK_DOWNLOAD_RATE_LIMIT = "network_download_rate_limit"
const val KEY_MOBILE_DATA_ALWAYS_ON = "mobile_data_always_on"
const val KEY_WIRELESS_DISPLAY_CERTIFICATION = "wireless_display_certification"
const val KEY_PREFER_GPU_COMPOSING = "prefer_gpu_composing"
const val KEY_TRANSPARENT_NAVIGATION_BAR = "transparent_navigation_bar"
const val KEY_STANDBY_APPS = "standby_apps"
const val KEY_PIXEL_SEARCHBAR = "pixel_searchbar"
const val KEY_PIXEL_SEARCHBAR_TYPE = "pixel_searchbar_type"
const val KEY_PIXEL_SEARCHBAR_DATE_FORMAT = "pixel_searchbar_date_format"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.sameerasw.essentials.domain.model

import android.graphics.drawable.Drawable

data class AppStandbyInfo(
val packageName: String,
val label: String,
val icon: Drawable?,
val bucket: Int
)
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,62 @@ object FeatureRegistry {
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {}
override fun isDeviceSupported(context: Context) = DeviceUtils.isGoogleDevice()
},
object : Feature(
id = "Networks",
title = R.string.feat_networks_title,
iconRes = R.drawable.rounded_cell_wifi_24,
category = R.string.cat_connectivity,
description = R.string.feat_networks_desc,
aboutDescription = R.string.about_desc_networks,
showToggle = false,
hasMoreSettings = true
) {
override fun isEnabled(viewModel: MainViewModel) = true
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {}
},

object : Feature(
id = "Network download rate limit",
title = R.string.feat_network_download_rate_limit_title,
iconRes = R.drawable.rounded_cell_wifi_24,
category = R.string.cat_connectivity,
description = R.string.feat_network_download_rate_limit_desc,
permissionKeys = listOf("WRITE_SECURE_SETTINGS"),
parentFeatureId = "Networks",
showToggle = false
) {
override fun isEnabled(viewModel: MainViewModel) = viewModel.networkDownloadRateLimit.intValue != -1
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {}
},

object : Feature(
id = "Mobile data always on",
title = R.string.feat_mobile_data_always_on_title,
iconRes = R.drawable.rounded_mobile_24,
category = R.string.cat_connectivity,
description = R.string.feat_mobile_data_always_on_desc,
permissionKeys = listOf("WRITE_SECURE_SETTINGS"),
parentFeatureId = "Networks"
) {
override fun isEnabled(viewModel: MainViewModel) = viewModel.isMobileDataAlwaysOnEnabled.value
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) =
viewModel.setMobileDataAlwaysOnEnabled(enabled, context)
},

object : Feature(
id = "Wireless display certification",
title = R.string.feat_wireless_display_certification_title,
iconRes = R.drawable.rounded_cast_24,
category = R.string.cat_connectivity,
description = R.string.feat_wireless_display_certification_desc,
permissionKeys = listOf("WRITE_SECURE_SETTINGS"),
parentFeatureId = "Networks"
) {
override fun isEnabled(viewModel: MainViewModel) = viewModel.isWirelessDisplayCertificationEnabled.value
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) =
viewModel.setWirelessDisplayCertificationEnabled(enabled, context)
},

object : Feature(
id = "Watch",
title = R.string.feat_watch_title,
Expand Down Expand Up @@ -607,6 +663,22 @@ object FeatureRegistry {
}
},

object : Feature(
id = "Standby apps",
title = R.string.feat_standby_apps_title,
iconRes = R.drawable.rounded_app_registration_24,
category = R.string.cat_interaction,
description = R.string.feat_standby_apps_desc,
aboutDescription = R.string.about_desc_standby_apps,
permissionKeys = listOf("SHIZUKU"),
parentFeatureId = "Input",
showToggle = false,
hasMoreSettings = true
) {
override fun isEnabled(viewModel: MainViewModel) = true
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {}
},

object : Feature(
id = "Snooze system notifications",
title = R.string.feat_snooze_notifications_title,
Expand Down Expand Up @@ -961,6 +1033,7 @@ object FeatureRegistry {
iconRes = R.drawable.rounded_home_24,
category = R.string.cat_display,
description = R.string.feat_other_customizations_desc,
aboutDescription = R.string.about_desc_other_customizations,
showToggle = false,
hasMoreSettings = true,
parentFeatureId = "Display"
Expand All @@ -969,6 +1042,8 @@ object FeatureRegistry {
override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {}
},



object : Feature(
id = "Screen locked security",
title = R.string.feat_screen_locked_security_title,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,22 @@ fun initPermissionRegistry() {
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.tile_developer_options)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.tile_charge_optimization)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_lock_screen_clock_title)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_allow_overlays_in_settings_title)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_networks_title)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_network_download_rate_limit_title)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_mobile_data_always_on_title)
PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_wireless_display_certification_title)

// Shizuku permission
PermissionRegistry.register("SHIZUKU", R.string.feat_freeze_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_maps_power_saving_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_screen_locked_security_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_screen_refresh_rate_title)
PermissionRegistry.register("SHIZUKU", R.string.tile_refresh_rate)
PermissionRegistry.register("SHIZUKU", R.string.feat_prefer_gpu_composing_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_networks_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_transparent_navigation_bar_title)
PermissionRegistry.register("SHIZUKU", R.string.feat_standby_apps_title)
PermissionRegistry.register("USAGE_STATS", R.string.feat_freeze_title)
PermissionRegistry.register("USAGE_STATS", R.string.feat_app_lock_title)
PermissionRegistry.register("USAGE_STATS", R.string.feat_dynamic_night_light_title)
Expand All @@ -46,7 +55,11 @@ fun initPermissionRegistry() {
PermissionRegistry.register("ROOT", R.string.feat_maps_power_saving_title)
PermissionRegistry.register("ROOT", R.string.feat_freeze_title)
PermissionRegistry.register("ROOT", R.string.feat_button_remap_title)
PermissionRegistry.register("ROOT", R.string.feat_prefer_gpu_composing_title)
PermissionRegistry.register("ROOT", R.string.feat_transparent_navigation_bar_title)
PermissionRegistry.register("ROOT", R.string.feat_standby_apps_title)
PermissionRegistry.register("ROOT", R.string.feat_screen_locked_security_title)
PermissionRegistry.register("ROOT", R.string.feat_prefer_gpu_composing_title)

// Notification listener permission
PermissionRegistry.register("NOTIFICATION_LISTENER", R.string.feat_maps_power_saving_title)
Expand Down
Loading
Loading