summaryrefslogtreecommitdiffstats
path: root/gerrit-gwtui/src/main/java/com/google/gerrit/client/ui/ListenableAccountDiffPreference.java
diff options
context:
space:
mode:
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.java29
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 {