var angular = require('angular');
var _ = require('jsUtil');
require('./modules');
require('./services/NoticeService');
'use strict';

var module = angular.module('notice.services');

module.run(function($rootScope, $timeout, NoticeService) {

  sysEventListener();

  function sysEventListener() {
    /**
    * 网络连接恢复时，刷新通知列表
    */
    $rootScope.$on('server.online', function() {
      NoticeService.refresh();
    });

    /**
    * 当应用从后台运行恢复到前台运行时，刷新通知列表。
    */
    $rootScope.$on('resume', function() {
      $timeout(function() {
        NoticeService.refresh();
      });
    });
    /**
    * 监听开屏事件，刷新通知列表。
    */
    $rootScope.$on('active', function() {
      $timeout(function() {
        NoticeService.refresh();
      });
    });
  }

  $rootScope.$on('logout', function(event) {
    NoticeService.changeUser();
  });

  /**
   * 捕获事件：服务器地址更改。
   */
  $rootScope.$on('serverUrl.changed', function() {
    NoticeService.clear();
    localStorage.removeItem('userId');
    localStorage.removeItem('userToken');
  });

});

module.run(function(NoticeService){
  NoticeService.appNotices.registerUnreadNumberChange('dbsy', function(unreadNum) {
    if (window.SinoNetwork && window.SinoNetwork.sendNotice) {
      SinoNetwork.sendNotice(unreadNum);
    }
  });
});
