]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java
1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.impl
.Arguments
;
4 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
5 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
7 import org
.asamk
.signal
.manager
.Manager
;
8 import org
.whispersystems
.libsignal
.util
.guava
.Optional
;
11 import java
.io
.IOException
;
13 public class UpdateProfileCommand
implements LocalCommand
{
16 public void attachToSubparser(final Subparser subparser
) {
17 subparser
.addArgument("--name").help("New profile name");
18 subparser
.addArgument("--about").help("New profile about text");
19 subparser
.addArgument("--about-emoji").help("New profile about emoji");
21 final var avatarOptions
= subparser
.addMutuallyExclusiveGroup();
22 avatarOptions
.addArgument("--avatar").help("Path to new profile avatar");
23 avatarOptions
.addArgument("--remove-avatar").action(Arguments
.storeTrue());
25 subparser
.help("Set a name, about and avatar image for the user profile");
29 public int handleCommand(final Namespace ns
, final Manager m
) {
30 var name
= ns
.getString("name");
31 var about
= ns
.getString("about");
32 var aboutEmoji
= ns
.getString("about_emoji");
33 var avatarPath
= ns
.getString("avatar");
34 boolean removeAvatar
= ns
.getBoolean("remove_avatar");
37 Optional
<File
> avatarFile
= removeAvatar
39 : avatarPath
== null ?
null : Optional
.of(new File(avatarPath
));
40 m
.setProfile(name
, about
, aboutEmoji
, avatarFile
);
41 } catch (IOException e
) {
42 System
.err
.println("Update profile error: " + e
.getMessage());