package com.firebase.jobdispatcher.testapp; import android.databinding.BaseObservable; import android.databinding.Bindable; import android.databinding.ObservableBoolean; import android.databinding.ObservableField; import android.databinding.ObservableInt; import android.text.TextUtils; import com.firebase.jobdispatcher.RetryStrategy; /** POJO that represents the job form (via databinding). */ public class JobForm extends BaseObservable { public final ObservableField<String> tag = new ObservableField<>(""); private int winStartSeconds = 30; private int winEndSeconds = 60; private int initialBackoffSeconds = 30; private int maximumBackoffSeconds = 3600; public final ObservableBoolean constrainOnAnyNetwork = new ObservableBoolean(true); public final ObservableBoolean constrainOnUnmeteredNetwork = new ObservableBoolean(false); public final ObservableBoolean constrainDeviceCharging = new ObservableBoolean(false); public final ObservableBoolean recurring = new ObservableBoolean(false); public final ObservableBoolean persistent = new ObservableBoolean(false); public final ObservableBoolean replaceCurrent = new ObservableBoolean(false); public final ObservableInt retryStrategy = new ObservableInt(RetryStrategy.RETRY_POLICY_EXPONENTIAL); @Bindable public String getWinEndSecondsStr() { return String.valueOf(winEndSeconds); } @Bindable public String getWinStartSecondsStr() { return String.valueOf(winStartSeconds); } public void setWinStartSecondsStr(String in) { winStartSeconds = convertToInt(in); } public void setWinEndSecondsStr(String in) { winEndSeconds = convertToInt(in); } @Bindable public String getInitialBackoffSecondsStr() { return String.valueOf(initialBackoffSeconds); } public void setInitialBackoffSecondsStr(String in) { this.initialBackoffSeconds = Integer.valueOf(in, 10); } @Bindable public String getMaximumBackoffSecondsStr() { return String.valueOf(maximumBackoffSeconds); } public void setMaximumBackoffSecondsStr(String in) { this.maximumBackoffSeconds = Integer.valueOf(in, 10); } public int getWinStartSeconds() { return winStartSeconds; } public int getWinEndSeconds() { return winEndSeconds; } public int getInitialBackoffSeconds() { return initialBackoffSeconds; } public int getMaximumBackoffSeconds() { return maximumBackoffSeconds; } private int convertToInt(String in) { return !TextUtils.isEmpty(in) ? Integer.valueOf(in, 10) : 0; } }