CONSTANT.h 9.91 KB
//
//  CONSTANT.h
//  Duoduo
//
//  Created by 独嘉 on 14-2-18.
//  Copyright (c) 2014年 zuoye. All rights reserved.
//
#include <Foundation/Foundation.h>

/**
 *  发送文件的标记
 */
// 发送文件的标记
#define FILE_SEND 1

// 作为jpeg图片上传时默认的压缩比
extern float const JPEG_QUALITY;

//上传图片用服务器端口
#define SERVER_PORT_UPLOADIMG_INT           9092
//上传图片用服务器端口
#define SERVER_IP                           @"im.xiniunet.com"
// http端口
#define SERVER_PORT                         @":9090"
// 文件上传服务器端口
#define SERVER_PORT_FILEUPLOAD              9094
//系统进入后台运行时间(毫秒)
#define BACKGROUND_SERVICE_TIME             60*1000

#pragma mark - toast形式警告框默认持续时间
#define Toast_Sleep 1.0

// 用于刷新列表后仍然选中刷新前选中的项目
extern NSString *const callBackKey_needRecoverSelectRow;

// 用于代替没数据显示在界面上的占位字符
extern NSString *const REPLACEMENT_NODATA;
// 无头像的时候的替代图片
extern NSString *const REPLACEMENT_NOHEADIMG;
// 变量区分
#define PARAM_MARK   @"&&coigk&&odmeud&&"
// 接收的消息的from部分的分隔符
#define MESSAGE_FROM_SEPARATE @"/"

typedef enum {
    MESSAGETYPE_SESSION = 0,   // 会话
    MESSAGETYPE_GROUP   = 1,   // 群
    MESSAGETYPE_SYSTEM  = 2,   // 系统消息
} MESSAGETYPE;

// 系统消息
extern UInt64 const SESSIONID_SYSTEM;

#pragma mark - 颜色
// 深灰
#define COLOR_KEYNOTE_CUSTOMDRAKGRAY [UIColor darkGrayColor]

#define ScreenWidth  ([[UIScreen mainScreen] bounds].size.width)
#define ScreenHeight  ([[UIScreen mainScreen] bounds].size.height)

// 导航高度(ios7以上含20px状态栏)
//CGFloat top_offset = self.navigationController.navigationBar.frame.origin.y+self.navigationController.navigationBar.frame.size.height;

// 底部tabbar高度
// CGFloat bottom_offset =self.view.frame.size.height - self.self.tabBarController.tabBar.frame.origin.y;

// 系统默认的按钮高度
#define BUTTON_HEIGHT_DEFAULT 44.0f
// label默认高度
#define LABEL_HEIGHT_DEFAULT 30.0f
// 默认的圆角弯曲度
#define CORNERRADIUS_DEFAULT 4.0f
// textfield等控件需要时,设置的字符左右边距
#define PADDINGLEFT_DEFAULT 8
#define PADDINGRIGHT_DEFAULT 8
#pragma mark - 边距
#define MARGIN_DEFAULT 10.0f
#pragma mark - 购物车页面最左边控件的左边距
#define MARGIN_CARTVIEWLEFT 15.0f
#pragma mark - 默认的控件左右边距
#define MARGIN_5 5.0f
#define MARGIN_10 10.0f
#define MARGIN_15 15.0f
#define MARGIN_20 20.0f
#define MARGIN_30 30.0f
#define MARGIN_35 35.0f
#define MARGIN_50 50.0f

// 默认头像的宽高
#define HEADIMAGE_DEFAULT  60.0f

#define FONT_SIZE_30 30.0f
#define FONT_SIZE_28 28.0f
#define FONT_SIZE_24 24.0f
#define FONT_SIZE_23 23.0f
#define FONT_SIZE_20 20.0f
#define FONT_SIZE_18 18.0f
#define FONT_SIZE_16 16.0f
#define FONT_SIZE_14 14.0f
#define FONT_SIZE_13 13.0f
#define FONT_SIZE_12 12.0f
#define FONT_SIZE_9   9.0f
#define FONT_SIZE_10 10.0f
#define FONT_SIZE_11 11.0f

