blob: 2cf5dbf6eccf24f5304daf8927cce30d240e7156 [file] [log] [blame]
package com.android.customization.picker;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import androidx.annotation.Nullable;
/**
* BroadcastReceiver that can notify a listener when the system time (minutes) changes.
* Use {@link #registerNewReceiver(Context, TimeListener)} to create a new instance that will be
* automatically registered using the given Context.
*/
public class TimeTicker extends BroadcastReceiver {
public interface TimeListener {
void onCurrentTimeChanged();
}
public static TimeTicker registerNewReceiver(Context context, TimeListener listener) {
TimeTicker receiver = new TimeTicker(listener);
// Register broadcast receiver for time tick
final IntentFilter filter = new IntentFilter(Intent.ACTION_TIME_TICK);
context.registerReceiver(receiver, filter);
return receiver;
}
@Nullable private TimeListener mListener;
private TimeTicker(TimeListener listener) {
mListener = listener;
}
@Override
public void onReceive(Context context, Intent intent) {
if (mListener != null) {
mListener.onCurrentTimeChanged();
}
}
}