Skip to content

Commit

Permalink
Migrate to UWP and VS and redesign some things
Browse files Browse the repository at this point in the history
  • Loading branch information
dgsasha committed Jun 11, 2023
1 parent 427e29a commit cb3030d
Show file tree
Hide file tree
Showing 307 changed files with 9,082 additions and 6,670 deletions.
15 changes: 9 additions & 6 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: Bug Report
description: Help improve Reminders by filing a bug report
description: Help improve Cue by filing a bug report
title: "[Bug]: "
labels: ["bug"]
body:
Expand All @@ -8,26 +8,27 @@ body:
value: |
## System information
Make sure you have tested the Flatpak release of Reminders through Flathub before opening a bug report. If the bug is not present in the Flatpak open the report with the package maintainer.
If on Linux, make sure you have tested the Flatpak release of Cue through Flathub before opening a bug report. If the bug is not present in the Flatpak open the report with the package maintainer.
- type: dropdown
id: package
attributes:
label: Package
description: |
Where did you install Reminders from?
Where did you install Cue from?
options:
- Flathub
- Flathub Beta
- Windows Store
validations:
required: true

- type: input
id: distro
attributes:
label: Distribution
label: OS
description: What distribution are you currently using?
placeholder: Fedora 37, Ubuntu 22.04, Arch Linux...
placeholder: Fedora 37, Ubuntu 22.04, Windows 10...
validations:
required: true

Expand Down Expand Up @@ -63,7 +64,9 @@ body:
attributes:
label: Logs
description: |
If you saw an error dialog, click view error and copy the text here. Otherwise you can run something like `sudo journalctl --boot | grep remembrance | grep -i error` in the terminal to see the errors and copy that here.
If you can access the about page, you can also view logs by going to About > Troubleshooting > Debugging Information.
On Windows you can find these logs by pressing `Windows Key + r` and entering `%LOCALAPPDATA%`, and then navigating to `cuedevs.Cue.Devel_4zhcwx3m88y16\LocalState\cue`.
On Linux the logs are at `~/.var/app/io.github.cuedevs.Cue/data/cue`.
render: shell
validations:
required: false
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/flatpak_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ jobs:
- uses: actions/checkout@v3
- uses: bilelmoussaoui/flatpak-github-actions/[email protected]
with:
bundle: Reminders.flatpak
manifest-path: flatpak/io.github.remindersdevs.Reminders.Devel.yml
bundle: Cue.flatpak
manifest-path: flatpak/io.github.cuedevs.Cue.Devel.yml
cache-key: flatpak-builder-${{ github.sha }}
29 changes: 0 additions & 29 deletions .github/workflows/release.yml

This file was deleted.

8 changes: 2 additions & 6 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,7 @@ jobs:
- uses: msys2/setup-msys2@v2
with:
update: true
- uses: actions/setup-dotnet@v3
with:
dotnet-version:
7.x
- uses: microsoft/[email protected]
- name: Build
run: |
dotnet tool install --global wix --version 4.0.0
windows/build_windows.ps1 -msi
msbuild Cue.sln -property:Platform=x64 -property:Configuration=Devel
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ build-dir
bin
out
obj
*.assets.cache
*.user
.vs
81 changes: 50 additions & 31 deletions REMINDERS_SERVICE.md → CUE_SERVICE.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
# Reminders DBus Service version 5.0 Documentation
name: io.github.remindersdevs.Reminders.Service

interface: io.github.remindersdevs.Reminders.Service

object: /io/github/remindersdevs/Reminders/Service
# Cue DBus Service version 5.0 Documentation

Currently this is only packaged with Reminders and anyone who wants to use it will have to have the full Reminders app installed. The reason this exists is to allow integrating the Reminders app with desktop environments through extensions.

Expand All @@ -13,6 +8,30 @@ This service will have some breaking changes made to it at times, so make sure y

Newer versions of this service should usually be compatible with apps that expect an older version. If this ever changes, the bus name will be updated.

To use the dbus service, you first need to connect to the public service on the DBus session bus, and get the private address, and then connect to the private server at that address. This is done for security reasons, and also for performance reasons on Windows. I wont be explaining how to do all of this in your app, but you can always look at my source code if you are confused, and GLib also has an example [here](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-server.c).

