mirror of
https://gitlab.com/comunic/comunicmobile
synced 2024-12-26 04:48:51 +00:00
Can change account image visibility level
This commit is contained in:
parent
8feea380a4
commit
6e0f6d1d79
@ -35,4 +35,19 @@ class SettingsHelper {
|
||||
.addFile("picture", newImage)
|
||||
.execWithFiles())
|
||||
.isOK;
|
||||
|
||||
/// Change account image visibility level
|
||||
static Future<bool> setAccountImageVisibilityLevel(
|
||||
AccountImageVisibilityLevels level) async =>
|
||||
(await APIRequest(
|
||||
uri: "settings/set_account_image_visibility", needLogin: true)
|
||||
.addString(
|
||||
"visibility",
|
||||
|
||||
// Find appropriate visibility level
|
||||
_APIAccountImageVisibilityAPILevels.entries
|
||||
.firstWhere((f) => f.value == level)
|
||||
.key)
|
||||
.exec())
|
||||
.isOK;
|
||||
}
|
||||
|
@ -73,11 +73,26 @@ class __AccountImageSettingsBodyState extends State<_AccountImageSettingsBody> {
|
||||
width: 40,
|
||||
),
|
||||
),
|
||||
|
||||
// Upload new account image
|
||||
SettingsTile(
|
||||
title: tr("Upload new account image"),
|
||||
onTap: () => _uploadAccountImage(),
|
||||
),
|
||||
SettingsTile(title: tr("Change account image visibility")),
|
||||
|
||||
// Change account image visibility
|
||||
SettingsTile(
|
||||
title: tr("Change account image visibility"),
|
||||
onTap: () => _chooseAccountImageVisibility(),
|
||||
subtitle: tr("Current level: %level%", args: {
|
||||
"level":
|
||||
_settings.visibility == AccountImageVisibilityLevels.EVERYONE
|
||||
? tr("Everyone")
|
||||
: _settings.visibility ==
|
||||
AccountImageVisibilityLevels.COMUNIC_USERS
|
||||
? tr("Comunic users")
|
||||
: tr("My friends only"),
|
||||
})),
|
||||
SettingsTile(title: tr("Delete account image"))
|
||||
];
|
||||
}
|
||||
@ -95,4 +110,42 @@ class __AccountImageSettingsBodyState extends State<_AccountImageSettingsBody> {
|
||||
|
||||
_key.currentState.refresh();
|
||||
}
|
||||
|
||||
/// Change account image visibility
|
||||
void _chooseAccountImageVisibility() async {
|
||||
final newLevel = await showDialog<AccountImageVisibilityLevels>(
|
||||
context: context,
|
||||
builder: (c) => AlertDialog(
|
||||
title: Text(tr("Account image visiblity")),
|
||||
content:
|
||||
Text(tr("Please choose new account image visibility level:")),
|
||||
actions: <Widget>[
|
||||
MaterialButton(
|
||||
child: Text(tr("Everyone")),
|
||||
onPressed: () =>
|
||||
Navigator.pop(c, AccountImageVisibilityLevels.EVERYONE),
|
||||
),
|
||||
MaterialButton(
|
||||
child: Text(tr("Connected users")),
|
||||
onPressed: () => Navigator.pop(
|
||||
c, AccountImageVisibilityLevels.COMUNIC_USERS),
|
||||
),
|
||||
MaterialButton(
|
||||
child: Text(tr("My friends")),
|
||||
onPressed: () => Navigator.pop(
|
||||
c, AccountImageVisibilityLevels.FRIENDS_ONLY),
|
||||
)
|
||||
],
|
||||
));
|
||||
|
||||
if (newLevel == null) return;
|
||||
|
||||
if (!await SettingsHelper.setAccountImageVisibilityLevel(newLevel)) {
|
||||
showSimpleSnack(
|
||||
context, tr("Could not update account image visibility level!"));
|
||||
return;
|
||||
}
|
||||
|
||||
_key.currentState.refresh();
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user