#define dispatch_sync_main_safe(block)\
if ([NSThread isMainThread]) {\
block();\
} else {\
dispatch_sync(dispatch_get_main_queue(), block);\
}

#define dispatch_async_main_safe(block)\
if ([NSThread isMainThread]) {\
block();\
} else {\
dispatch_async(dispatch_get_main_queue(), block);\
}

/*
 * URL定义
 */
// 找回密码
extern NSString *const URL_ForgetPassword;
//修改密码
extern NSString *const URL_ModifyPassword;
/**
 *  其他常量定义
 */
// url中下载文件的命令头
extern NSString *const PREFIX_DOWNLOADFILE;
// url中打开文件的命令头
extern NSString *const PREFIX_OPENFILE;
// url中打开图片的命令头
extern NSString *const PREFIX_OPENIMAGE;
// url中接受群邀请的命令头
extern NSString *const PREFIX_AGREE_GROUPINVITE;
extern NSString *const AGREE_GROUPINVITE;
// url中拒绝群邀请的命令头
extern NSString *const PREFIX_REJECT_GROUPINVITE;
extern NSString *const REJECT_GROUPINVITE;
// url中接受好友请求的命令头
extern NSString *const PREFIX_AGREE_BUDDYADD;
extern NSString *const AGREE_BUDDYADD;
// url中拒绝好友请求的命令头
extern NSString *const PREFIX_REJECT_BUDDYADD;
extern NSString *const REJECT_BUDDYADD;
// url中同意申请加入群的命令头
extern NSString *const PREFIX_AGREE_GROUPMEMBERJOIN;
extern NSString *const AGREE_GROUPMEMBERJOIN;
// url中拒绝申请加入群的命令头
extern NSString *const PREFIX_REJECT_GROUPMEMBERJOIN;
extern NSString *const REJECT_GROUPMEMBERJOIN;

/**
 *  收到iq消息的element name定义
 */
#define IQ_ELEMENTNAME_PROTOBUF @"protobuf"
/*
 * 通过protobuf转换生成的message的类型
 */
// login完成后初期数据的取得
extern NSString *const PROTOBUF_TYPE_UserLoginResponse;
// 发送消息到回执
extern NSString *const PROTOBUF_TYPE_MessageSendResponse;
// 发送消息到回执
extern NSString *const PROTOBUF_TYPE_MessagePushNotify;
// 服务器接收到客户端通知服务器文件上传完毕
extern NSString *const PROTOBUF_TYPE_FileUploadComplteResponse;
// 服务器接受到添加好友请求
extern NSString *const PROTOBUF_TYPE_BuddyAddResponse;
// 服务器接收到群邀请请求
extern NSString *const PROTOBUF_TYPE_GroupInviteResponse;
// 服务器接收到客户端通知服务器图片上传完毕
extern NSString *const PROTOBUF_TYPE_ImageUploadComplteResponse;
// 服务器通知客户端图片准备完毕可以下载
extern NSString *const PROTOBUF_TYPE_ImageDownloadReadyNotify;
// 服务器通知客户端文件准备完毕可以下载
extern NSString *const PROTOBUF_TYPE_FileDownloadReadyNofity;
// 相关用户【包括承租人同事、好友、群中的用户】的状态改变通知
extern NSString *const PROTOBUF_TYPE_UserStateChangeNofity;
// 服务器向客户端发送添加好友请求
extern NSString *const PROTOBUF_TYPE_BuddyAddNotify;
// 服务器向客户端发送邀请加入群
extern NSString *const PROTOBUF_TYPE_GroupInviteNotify;
// 服务器端响应客户端发送的加入群请求
extern NSString *const PROTOBUF_TYPE_GroupMemberJoinReponse;
// 服务器将加入群请求发送给所有管理员
extern NSString *const PROTOBUF_TYPE_GroupMemberJoinNotify;
// 服务器接收到管理员对申请加入群的处理
extern NSString *const PROTOBUF_TYPE_GroupMemberJoinReplyReponse;
// 群新成员加入通知
extern NSString *const PROTOBUF_TYPE_GroupNewMemberJoinedNotify;
// 服务器将管理员审核结果通知给加入群的那个用户
extern NSString *const PROTOBUF_TYPE_GroupMemberJoinProcessNotify;
// 服务器收到用户对请求加好友的处理回复
extern NSString *const PROTOBUF_TYPE_BuddyAddReplyResponse;
// 好友新增加入通知
extern NSString *const PROTOBUF_TYPE_BuddyAddedNofity;
// 服务器将对方处理好友请求的结果通知给请求的那个用户
extern NSString *const PROTOBUF_TYPE_BuddyAddProcessNotify;
// 服务器收到群邀请处理结果
extern NSString *const PROTOBUF_TYPE_GroupInviteReplyReponse;
// 服务器将群邀请处理结果发给被邀请发起者(管理员)
extern NSString *const PROTOBUF_TYPE_GroupInviteProcessNotify;
// 服务器创建群结果处理
extern NSString *const PROTOBUF_TYPE_GroupCreateProcessNotify;
// 服务器更新群结果处理
extern NSString *const PROTOBUF_TYPE_GroupUpdateProcessNotify;
// 服务器收到用户改变状态的请求
extern NSString *const PROTOBUF_TYPE_UserStateChangeResponse;
// 服务器收到群管理员踢出群的请求
extern NSString *const PROTOBUF_TYPE_GroupMemberRemoveResponse;
// 服务器发送群踢出通知
extern NSString *const PROTOBUF_TYPE_GroupMemberRemovedNotify;

