Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
90bc1f6
feat: add version of casio watchface with weather
Ghoelian Aug 3, 2024
adef8e8
fix: align weather temperature with date
Ghoelian Aug 3, 2024
7e75680
fix: add degrees symbol and C/F to 7 segment 40 point font
Ghoelian Aug 3, 2024
ff352f4
chore: ignore node_modules
Ghoelian Aug 3, 2024
ffff67a
feat: add notification and chime vibration settings
Ghoelian Aug 3, 2024
cfe11ef
Merge branch 'vibration-settings' into ghoelian
Ghoelian Aug 3, 2024
d57ae5c
feat: make weather a setting
Ghoelian Aug 4, 2024
756b4f9
fix: flipped the hiding around
Ghoelian Aug 4, 2024
c22a9df
feat: reaset timeout tick on tap
Ghoelian Aug 4, 2024
4746a3f
Merge branch 'casio-weather' into ghoelian
Ghoelian Aug 4, 2024
93f1002
feat: add json style watchface
Ghoelian Aug 5, 2024
123c4ed
Merge branch 'json-watchface' into ghoelian
Ghoelian Aug 5, 2024
279bf77
chore: also run workflows on my branch
Ghoelian Aug 28, 2024
950ac01
feat: don't wake screen on chime
Ghoelian Aug 28, 2024
41d2ccd
Revert "feat: don't wake screen on chime"
Ghoelian Aug 28, 2024
6cc9662
Merge branch 'main' into casio-weather
Ghoelian Aug 29, 2024
a3f7dc1
Merge https://github.com/InfiniTimeOrg/InfiniTime into ghoelian
Ghoelian Nov 17, 2024
28c6958
Merge branch 'ghoelian' of github.com:Ghoelian/InfiniTime into ghoelian
Ghoelian Nov 21, 2024
b691d8d
chore: remove json watchface
Ghoelian Nov 21, 2024
884a508
chore: add node packages
Ghoelian Nov 21, 2024
569c3a2
chore: add build.sh
Ghoelian Nov 21, 2024
e75735b
chore: remove json watchface
Ghoelian Nov 21, 2024
1bade4b
Merge branch 'InfiniTimeOrg:main' into casio-weather
Ghoelian Nov 21, 2024
76da8d5
fix: update casio watchface to use new SimpleWeatherService attributes
Ghoelian Nov 21, 2024
e33750c
Merge branch 'casio-weather' into ghoelian
Ghoelian Nov 21, 2024
d38b435
fix: remove temperature rounding
Ghoelian Nov 21, 2024
db9e91a
fix: remove temperature rounding
Ghoelian Nov 21, 2024
eb6c362
feat: add option to switch which segment gets replaced with weather
Ghoelian Nov 25, 2024
2d180c8
Merge branch 'InfiniTimeOrg:main' into casio-weather
Ghoelian Nov 25, 2024
5728a4b
Merge branch 'ghoelian' into casio-weather
Ghoelian Dec 2, 2024
26a1fcb
Merge pull request #1 from Ghoelian/casio-weather
Ghoelian Dec 2, 2024
1ebce84
Merge branch 'main' into casio-weather
Ghoelian Jan 21, 2025
ecc44e8
Merge pull request #2 from Ghoelian/casio-weather
Ghoelian Jan 21, 2025
9262b85
chore: ignore node_modules
Ghoelian Aug 3, 2024
87a38d4
feat: add notification and chime vibration settings
Ghoelian Aug 3, 2024
2d7e7d9
chore: add tachometer icon for now
Ghoelian Jan 21, 2025
107e0cc
chore: fix formatting
Ghoelian Jan 23, 2025
61390ec
Merge branch 'main' into casio-weather
Ghoelian Jan 24, 2025
34731a2
fix: fix alignment of weather segments
Ghoelian Jan 26, 2025
3b81510
Merge branch 'casio-weather' of github.com:Ghoelian/InfiniTime into c…
Ghoelian Jan 26, 2025
52fe3a6
fix: also fix alignment of other weather segment
Ghoelian Jan 26, 2025
0682ec5
Merge branch 'InfiniTimeOrg:main' into ghoelian
Ghoelian Jan 26, 2025
b645d58
Merge pull request #3 from Ghoelian/casio-weather
Ghoelian Jan 26, 2025
242b3e0
Merge branch 'ghoelian' into vibration-settings
Ghoelian Jan 26, 2025
bd4c128
Merge pull request #4 from Ghoelian/vibration-settings
Ghoelian Jan 26, 2025
5316ac3
feat: add chime and notification vibration strength settings
Ghoelian Jan 26, 2025
b15fe99
feat: add chime and notification vibration strength settings
Ghoelian Jan 26, 2025
c89882a
chore: ignore node_modules
Ghoelian Jan 26, 2025
34956e2
Merge branch 'vibration-settings-2' of github.com:Ghoelian/InfiniTime…
Ghoelian Jan 26, 2025
f32ec36
fix: not sure what happened there
Ghoelian Jan 26, 2025
ed824a9
fix: actually pass settingsController to Notifications screen
Ghoelian Jan 26, 2025
1fc75c8
chore: remove leading newline
Ghoelian Jan 26, 2025
9a7f918
Merge branch 'ghoelian' into vibration-temp
Ghoelian Jan 26, 2025
3e9dc62
Merge branch 'vibration-temp' of github.com:Ghoelian/InfiniTime into …
Ghoelian Jan 26, 2025
1ba9525
chore: remove leading newline
Ghoelian Jan 26, 2025
dd25ec5
Merge pull request #6 from Ghoelian/vibration-temp
Ghoelian Jan 26, 2025
3611944
Merge branch 'main' into vibration-settings-2
Ghoelian Feb 12, 2025
f4dd0ef
Merge branch 'main' into casio-weather
Ghoelian Mar 13, 2025
3e7ac7c
Merge branch 'main' into vibration-settings-2
Ghoelian Mar 13, 2025
df3ab7f
Merge branch 'InfiniTimeOrg:main' into ghoelian
Ghoelian Mar 13, 2025
3b8fab8
Merge pull request #7 from Ghoelian/vibration-settings-2
Ghoelian Mar 13, 2025
d7fd7c7
Merge pull request #8 from Ghoelian/casio-weather
Ghoelian Mar 13, 2025
dfd01e3
Update format.yml
Ghoelian Mar 13, 2025
f78fea8
chore: remove json watchface references and fonts
Ghoelian Mar 13, 2025
9607910
Merge branch 'InfiniTimeOrg:main' into ghoelian
Ghoelian Mar 29, 2025
2071ea8
fix: maybe fix short ref not being set in github builds
Ghoelian Mar 29, 2025
c1d4ded
Create a
Ghoelian Jul 11, 2025
06561b4
delete a
Ghoelian Jul 11, 2025
8139f10
Merge branch 'main' into ghoelian
Ghoelian Jul 11, 2025
79a314c
Merge branch 'ghoelian' into merge
Ghoelian Oct 22, 2025
ce12a2d
Merge pull request #9 from Ghoelian/merge
Ghoelian Oct 22, 2025
04db658
feat: try to add accents to fonts
Ghoelian Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Code formatting

