예제 #1
0
  /**
   * MAIN FUNCTION
   *
   * @param args {@link String} array of program arguments
   */
  public static void main(String[] args) {

    // create sync manager and tray icon
    SyncManager manager = new SyncManager();
    TrayManager.createTrayIcon(
        Toolkit.getDefaultToolkit().getImage(SimpleMirror.TRAY_ICON_FILE),
        SimpleMirror.TRAY_TOOLTIP);

    // check program arguments
    for (String arg : args) {

      if (arg.equals("-q") || arg.equals("-quiet")) {
        SimpleMirror.LOG_ENABLED = false;
      } else if (arg.equals("-s") || arg.equals("-service")) {
        SimpleMirror.START_SERVICE = true;
      } else if (arg.equals("-h") || arg.equals("-help")) {
        System.err.println(
            "SimpleMirror Syntax: java -jar simplemirror.jar <config-file> [-q | -quiet]");
        System.err.println("-quiet\tno console output");
        System.err.println("-q\tsee -quiet");
        System.err.println("-service\truns as service after first sync");
        System.err.println("-s\tsee -service");
        System.err.println("-help\tshow this help");
        System.err.println("-h\tsee -help");
      } else {
        SimpleMirror.CONFIG_FILE = arg;
      }
    }

    // start sync service
    if (SimpleMirror.START_SERVICE) {
      // background sync thread
      SimpleMirror.sSyncService = new SyncService(manager);
      new Thread(sSyncService).start();

      // background keep alive thread
      new Thread(new KeepAliveThread()).start();
    } else {

      try {
        manager.setMirrors(SimpleMirror.readMirrors());
        if (manager.sync()) {
          SimpleMirror.log("Synchronized");
        } else {
          SimpleMirror.err("Error while synchronizing");
        }
      } catch (IOException e) {
        SimpleMirror.err("Can not read mirrors from " + SimpleMirror.CONFIG_FILE);
      }

      TrayManager.removeTrayIcon();
    }
  }
예제 #2
0
  private void statusChanged() {
    Control.Status status = mControl.getCurrentStatus();
    switch (status) {
      case CONNECTING:
        mStatusBarLabel.setText(Tr.tr("Connecting..."));
        break;
      case CONNECTED:
        mChatView.setColor(Color.WHITE);
        mStatusBarLabel.setText(Tr.tr("Connected"));
        NotificationManager.hideAllNotifications();
        break;
      case DISCONNECTING:
        mStatusBarLabel.setText(Tr.tr("Disconnecting..."));
        break;
      case DISCONNECTED:
        mChatView.setColor(Color.LIGHT_GRAY);
        mStatusBarLabel.setText(Tr.tr("Not connected"));
        // if (mTrayIcon != null)
        //    trayIcon.setImage(updatedImage);
        break;
      case SHUTTING_DOWN:
        mMainFrame.save();
        mChatListView.save();
        mTrayManager.removeTray();
        mMainFrame.setVisible(false);
        mMainFrame.dispose();
        break;
      case FAILED:
        mStatusBarLabel.setText(Tr.tr("Connecting failed"));
        break;
      case ERROR:
        mChatView.setColor(Color.lightGray);
        mStatusBarLabel.setText(Tr.tr("Connection error"));
        break;
    }

    mMainFrame.onStatusChanged(status);
  }
예제 #3
0
 void updateTray() {
   mTrayManager.setTray();
 }