Skip to content

Commit 7e1b904

Browse files
committed
[bugfix] fixing InternetTileNewImpl secondary click
Change-Id: Ib9420f5fb7dd0f249c6703a60b151b78fd6a5c24 Signed-off-by: rmp22 <195054967+rmp22@users.noreply.github.com>
1 parent b3aba0f commit 7e1b904

2 files changed

Lines changed: 53 additions & 3 deletions

File tree

packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTileNewImpl.kt

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import android.os.Handler
2121
import android.os.Looper
2222
import android.provider.Settings
2323
import android.widget.Button
24+
import com.android.settingslib.net.DataUsageController
2425
import com.android.internal.logging.MetricsLogger
2526
import com.android.systemui.animation.Expandable
2627
import com.android.systemui.dagger.qualifiers.Background
@@ -36,8 +37,11 @@ import com.android.systemui.qs.logging.QSLogger
3637
import com.android.systemui.qs.tileimpl.QSTileImpl
3738
import com.android.systemui.qs.tiles.dialog.InternetDetailsViewModel
3839
import com.android.systemui.qs.tiles.dialog.InternetDialogManager
40+
import com.android.systemui.qs.tiles.dialog.WifiStateWorker
3941
import com.android.systemui.res.R
42+
import com.android.systemui.Prefs
4043
import com.android.systemui.statusbar.connectivity.AccessPointController
44+
import com.android.systemui.statusbar.connectivity.NetworkController
4145
import com.android.systemui.statusbar.pipeline.shared.ui.binder.InternetTileBinder
4246
import com.android.systemui.statusbar.pipeline.shared.ui.model.InternetTileModel
4347
import com.android.systemui.statusbar.pipeline.shared.ui.viewmodel.InternetTileViewModel
@@ -59,6 +63,8 @@ constructor(
5963
private val internetDialogManager: InternetDialogManager,
6064
private val accessPointController: AccessPointController,
6165
private val internetDetailsViewModelFactory: InternetDetailsViewModel.Factory,
66+
private val wifiStateWorker: WifiStateWorker,
67+
private val networkController: NetworkController
6268
) :
6369
QSTileImpl<QSTile.BooleanState>(
6470
host,
@@ -72,6 +78,25 @@ constructor(
7278
qsLogger,
7379
) {
7480
private var model: InternetTileModel = viewModel.tileModel.value
81+
private val dataUsageController: DataUsageController = networkController.mobileDataController
82+
83+
private var dataEnabled: Boolean
84+
get() = dataUsageController.isMobileDataEnabled()
85+
set(value) {
86+
dataUsageController.setMobileDataEnabled(value)
87+
}
88+
89+
private var wifiEnabled: Boolean
90+
get() = wifiStateWorker.isWifiEnabled()
91+
set(value) {
92+
wifiStateWorker.setWifiEnabled(value)
93+
}
94+
95+
private var lastUsedModel: Int
96+
get() = Prefs.getInt(mContext, "internet_tile_model", WIFI)
97+
set(value) {
98+
Prefs.putInt(mContext, "internet_tile_model", value)
99+
}
75100

76101
init {
77102
InternetTileBinder.bind(lifecycle, viewModel.tileModel) { newModel ->
@@ -84,7 +109,10 @@ constructor(
84109
mContext.getString(R.string.quick_settings_internet_label)
85110

86111
override fun newTileState(): QSTile.BooleanState {
87-
return QSTile.BooleanState().also { it.forceExpandIcon = true }
112+
return QSTile.BooleanState().also {
113+
it.forceExpandIcon = true
114+
it.handlesSecondaryClick = true
115+
}
88116
}
89117

90118
override fun handleClick(expandable: Expandable?) {
@@ -98,6 +126,26 @@ constructor(
98126
}
99127
}
100128

129+
override fun handleSecondaryClick(expandable: Expandable?) {
130+
when {
131+
wifiEnabled -> {
132+
wifiEnabled = false
133+
lastUsedModel = WIFI
134+
}
135+
dataEnabled -> {
136+
dataEnabled = false
137+
lastUsedModel = DATA
138+
}
139+
else -> {
140+
if (lastUsedModel == WIFI) {
141+
wifiEnabled = true
142+
} else {
143+
dataEnabled = true
144+
}
145+
}
146+
}
147+
}
148+
101149
override fun getDetailsViewModel(): TileDetailsViewModel {
102150
return internetDetailsViewModelFactory.create()
103151
}
@@ -113,5 +161,7 @@ constructor(
113161

114162
companion object {
115163
private val WIFI_SETTINGS = Intent(Settings.ACTION_WIFI_SETTINGS)
164+
const val WIFI = 0
165+
const val DATA = 1
116166
}
117167
}

packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/model/InternetTileModel.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ sealed interface InternetTileModel {
4141
@SuppressLint("UseCompatLoadingForDrawables")
4242
fun applyTo(state: QSTile.BooleanState, context: Context) {
4343
if (secondaryLabel != null) {
44-
state.secondaryLabel = secondaryLabel.loadText(context)
44+
state.label = secondaryLabel.loadText(context)
4545
} else {
46-
state.secondaryLabel = secondaryTitle
46+
state.label = secondaryTitle
4747
}
4848

4949
state.stateDescription = stateDescription.loadContentDescription(context)

0 commit comments

Comments
 (0)