#pragma mark - 消息名称定义
// 注册登录结果回调
extern NSString *const noti_LoginResult;
// 注册接收IQ消息(不可离线)
extern NSString *const noti_ReceiveIQ;
// 注册接收非IQ消息(可以离线)
extern NSString *const noti_MessageCenter_didReceiveMessage;
// 用于申请加入群/申请好友的回调
extern NSString *const noti_System_showAddMemberOrGroupResponse;
// 群邀请发出时显示服务器收到返回的结果
extern NSString *const noti_System_showGroupInviteResponse;
// 注册用户在线状态回调
extern NSString *const noti_pb_userPresenceGetResult;
// 刷新群列表
extern NSString *const noti_refreshGroupOtl;
// 刷新联系人列表
extern NSString *const noti_refreshContactOtl;
// 刷新聊天列表
extern NSString *const noti_refreshSessionTable;
// 注册登录成功
extern NSString *const noti_LoginView_LoginSuccess;
// 注册登录失败
extern NSString *const noti_LoginView_LoginFail;
// 下载图片的回调
extern NSString *const noti_ImageHelper_didDownloadImage;
// 下载用户头像的回调
extern NSString *const noti_MainView_didDownAvatar;
// 文件上传结果的回调
extern NSString *const noti_FileHelper_didUploadFile;
// 文件下载结果的回调
extern NSString *const noti_FileHelper_didDownloadFile;


#pragma mark - 字典KEY的定义
extern NSString *const dic_key_response;

/**
 *  定义xmppmessage数据字段
 */
extern NSString *const XMPPMESSAGE_MESSAGE;
extern NSString *const XMPPMESSAGE_FROM;
extern NSString *const XMPPMESSAGE_BODY;
extern NSString *const XMPPMESSAGE_IQ;
extern NSString *const XMPPMESSAGE_SUBJECT;
extern NSString *const XMPPMESSAGE_TYPE;

// 群消息
extern NSString *const XMPPMESSAGE_GROUP;
// 承租群消息
extern NSString *const XMPPMESSAGE_TENANT;
// 个人消息
extern NSString *const XMPPMESSAGE_JID;
// 默认承租人群号
#define DEFAULT_TENANT_ID @"800000"
// client 地址
#define CLIENT_IP                           @"im.xiniunet.com"

/**
*  Debug模式和Release模式不同的宏定义
*/

//-------------------打印--------------------
#ifdef DEBUG
#define NEED_OUTPUT_LOG             1
#define Is_CanSwitchServer          1
#else
#define NEED_OUTPUT_LOG             0
#define Is_CanSwitchServer          0
#endif

#if NEED_OUTPUT_LOG
# define XNLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define XNLog(xx, ...)
#endif