Code Monkey home page Code Monkey logo

classisland's Issues

改进更新页面

将更新日志移动到与更新设置同级的TabControl下,并添加加载动画

集控功能

允许从指定的url拉取应用设置策略清单,然后从策略清单指定的url拉取档案、设置和限制策略,并与本地合并。

拆分项目部分文件至`ClassIsland.Core`

将项目中文件拆分到ClassIsland.Core,方便后续集控服务器项目引用和扩展支持。

  • ClassIsland中后端Model迁移到项目ClassIsland.Core
  • ClassIsland中来自walterlv的代码迁移到项目Walterlv
  • ClassIsland中后端服务接口抽象到ClassIsland.Core

解耦MainWindow的功能至各个服务

将MainWindow中的各个功能解耦到以下服务:

  • ThemeService
  • ProfileService

将各个窗口解耦到服务:

  • SettingsWindow
  • ProfileSettingsWindow
  • HelpsWindow
  • WelcomeWindow
  • CrashWindow

元素附加设置

允许为档案中部分元素追加自定义设置条目。

  • 追加设置控件接口IAttachedSettingsControl
  • 可追加设置元素基类AttachableSettingsObject
  • 追加设置主机AttachedSettingsHostService
  • 为档案编辑设置界面适配元素附加设置界面
    • 时间点
    • 课表
    • 科目
    • 时间表

从NTP服务器获取当前时间

从默认或者指定的NTP服务器拉取时间,不使用系统时间。

  • 时钟服务TimeService
  • 自定义NTP服务器
  • 设置界面相关条目

天气显示

天气显示、预警功能支持。使用小米天气api。

  • 简略信息天气显示
  • 天气预警
    • 极端天气预警
    • 降水预警

水波纹提醒强调动画

动画描述(大概):

主题色水波纹从界面顶部出发,填充整个桌面,随后淡化;同时主界面被填充区域显示提醒遮罩

展开的时间点显示更多信息

展开的时间点可以显示其它类型的信息。

类型 示例
时间范围 8:00-8:40
已过时间/持续时间 25/40min
剩余时间/持续时间 -15/40min
百分比 50%

实现的类型

  • 时间范围
  • 已过时间/持续时间
  • 剩余时间/持续时间
  • 百分比

其它

  • 配套AttachedSettings
  • 设置选项

从表格导入课表向导

流程图:

flowchart TD
    A["开始导入表格"] --> B("询问界面形式")
    B --> C{"从哪里导入时间表?"}
    C --> |"本表格"| D("选择时间安排区域") --> G
    C --> |"另一表格"| E("打开另一表格") --> D
    C --> |"手动创建"| F("打开档案编辑窗口") --> G
    G("完成时间表导入") --> H("选择课程区域")
    H --> I("选择行列对应关系")
    I --> J{"如何导入时间对应关系?"}
    J --> |"手动指定"| K("手动指定") --> N
    J --> |"自动识别"| L("预览识别结果") --> M("修改识别格式") --> N
    N("选择创建课表的区域") --> O("确认识别结果") --> P{"继续导入课表?"}
    P --> |"是"| N
    P --> |"是,使用新的时间表"| C
    P --> |"否"| Q["完成导入"]

更新欢迎界面

向欢迎界面添加更多设置,增加跳过功能。更新欢迎界面打开主菜单的引导配图

界面缩放功能

提供界面缩放功能,使主界面可以调整缩放比例大小

提醒语音播报

NotificationRequest中添加MaskSpeechTextOverlaySpeechText属性,对应在不同状态下要朗读的文本。

启动屏幕

为应用添加启动屏幕,可以用参数 --noSplash 关闭。

简略信息主机

在如图位置允许在主界面显示简略信息:

Image

  • 简略信息主机 MiniInfoProviderHost
  • 简略信息服务接口(IMiniInfoProvider
  • 主界面简略信息显示支持
  • 设置界面支持

[Bug]拉取集控清单与策略失败

启动软件加载正常,但是显示“今天没有课程”
image
疑似本地网络错误,但是拉取数据逻辑上实现有缺陷。

      拉取集控清单与策略失败
      System.Net.Http.HttpRequestException: An error occurred while sending the request.
       ---> System.IO.IOException: Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。.
       ---> System.Net.Sockets.SocketException (10054): 远程主机强迫关闭了一个现有的连接。
         --- End of inner exception stack trace ---
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
         at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource<System.Int32>.GetResult(Int16 token)
         at System.Net.Security.SslStream.EnsureFullTlsFrameAsync[TIOAdapter](CancellationToken cancellationToken, Int32 estimatedSize)
         at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
         at System.Net.Security.SslStream.ReadAsyncInternal[TIOAdapter](Memory`1 buffer, CancellationToken cancellationToken)
         at System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1.StateMachineBox`1.System.Threading.Tasks.Sources.IValueTaskSource<TResult>.GetResult(Int16 token)
         at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
         --- End of inner exception stack trace ---
         at System.Net.Http.HttpConnection.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
         at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
         at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
         at System.Net.Http.HttpClient.GetStringAsyncCore(HttpRequestMessage request, CancellationToken cancellationToken)
         at ClassIsland.Helpers.WebRequestHelper.GetJson[T](Uri uri) in C:\projects\classisland\ClassIsland\Helpers\WebRequestHelper.cs:line 16
         at ClassIsland.Helpers.WebRequestHelper.SaveJson[T](Uri uri, String path) in C:\projects\classisland\ClassIsland\Helpers\WebRequestHelper.cs:line 23
         at ClassIsland.Services.ManagementService.SetupManagement() in C:\projects\classisland\ClassIsland\Services\ManagementService.cs:line 90 

内置更新说明

在帮助文档中加入每次更新的功能亮点和更新日志。

更新镜像源

更新时允许从镜像下载更新。

支持的下载源

  • Microsoft AppCenter
  • GitHub
  • Gitee

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.