package com.alamkanak.weekview;

import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import java.util.Calendar;

/**a broadcast receiver that tells you when the time has changed (minute, date, configuration of time/date...), based on: https://stackoverflow.com/a/48782963/878126 */ public abstract class TimeChangedBroadcastReceiver extends BroadcastReceiver { private Calendar curCal = Calendar.getInstance();

public abstract void onTimeChanged();

@SuppressWarnings("MemberVisibilityCanBePrivate")
public void register(Context context, Calendar cal) {
    curCal = cal;
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_TIME_CHANGED);
    filter.addAction(Intent.ACTION_DATE_CHANGED);
    filter.addAction(Intent.ACTION_TIME_TICK);
    filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
    context.registerReceiver(this, filter);
    Calendar newDate = Calendar.getInstance();
    if (!WeekViewUtil.isSameDayAndHourAndMinute(newDate, curCal)) {
        curCal = newDate;
        onTimeChanged();
    }
}

@Override
public void onReceive(Context context, Intent intent) {
    Calendar newTime = Calendar.getInstance();
    if (!WeekViewUtil.isSameDayAndHourAndMinute(newTime, curCal)) {
        curCal = newTime;
        onTimeChanged();
    }
}

}

convert kotlin to java code below from previous classpackage comalamkanakweekviewimport androidcontentBroadcastReceiverimport androidcontentContextimport androidcontentIntentimport androidcontentInten

原文地址: https://www.cveoy.top/t/topic/jdYn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录