Some improvements to the application
This commit is contained in:
parent
ddd5826f42
commit
61890b3da9
@ -99,7 +99,7 @@ public class Application {
|
||||
subscriptions();
|
||||
break;
|
||||
case "m":
|
||||
messages();
|
||||
labels();
|
||||
break;
|
||||
case "?":
|
||||
info();
|
||||
@ -280,22 +280,65 @@ public class Application {
|
||||
}
|
||||
}
|
||||
|
||||
private void messages() {
|
||||
private void labels() {
|
||||
List<Label> labels = ctx.messages().getLabels();
|
||||
String command;
|
||||
do {
|
||||
List<Plaintext> messages = ctx.messages().findMessages(Plaintext.Status.RECEIVED);
|
||||
System.out.println();
|
||||
int i = 0;
|
||||
for (Label label : labels) {
|
||||
i++;
|
||||
System.out.println(i + ") " + label + " [" + ctx.messages().countUnread(label) + "]");
|
||||
}
|
||||
System.out.println("a) Archive");
|
||||
System.out.println();
|
||||
System.out.println("c) compose message");
|
||||
System.out.println("s) compose broadcast");
|
||||
System.out.println(COMMAND_BACK);
|
||||
|
||||
command = commandLine.nextCommand();
|
||||
switch (command) {
|
||||
case "a":
|
||||
messages(null);
|
||||
break;
|
||||
case "c":
|
||||
compose(false);
|
||||
break;
|
||||
case "s":
|
||||
compose(true);
|
||||
break;
|
||||
case "b":
|
||||
return;
|
||||
default:
|
||||
try {
|
||||
int index = Integer.parseInt(command) - 1;
|
||||
messages(labels.get(index));
|
||||
} catch (NumberFormatException | IndexOutOfBoundsException e) {
|
||||
System.out.println(ERROR_UNKNOWN_COMMAND);
|
||||
}
|
||||
}
|
||||
} while (!"b".equalsIgnoreCase(command));
|
||||
}
|
||||
|
||||
private void messages(Label label) {
|
||||
String command;
|
||||
do {
|
||||
List<Plaintext> messages = ctx.messages().findMessages(label);
|
||||
System.out.println();
|
||||
int i = 0;
|
||||
for (Plaintext message : messages) {
|
||||
i++;
|
||||
System.out.println(i + ") From: " + message.getFrom() + "; Subject: " + message.getSubject());
|
||||
System.out.println(i + (message.isUnread() ? ">" : ")") + " From: " + message.getFrom() + "; Subject: " + message.getSubject());
|
||||
}
|
||||
if (i == 0) {
|
||||
System.out.println("You have no messages.");
|
||||
System.out.println("There are no messages.");
|
||||
}
|
||||
System.out.println();
|
||||
System.out.println("c) compose message");
|
||||
System.out.println("s) compose broadcast");
|
||||
if (label.getType() == Label.Type.TRASH) {
|
||||
System.out.println("e) empty trash");
|
||||
}
|
||||
System.out.println(COMMAND_BACK);
|
||||
|
||||
command = commandLine.nextCommand();
|
||||
@ -306,6 +349,8 @@ public class Application {
|
||||
case "s":
|
||||
compose(true);
|
||||
break;
|
||||
case "e":
|
||||
messages.forEach(ctx.messages()::remove);
|
||||
case "b":
|
||||
return;
|
||||
default:
|
||||
@ -328,13 +373,15 @@ public class Application {
|
||||
System.out.println(message.getText());
|
||||
System.out.println();
|
||||
System.out.println(message.getLabels().stream().map(Label::toString).collect(
|
||||
Collectors.joining("Labels: ", ", ", "")));
|
||||
Collectors.joining(", ", "Labels: ", "")));
|
||||
System.out.println();
|
||||
ctx.labeler().markAsRead(message);
|
||||
ctx.messages().save(message);
|
||||
String command;
|
||||
do {
|
||||
System.out.println("r) reply");
|
||||
System.out.println("d) delete");
|
||||
System.out.println("a) archive");
|
||||
System.out.println(COMMAND_BACK);
|
||||
command = commandLine.nextCommand();
|
||||
switch (command) {
|
||||
@ -342,7 +389,13 @@ public class Application {
|
||||
compose(message.getTo(), message.getFrom(), "RE: " + message.getSubject());
|
||||
break;
|
||||
case "d":
|
||||
ctx.messages().remove(message);
|
||||
ctx.labeler().delete(message);
|
||||
ctx.messages().save(message);
|
||||
return;
|
||||
case "a":
|
||||
ctx.labeler().archive(message);
|
||||
ctx.messages().save(message);
|
||||
return;
|
||||
case "b":
|
||||
return;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user