Do not try to use this service on Windows, you probably will not have any luck even though Cue runs on Windows.

# Public Service (Session Bus)
name: io.github.cuedevs.Cue.Service

interface: io.github.cuedevs.Cue.Service

object: /io/github/cuedevs/Cue/Service

## Methods

### GetPrivateAddress
Get address of private dbus server
- Returns (s)
- dbus-address
- Type: s

# Private Service
interface: io.github.cuedevs.Cue.Service

object: /io/github/cuedevs/Cue/Service

## Enums
### RepeatType
On what interval to repeat the reminder.
Expand Down Expand Up @@ -41,18 +60,18 @@ Type: a{sv}
| 'id' | s | This is the id of the reminder. | This usually cannot be left blank, no default. |
| 'title' | s | This is the title of the reminder. | '' |
| 'description' | s | This is a short description of the reminder. | '' |
| 'due-date' | u | This is a Unix timestamp for the day that the reminder is due. This should be at 00:00 of the desired day in UTC, and can be 0 if you don't want to set a due date. | 0 |
| 'timestamp' | u | This is a Unix timestamp that sets when the notification will be sent. This has to be on the same day as the due date, and if it isn't the due date will be changed. This can be 0 if you don't want to send a notification. | 0 |
| 'due-date' | t | This is a Unix timestamp for the day that the reminder is due. This should be at 00:00 of the desired day in UTC, and can be 0 if you don't want to set a due date. | 0 |
| 'timestamp' | t | This is a Unix timestamp that sets when the notification will be sent. This has to be on the same day as the due date, and if it isn't the due date will be changed. This can be 0 if you don't want to send a notification. | 0 |
| 'important' | b | Whether or not the reminder is important. | False |
| 'completed' | b | Whether or not the reminder is completed. | False |
| 'repeat-type' | q | This is the enum [RepeatType](#repeattype). | 0 |
| 'repeat-frequency' | q | How often to repeat the reminder, so if 'repeat-type' is 4 and and 'repeat-frequency' is 3, it will repeat every 3 weeks. | 1 |
| 'repeat-days' | q | This is the enum [RepeatDays](#repeatdays). | 0 |
| 'repeat-times'| q | How many times in total the reminder should be repeated, this gets decreased by 1 each time the reminder is repeated. -1 if you want to repeat forever or are not repeating. Must be -1 for Microsoft Tasks. | -1 |
| 'repeat-until' | u | This is a Unix timestamp that represents the last day that the reminder should be repeated on. This should be at 00:00 of the desired day in UTC. Must be 0 for Microsoft Tasks | 0 |
| 'created-timestamp' | u | This is a Unix timestamp that represents the time the reminder was created, this is set automatically and cannot be changed. | 0 |
| 'updated-timestamp' | u | This is a Unix timestamp that represents the last time the reminder was updated, this is set automatically and cannot be changed. | 0 |
| 'completed-date' | u | This is a Unix timestamp that represents the day the reminder was completed, at 00:00 in UTC. 0 if not complete. This is set automatically and cannot be changed. | 0 |
| 'repeat-until' | t | This is a Unix timestamp that represents the last day that the reminder should be repeated on. This should be at 00:00 of the desired day in UTC. Must be 0 for Microsoft Tasks | 0 |
| 'created-timestamp' | t | This is a Unix timestamp that represents the time the reminder was created, this is set automatically and cannot be changed. | 0 |
| 'updated-timestamp' | t | This is a Unix timestamp that represents the last time the reminder was updated, this is set automatically and cannot be changed. | 0 |
| 'completed-date' | t | This is a Unix timestamp that represents the day the reminder was completed, at 00:00 in UTC. 0 if not complete. This is set automatically and cannot be changed. | 0 |
| 'list-id' | s | This is the id of the list that the reminder is in. | 'local' |

## List Object
Expand Down Expand Up @@ -182,12 +201,12 @@ Add a new reminder
- Note that the 'completed', and 'id' key will be ignored here
- You can leave any of these values blank, in that case the default value will be used

- Returns (su)
- Returns (st)
- reminder-id
- Type: s
- Id that was generated to represent the reminder, keep track of these
- created-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was created

### UpdateReminder
Expand All @@ -200,9 +219,9 @@ Update an existing reminder
- Note that the 'completed' key will be ignored here
- You can leave any of these values blank, in that case the previous value will be used

- Returns (u)
- Returns (t)
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was updated

### UpdateCompleted
Expand All @@ -217,12 +236,12 @@ Update the completed status of a reminder
- Type: b
- Whether or not the reminder should be completed
- completed-date
- Type: u
- Type: t
- The Unix timestamp of the day the reminder was completed

- Returns (u)
- Returns (t)
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was updated

### RemoveReminder
Expand All @@ -245,12 +264,12 @@ Update an existing reminder
- Note that the 'completed' key will be ignored here
- You can leave any of these values blank, in that case the previous value will be used

- Returns (u)
- Returns (t)
- updated-reminder-ids
- Type: as
- Ids of reminders that were actually updated (in case there were errors)
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was updated

### UpdateCompletedv
Expand All @@ -265,15 +284,15 @@ Update the completed status of a reminder
- Type: b
- Whether or not the reminder should be completed

- Returns (asu)
- Returns (ast)
- updated-reminder-ids
- Type: as
- Ids of reminders that were actually updated (in case there were errors)
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was updated
- completed-date
- Type: u
- Type: t
- The Unix timestamp of the day the reminder was completed

### RemoveReminderv
Expand Down Expand Up @@ -359,7 +378,7 @@ Read reminders file again and also check for remote updates. Changes will be emi
- The version of the service that is currently loaded (PEP 440)

### Quit
Quits the service
Quits the service, this will not return anything and will close the connection immediately. Make sure to handle the error if needed.

## Signals

Expand Down Expand Up @@ -411,7 +430,7 @@ Emitted when a Reminder is created or updated

### CompletedUpdated
Emitted when a reminder's completed status is changed
- Parameters (ssbuu)
- Parameters (ssbtt)
- [app-id](#app-id-parameter)
- Type: s
- reminder-id
Expand All @@ -421,10 +440,10 @@ Emitted when a reminder's completed status is changed
- Type: b
- Whether or not the reminder was set as completed
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminder was last updated
- completed-date
- Type: u
- Type: t
- The Unix timestamp of the day the reminder was completed

### ReminderRemoved
Expand All @@ -446,7 +465,7 @@ Emitted when a reminder is removed

### RemindersCompleted
Emitted when multiple reminders' completed status changes
- Parameters (saa{sv})
- Parameters (sasbtt)
- [app-id](#app-id-parameter)
- Type: s
- reminder-ids
Expand All @@ -456,10 +475,10 @@ Emitted when multiple reminders' completed status changes
- Type: b
- Whether or not the reminders were set as completed
- updated-timestamp
- Type: u
- Type: t
- The Unix timestamp of when the reminders were updated
- completed-date
- Type: u
- Type: t
- The Unix timestamp of the day the reminders were completed

### RemindersRemoved
Expand Down
49 changes: 49 additions & 0 deletions Cue.msbuildproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 Sasha Hale <[email protected]>
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>.
-->
<Project Sdk="Microsoft.Build.NoTargets/3.7.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Devel</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x64</Platform>
<ProjectGuid>{9B2DF041-7C27-4D85-8FB8-38DD8ACCF3D4}</ProjectGuid>
<TargetFramework>net6.0</TargetFramework>
<Configurations>Devel;Release</Configurations>
<Platforms>x86;x64;ARM64</Platforms>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|ARM64'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|x64'" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Devel|x86'" />

<ItemGroup>
<Content Include="build\$(Platform)\**">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

<Target Name="BuildApp" BeforeTargets="Build">
<PropertyGroup>
<PowerShellExe Condition=" '$(PowerShellExe)'=='' ">%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe</PowerShellExe>
<MSYSRoot Condition=" '$(MSYSRoot)'=='' ">%SystemDrive%\msys64</MSYSRoot>
<PSScript>.\windows\build_windows.ps1 -arches $(Platform) -root $(MSYSRoot) -configuration $(Configuration)</PSScript>
</PropertyGroup>
<Exec Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted -command &quot;&amp; { $(PSScript) } &quot;" ContinueOnError="True" WorkingDirectory="$(MSBuildProjectDirectory)" />
</Target>
</Project>
Loading

0 comments on commit cb3030d

Please sign in to comment.