Merge pull request #783 from SamWhited/quiet-hours
Update summary in TimePreference change listener
This commit is contained in:
commit
5603440a91
|
@ -24,7 +24,7 @@ public final class Config {
|
||||||
|
|
||||||
public static final boolean NO_PROXY_LOOKUP = false; //useful to debug ibb
|
public static final boolean NO_PROXY_LOOKUP = false; //useful to debug ibb
|
||||||
|
|
||||||
private static final long MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;
|
public static final long MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;
|
||||||
public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY / 2;
|
public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY / 2;
|
||||||
public static final int MAM_MAX_MESSAGES = 500;
|
public static final int MAM_MAX_MESSAGES = 500;
|
||||||
|
|
||||||
|
|
|
@ -72,20 +72,15 @@ public class NotificationService {
|
||||||
if (!mXmppConnectionService.getPreferences().getBoolean("enable_quiet_hours", false)) {
|
if (!mXmppConnectionService.getPreferences().getBoolean("enable_quiet_hours", false)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
final Calendar startTime = Calendar.getInstance();
|
final long startTime = mXmppConnectionService.getPreferences().getLong("quiet_hours_start", TimePreference.DEFAULT_VALUE) % Config.MILLISECONDS_IN_DAY;
|
||||||
startTime.setTimeInMillis(mXmppConnectionService.getPreferences().getLong("quiet_hours_start", TimePreference.DEFAULT_VALUE));
|
final long endTime = mXmppConnectionService.getPreferences().getLong("quiet_hours_end", TimePreference.DEFAULT_VALUE) % Config.MILLISECONDS_IN_DAY;
|
||||||
final Calendar endTime = Calendar.getInstance();
|
final long nowTime = Calendar.getInstance().getTimeInMillis() % Config.MILLISECONDS_IN_DAY;
|
||||||
endTime.setTimeInMillis(mXmppConnectionService.getPreferences().getLong("quiet_hours_end", TimePreference.DEFAULT_VALUE));
|
|
||||||
final Calendar nowTime = Calendar.getInstance();
|
|
||||||
|
|
||||||
startTime.set(nowTime.get(Calendar.YEAR), nowTime.get(Calendar.MONTH), nowTime.get(Calendar.DATE));
|
if (endTime < startTime) {
|
||||||
endTime.set(nowTime.get(Calendar.YEAR), nowTime.get(Calendar.MONTH), nowTime.get(Calendar.DATE));
|
return nowTime > startTime || nowTime < endTime;
|
||||||
|
} else {
|
||||||
if (endTime.before(startTime)) {
|
return nowTime > startTime && nowTime < endTime;
|
||||||
endTime.add(Calendar.DATE, 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nowTime.after(startTime) && nowTime.before(endTime);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean conferenceNotificationsEnabled() {
|
public boolean conferenceNotificationsEnabled() {
|
||||||
|
|
|
@ -3,6 +3,7 @@ package eu.siacs.conversations.ui;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.preference.DialogPreference;
|
import android.preference.DialogPreference;
|
||||||
|
import android.preference.Preference;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TimePicker;
|
import android.widget.TimePicker;
|
||||||
|
@ -11,12 +12,13 @@ import java.text.DateFormat;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
public class TimePreference extends DialogPreference {
|
public class TimePreference extends DialogPreference implements Preference.OnPreferenceChangeListener {
|
||||||
private TimePicker picker = null;
|
private TimePicker picker = null;
|
||||||
public final static long DEFAULT_VALUE = 0;
|
public final static long DEFAULT_VALUE = 0;
|
||||||
|
|
||||||
public TimePreference(final Context context, final AttributeSet attrs) {
|
public TimePreference(final Context context, final AttributeSet attrs) {
|
||||||
super(context, attrs, 0);
|
super(context, attrs, 0);
|
||||||
|
this.setOnPreferenceChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void setTime(final long time) {
|
protected void setTime(final long time) {
|
||||||
|
@ -25,8 +27,7 @@ public class TimePreference extends DialogPreference {
|
||||||
notifyChanged();
|
notifyChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void updateSummary() {
|
protected void updateSummary(final long time) {
|
||||||
final long time = getPersistedLong(DEFAULT_VALUE);
|
|
||||||
final DateFormat dateFormat = android.text.format.DateFormat.getTimeFormat(getContext());
|
final DateFormat dateFormat = android.text.format.DateFormat.getTimeFormat(getContext());
|
||||||
final Date date = new Date(time);
|
final Date date = new Date(time);
|
||||||
setSummary(dateFormat.format(date.getTime()));
|
setSummary(dateFormat.format(date.getTime()));
|
||||||
|
@ -71,7 +72,6 @@ public class TimePreference extends DialogPreference {
|
||||||
}
|
}
|
||||||
|
|
||||||
setTime(c.getTimeInMillis());
|
setTime(c.getTimeInMillis());
|
||||||
updateSummary();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,6 +94,12 @@ public class TimePreference extends DialogPreference {
|
||||||
}
|
}
|
||||||
|
|
||||||
setTime(time);
|
setTime(time);
|
||||||
updateSummary();
|
updateSummary(time);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPreferenceChange(final Preference preference, final Object newValue) {
|
||||||
|
((TimePreference) preference).updateSummary((Long)newValue);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue