# evopro **Repository Path**: boboyuwu/evopro ## Basic Information - **Project Name**: evopro - **Description**: evopro - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-01 - **Last Updated**: 2021-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [higinn](http://106.75.74.61:8089) ## 登录按钮的字体颜色 runtime.loginButtonTextColor=#FFFFFF ## feature-resource module feature-resource 模块为公共资源模块, - 主要放置全局资源,例如 返回按钮,关闭按钮等 非特定业务资源, - 特定业务资源,放置在对应的模块中,不放置在 feature-resource 模块. - 如果遇到 业务模块资源冲突,例如环信和融云的一些图标冲突,修改资源添加前缀,防止编译失败 - 项目定制资源,通过复制到 app相应 构建变体 目录实现 ## business module business 模块为业务公共模块,主要用来放置 公共业务逻辑的约定,不放置具体实现. 例如 通讯录模块 会向其他 模块 提供 通讯录详情/根据id获取用户信息 等接口, 则 business 模块会有 - IContactProvider接口约定 通讯对外提供的能力, ```kotlin interface IContactProvider { fun getUserInfoByImid(imid: String): UserInfo? fun getUserInfoById(id: String): UserInfo? fun chooseCreateGroup(activity: Activity, userIds: Array) fun chooseCreateGroup(context: Context, userIds: Array?, mTargetId: String, callback: IContactChooseCallback) fun startUserDetialByImid(context: Context, imid: String) fun choose(activity: Activity, callback: IContactChooseCallback) class UserInfo(var id: String? = null, var imid: String? = null, var name: String? = null, var avatar: String? = null) } ``` - (在 BusinessContext中以单例的形式提供) ```kotlin class BusinessContext { companion object { var contact: IContactProvider? = null } } ``` - 需要在通讯录模块中实现, ```java public final class SealContactContext implements IContactProvider { private SealContactContext(Application mContext) { BusinessContext.Companion.setContact(this); //... } } ``` - 即时通讯模块使用 ```kotlin fun demo(){ BusinessContext.contact!!.getUserInfoByImid("imid") } ``` ## fg-vpn:vpn配置模块 使用详情参考fg-vpn#README.md # feat: 增加迪普vpn feat: 插件框架 增加attachBaseContext回调