diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index 32fa33d956..8f3a3fe9e7 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -351,6 +351,7 @@ 34FE5A6F1F18F30F00BCA729 /* TrafficButtonArea.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34FE5A6D1F18F30F00BCA729 /* TrafficButtonArea.swift */; }; 3D15ACEE2155117000F725D5 /* MWMObjectsCategorySelectorDataSource.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3D15ACED2155117000F725D5 /* MWMObjectsCategorySelectorDataSource.mm */; }; 3D1958EB213804B6009A83EC /* libmetrics.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3D1958EA213804B6009A83EC /* libmetrics.a */; }; + 3DEE1AEB21F72CD300054A91 /* MWMPowerManagmentViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3DEE1AEA21F72CD300054A91 /* MWMPowerManagmentViewController.mm */; }; 3DF9C22B207CC14A00DA0793 /* taxi_places in Resources */ = {isa = PBXBuildFile; fileRef = 3DF9C22A207CC14A00DA0793 /* taxi_places */; }; 408645FC21495EB1000A4A1D /* categories_cuisines.txt in Resources */ = {isa = PBXBuildFile; fileRef = 408645FB21495EB1000A4A1D /* categories_cuisines.txt */; }; 4501B1942077C35A001B9173 /* resources-xxxhdpi_clear in Resources */ = {isa = PBXBuildFile; fileRef = 4501B1922077C35A001B9173 /* resources-xxxhdpi_clear */; }; @@ -1369,6 +1370,8 @@ 3D15ACEF2155118800F725D5 /* MWMObjectsCategorySelectorDataSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMObjectsCategorySelectorDataSource.h; sourceTree = ""; }; 3D1958EA213804B6009A83EC /* libmetrics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libmetrics.a; sourceTree = BUILT_PRODUCTS_DIR; }; 3DDB4BC31DAB98F000F4D021 /* libpartners_api.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libpartners_api.a; path = "../../../omim-xcode-build/Debug-iphonesimulator/libpartners_api.a"; sourceTree = ""; }; + 3DEE1AE921F72CD300054A91 /* MWMPowerManagmentViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MWMPowerManagmentViewController.h; sourceTree = ""; }; + 3DEE1AEA21F72CD300054A91 /* MWMPowerManagmentViewController.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPowerManagmentViewController.mm; sourceTree = ""; }; 3DF9C22A207CC14A00DA0793 /* taxi_places */ = {isa = PBXFileReference; lastKnownFileType = folder; name = taxi_places; path = ../../data/taxi_places; sourceTree = ""; }; 408645FB21495EB1000A4A1D /* categories_cuisines.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = categories_cuisines.txt; path = ../../data/categories_cuisines.txt; sourceTree = ""; }; 4501B1922077C35A001B9173 /* resources-xxxhdpi_clear */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-xxxhdpi_clear"; path = "../../data/resources-xxxhdpi_clear"; sourceTree = ""; }; @@ -4287,6 +4290,8 @@ F6E2FD4B1E097BA00083EBEC /* MWMTTSSettingsViewController.mm */, F6E2FD4C1E097BA00083EBEC /* MWMUnitsController.h */, F6E2FD4D1E097BA00083EBEC /* MWMUnitsController.mm */, + 3DEE1AE921F72CD300054A91 /* MWMPowerManagmentViewController.h */, + 3DEE1AEA21F72CD300054A91 /* MWMPowerManagmentViewController.mm */, ); path = Settings; sourceTree = ""; @@ -5063,6 +5068,7 @@ F6E2FD501E097BA00083EBEC /* MWMMapDownloaderAdsTableViewCell.mm in Sources */, 4719A643219CB61D009F9AA7 /* BillingPendingTransaction.swift in Sources */, F6E2FE881E097BA00083EBEC /* MWMPlacePageRegularCell.mm in Sources */, + 3DEE1AEB21F72CD300054A91 /* MWMPowerManagmentViewController.mm in Sources */, 34AB66771FC5AA330078E451 /* TransportRoutePreviewStatus.swift in Sources */, F6E2FD801E097BA00083EBEC /* MWMMapDownloaderExtendedDataSourceWithAds.mm in Sources */, 34BBD6641F8270AC0070CA50 /* AuthorizationTransitioning.swift in Sources */, diff --git a/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.h b/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.h new file mode 100644 index 0000000000..11e7f7e6b9 --- /dev/null +++ b/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.h @@ -0,0 +1,5 @@ +#import "MWMTableViewController.h" + +@interface MWMPowerManagmentViewController : MWMTableViewController + +@end diff --git a/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.mm b/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.mm new file mode 100644 index 0000000000..476a88799b --- /dev/null +++ b/iphone/Maps/UI/Settings/MWMPowerManagmentViewController.mm @@ -0,0 +1,67 @@ +#import "MWMPowerManagmentViewController.h" + +#import "SwiftBridge.h" + +#include "Framework.h" + +using namespace power_management; + +@interface MWMPowerManagmentViewController () +@property (weak, nonatomic) IBOutlet SettingsTableViewSelectableCell * never; +@property (weak, nonatomic) IBOutlet SettingsTableViewSelectableCell * manualMax; +@property (weak, nonatomic) IBOutlet SettingsTableViewSelectableCell * automatic; +@property (weak, nonatomic) SettingsTableViewSelectableCell * selected; + +@end + +@implementation MWMPowerManagmentViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + self.title = L(@"power_management_title"); + + SettingsTableViewSelectableCell * selected; + switch (GetFramework().GetPowerManager().GetScheme()) + { + case Scheme::None: break; + case Scheme::Normal: selected = self.never; break; + case Scheme::EconomyMedium: break; + case Scheme::EconomyMaximum: selected = self.manualMax; break; + case Scheme::Auto: selected = self.automatic; break; + } + selected.accessoryType = UITableViewCellAccessoryCheckmark; + self.selected = selected; +} + +- (void)setSelected:(SettingsTableViewSelectableCell *)selected +{ + if ([_selected isEqual:selected]) + return; + + _selected = selected; + if ([selected isEqual:self.never]) + GetFramework().GetPowerManager().SetScheme(Scheme::Normal); + else if ([selected isEqual:self.manualMax]) + GetFramework().GetPowerManager().SetScheme(Scheme::EconomyMaximum); + else if ([selected isEqual:self.automatic]) + GetFramework().GetPowerManager().SetScheme(Scheme::Auto); +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + SettingsTableViewSelectableCell * selected = self.selected; + selected.accessoryType = UITableViewCellAccessoryNone; + selected = [tableView cellForRowAtIndexPath:indexPath]; + selected.accessoryType = UITableViewCellAccessoryCheckmark; + selected.selected = NO; + self.selected = selected; + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section +{ + return L(@"power_management_description"); +} + +@end diff --git a/iphone/Maps/UI/Settings/MWMSettingsViewController.mm b/iphone/Maps/UI/Settings/MWMSettingsViewController.mm index 87de5ed54e..40508abdbe 100644 --- a/iphone/Maps/UI/Settings/MWMSettingsViewController.mm +++ b/iphone/Maps/UI/Settings/MWMSettingsViewController.mm @@ -17,6 +17,8 @@ extern NSString * const kAlohalyticsTapEventKey; +using namespace power_management; + @interface MWMSettingsViewController () @property(weak, nonatomic) IBOutlet SettingsTableViewLinkCell * profileCell; @@ -27,6 +29,7 @@ extern NSString * const kAlohalyticsTapEventKey; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * autoDownloadCell; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * backupBookmarksCell; @property(weak, nonatomic) IBOutlet SettingsTableViewLinkCell * mobileInternetCell; +@property (weak, nonatomic) IBOutlet SettingsTableViewLinkCell * powerManagementCell; @property(weak, nonatomic) IBOutlet SettingsTableViewLinkCell * recentTrackCell; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * fontScaleCell; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * transliterationCell; @@ -34,7 +37,7 @@ extern NSString * const kAlohalyticsTapEventKey; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * showOffersCell; @property(weak, nonatomic) IBOutlet SettingsTableViewSwitchCell * statisticsCell; -@property(weak, nonatomic) IBOutlet SettingsTableViewSelectableProgressCell *restoreSubscriptionCell; +@property(weak, nonatomic) IBOutlet SettingsTableViewSelectableProgressCell * restoreSubscriptionCell; @property(weak, nonatomic) IBOutlet SettingsTableViewLinkCell * manageSubscriptionsCell; @property(weak, nonatomic) IBOutlet SettingsTableViewLinkCell * nightModeCell; @@ -114,6 +117,17 @@ extern NSString * const kAlohalyticsTapEventKey; case network_policy::Never: mobileInternet = L(@"mobile_data_option_never"); break; } [self.mobileInternetCell configWithTitle:L(@"mobile_data") info:mobileInternet]; + + NSString * powerManagement = nil; + switch (GetFramework().GetPowerManager().GetScheme()) + { + case Scheme::None: break; + case Scheme::Normal: powerManagement = L(@"power_management_setting_never"); break; + case Scheme::EconomyMedium: break; + case Scheme::EconomyMaximum: powerManagement = L(@"power_managment_setting_manual_max"); break; + case Scheme::Auto: powerManagement = L(@"power_management_setting_auto"); break; + } + [self.powerManagementCell configWithTitle:L(@"power_management_title") info:powerManagement]; NSString * recentTrack = nil; if (!GpsTracker::Instance().IsEnabled()) @@ -313,6 +327,10 @@ extern NSString * const kAlohalyticsTapEventKey; withParameters:@{kStatAction : kStatChangeMobileInternet}]; [self performSegueWithIdentifier:@"SettingsToMobileInternetSegue" sender:nil]; } + else if (cell == self.powerManagementCell) + { + [self performSegueWithIdentifier:@"SettingsToPowerManagementSegue" sender:nil]; + } else if (cell == self.recentTrackCell) { [Statistics logEvent:kStatEventName(kStatSettings, kStatRecentTrack) diff --git a/iphone/Maps/UI/Storyboard/Settings.storyboard b/iphone/Maps/UI/Storyboard/Settings.storyboard index 6f8e5d5e12..80012b5080 100644 --- a/iphone/Maps/UI/Storyboard/Settings.storyboard +++ b/iphone/Maps/UI/Storyboard/Settings.storyboard @@ -266,9 +266,44 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -302,7 +337,7 @@ - + @@ -336,7 +371,7 @@ - + @@ -370,7 +405,7 @@ - + @@ -404,21 +439,21 @@ - + - + @@ -438,7 +473,7 @@ - + @@ -476,7 +511,7 @@ - + @@ -511,10 +546,10 @@ - + - +