package com.alamkanak.weekview;

import androidx.annotation.IntRange; import java.util.ArrayList; import java.util.Calendar; import java.util.List;

public class PrefetchingWeekViewLoader implements WeekViewLoader { private WeekViewLoader weekViewLoader; private int prefetchingPeriod;

public PrefetchingWeekViewLoader(WeekViewLoader weekViewLoader, @IntRange(from = 1L) int prefetchingPeriod) {
    if (prefetchingPeriod < 1) {
        throw new IllegalArgumentException("Must specify prefetching period of at least 1!");
    }
    this.weekViewLoader = weekViewLoader;
    this.prefetchingPeriod = prefetchingPeriod;
}

@Override
public List<WeekViewEvent> onLoad(int periodIndex) {
    List<WeekViewEvent> loadedEvents = weekViewLoader.onLoad(periodIndex);
    List<WeekViewEvent> events = new ArrayList<>();
    if (loadedEvents != null) {
        events.addAll(loadedEvents);
    }
    for (int i = 1; i <= this.prefetchingPeriod; i++) {
        loadedEvents = weekViewLoader.onLoad(periodIndex - i);
        if (loadedEvents != null) {
            events.addAll(loadedEvents);
        }
        loadedEvents = weekViewLoader.onLoad(periodIndex + i);
        if (loadedEvents != null) {
            events.addAll(loadedEvents);
        }
    }
    return events;
}

@Override
public int toWeekViewPeriodIndex(Calendar instance) {
    return weekViewLoader.toWeekViewPeriodIndex(instance);
}

}

convert kotlin to java code below from previous classpackage comalamkanakweekviewimport androidxannotationIntRangeimport javautil h1PrefetchingWeekViewLoaderh1 This class provides prefetching data l

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

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