1 /* 2 * Copyright 2022 Google LLC 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.google.android.libraries.mobiledatadownload; 17 18 import com.google.common.util.concurrent.ListenableFuture; 19 20 /** 21 * Populates MDD with file groups from multiple sources like phenotype or built on the device. 22 * 23 * <p>Clients must overrides the refreshFileGroups method and add groups to {@link 24 * MobileDataDownload#addFileGroup(AddFileGroupRequest)} in the impl. 25 */ 26 public interface FileGroupPopulator { 27 28 /** 29 * Called periodically by MDD to refresh file groups. 30 * 31 * <p>This group should ideally be reading from a source like phenotype, so that mdd gets the 32 * updates from there on a regular basis. 33 */ refreshFileGroups(MobileDataDownload mobileDataDownload)34 ListenableFuture<Void> refreshFileGroups(MobileDataDownload mobileDataDownload); 35 } 36