on:
pull_request:
branches: [ main ]
branches: [ main, ghoelian ]
paths:
- '**.cpp'
- '**.h'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ name: CI
# Run this workflow whenever the build may be affected
on:
push:
branches: [ main ]
branches: [ main, ghoelian ]
paths-ignore:
- 'doc/**'
- '**.md'
pull_request:
branches: [ main ]
branches: [ main, ghoelian ]
paths-ignore:
- 'doc/**'
- '**.md'
Expand Down
12 changes: 12 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

mkdir -p build
cd build

echo "Configuring build..."
cmake -DARM_NONE_EABI_TOOLCHAIN_PATH="/workspaces/infinitime/gcc-arm" -DNRF5_SDK_PATH="/workspaces/infinitime/nRF5_SDK" -DCMAKE_BUILD_TYPE="Release" -DBUILD_DFU=1 -DBUILD_RESOURCES=1 -DTARGET_DEVICE="PINETIME" ..
echo "Finished configuring build"

echo "Building..."
make -j4 pinetime-mcuboot-app
echo "Finished building"
119 changes: 119 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"dependencies": {
"lv_font_conv": "^1.5.3"
}
}
2 changes: 2 additions & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -420,6 +420,8 @@ list(APPEND SOURCE_FILES
displayapp/screens/settings/SettingShakeThreshold.cpp
displayapp/screens/settings/SettingBluetooth.cpp
displayapp/screens/settings/SettingOTA.cpp
displayapp/screens/settings/SettingNotifVibration.cpp
displayapp/screens/settings/SettingChimeVibration.cpp

## Watch faces
displayapp/screens/WatchFaceAnalog.cpp
Expand Down
56 changes: 56 additions & 0 deletions src/components/settings/Settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ namespace Pinetime {
Orange,
Pink
};
enum class VibrationStrength : uint8_t { Weak = 15, Normal = 35, Strong = 75 };
enum class PTSGaugeStyle : uint8_t { Full, Half, Numeric };
enum class PTSWeather : uint8_t { On, Off };
enum class PrideFlag : uint8_t { Gay, Trans, Bi, Lesbian };
Expand All @@ -48,6 +49,13 @@ namespace Pinetime {
PTSWeather weatherEnable = PTSWeather::Off;
};

enum class CasioWeatherSegment : uint8_t { WeekNumber, DayCounter, DayOfWeek };

struct CasioStyleG7710 {
PTSWeather weatherEnable = PTSWeather::Off;
CasioWeatherSegment weatherSegment = CasioWeatherSegment::DayCounter;
};

struct WatchFaceInfineat {
bool showSideCover = true;
int colorIndex = 0;
Expand Down Expand Up @@ -157,6 +165,27 @@ namespace Pinetime {
return settings.PTS.weatherEnable;
};

void SetCasioWeather(PTSWeather weatherEnable) {
if (weatherEnable != settings.casio.weatherEnable)
settingsChanged = true;
settings.casio.weatherEnable = weatherEnable;
}

PTSWeather GetCasioWeather() const {
return settings.casio.weatherEnable;
}

void SetCasioWeatherSegment(CasioWeatherSegment weatherSegment) {
if (weatherSegment != settings.casio.weatherSegment)
settingsChanged = true;

settings.casio.weatherSegment = weatherSegment;
}

CasioWeatherSegment GetCasioWeatherSegment() const {
return settings.casio.weatherSegment;
}

void SetPrideFlag(PrideFlag prideFlag) {
if (prideFlag != settings.prideFlag)
settingsChanged = true;
Expand Down Expand Up @@ -334,6 +363,28 @@ namespace Pinetime {
return (settings.dfuAndFsEnabledOnBoot ? DfuAndFsMode::Enabled : DfuAndFsMode::Disabled);
};

void SetNotifVibration(VibrationStrength strength) {
if (strength != settings.notifVibration) {
settingsChanged = true;
}
settings.notifVibration = strength;
};

VibrationStrength GetNotifVibration() const {
return settings.notifVibration;
}

void SetChimeVibration(VibrationStrength strength) {
if (strength != settings.chimeVibration) {
settingsChanged = true;
}
settings.chimeVibration = strength;
};

VibrationStrength GetChimeVibration() const {
return settings.chimeVibration;
}

private:
Pinetime::Controllers::FS& fs;

Expand All @@ -355,6 +406,8 @@ namespace Pinetime {

PineTimeStyle PTS;

CasioStyleG7710 casio;

PrideFlag prideFlag = PrideFlag::Gay;

WatchFaceInfineat watchFaceInfineat;
Expand All @@ -365,6 +418,9 @@ namespace Pinetime {
Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium;

bool dfuAndFsEnabledOnBoot = false;

VibrationStrength notifVibration = VibrationStrength::Normal;
VibrationStrength chimeVibration = VibrationStrength::Normal;
};

SettingsData settings;
Expand Down
15 changes: 12 additions & 3 deletions src/displayapp/DisplayApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
#include "displayapp/screens/settings/SettingShakeThreshold.h"
#include "displayapp/screens/settings/SettingBluetooth.h"
#include "displayapp/screens/settings/SettingOTA.h"
#include "displayapp/screens/settings/SettingNotifVibration.h"
#include "displayapp/screens/settings/SettingChimeVibration.h"

#include "libs/lv_conf.h"
#include "UserApps.h"
Expand Down Expand Up @@ -375,7 +377,7 @@ void DisplayApp::Refresh() {
} else {
LoadNewScreen(Apps::Timer, DisplayApp::FullRefreshDirections::Up);
}
motorController.RunForDuration(35);
motorController.RunForDuration(static_cast<uint8_t>(settingsController.GetNotifVibration()));
break;
case Messages::AlarmTriggered:
if (currentApp == Apps::Alarm) {
Expand All @@ -387,7 +389,7 @@ void DisplayApp::Refresh() {
break;
case Messages::ShowPairingKey:
LoadNewScreen(Apps::PassKey, DisplayApp::FullRefreshDirections::Up);
motorController.RunForDuration(35);
motorController.RunForDuration(static_cast<uint8_t>(settingsController.GetNotifVibration()));
break;
case Messages::TouchEvent: {
if (state != States::Running) {
Expand Down Expand Up @@ -476,7 +478,7 @@ void DisplayApp::Refresh() {
break;
case Messages::Chime:
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
motorController.RunForDuration(35);
motorController.RunForDuration(static_cast<uint8_t>(settingsController.GetChimeVibration()));
break;
}
}
Expand Down Expand Up @@ -561,6 +563,7 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
notificationManager,
systemTask->nimble().alertService(),
motorController,
settingsController,
*systemTask,
Screens::Notifications::Modes::Normal);
break;
Expand All @@ -569,6 +572,7 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
notificationManager,
systemTask->nimble().alertService(),
motorController,
settingsController,
*systemTask,
Screens::Notifications::Modes::Preview);
break;
Expand Down Expand Up @@ -623,6 +627,11 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
break;
case Apps::SettingOTA:
currentScreen = std::make_unique<Screens::SettingOTA>(this, settingsController);
case Apps::SettingNotifVibration:
currentScreen = std::make_unique<Screens::SettingNotifVibration>(settingsController, motorController);
break;
case Apps::SettingChimeVibration:
currentScreen = std::make_unique<Screens::SettingChimeVibration>(settingsController, motorController);
break;
case Apps::BatteryInfo:
currentScreen = std::make_unique<Screens::BatteryInfo>(batteryController);
Expand Down
2 changes: 2 additions & 0 deletions src/displayapp/apps/Apps.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ namespace Pinetime {
SettingShakeThreshold,
SettingBluetooth,
SettingOTA,
SettingNotifVibration,
SettingChimeVibration,
Error
};

Expand Down
2 changes: 1 addition & 1 deletion src/displayapp/fonts/fonts.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"sources": [
{
"file": "JetBrainsMono-ExtraBold.ttf",
"range": "0x30-0x3a"
"range": "0x30-0x3a, 0x0300-0x0362"
}
],
"bpp": 1,
Expand Down
3 changes: 2 additions & 1 deletion src/displayapp/screens/Notifications.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Notifications::Notifications(DisplayApp* app,
Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::AlertNotificationService& alertNotificationService,
Pinetime::Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController,
System::SystemTask& systemTask,
Modes mode)
: app {app},
Expand Down Expand Up @@ -44,7 +45,7 @@ Notifications::Notifications(DisplayApp* app,
if (notification.category == Controllers::NotificationManager::Categories::IncomingCall) {
motorController.StartRinging();
} else {
motorController.RunForDuration(35);
motorController.RunForDuration(static_cast<uint8_t>(settingsController.GetNotifVibration()));
}

timeoutLine = lv_line_create(lv_scr_act(), nullptr);
Expand Down
1 change: 1 addition & 0 deletions src/displayapp/screens/Notifications.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ namespace Pinetime {
Pinetime::Controllers::NotificationManager& notificationManager,
Pinetime::Controllers::AlertNotificationService& alertNotificationService,
Pinetime::Controllers::MotorController& motorController,
Pinetime::Controllers::Settings& settingsController,
System::SystemTask& systemTask,
Modes mode);
~Notifications() override;
Expand Down
Loading
Loading