Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
9760249
Create c-cpp.yml
lupyuen Jul 21, 2020
fa98ea2
Update c-cpp.yml
lupyuen Jul 21, 2020
372a3c7
Update c-cpp.yml
lupyuen Jul 21, 2020
596bf8e
Update c-cpp.yml
lupyuen Jul 21, 2020
1e1472b
Update c-cpp.yml
lupyuen Jul 21, 2020
613a031
Update c-cpp.yml
lupyuen Jul 21, 2020
e603303
Update c-cpp.yml
lupyuen Jul 21, 2020
bd98281
Update c-cpp.yml
lupyuen Jul 21, 2020
de7bd92
Update c-cpp.yml
lupyuen Jul 21, 2020
3dc724c
Update c-cpp.yml
lupyuen Jul 21, 2020
2bde1d8
Update c-cpp.yml
lupyuen Jul 21, 2020
a29336c
Update c-cpp.yml
lupyuen Jul 22, 2020
bc77e36
Update c-cpp.yml
lupyuen Jul 22, 2020
774325e
Update c-cpp.yml
lupyuen Jul 22, 2020
e5930d5
Update c-cpp.yml
lupyuen Jul 22, 2020
03bfc7e
Update c-cpp.yml
lupyuen Jul 22, 2020
9d4e4f0
Fixing include error
lupyuen Jul 22, 2020
b4c2b4f
Added sample command
lupyuen Jul 22, 2020
9f1ce39
Fixed include paths for nRF5 SDK
lupyuen Jul 22, 2020
ea45300
Fixing include
lupyuen Jul 22, 2020
60eb0ac
Build OK yay! Removed trace
lupyuen Jul 22, 2020
3e89f9f
Parallel make
lupyuen Jul 22, 2020
44b0893
Find output
lupyuen Jul 22, 2020
dc59bde
Upload firmware
lupyuen Jul 22, 2020
33270ca
Rename artifact
lupyuen Jul 22, 2020
dc64676
Update c-cpp.yml
lupyuen Jul 26, 2020
3d2ddcb
Copied from c-cpp.yml
lupyuen Jul 26, 2020
7ed2ee5
Update Clock.cpp
lupyuen Jul 26, 2020
1e0ec47
Disable parallel build
lupyuen Jul 26, 2020
4c4cb06
Update main.yml
lupyuen Jul 27, 2020
1731bd1
Make the overview header an actual header
DRG-developer Jul 27, 2020
3ac2321
Copied from main.yml
lupyuen Jul 27, 2020
724758a
Merge pull request #1 from DRG-developer/patch-3
lupyuen Jul 27, 2020
606bdfe
Build mcuboot first
lupyuen Jul 27, 2020
c794dbd
Add empty rule to prevent errors
lupyuen Jul 28, 2020
b75c9a8
Clean up
lupyuen Jul 28, 2020
72a5ecd
Empty workflow
lupyuen Jul 28, 2020
8d353aa
Empty workflow
lupyuen Jul 28, 2020
4f2e3e1
Clean up
lupyuen Jul 28, 2020
6bd6175
Download MCUBoot
lupyuen Jul 28, 2020
ea393fa
Create firmware image
lupyuen Jul 28, 2020
d91ae6c
Update main2.yml
lupyuen Jul 28, 2020
57507a6
Update main2.yml
lupyuen Jul 28, 2020
4fd950f
Update main2.yml
lupyuen Jul 28, 2020
3dcaf6c
Update c-cpp.yml
lupyuen Jul 28, 2020
4233997
Update main2.yml
lupyuen Jul 28, 2020
6469566
Create DFU package
lupyuen Jul 28, 2020
cb5b69b
Added setuptools
lupyuen Jul 28, 2020
2ddf1ed
Update main2.yml
lupyuen Jul 28, 2020
57fb9e4
Update main2.yml
lupyuen Jul 28, 2020
5d17292
Added wheel
lupyuen Jul 28, 2020
9b0292a
Update main2.yml
lupyuen Jul 28, 2020
fdb493b
Update main2.yml
lupyuen Jul 28, 2020
885a68d
Update main2.yml
lupyuen Jul 28, 2020
98c6c5e
Update main2.yml
lupyuen Jul 28, 2020
dfd413b
Update main2.yml
lupyuen Jul 28, 2020
01bf5c3
Update main2.yml
lupyuen Jul 28, 2020
ce0446c
Update main2.yml
lupyuen Jul 28, 2020
27af236
Update main2.yml
lupyuen Jul 28, 2020
c29b912
Update main2.yml
lupyuen Jul 28, 2020
de2f01b
Update main2.yml
lupyuen Jul 28, 2020
c10538f
Update main2.yml
lupyuen Jul 28, 2020
cca1eaf
Update main2.yml
lupyuen Jul 28, 2020
29bbb44
Update main2.yml
lupyuen Jul 28, 2020
37419e1
Update main2.yml
lupyuen Jul 28, 2020
c7b39ff
Update main2.yml
lupyuen Jul 28, 2020
2574b8d
Unzip DFU package
lupyuen Jul 29, 2020
774100f
Update main2.yml
lupyuen Jul 29, 2020
7ff323d
Update main2.yml
lupyuen Jul 29, 2020
a17261f
Create DFU package
lupyuen Jul 30, 2020
afcaa40
Create simulate.yml
lupyuen Aug 17, 2020
cc1ec50
Added lvgl-wasm
lupyuen Aug 17, 2020
a72751b
Copy files to simulator
lupyuen Aug 17, 2020
0226c5b
Update simulate.yml
lupyuen Aug 17, 2020
c4162b0
Update simulate.yml
lupyuen Aug 17, 2020
c0acab8
Remove Rust support
lupyuen Aug 17, 2020
e8ec8ff
Commit docs to GitHub Pages
lupyuen Aug 17, 2020
2b379b6
Commit from GitHub Actions
lupyuen Aug 17, 2020
77d5e2e
Delete lvgl.js
lupyuen Aug 17, 2020
3edab78
Delete lvgl.old.html
lupyuen Aug 17, 2020
fe56e32
Delete lvgl.txt
lupyuen Aug 17, 2020
e0e33ff
Delete lvgl.wasm
lupyuen Aug 17, 2020
797b808
Add index and lvgl to docs
lupyuen Aug 17, 2020
54c9992
Commit from GitHub Actions
lupyuen Aug 17, 2020
4de4bf4
Commit from GitHub Actions
lupyuen Aug 17, 2020
0fe5ce0
Commit from GitHub Actions
lupyuen Aug 17, 2020
b009bb5
Commit from GitHub Actions
lupyuen Aug 17, 2020
d93591c
Delete index.md
lupyuen Aug 17, 2020
9578eac
Commit from GitHub Actions
lupyuen Aug 17, 2020
7b16c5e
Delete index.md
lupyuen Aug 17, 2020
787a82d
Commit from GitHub Actions
lupyuen Aug 17, 2020
423717c
Added doc
lupyuen Aug 18, 2020
2a48c5d
Commit from GitHub Actions
lupyuen Aug 20, 2020
b6a910e
Merge branch 'develop' of JF/PineTime into master
JF002 Sep 26, 2020
df52d01
Merge branch 'master' into master
lupyuen Sep 27, 2020
641b1e4
Commit from GitHub Actions
lupyuen Sep 27, 2020
4c7b633
Upgrade Arm Toolchain to 9-2020-q2. Handle version number in outputs..
lupyuen Sep 27, 2020
944194a
Delete unused workflow
lupyuen Sep 27, 2020
bbe6bf8
Delete unused workflow
lupyuen Sep 27, 2020
2097005
Undo commit
lupyuen Sep 27, 2020
e1bfed9
Commit from GitHub Actions
lupyuen Sep 27, 2020
94f5fbe
Undo commit
lupyuen Sep 27, 2020
7dada6d
Undo commit
lupyuen Sep 27, 2020
4bfd983
Undo commit
lupyuen Sep 27, 2020
5fe1f7c
Undo commit
lupyuen Sep 27, 2020
f955be9
Commit from GitHub Actions
lupyuen Sep 27, 2020
499e336
Undo commit
lupyuen Sep 27, 2020
d5088ef
Commit from GitHub Actions
lupyuen Sep 27, 2020
255b33e
Commit from GitHub Actions
lupyuen Sep 27, 2020
6385c28
Commit from GitHub Actions
lupyuen Sep 27, 2020
56266fd
Undo commit
lupyuen Sep 27, 2020
7ab48a8
Undo commit
lupyuen Sep 27, 2020
be1add7
Undo commit
lupyuen Sep 27, 2020
7edb30a
Undo commit
lupyuen Sep 27, 2020
56f5fa8
Undo commit
lupyuen Sep 27, 2020
c094f89
Undo commit
lupyuen Sep 27, 2020
92d9c58
Fix merge from develop to master.
JF002 Sep 27, 2020
65ecb65
Fix changes that were lost in the last revert.
JF002 Sep 28, 2020
04abc91
Merge branch 'develop' into master
JF002 Nov 10, 2020
1d940af
Merge branch 'develop' of JF/PineTime into master
JF002 Jan 4, 2021
76ab14f
Merge branch 'develop' of JF/PineTime into master
JF002 Jan 23, 2021
3f7360c
Merge branch 'develop' of JF/PineTime into master
JF002 Feb 4, 2021
09bd6fd
Merge branch 'develop' of JF/PineTime into master
JF002 Feb 4, 2021
f534fb0
Merge branch 'develop' of JF/PineTime into master
JF002 Feb 7, 2021
9d7955b
Merge branch 'develop' of JF/PineTime into master
JF002 Feb 14, 2021
b89c92b
Merge branch 'develop' of JF/PineTime into master
JF002 Feb 24, 2021
5cd4b36
Merge branch 'develop' of JF/PineTime into master
JF002 Mar 7, 2021
24d3eea
Merge branch 'develop' of JF/PineTime into master
JF002 Mar 21, 2021
a80e782
Merge branch 'develop' of JF/PineTime into master
JF002 Apr 21, 2021
de69905
Merge branch 'develop' of JF/PineTime into master
JF002 May 21, 2021
fb133a0
Merge branch 'develop' of JF/PineTime into master
JF002 May 21, 2021
d96395c
Merge branch 'develop' of JF/PineTime into master
JF002 Jun 20, 2021
e286de0
Add Option to select Button Function
coxtor Jul 9, 2021
e034215
Add Option to select Button Function
coxtor Jul 9, 2021
644f740
Debug
coxtor Jul 10, 2021
74c2126
Merge remote-tracking branch 'origin/master' into pushbuttonfunction
coxtor Jul 10, 2021
4d144d7
Add setting: Button action (back one screen, or go to home screen)
coxtor Jul 10, 2021
0b7a27e
Delete settings.json
coxtor Jul 10, 2021
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
59 changes: 0 additions & 59 deletions .vscode/settings.json

