private static BrowserFunction browserFunction;
public static void checkForDonationPopup() {
if (shell != null) {
if (DEBUG) {
new MessageBoxShell(SWT.OK, "Donations Test", "Already Open").open(null);
}
return;
}
FeatureManager fm = PluginInitializer.getDefaultInterface().getUtilities().getFeatureManager();
FeatureDetails[] fds = fm.getFeatureDetails( "core" );
for ( FeatureDetails fd: fds ){
if ( !fd.hasExpired()){
return;
}
}
long maxDate = COConfigurationManager.getLongParameter("donations.maxDate", 0);
boolean force = maxDate > 0 && SystemTime.getCurrentTime() > maxDate ? true : false;
//Check if user has already donated first
boolean alreadyDonated = COConfigurationManager.getBooleanParameter(
"donations.donated", false);
if (alreadyDonated && !force) {
if (DEBUG) {
new MessageBoxShell(SWT.OK, "Donations Test",
"Already Donated! I like you.").open(null);
}
return;
}
OverallStats stats = StatsFactory.getStats();
if (stats == null) {
return;
}
long upTime = stats.getTotalUpTime();
int hours = (int) (upTime / (60 * 60)); //secs * mins
//Ask every DONATIONS_ASK_AFTER hours.
int nextAsk = COConfigurationManager.getIntParameter(
"donations.nextAskHours", 0);
if (nextAsk == 0) {
// First Time
COConfigurationManager.setParameter("donations.nextAskHours", hours
+ initialAskHours);
COConfigurationManager.save();
if (DEBUG) {
new MessageBoxShell(SWT.OK, "Donations Test",
"Newbie. You're active for " + hours + ".").open(null);
}
return;
}
if (hours < nextAsk && !force) {
if (DEBUG) {
new MessageBoxShell(SWT.OK, "Donations Test", "Wait "
+ (nextAsk - hours) + ".").open(null);
}
return;
}
long minDate = COConfigurationManager.getLongParameter("donations.minDate",
0);
if (minDate > 0 && minDate > SystemTime.getCurrentTime()) {
if (DEBUG) {
new MessageBoxShell(SWT.OK, "Donation Test", "Wait "
+ ((SystemTime.getCurrentTime() - minDate) / 1000 / 3600 / 24)
+ " days").open(null);
}
return;
}