diff options
Diffstat (limited to 'gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java')
-rw-r--r-- | gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java index 195adf5e8b..27bc107e4b 100644 --- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java +++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java @@ -15,12 +15,37 @@ package com.google.gerrit.client.ui; import com.google.gerrit.client.Gerrit; -import com.google.gerrit.reviewdb.AccountDiffPreference; +import com.google.gerrit.client.account.Util; +import com.google.gerrit.client.rpc.GerritCallback; +import com.google.gerrit.reviewdb.client.AccountDiffPreference; +import com.google.gwtjsonrpc.common.VoidResult; public class ListenableAccountDiffPreference - extends ListenableValue<AccountDiffPreference> { + extends ListenableOldValue<AccountDiffPreference> { public ListenableAccountDiffPreference() { + reset(); + } + + public void save(final GerritCallback<VoidResult> cb) { + if (Gerrit.isSignedIn()) { + Util.ACCOUNT_SVC.changeDiffPreferences(get(), + new GerritCallback<VoidResult>() { + @Override + public void onSuccess(VoidResult result) { + Gerrit.setAccountDiffPreference(get()); + cb.onSuccess(result); + } + + @Override + public void onFailure(Throwable caught) { + cb.onFailure(caught); + } + }); + } + } + + public void reset() { if (Gerrit.isSignedIn() && Gerrit.getAccountDiffPreference() != null) { set(Gerrit.getAccountDiffPreference()); } else { |