package tim.prune.tips;
/**
* Class to manage the showing of tips according
* to the fixed TipDefinitions
*/
public abstract class TipManager
{
public static final int Tip_UseAMapCache = 0;
public static final int Tip_LearnTimeParams = 1;
public static final int Tip_DownloadSrtm = 2;
public static final int Tip_UseSrtmFor3d = 3;
public static final int Tip_ManuallyCorrelateOne = 4;
private static final int Number_Tips = Tip_ManuallyCorrelateOne + 1;
/** Array of tip definitions */
private static TipDefinition[] TIPDEFS = new TipDefinition[Number_Tips];
/** Static block to initialise tip definitions */
static
{
TIPDEFS[Tip_UseAMapCache] = new TipDefinition("tip.useamapcache", 150);
TIPDEFS[Tip_LearnTimeParams] = new TipDefinition("tip.learntimeparams");
TIPDEFS[Tip_DownloadSrtm] = new TipDefinition("tip.downloadsrtm", 5);
TIPDEFS[Tip_UseSrtmFor3d] = new TipDefinition("tip.usesrtmfor3d");
TIPDEFS[Tip_ManuallyCorrelateOne] = new TipDefinition("tip.manuallycorrelateone");
}
/**
* Fire a trigger for the specified tip and get the message key if tip should be shown
* @param inTipNumber number of tip from constants
* @return message key if a message should be shown, or null otherwise
*/
public static String fireTipTrigger(int inTipNumber)
{
try {
TipDefinition tip = TIPDEFS[inTipNumber];
if (tip.shouldShowMessage()) {
return tip.getMessageKey();
}
}
catch (ArrayIndexOutOfBoundsException obe) {} // unrecognised tip given
return null;
}
}