首页>代码>Idea插件,延长试用时间>/ide-eval-resetter-master/src/main/java/io/zhile/research/intellij/MainComponent.java
                
                package io.zhile.research.intellij;
import com.intellij.notification.Notification;
import com.intellij.notification.NotificationType;
import com.intellij.openapi.components.ApplicationComponent;
import io.zhile.research.intellij.action.ResetAction;
import io.zhile.research.intellij.helper.Constants;
import io.zhile.research.intellij.helper.NotificationHelper;
import org.jetbrains.annotations.NotNull;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
import java.util.prefs.Preferences;
public class MainComponent implements ApplicationComponent {
    private static final long RESET_PERIOD = 2160000000L; // 25 days
    public void initComponent() {
        Preferences prefs = Preferences.userRoot().node(Constants.PLUGIN_NAME);
        long lastResetTime = prefs.getLong(Constants.PRODUCT_NAME + Constants.PRODUCT_HASH, 0L);
        new Timer().schedule(new TimerTask() {
            @Override
            public void run() {
                if (lastResetTime > 0) {
                    Date date = new Date(lastResetTime);
                    DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    NotificationHelper.showInfo(null, "The last reset time: " + format.format(date));
                }
                new ResetTimerTask(lastResetTime).run();
            }
        }, 3000);
    }
    protected static class ResetTimerTask extends TimerTask {
        private final long lastResetTime;
        public ResetTimerTask(long lastResetTime) {
            this.lastResetTime = lastResetTime;
        }
        @Override
        public void run() {
            if (System.currentTimeMillis() - lastResetTime > RESET_PERIOD) {
                String message = "It has been a long time since the last reset!\nWould you like to reset it again?";
                Notification notification = NotificationHelper.NOTIFICATION_GROUP.createNotification(Constants.PLUGIN_NAME, null, message, NotificationType.INFORMATION);
                notification.addAction(new ResetAction());
                notification.notify(null);
            }
            new Timer().schedule(new ResetTimerTask(lastResetTime), 3600000); // 60 min
        }
    }
    @Override
    public void disposeComponent() {
        // for compatibility
    }
    @Override
    public @NotNull
    String getComponentName() {
        return getClass().getName(); // for compatibility
    }
}

 最近下载
最近下载 
                 
                 
                 最近浏览
最近浏览 
                