//
//  iTools.h
//  VclustersGemini
//
//  Created by 余衡武 on 2020/4/1.
//  Copyright © 2020 APPLE. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface iTools : NSObject

#pragma mark 字典、数组转JSONString
/** 字典转JSONString */
+ (NSString *)getJSONStringFromDictionary:(NSDictionary *)dict;

/** 数组转JSONString */
+ (NSString *)getJSONStringFromArray:(NSArray *)array;


#pragma mark 时间戳
/** 获取当前时间戳-以秒为单位-return NSInteger */
+ (NSInteger)getNowTimeStamp;
/** 获取当前时间戳-以秒为单位-return yyyy/MM/dd HH:mm */
+ (NSString *)getNowTimeString;
/** 获取当前时间戳-以秒为单位-return yyyyy年MM月dd日 HH:mm:ss */
+ (NSString *)getNowTimeString1;
/** 获取当前时间戳-以秒为单位-return yyyyy-MM-dd HH:mm:ss */
+ (NSString *)getNowTimeString2;
/** 获取当前时间戳-以毫秒为单位-return NSInteger */
+ (NSInteger)getNowTimeStampSS;
/** 获取当前时间戳-以毫秒为单位--return YYYYMMddhhmmssSSS */
+ (NSString *)getNowTimeStampString;
/** 获取当前时间戳-以天为单位--return yyyy-MM-dd */
+ (NSString *)getNowDateString;
/** 获取现在到某个时间点的时间戳*/
+ (NSInteger)getNowTimeStampToInterval:(NSTimeInterval)second;
/** 把字符串转时间戳Date YYYYMMddhhmmssSSS*/
+ (NSDate *)getTimeStringToDate:(NSString *)timeStr;
/**时间戳转字符串-yyyy/MM/dd HH:mm*/
+ (NSString *)getTimeStringFromTimeInterval:(NSInteger)timeInterval;
/** 秒转播放时间HH:mm:ss */
+ (NSString *)getPlayTimeStringFromTimeInterval:(NSTimeInterval)timeInterval;


#pragma mark 通讯录备份
//ypp add 通讯录文件名格式YmdHis+随机数字(1000~9999) 2020 07 07 15 08 25 1000
+ (NSString *)getContactsNameStr;

#pragma mark 绘制图片
/** 根据颜色绘制图片 */
+ (UIImage*)createImageWithColor:(UIColor*)color;
/** 根据颜色和view 绘制指定大小的图片 */
+ (UIImage *)imageFromColor:(UIColor *)color view:(UIView *)view;
/** 根据颜色和rect 绘制指定大小的图片 */
+ (UIImage *)getImageFromColor:(UIColor *)color rect:(CGRect)rect;
/** 根据颜色和size 绘制指定大小的图片 */
+ (UIImage *)createImageWithColor:(UIColor *)color withSize:(CGSize)size;
/**根据uiview得到图像UIImage*/
+ (UIImage *)getImageFromView:(UIView *)fromView useScreenScale:(BOOL)use useNewMethod:(BOOL)useNewMethod;

/**彩色图变黑白图*/
+ (UIImage*)getGrayImageFromImage:(UIImage*)sourceImage;


#pragma mark 绘制圆角
/**圆角切割*/
+ (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect;

+ (CAShapeLayer *)getCornerRoundWithSelfView:(UIView *)originalView byRoundingCorners:(UIRectCorner)corners cornerRect:(CGRect)rect radius:(CGFloat)radius;

#pragma mark 小数取整 (不四舍五入)
/** 小数取整 不四舍五入 */
+ (NSString *)notRounding:(float)price afterPoint:(int)position;
/** 小数取整 不四舍五入 */
+ (CGFloat)notRoundingFloat:(float)price afterPoint:(int)position;
/** 小数点格式化*/
+ (NSString *)formatFloat:(float)f;


#pragma mark 字符串处理
/** 去除字符串中所有的空格和换行符(包括中间和首尾) */
+ (NSString *)removeSpaceAndNewline:(NSString *)str;
/** 获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)*/
+ (NSString *)FirstCharactor:(NSString *)pString;


#pragma mark 系统语言
/** 获取当前系统的语言 */
+ (NSString *)getCurrentLocalizableLanguage;
/** 当前语言是否为中文 */
+ (BOOL)isChineseLanguage;  /** 得到当前语言是否为中文 */


#pragma mark push到指定vc
/**push到vc 控制器
* 1、NavigationController之前有push过就back
* 2、NavigationController之前没有push过就push
*/
+ (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc;


#pragma mark 文件大小格式化
/**将文件大小B 自动转成对应的B  KB MB GB**/
+ (NSString *)getFileSizeStringFormedValue:(NSInteger)value;


#pragma mark 获取文件MD5值
/**获取文件MD5值*/
+ (NSString*)getFileMD5WithPath:(NSString*)path;


#pragma mark 关闭声音
/**关闭其他播放声音*/
+ (void)closeVoice;


#pragma mark 其他
/**防止N秒内，同部同接口频繁调用的处理*/
+ (BOOL)timeOverTosecode:(NSInteger)index  bannerOldTime:(NSString *)bannerOldTime;

/**根据文件ID 获取文件中心文件URL地址*/
+ (NSURL *)getFileUrlFromFileID:(NSString *)ID;

/**显示Base64二进制图片*/
+ (void)setImageView:(UIImageView *)imageView WithBase64String:(NSString *)avatar;

// iOS裁剪掉图片周围透明度为0的部分
+ (UIImage *)cutAlphaZero:(UIImage *)image;

/**push到vc 控制器
* 1、NavigationController之前有push过就back
* 2、NavigationController之前没有push过就push
*/
+ (void)pushVCWithBackOrPushFromNvc:(UINavigationController *)nvc toVc:(UIViewController *)vc;


/**获取phoneId在CloudPhoneList中的索引*/
+ (NSUInteger)getIndexFromCloudPhoneListWithPhoneID:(NSInteger)phoneId;

/*获取网络时间*/
+ (NSDate *)getInternetDate;
+ (NSString *)getInternetDateString;

+ (UIWindow *)getKeyWindow;

//
+ (NSString *)getTaskUidStr;

//更换图标
+ (void)lc_setAlternateIconName:(NSString*)iconName;

+ (UIViewController *)appRootViewController;
@end

NS_ASSUME_NONNULL_END
