/* * Copyright (c) 2015 OpenSilk Productions LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package syncthing.android.ui.session; import android.databinding.Bindable; import android.view.View; import org.apache.commons.lang3.StringUtils; import syncthing.android.R; import syncthing.api.model.SystemMessage; /** * Created by drew on 3/15/15. */ public class NotifCardError extends NotifCard { private SystemMessage message; public NotifCardError(SessionPresenter presenter, SystemMessage message) { super(presenter, Kind.ERROR); setError(message); } @Override public int getLayout() { return R.layout.session_notif_error; } public void setError(SystemMessage error) { if (error == null) { throw new IllegalArgumentException("Tried setting null error"); } else if (this.message == null) { this.message = error; notifyChange(syncthing.android.BR._all); } else { if (!StringUtils.equals(this.message.message, error.message)) { this.message.message = error.message; notifyChange(syncthing.android.BR.message); } if (!this.message.when.equals(error.when)) { this.message.when = error.when; notifyChange(syncthing.android.BR.time); } } } @Bindable public String getTime() { return message.when.toString("H:mm:ss"); } @Bindable public String getMessage() { return message.message; } public void dismissError(View btn) { presenter.controller.clearErrors(); } }