Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DevEnvironment 的DevEnvironmentActivity 界面显示错误 #17

Closed
chenyang1900 opened this issue Nov 24, 2020 · 1 comment
Closed

DevEnvironment 的DevEnvironmentActivity 界面显示错误 #17

chenyang1900 opened this issue Nov 24, 2020 · 1 comment

Comments

@chenyang1900
Copy link

复现步骤:
修改 多个alias
如 :
@module(alias = "IM 模块")
private class IM {

    @Environment(value = "https://im.release.com/", isRelease = true, alias = "线上@环境")
    private String release;

    @Environment(value = "https://im.debug.com", alias = "测试@环境")
    private String debug;
}

界面按照代码显示应该两个选项 ,会出现重复图中第三不应该出现 ;必须卸载app再次安装才能现在正常
image

@afkT
Copy link
Owner

afkT commented Nov 25, 2020

其实这个并不算 bug,反而是一个专门加的功能。

支持通过后台数据动态设置配置信息

出现这个过程是这样的:

// 原始注解数据

@Module(alias = "IM 模块")
private class IM {

    @Environment(value = "https://im.release.com/", isRelease = true, alias = "线上环境")
    private String release;

    @Environment(value = "https://im.debug.com", alias = "测试环境")
    private String debug;
}

当你选中某个环境时会存储一个 MODULE_NAME => MODULE_IM 文件 ( 无后缀,JSON 格式 )

接着你修改数据再进行编译时

// 修改注解数据

@module(alias = "IM 模块")
private class IM {

    @Environment(value = "https://im.release.com/", isRelease = true, alias = "线上@环境")
    private String release;

    @Environment(value = "https://im.debug.com", alias = "测试@环境")
    private String debug;
}

这个时候进入 DevEnvironmentActivity 操作页面,优先判断是否存在 MODULE_IM 文件,存在则解析并且选中该环境

接着把新编译的 线上@环境测试@环境 也添加进去展示,则会出现三个环境情况

支持通过后台数据动态设置配置信息 这个功能就是这样实现的,通过后台返回数据可动态设置服务器地址

DevEnvironment.setIMEnvironment(context, EnvironmentBean) 进行设置自定义配置

当你选中其他环境时,这个 MODULE_IM 自然也变成新的配置信息,再次进入时就会出现只有 线上@环境测试@环境

不过目前只有一个 DevEnvironment.reset(context) 重置全部 Module 环境的 ( 既把全部 MODULE_NAME 文件全部删除,恢复默认)

我新加两个方法吧

  • 每个 Module 新增单独的 reset 方法 如 resetIM

  • 每个 Module 新增单独的 方法名待定 方法,功能用于校验已选中环境是否属于注解配置中的环境

这样就能够自行决定是否需要重置某个模块

@afkT afkT closed this as completed Nov 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants