vector-im/element-ios/issues/5298 - Settings screen toggle for disabling location sharing.

This commit is contained in:
Stefan Ceriu
2021-12-22 09:17:51 +02:00
committed by Stefan Ceriu
parent f4575b6ba6
commit 5f6b6b27aa
3 changed files with 58 additions and 14 deletions
+46 -14
View File
@@ -47,10 +47,11 @@
NSString* const kSettingsViewControllerPhoneBookCountryCellId = @"kSettingsViewControllerPhoneBookCountryCellId";
enum
typedef NS_ENUM(NSUInteger, SECTION_TAG)
{
SECTION_TAG_SIGN_OUT = 0,
SECTION_TAG_USER_SETTINGS,
SECTION_TAG_LOCATION_SHARING,
SECTION_TAG_SENDING_MEDIA,
SECTION_TAG_LINKS,
SECTION_TAG_SECURITY,
@@ -69,7 +70,7 @@ enum
SECTION_TAG_DEACTIVATE_ACCOUNT
};
enum
typedef NS_ENUM(NSUInteger, USER_SETTINGS_INDEX)
{
USER_SETTINGS_PROFILE_PICTURE_INDEX = 0,
USER_SETTINGS_DISPLAYNAME_INDEX,
@@ -80,24 +81,29 @@ enum
USER_SETTINGS_ADD_PHONENUMBER_INDEX
};
enum
typedef NS_ENUM(NSUInteger, USER_SETTINGS_OFFSET)
{
USER_SETTINGS_EMAILS_OFFSET = 2000,
USER_SETTINGS_PHONENUMBERS_OFFSET = 1000
};
enum
typedef NS_ENUM(NSUInteger, LOCATION_SHARING)
{
LOCATION_SHARING_ENABLED
};
typedef NS_ENUM(NSUInteger, SENDING_MEDIA)
{
SENDING_MEDIA_CONFIRM_SIZE = 0
};
enum
typedef NS_ENUM(NSUInteger, LINKS_SHOW_URL_PREVIEWS)
{
LINKS_SHOW_URL_PREVIEWS_INDEX = 0,
LINKS_SHOW_URL_PREVIEWS_DESCRIPTION_INDEX
};
enum
typedef NS_ENUM(NSUInteger, NOTIFICATION_SETTINGS)
{
NOTIFICATION_SETTINGS_ENABLE_PUSH_INDEX = 0,
NOTIFICATION_SETTINGS_SYSTEM_SETTINGS,
@@ -109,33 +115,34 @@ enum
NOTIFICATION_SETTINGS_OTHER_SETTINGS_INDEX,
};
enum
typedef NS_ENUM(NSUInteger, CALLS_ENABLE_STUN_SERVER)
{
CALLS_ENABLE_STUN_SERVER_FALLBACK_INDEX = 0
};
enum
typedef NS_ENUM(NSUInteger, INTEGRATIONS)
{
INTEGRATIONS_INDEX
};
enum {
typedef NS_ENUM(NSUInteger, LOCAL_CONTACTS)
{
LOCAL_CONTACTS_SYNC_INDEX,
LOCAL_CONTACTS_PHONEBOOK_COUNTRY_INDEX
};
enum
typedef NS_ENUM(NSUInteger, USER_INTERFACE)
{
USER_INTERFACE_LANGUAGE_INDEX = 0,
USER_INTERFACE_THEME_INDEX
};
enum
typedef NS_ENUM(NSUInteger, IDENTITY_SERVER)
{
IDENTITY_SERVER_INDEX
};
enum
typedef NS_ENUM(NSUInteger, ADVANCED)
{
ADVANCED_SHOW_NSFW_ROOMS_INDEX = 0,
ADVANCED_CRASH_REPORT_INDEX,
@@ -145,7 +152,7 @@ enum
ADVANCED_REPORT_BUG_INDEX,
};
enum
typedef NS_ENUM(NSUInteger, ABOUT)
{
ABOUT_COPYRIGHT_INDEX = 0,
ABOUT_TERM_CONDITIONS_INDEX,
@@ -159,7 +166,7 @@ typedef NS_ENUM(NSUInteger, LABS_ENABLE)
LABS_ENABLE_POLLS
};
enum
typedef NS_ENUM(NSUInteger, SECURITY)
{
SECURITY_BUTTON_INDEX = 0,
};
@@ -374,6 +381,11 @@ TableViewSectionsDelegate>
sectionUserSettings.headerTitle = [VectorL10n settingsUserSettings];
[tmpSections addObject:sectionUserSettings];
Section *sectionLocationSharing = [Section sectionWithTag:SECTION_TAG_LOCATION_SHARING];
[sectionLocationSharing addRowWithTag:LOCATION_SHARING_ENABLED];
sectionLocationSharing.headerTitle = VectorL10n.locationSharingSettingsHeader.uppercaseString;
[tmpSections addObject:sectionLocationSharing];
if (BuildSettings.settingsScreenShowConfirmMediaSize)
{
Section *sectionMedia = [Section sectionWithTag:SECTION_TAG_SENDING_MEDIA];
@@ -1942,6 +1954,21 @@ TableViewSectionsDelegate>
cell = passwordCell;
}
}
else if (section == SECTION_TAG_LOCATION_SHARING)
{
if (row == LOCATION_SHARING_ENABLED)
{
MXKTableViewCellWithLabelAndSwitch* labelAndSwitchCell = [self getLabelAndSwitchCell:tableView forIndexPath:indexPath];
labelAndSwitchCell.mxkLabel.text = VectorL10n.locationSharingSettingsToggleTitle;
labelAndSwitchCell.mxkSwitch.on = RiotSettings.shared.roomScreenAllowLocationAction;
labelAndSwitchCell.mxkSwitch.onTintColor = ThemeService.shared.theme.tintColor;
labelAndSwitchCell.mxkSwitch.enabled = YES;
[labelAndSwitchCell.mxkSwitch addTarget:self action:@selector(toggleLocationSharing:) forControlEvents:UIControlEventTouchUpInside];
cell = labelAndSwitchCell;
}
}
else if (section == SECTION_TAG_SENDING_MEDIA)
{
if (row == SENDING_MEDIA_CONFIRM_SIZE)
@@ -2964,6 +2991,11 @@ TableViewSectionsDelegate>
}
}
- (void)toggleLocationSharing:(UISwitch *)sender
{
RiotSettings.shared.roomScreenAllowLocationAction = sender.on;
}
- (void)toggleConfirmMediaSize:(UISwitch *)sender
{
RiotSettings.shared.showMediaCompressionPrompt = sender.on;