package org.acra.file; import android.content.Context; import android.support.annotation.NonNull; import java.io.File; import java.util.Arrays; /** * Locates crash reports. * * @author William Ferguson * @since 4.8.0 */ public final class ReportLocator { // Folders under the app folder. private static final String UNAPPROVED_FOLDER_NAME = "ACRA-unapproved"; private static final String APPROVED_FOLDER_NAME = "ACRA-approved"; private final Context context; public ReportLocator(@NonNull Context context) { this.context = context; } @NonNull public File getUnapprovedFolder() { return context.getDir(UNAPPROVED_FOLDER_NAME, Context.MODE_PRIVATE); } @NonNull public File[] getUnapprovedReports() { final File[] reports = getUnapprovedFolder().listFiles(); if (reports == null) { return new File[0]; } return reports; } @NonNull public File getApprovedFolder() { return context.getDir(APPROVED_FOLDER_NAME, Context.MODE_PRIVATE); } /** * @return Approved reports sorted by creation time. */ @NonNull public File[] getApprovedReports() { final File[] reports = getApprovedFolder().listFiles(); if (reports == null) { return new File[0]; } Arrays.sort(reports, new LastModifiedComparator()); return reports; } }