This file was deleted.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ As of now, here is the list of achievements of this project:
* Battery status
* Firmware validation
* System information
* Pushbutton action (back to previous screen and back to main screen)
- Supported by 3 companion apps (development is in progress):
* [Gadgetbridge](https://codeberg.org/Freeyourgadget/Gadgetbridge/) (on Android via F-Droid)
* [Amazfish](https://openrepos.net/content/piggz/amazfish) (on SailfishOS and Linux)
Expand Down
2 changes: 1 addition & 1 deletion doc/buildAndProgram.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,4 +222,4 @@ Loading section .sec6, size 0x10000 lma 0x30000
Loading section .sec7, size 0xdf08 lma 0x40000
Start address 0x0, load size 314200
Transfer rate: 45 KB/sec, 969 bytes/write.
```
```
1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -417,6 +417,7 @@ list(APPEND SOURCE_FILES
displayapp/screens/settings/Settings.cpp
displayapp/screens/settings/SettingWatchFace.cpp
displayapp/screens/settings/SettingTimeFormat.cpp
displayapp/screens/settings/SettingPushButtonAction.cpp
displayapp/screens/settings/SettingWakeUp.cpp
displayapp/screens/settings/SettingDisplay.cpp
displayapp/screens/settings/SettingSteps.cpp
Expand Down
12 changes: 12 additions & 0 deletions src/components/settings/Settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ namespace Pinetime {
namespace Controllers {
class Settings {
public:
enum class SettingPushButtonAction { BACK, WATCHFACE };
enum class ClockType { H24, H12 };
enum class Vibration { ON, OFF };
enum class WakeUpMode { None, SingleTap, DoubleTap, RaiseWrist };
Expand Down Expand Up @@ -41,6 +42,16 @@ namespace Pinetime {
return settingsMenu;
};

void SetSettingPushButtonAction(SettingPushButtonAction pushButtonAction) {
if (pushButtonAction != settings.pushButtonAction)
settingsChanged = true;
settings.pushButtonAction = pushButtonAction;
};
SettingPushButtonAction GetSettingPushButtonAction() const {
return settings.pushButtonAction;
};


void SetClockType(ClockType clocktype) {
if (clocktype != settings.clockType)
settingsChanged = true;
Expand Down Expand Up @@ -109,6 +120,7 @@ namespace Pinetime {
WakeUpMode wakeUpMode = WakeUpMode::None;

Controllers::BrightnessController::Levels brightLevel = Controllers::BrightnessController::Levels::Medium;
SettingPushButtonAction pushButtonAction = SettingPushButtonAction::BACK;
};

SettingsData settings;
Expand Down
1 change: 1 addition & 0 deletions src/displayapp/Apps.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ namespace Pinetime {
QuickSettings,
Settings,
SettingWatchFace,
SettingPushButtonAction,
SettingTimeFormat,
SettingDisplay,
SettingWakeUp,
Expand Down
17 changes: 16 additions & 1 deletion src/displayapp/DisplayApp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
#include "displayapp/screens/settings/QuickSettings.h"
#include "displayapp/screens/settings/Settings.h"
#include "displayapp/screens/settings/SettingWatchFace.h"
#include "displayapp/screens/settings/SettingPushButtonAction.h"
#include "displayapp/screens/settings/SettingTimeFormat.h"
#include "displayapp/screens/settings/SettingWakeUp.h"
#include "displayapp/screens/settings/SettingDisplay.h"
Expand Down Expand Up @@ -199,7 +200,17 @@ void DisplayApp::Refresh() {
PushMessageToSystemTask(System::Messages::GoToSleep);
} else {
if (!currentScreen->OnButtonPushed()) {
LoadApp(returnToApp, returnDirection);
switch (settingsController.GetSettingPushButtonAction())
{
case Pinetime::Controllers::Settings::SettingPushButtonAction::BACK:
LoadApp(returnToApp, returnDirection);
break;
case Pinetime::Controllers::Settings::SettingPushButtonAction::WATCHFACE:
LoadApp(Apps::Clock, DisplayApp::FullRefreshDirections::LeftAnim);
break;
default:
break;
}
}
}
break;
Expand Down Expand Up @@ -315,6 +326,10 @@ void DisplayApp::LoadApp(Apps app, DisplayApp::FullRefreshDirections direction)
currentScreen = std::make_unique<Screens::SettingWakeUp>(this, settingsController);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingPushButtonAction:
currentScreen = std::make_unique<Screens::SettingPushButtonAction>(this, settingsController);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
break;
case Apps::SettingDisplay:
currentScreen = std::make_unique<Screens::SettingDisplay>(this, settingsController);
ReturnApp(Apps::Settings, FullRefreshDirections::Down, TouchEvents::SwipeDown);
Expand Down
3 changes: 1 addition & 2 deletions src/displayapp/screens/ApplicationList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ ApplicationList::ApplicationList(Pinetime::Applications::DisplayApp* app,
},
[this]() -> std::unique_ptr<Screen> {
return CreateScreen2();
},
//[this]() -> std::unique_ptr<Screen> { return CreateScreen3(); }
}
},
Screens::ScreenListModes::UpDown} {
}
Expand Down
90 changes: 90 additions & 0 deletions src/displayapp/screens/settings/SettingPushButtonAction.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
#include "SettingPushButtonAction.h"
#include <lvgl/lvgl.h>
#include "displayapp/DisplayApp.h"
#include "displayapp/screens/Screen.h"
#include "displayapp/screens/Symbols.h"

using namespace Pinetime::Applications::Screens;

namespace {
static void event_handler(lv_obj_t* obj, lv_event_t event) {
SettingPushButtonAction* screen = static_cast<SettingPushButtonAction*>(obj->user_data);
screen->UpdateSelected(obj, event);
}
}

SettingPushButtonAction::SettingPushButtonAction(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController)
: Screen(app), settingsController {settingsController} {

lv_obj_t* container1 = lv_cont_create(lv_scr_act(), nullptr);

lv_obj_set_style_local_bg_opa(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, LV_OPA_TRANSP);
lv_obj_set_style_local_pad_all(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 10);
lv_obj_set_style_local_pad_inner(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 5);
lv_obj_set_style_local_border_width(container1, LV_CONT_PART_MAIN, LV_STATE_DEFAULT, 0);

lv_obj_set_pos(container1, 10, 60);
lv_obj_set_width(container1, LV_HOR_RES - 20);
lv_obj_set_height(container1, LV_VER_RES - 50);
lv_cont_set_layout(container1, LV_LAYOUT_COLUMN_LEFT);

lv_obj_t* title = lv_label_create(lv_scr_act(), nullptr);
lv_label_set_text_static(title, "Button action");
lv_label_set_align(title, LV_LABEL_ALIGN_CENTER);
lv_obj_align(title, lv_scr_act(), LV_ALIGN_IN_TOP_MID, 15, 15);

lv_obj_t* icon = lv_label_create(lv_scr_act(), nullptr);
lv_obj_set_style_local_text_color(icon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_ORANGE);
lv_label_set_text_static(icon, Symbols::list);
lv_label_set_align(icon, LV_LABEL_ALIGN_CENTER);
lv_obj_align(icon, title, LV_ALIGN_OUT_LEFT_MID, -10, 0);

optionsTotal = 0;
cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr);
lv_checkbox_set_text_static(cbOption[optionsTotal], " Go Back");
cbOption[optionsTotal]->user_data = this;
lv_obj_set_event_cb(cbOption[optionsTotal], event_handler);
if (settingsController.GetSettingPushButtonAction() == Controllers::Settings::SettingPushButtonAction::BACK) {
lv_checkbox_set_checked(cbOption[optionsTotal], true);
}


optionsTotal++;
cbOption[optionsTotal] = lv_checkbox_create(container1, nullptr);
lv_checkbox_set_text_static(cbOption[optionsTotal], " Watchface");
cbOption[optionsTotal]->user_data = this;
lv_obj_set_event_cb(cbOption[optionsTotal], event_handler);
if (settingsController.GetSettingPushButtonAction() == Controllers::Settings::SettingPushButtonAction::WATCHFACE) {
lv_checkbox_set_checked(cbOption[optionsTotal], true);
}
optionsTotal++;
}

SettingPushButtonAction::~SettingPushButtonAction() {
lv_obj_clean(lv_scr_act());
settingsController.SaveSettings();
}

bool SettingPushButtonAction::Refresh() {
return running;
}

void SettingPushButtonAction::UpdateSelected(lv_obj_t* object, lv_event_t event) {
if (event == LV_EVENT_VALUE_CHANGED) {
for (int i = 0; i < optionsTotal; i++) {
if (object == cbOption[i]) {
lv_checkbox_set_checked(cbOption[i], true);

if (i == 0) {
settingsController.SetSettingPushButtonAction(Controllers::Settings::SettingPushButtonAction::BACK);
};
if (i == 1) {
settingsController.SetSettingPushButtonAction(Controllers::Settings::SettingPushButtonAction::WATCHFACE);
};

} else {
lv_checkbox_set_checked(cbOption[i], false);
}
}
}
}
28 changes: 28 additions & 0 deletions src/displayapp/screens/settings/SettingPushButtonAction.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#pragma once

#include <cstdint>
#include <lvgl/lvgl.h>
#include "components/settings/Settings.h"
#include "displayapp/screens/Screen.h"

namespace Pinetime {

namespace Applications {
namespace Screens {

class SettingPushButtonAction : public Screen {
public:
SettingPushButtonAction(DisplayApp* app, Pinetime::Controllers::Settings& settingsController);
~SettingPushButtonAction() override;

bool Refresh() override;
void UpdateSelected(lv_obj_t* object, lv_event_t event);

private:
Controllers::Settings& settingsController;
uint8_t optionsTotal;
lv_obj_t* cbOption[2];
};
}
}
}
23 changes: 18 additions & 5 deletions src/displayapp/screens/settings/Settings.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ Settings::Settings(Pinetime::Applications::DisplayApp* app, Pinetime::Controller
},
[this]() -> std::unique_ptr<Screen> {
return CreateScreen2();
}
,
[this]() -> std::unique_ptr<Screen> {
return CreateScreen3();
}},
Screens::ScreenListModes::UpDown} {
}
Expand Down Expand Up @@ -45,18 +49,27 @@ std::unique_ptr<Screen> Settings::CreateScreen1() {
{Symbols::clock, "Time format", Apps::SettingTimeFormat},
{Symbols::clock, "Watch face", Apps::SettingWatchFace},
}};

return std::make_unique<Screens::List>(0, 2, app, settingsController, applications);
return std::make_unique<Screens::List>(0, 3, app, settingsController, applications);
}

