package net.osmand.plus.dashboard.tools;
import android.support.annotation.NonNull;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.dashboard.DashBaseFragment;
public final class DashFragmentData implements Comparable<DashFragmentData> {
public final String tag;
public final Class<? extends DashBaseFragment> fragmentClass;
public final ShouldShowFunction shouldShowFunction;
public final int position;
public final String rowNumberTag;
public DashFragmentData(String tag, Class<? extends DashBaseFragment> fragmentClass,
ShouldShowFunction shouldShowFunction, int position, String rowNumberTag) {
this.tag = tag;
this.fragmentClass = fragmentClass;
this.shouldShowFunction = shouldShowFunction;
this.position = position;
this.rowNumberTag = rowNumberTag;
}
@Override
public int compareTo(@NonNull DashFragmentData another) {
return position - another.position;
}
public boolean hasRows() {
return rowNumberTag != null;
}
public boolean canBeDisabled() {
return shouldShowFunction.getTitleId() != -1;
}
public static abstract class ShouldShowFunction {
public abstract boolean shouldShow(OsmandSettings settings, MapActivity activity, String tag);
public int getTitleId() {
return -1;
}
}
}