Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1404)

Unified Diff: chrome/browser/chromeos/tether/tether_service.cc

Issue 2883283004: Merged Tether and cellular network types in System Tray. (Closed)
Patch Set: fixed failing TetherServiceTest Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/tether/tether_service.cc
diff --git a/chrome/browser/chromeos/tether/tether_service.cc b/chrome/browser/chromeos/tether/tether_service.cc
index 65fd44f40e3fcff080213b708e96e5495e5c82eb..173b014d99a2b8041ff8411d3ae4f4712ee5d2d2 100644
--- a/chrome/browser/chromeos/tether/tether_service.cc
+++ b/chrome/browser/chromeos/tether/tether_service.cc
@@ -183,8 +183,8 @@ void TetherService::DeviceListChanged() {
if (is_enabled != was_pref_enabled) {
profile_->GetPrefs()->SetBoolean(prefs::kInstantTetheringEnabled,
is_enabled);
- UpdateTetherTechnologyState();
}
+ UpdateTetherTechnologyState();
}
void TetherService::OnPrefsChanged() {
@@ -220,11 +220,14 @@ TetherService::GetTetherTechnologyState() {
} else if (!IsAllowedByPolicy()) {
return chromeos::NetworkStateHandler::TechnologyState::
TECHNOLOGY_PROHIBITED;
- } else if (!IsBluetoothAvailable()) {
- // TODO (hansberry): This unfortunately results in a weird UI state for
- // Settings where the toggle is clickable but immediately becomes disabled
- // after enabling it. Possible solution: grey out the toggle and tell the
- // user to turn Bluetooth on?
+ } else if (!IsBluetoothAvailable() || IsCellularAvailableButNotEnabled()) {
+ // If Cellular technology is available, then Tether technology is treated
+ // as a subset of Cellular, and it should only be enabled when Cellular
+ // technology is enabled.
+ // TODO (hansberry): When !IsBluetoothAvailable(), this results in a weird
+ // UI state for Settings where the toggle is clickable but immediately
+ // becomes disabled after enabling it. Possible solution: grey out the
+ // toggle and tell the user to turn Bluetooth on?
return chromeos::NetworkStateHandler::TechnologyState::
TECHNOLOGY_UNINITIALIZED;
} else if (!IsEnabledbyPreference()) {
@@ -247,6 +250,13 @@ bool TetherService::IsBluetoothAvailable() const {
return adapter_.get() && adapter_->IsPresent() && adapter_->IsPowered();
}
+bool TetherService::IsCellularAvailableButNotEnabled() const {
+ return (network_state_handler_->IsTechnologyAvailable(
+ chromeos::NetworkTypePattern::Cellular()) &&
+ !network_state_handler_->IsTechnologyEnabled(
+ chromeos::NetworkTypePattern::Cellular()));
+}
+
bool TetherService::IsAllowedByPolicy() const {
return profile_->GetPrefs()->GetBoolean(prefs::kInstantTetheringAllowed);
}
« no previous file with comments | « chrome/browser/chromeos/tether/tether_service.h ('k') | chrome/browser/chromeos/tether/tether_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698