std::unique_ptr<Screen> Settings::CreateScreen2() {

std::array<Screens::List::Applications, 4> applications {{
{Symbols::shoe, "Steps", Apps::SettingSteps},
{Symbols::batteryHalf, "Battery", Apps::BatteryInfo},
{Symbols::list, "Button Action", Apps::SettingPushButtonAction},
{Symbols::check, "Firmware", Apps::FirmwareValidation},
{Symbols::list, "About", Apps::SysInfo},
}};

return std::make_unique<Screens::List>(1, 2, app, settingsController, applications);
return std::make_unique<Screens::List>(1, 3, app, settingsController, applications);
}

std::unique_ptr<Screen> Settings::CreateScreen3() {

std::array<Screens::List::Applications, 4> applications {{
{Symbols::list, "About", Apps::SysInfo},
{Symbols::list, "", Apps::None},
{Symbols::list, "", Apps::None},
{Symbols::list, "", Apps::None},
}};
return std::make_unique<Screens::List>(2, 3, app, settingsController, applications);
}
3 changes: 2 additions & 1 deletion src/displayapp/screens/settings/Settings.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ namespace Pinetime {
private:
Controllers::Settings& settingsController;

ScreenList<2> screens;
ScreenList<3> screens;

std::unique_ptr<Screen> CreateScreen1();
std::unique_ptr<Screen> CreateScreen2();
std::unique_ptr<Screen> CreateScreen3();
};
}
}
Expand Down