From 5175ae2e8630e4a800e99e0c5670ab4510ab73da Mon Sep 17 00:00:00 2001 From: Vitaliy Zarubin Date: Fri, 23 Jun 2023 19:02:56 +0300 Subject: [PATCH] [battery_plus] Implement battery_plus plugin. OMP#OS-17083 --- .../battery_plus_aurora/.gitignore | 30 +++ .../battery_plus_aurora/README.md | 39 +++ .../battery_plus_aurora/analysis_options.yaml | 4 + .../data/com.nokia.mce.request.xml | 17 ++ .../data/com.nokia.mce.signal.xml | 15 ++ .../battery_plus_aurora/data/preview.png | Bin 0 -> 74865 bytes .../battery_plus_aurora/example/.gitignore | 47 ++++ .../battery_plus_aurora/example/README.md | 21 ++ .../example/analysis_options.yaml | 4 + .../example/aurora/.gitignore | 1 + .../example/aurora/CMakeLists.txt | 50 ++++ ...xample.battery_plus_aurora_example.desktop | 12 + .../example/aurora/icons/108x108.png | Bin 0 -> 9954 bytes .../example/aurora/icons/128x128.png | Bin 0 -> 13645 bytes .../example/aurora/icons/172x172.png | Bin 0 -> 23377 bytes .../example/aurora/icons/86x86.png | Bin 0 -> 6632 bytes .../example/aurora/main.cpp | 13 + ...m.example.battery_plus_aurora_example.spec | 31 +++ .../battery_plus_aurora/example/lib/main.dart | 164 ++++++++++++ .../battery_plus_aurora/example/pubspec.lock | 243 ++++++++++++++++++ .../battery_plus_aurora/example/pubspec.yaml | 26 ++ .../lib/battery_plus_aurora.dart | 92 +++++++ .../lib/com_nokia_mce_request.dart | 47 ++++ .../lib/com_nokia_mce_signal.dart | 60 +++++ .../battery_plus_aurora/pubspec.yaml | 29 +++ 25 files changed, 945 insertions(+) create mode 100644 packages/battery_plus/battery_plus_aurora/.gitignore create mode 100644 packages/battery_plus/battery_plus_aurora/README.md create mode 100644 packages/battery_plus/battery_plus_aurora/analysis_options.yaml create mode 100644 packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.request.xml create mode 100644 packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.signal.xml create mode 100644 packages/battery_plus/battery_plus_aurora/data/preview.png create mode 100644 packages/battery_plus/battery_plus_aurora/example/.gitignore create mode 100644 packages/battery_plus/battery_plus_aurora/example/README.md create mode 100644 packages/battery_plus/battery_plus_aurora/example/analysis_options.yaml create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/.gitignore create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/CMakeLists.txt create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/desktop/com.example.battery_plus_aurora_example.desktop create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/icons/108x108.png create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/icons/128x128.png create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/icons/172x172.png create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/icons/86x86.png create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/main.cpp create mode 100644 packages/battery_plus/battery_plus_aurora/example/aurora/rpm/com.example.battery_plus_aurora_example.spec create mode 100644 packages/battery_plus/battery_plus_aurora/example/lib/main.dart create mode 100644 packages/battery_plus/battery_plus_aurora/example/pubspec.lock create mode 100644 packages/battery_plus/battery_plus_aurora/example/pubspec.yaml create mode 100644 packages/battery_plus/battery_plus_aurora/lib/battery_plus_aurora.dart create mode 100644 packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_request.dart create mode 100644 packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_signal.dart create mode 100644 packages/battery_plus/battery_plus_aurora/pubspec.yaml diff --git a/packages/battery_plus/battery_plus_aurora/.gitignore b/packages/battery_plus/battery_plus_aurora/.gitignore new file mode 100644 index 0000000..96486fd --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/packages/battery_plus/battery_plus_aurora/README.md b/packages/battery_plus/battery_plus_aurora/README.md new file mode 100644 index 0000000..6cfc057 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/README.md @@ -0,0 +1,39 @@ +# battery_plus_aurora + +The Aurora implementation of [`battery_plus`](https://pub.dev/packages/battery_plus). + +## Usage + +This package is not an _endorsed_ implementation of `battery_plus`. +Therefore, you have to include `battery_plus_aurora` alongside `battery_plus` as dependencies in your `pubspec.yaml` file. + +**pubspec.yaml** + +```yaml +dependencies: + battery_plus: ^4.0.1 + battery_plus_aurora: + path: # path to folder with plugin +``` + +***.dart** + +```dart +// Import package +import 'package:battery_plus/battery_plus.dart'; + +// Instantiate it +var battery = Battery(); + +// Get current battery level +final batteryLevel = await _battery.batteryLevel; +// Get current battery state +final batteryState = await _battery.batteryState; +// Check is enable SaveMode +final isInBatterySaveMode = await _battery.isInBatterySaveMode; + +// Be informed when the state (full, charging, discharging) changes +_battery.onBatteryStateChanged.listen((BatteryState state) { + debugPrint(state.toString()); +}); +``` diff --git a/packages/battery_plus/battery_plus_aurora/analysis_options.yaml b/packages/battery_plus/battery_plus_aurora/analysis_options.yaml new file mode 100644 index 0000000..566c597 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/analysis_options.yaml @@ -0,0 +1,4 @@ +# Copyright (c) 2023. Open Mobile Platform LLC. +# License: Proprietary. + +include: package:flutter_lints/flutter.yaml diff --git a/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.request.xml b/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.request.xml new file mode 100644 index 0000000..5de3ec4 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.request.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.signal.xml b/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.signal.xml new file mode 100644 index 0000000..0d85476 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/data/com.nokia.mce.signal.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/packages/battery_plus/battery_plus_aurora/data/preview.png b/packages/battery_plus/battery_plus_aurora/data/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..924f8713870a68bcb6b6f9ce713825f5fd52f6a9 GIT binary patch literal 74865 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%0A$OlJo^FcoV!L|Yv)Pvg3VlP~&y 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 Fe*hs$hcN&E literal 0 HcmV?d00001 diff --git a/packages/battery_plus/battery_plus_aurora/example/.gitignore b/packages/battery_plus/battery_plus_aurora/example/.gitignore new file mode 100644 index 0000000..3db3823 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/.gitignore @@ -0,0 +1,47 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +# Aurora generated +/aurora/flutter diff --git a/packages/battery_plus/battery_plus_aurora/example/README.md b/packages/battery_plus/battery_plus_aurora/example/README.md new file mode 100644 index 0000000..9110259 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/README.md @@ -0,0 +1,21 @@ +# battery_plus_aurora_example + +Demonstrates how to use the battery_plus_aurora plugin. + +## Build + +```shell +# Add an alias if it doesn't already exist +alias flutter-aurora=$HOME/.local/opt/flutter-sdk/bin/flutter +# Get dependencies +flutter-aurora pub get +# Run build +flutter-aurora build aurora --release # [--release|--debug|--profile] +``` + +You can collect, sign, run an example on the device with a script located in the `script/build_example.sh` +More information in `build_example.sh`. + +### Preview example + +![preview.png](../data/preview.png) diff --git a/packages/battery_plus/battery_plus_aurora/example/analysis_options.yaml b/packages/battery_plus/battery_plus_aurora/example/analysis_options.yaml new file mode 100644 index 0000000..566c597 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/analysis_options.yaml @@ -0,0 +1,4 @@ +# Copyright (c) 2023. Open Mobile Platform LLC. +# License: Proprietary. + +include: package:flutter_lints/flutter.yaml diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/.gitignore b/packages/battery_plus/battery_plus_aurora/example/aurora/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/aurora/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/CMakeLists.txt b/packages/battery_plus/battery_plus_aurora/example/aurora/CMakeLists.txt new file mode 100644 index 0000000..048467b --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/aurora/CMakeLists.txt @@ -0,0 +1,50 @@ +# Copyright (c) 2023. Open Mobile Platform LLC. +# License: Proprietary. + +cmake_minimum_required(VERSION 3.10) +project(com.example.battery_plus_aurora_example LANGUAGES CXX) + +include(GNUInstallDirs) + +set(BINARY_NAME ${CMAKE_PROJECT_NAME}) +set(FLUTTER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/flutter) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(CMAKE_CXX_FLAGS "-Wall -Wextra") +set(CMAKE_CXX_FLAGS_RELEASE "-O3") + +set(CMAKE_SKIP_RPATH OFF) +set(CMAKE_INSTALL_RPATH "\$ORIGIN/../share/${BINARY_NAME}/lib") + +find_package(PkgConfig REQUIRED) +pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder) + +add_executable(${BINARY_NAME} main.cpp ${FLUTTER_DIR}/generated_plugin_registrant.cpp) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::FlutterEmbedder) +target_include_directories(${BINARY_NAME} PRIVATE ${FLUTTER_DIR}) + +include(flutter/generated_plugins.cmake) + +set(PACKAGE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/${BINARY_NAME}) +set(DESKTOP_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/applications) +set(ICONS_INSTALL_ROOT_DIR ${CMAKE_INSTALL_DATADIR}/icons/hicolor) + +add_custom_command(TARGET ${BINARY_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libflutter-embedder.so + ${PROJECT_BINARY_DIR}/bundle/lib/libflutter-embedder.so) + +install(FILES ${PROJECT_BINARY_DIR}/bundle/icudtl.dat DESTINATION ${PACKAGE_INSTALL_DIR}) +install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/flutter_assets DESTINATION ${PACKAGE_INSTALL_DIR}) +install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/lib DESTINATION ${PACKAGE_INSTALL_DIR}) + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +install(FILES desktop/${BINARY_NAME}.desktop DESTINATION ${DESKTOP_INSTALL_DIR}) + +foreach(ICONS_SIZE 86x86 108x108 128x128 172x172) + install(FILES icons/${ICONS_SIZE}.png + RENAME ${BINARY_NAME}.png + DESTINATION ${ICONS_INSTALL_ROOT_DIR}/${ICONS_SIZE}/apps/) +endforeach(ICONS_SIZE) diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/desktop/com.example.battery_plus_aurora_example.desktop b/packages/battery_plus/battery_plus_aurora/example/aurora/desktop/com.example.battery_plus_aurora_example.desktop new file mode 100644 index 0000000..a6aeb93 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/aurora/desktop/com.example.battery_plus_aurora_example.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Name=battery_plus_aurora_example +Comment=Demonstrates how to use the battery_plus_aurora plugin. +Icon=com.example.battery_plus_aurora_example +Exec=/usr/bin/com.example.battery_plus_aurora_example +X-Nemo-Application-Type=silica-qt5 + +[X-Application] +Permissions= +OrganizationName=com.example +ApplicationName=battery_plus_aurora_example diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/icons/108x108.png b/packages/battery_plus/battery_plus_aurora/example/aurora/icons/108x108.png new file mode 100644 index 0000000000000000000000000000000000000000..984893df6c30793313b2b3d3912a6e95977e2333 GIT binary patch literal 9954 zcmV<8CLP&{P)la^ZDQqpny3Go6F4=8|y{TM(3egVlZzz9$z z6m)_RLE-_!Q(l0?0mMzhMuH#+k++Q?M&QH_=3*av74tIctFLOz<2Yg1`>eI*9HT~E zzp63jTyq)z4ejxd`Sq;@583*M3vlZeKH$KOU2we~^Y#6M+wra0@p8StH~9LWc^=V9JxGIt^*lM@B0j#>wOD z3+vy_>dZfX=N5kTgI|LI-;lw6?c@FfYsZf)YlMjB(*sG&MA1pyhp@-X@Yr2JDd-tv zspdKd6~DivQ5m(ITNK@SYjY^S>KvwY!#I=!E!y+F7st!FaKgjZZq`FT`Mw{t$M99! z>l*A+xBdE+*YN4J)Ai2L3U9Uyco3oB6HztN zhN&%iZyv1J!C-j)#VZ;i1q;_ZQjleoy8gKgkT)Jt6p)IMEx^ywFW*-*^D#3Si%`IT z-0>cl%RZNd-?&%0;$b@v!JAn+tj;5@;_5Sg7&Kxt~i@bTsE#-a8Sqhp&l~Py@o)kr0MTzJaKFQzO@r64t<2{JcpW}$9(tQ^CsNZX=$)Ex*l0y-a%#S zBxy8L1?nGj86^C5JWANxfPwRX8MAmbp(?FFu?vz6UeF+?(y5=rDa!GHub>g4HfJ$U zdNrLU!Xympgf`^2)St|y!1M50gghJ{7Ge9x_m@k0omms+M0i2IK!~o8IeLWgVniXR z5p_x9msj!DZo&L$Rr>46%%O-Xzpy?I&4D* z9{*W?2)FPgCq!MKQ?xO~QVn6bgQ1Wwn$PJT_r<AwOghP_oG+X%=xLsb z`E|}-y;_^iib=~txrJ4c!N+40$%^3=1UXn=cz&-!GR_<%N+D|X|F0Z|_n#p_uDPMzV$yv!UOWo}pp)S0v zS70d}iH4q!ZnEApiB27E2`P#-0gK0ZF{H{WEX4T9co0Vv`Wcl{J+He#m2RL;@|g(b zbF@*fUym~0a?;i&2=iFpP?*ZUzMq^J!x1D5>}0Ifl*I5@bKJxG`E3V&RqmIS zX<@`oaGj?!KLzZVJylhv8$H4<36c0m$ zx)44lUDC-JIR@q!IhMvt2vj4K$h&|!$Rvu24#lZL;Jt6G*Q8=Sl;oVJf$`w2o=aJL z(gl_!S@sM&H%Jt@s9!Nh-YB0VT5|m*O?9)rzg|}5-KQrnO+lhOG87eH@iGZ0Q=kw- zqwbK{fU~$1A=U?T9zbu~&s@NW(Flz9@Z<-OdC;L4IS)kfm&~6fQba!qYZ75&9;yUM z#D+EXGED?R=q2aTh?98-`n+RVPrSPu)*(C8@ux;h@3Gh`35IBlIA#KK>iKE(m@5^i z%1OqPmdTtA>(OD%Fs;wVIL^IyT~c8em%Y(YtY&Cyp6^MQI?Q9!tBJ#PUUd1S77P6> ztH)lK=nu~}GGMNXtB|R@)yOJYO_U>*QTbdI;!y-q2~i|)bX^9xG6I22YUywgWR97Z zFfo@M=M<)*+ANM|>P#}98uP4wICY0W%V-Tfzy$%;9h?U@zj`{X?xfEM5xfxrEDgdn z2NEtc{0EkiVH#h?y9gC?UBo>ooMZ(S8R-B=lvHSmYfqE%P}i2ObNk)j+oTWq44~{C z7Ue?_W5D>fz%IH#!YCw)H1}^q9@K*XX0*2%ocN6|_1!gLD3IOc_uv7_+!%MVL&HV16F-P7b^f7?4GkBxB%rzZfJeONb zobn_xUk?)kQPQi|5(+H6sY6T{*U|`N(z5`me57ZSmP9R+vgE($tqapM*KDlPdWcJI zP6Np~MF>x&5>Xhh8wQmed3xdi zy2K0~)Bv^e)563=N{QM*&(!hMlhvaYf^__e11JwP5a*s-(WCM|#&Kg?qukMG4}LB= z*Sc`dkS*7r#3M|?I|QQ#cgPZUyR)(^$1-OzIF-avo{hJ z$NNh!;SYw=FRTdX!2=_?shF@jAk$Sqt3tN1!JjJHFfRep7@k@R2y+*pnVs1$EuXf} z+*rP(lPmp*Znnz_lrLzC>>j3G+CC5BfI1j5yACUu;05} z+Ou{Ei=dZ5jflWX+E z&UniTDPIlWo6EGHVaL-LIzjl8lvBy!CWGCk*ZMvykwwWrV}gjPHSmiNskMKjj`OJaLXj_y$Ar9ONC~+FEL)_7)|V|_pXTJ zAB{$n92GjM8>&F9wgl3H=y<<_-S`d{=h6P0BxujkN4~hUQDXzW=$atjP@>C4SDd%p zNNN>6*!Dap0bcgRB&2~R;4nsbYQP$@Y~QbY30%bdCJu1meXBT;9(|0i5F6$&i{z0=}FC%ULv??FWi=dnE)~6a zbr|Y{(F%z=7oCoASHmAqZ;C-i!w#uIv==5(U8*6idS@;fhGag3k9nEkJ#;Ge6jkgb ztUA%vJ+S}!PTZsI=bnZA^Gk^eiS-2`P;@Z5h>W`q z7E1>p1XlS9#8VbE`0-CUe-Rsqqi4`;LG(+XSU2re(PBI`&S0wFC{tRokO{|1%OxKP zws(4VoF`e)2`72$H^blc5bVFa9dD>T|3%=bCxFdxA(PFH)@ABnZXo1Be2?9I9*^py zkyfCuZA>=x-tGM-Z@Wi?4B)2{$yJ0bT7)HWLbBeq6Le7fJDEoIHKQxNz99$c|NhYW z_g;Km?ekB<|NM`}l$p0O5`6ZLov#b}H&kZ5H9nhcOs<0_^|x1mmby`S2TyxjAeBrn zVob7Ske%YPN)SZxijK``Q}C`Ol&74K0^PZ|Bx`;_)b zrd^71^QA;1^UMS9e0^iR_&o5HFCPQ%J964-d)Iq+h_vUQYdn$@;TXl240p*%LC3NP zN*(p9)hHpnYlMcAsCQvtJAYL?9s~ZE<-o!q#|VQXuZf4`J&HJqnhuR=$bddmBMy26 zR_S9`!hn^x5)c39KjSUKn6DdiPWjle4oQHa~jJ684K*7>2 zy1wB*%(TAnr@$Zl2Jnyn0Af}k!dfZ%?|usY+%xmIZ&;1_mbXK{vQ)kDkU0$kIx5kt z!D@`-dQ)HB#D`7v5V{;31pgj>W7L-~o_UK1hz3pcDr>nZUS&;Vc8cqmb~}v9(cOyN zMHzIJhi`rWQ`<`SFMKXZlEj_Oa6x#Z}hW;P-V5FhPv`~HlfS-_7zY@oXff{sCf;&C~k@|gVv_BGg$k(FYYjy zw=Muh@!=?U?!dqD{5*bL8fZ&}S=wHAYN{dxCNLf3Ma(3QLtojg-=Lc*p%os{kGu7n zbZH2bkk{*Frg$ymd30YEEbzhrkV#p#gd(bkata&A49ADDATI4IU&=n(LA!UcEDT=!!GwvSR-?@*>xV zCdi@Vtr-BKJ6V7$eLM68(d+Tis-BmYe|DNl6QV^QFzz*q3>~pHKNUh&=5Z3 zqj@8{E;auVQWXC!`7ew*mFRCiDe+%(+N3`JKAc`kx3NS#u?kn5zCDzOlk zg&X0;i{C;^c`HWA!hsG(?I+#+Pi_sfR!J6RsS@aY?IiO^?#k@d*_!+Oz3<0qd-`*S zmtQ(eodl5Q0$z{hEpowM49b2*u9DkoP(Z&w9=TA*E)pp&MMWmv@Kh@ks}afA1fgCo znV_7L4-(mBVTl15CVaR12WcRQG=nJN8`pK)`@RFVt+{%8_VfGNEfu6}S-IQl=(A)M z>IuDS!~#d-tWC}+j_sJElgC<=Z3M0&0#L({J89#*<=bRxB+7EJaql#gEke=P%m|aE zm@&u ZyuF$j^K<-bO35U~O0Tfc1?@W0-FzS!Q@Z-4$2WvUz6R`aC5c|aJAjNF|F zZd})*jXfe+$f|ia6;^Z%o$m?)N0DztxnZ>PN3^1Fq$!`*c1+JheE`~hy3;Ak&_g9I zP%+LA+e*$F^K9k+|5!J7zx99Ov~3IM-~V-qF31|t3t#kp8+?exm}~a!Jj*fVx>kXd zqOCxQsDj-jT6G^xRdPkWc-jbqXTp>~%;bpz1!gmAmx!u7tWIR!6_y>vW}t_N0?YBe zxH$3^-v8~##_w6%BJ20pZLAl+ESgY_fRR9+hLQFSTpzOR&-xtE$LmmN3Jl(AZd4if zuCdfH^%YkiOj=jsRXU*KXUHPy2>}txK#kJstc8|U*o}u{GIAuqGva4{$U`{J|M~xS zH`cm^h0i^?uDxCkc14*B%6d{&=UIK4YOzIqsRKmNx>k$#o-ACVABry33FuP^iKsd$ z);>vzK6`u52|b_o2v-#E6h ztSW_Hk#&~^D$;QP$wgl2W&&(9@?>7<^rAZyk|yXTh&5!Tqip9FR3hx`K;Bm`i#mGD z@QRqMjXyri*HB%UMCGX{a68C{fm!Z$QwLfE)MW+!+qcce+S+G7wHoU=l&zu|XS(hR zSp_*lp&0szzg`iOhEsp(XrcqspEn6ufkL2E`PlxJX>kaYglm2aS^=Iy?LhF*F_B#%al7xI@J~$L_MQQ%#`!T`c z27|A>lKh*^k)X&D&ZU=#LRM8oL_X=+45dw;yst6Iln2VltLew>ANkhkc$!-+p<}&q zsA?<@M?fL+7xG3<6Xsk!wlF>{biqk^3zRhpB{V81ixR8!BL`i*X{PzYmkRkge@2~J za~9WH(p!-M)D2le)`1G8f;5tQIhWJ}MjFYF>NRxFTeVFTqx*MM)O!-UWL2;-M#lOxujt!&p@q3{V>P^-Td}an()OeFR@|vIQT5OF^0`-Ih>S4I{CClL0 zpPC=`C5|)b+h70HxIii1`1j8ZIyJiX_nY%A3BSANhOqRVT$Yp@VM15qgQ*VBV9`)F z21p~%J7qgM)CY{E2l$nGM~5Ycgt@xLF}a(pExbYMWKGD9IHtCb5utOfmqv<(X>t0% z_P>4>_?u_ZA7{SHLwXXi%7=~h*#7O6i(Hj3?r&xq7)t2KVKzZ)+3K3)6(drn?TG^y zOn06ITyFj9W6+JtD?aJXqvO*Br;TB*3m&00?cNiH!?;$sIo`K*kBrsNd3{X!STi*H zrc(IY9*>lF1=~QuKoMXnMxeUuv4L~L(eMVnH%6~sc<5$(UAoZ0j6`02E_|6O` zOtha5dXA||E8}F0(j8u2s<0EmCj|^AID$~d-EA!8KvteC$=kRydg?3?k^N*I=&d$G zMi�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φ2|qk{oPd;OyH3mqgeos`ilI>{%ME+=cQAPLr`D8F5yimr~g|a&e&;| z&T%#hDpL79%~EpkhSJ$V@^gRvJzxw6{?My#et_h2|Ks=$U_FY(hoMuC;pF`cpz%H& z=f#p>d>9XRGG*Oe)cPPI8(4pw$|?;zWc6V!ybhaO7G*WZ<_{aXI;yCDMqvnX9T?4A zljow3H_DCnLp>;sC&v_S$@=~UTc}^Z$ zm=RIWU__gGpWp~%T!jD&FsLz|jIzl2;u{_v|Kn}B_pNVI7i(-7@;g8g82TSAgdGU9 zMoei9?4Ur1x%zJvIfvz(Kie1Z^cT-ny!<_(%=2@OOHgl8rj?y<10(>bC6E# zRyHkN#11I)I041mk5J_gL1ubEvXM_&`$pVR1WM4SIQ5!$vr%UT~ z0O{Pq0>@oOLbLcV84DRzj43kBIPsDj3c!v2!4PxM`-*nn@q{z@dT^LVDn%(kPPZ;A zl1#%eN#QKpVVBS@fE99)UBWgY>y=sF>PMmiRn^E*>sg3X3z?O-{j4~`L^T_5X%XxK zv4l4uS}NkiSODi_&-qB!=W_%w?WCYfsjQtN52m5V{dnhwMiCAIK1De)N1sr9&+Eqz zQUJC3Ni-~}CFK&*S}Z{*h0?UeF)&n%?=w*D2cOSYcBsuDB@k>N9PkcQQ@dBm(AFd56kA zZ2^hQW!H|`X38+;Gt`5h!C+NP2WVsW&`9NDo?BrfV436?%D8$D0X=A??9FtRtR*Gs0`2|JLXNjE$mZ~!3@N7+Yd?=lBJ>`3&!${h8a$>f&1bm{8qVZ^dG0yvzc>`UUpdm-*|5GD_ zmw40B{3S*Q0R$AqjrzL`dAb&c9%PjB8e|0m?H3(mexF9+-`ts|U*`>3TXmf}IW*vi zx>X-5d8rS7HI1JO!0F}}1uKu9I-ph@9Yo%gx;RZj1&EWO;b_YdpN1!6k&)^N-kEop zLTMa%Oe>WG8M};^a>N;0lIr7B#3-(Ep&2rd+;TNkQH684;`HHLCnQ$8GO{o8yV$Ap z)4|(HBPiZl5l8HMT%aA-!+bpj9ha(LKHlFVs$-cGgN&*v%u#_7g;lyEYEQ~_wI&r! zVY@>l27;}5J&LmW@@Pa~jF$Sln@LM8K$soVF@E){!MZq*5e z5J;oWW%U87!lQ1=z$pDB%{6<-<8L5P(W}ciM>xay(Xk91q;1L{b58lQaHcxU4t61j zX)Z@rqkyK8{z!Lj01;L9vE(qE1I+oHB`qgig-P56gqo|A;q!*hi(U-;^v|r$-;dY6 z4tU^arqK$RqV$|M6=<@1^mXkr{$0Q~e)0lECI<`6FsHK`KZ4D;m1&QRPAv8f6)c#e z{&+M+(44F&Y8sLdJ#sB*LkN@Mt6&sQP!PF92Ib%QtW+RCa&|(_j|jm$*LNH3FWkS~ z47y<_a0kZg-z4;wD=9O{;kxRe0-4fSFaQ}Q;vyL)039y(p3}R%tmY|}Cor-+GJhS$ zI6hb`4Q1IPe=bHIg77qs;4L*(OF&tRLJi{#A>5Q7>jEZ7!#EF@F&U{#&t%28i<3%3qX7>C#98Cux8L% zf=v93@hf4VoS%h8?;O>mpsxhTz>&Ng6=$iGe=$21D{4Pw0*yXiDdaVYsS%;&ibmI@;N-eR>hvGehf`8WYR`b40~-Oc5w{;4t3a&WwoI`S^EfMK5scu48do6kkaa2`9?YOnVFy>zhPulx_ z@(Dca@rBO|jiNiUatr};I)T7lsS4UJd>uNCrOFAbF!0F11cbt%0?XJBt#-+cIUeAW z(N64RjNG_l3Ehe`2<39#=H0@W&=_b|QRW075b~|D3PyLtwd@~E| z(f`=*39yz_XPnZUyg=VfP8~^65={!QWR-|g2cw@?LWWhxnl#3lr<1)rPpIukt^Ap| zIWWs!Tca^*p{*96HUnU#y|kO_=cDiSj02E+5}qt#+ShyD^o1@QM*XG{zq#G-|BZh; z9NmvU`a|G1KX%R{u5;;9j#3&qk~KU1Qb#|+hSpfaX=#{@8!3?b!jg%jsLaSWN(=OS zXUvg55*1WtBA1olQ4wi90+I7WPI6zi3nyr!5xn=Cf}5Tz3I%v)F{9Fm=J+dT-`Jf0 zv3~>n@U|29!+&-#!jn%P&jY4-Uizeg4P+ZyiNGoE1L{3xs5rlV+qxz@d#2C2ECC9% zJ`-%iMwgV=$`B~!=zV@W7$-*sy$F7o;1Fc5YUh(FUbl|b*_2uwvVq|V+%|hEI*0Ib zj(jr)5qUAN;p~rB9b;W8SK|*KKem7eehTDGh@8CiA*H5Jk}TutrBb5;D<-%){e+uC zYK}P|UpuBcwg9iSjC4+P;iCvjr*W?YKqr3?&@S;cCMlciZA_NbA_fXd1PxAko2fq| zvucQX(x}sJTWRoc;Sed*tgiF#3bVM5mP4o9^JiQtWt-X}<_M*FlnQH^t{(VHEYa0C z-;+KF#ybf{XV$??%`Up>YKZz6r=zJh*K8MWDCR*?`C=IRk||&@s+V!ndDi-evpI(W ziS+E}tKzyOLphkLX0Cue8l(dnU^wbHo~Dy{$Fa6?yL?b^T#0BS`dQ6%pq!RKD}!3< zw``no(4|f?F_y?7*(KFnILW&fU0MiPUUyzjgs}NKLOml~8;aa4R6xgBArvsyxv-pJ z=E>&+rhWsAp~G58j*L;DwPglRS;bMl7K>)R9qBb?;}wND)`QpclRh{I%U%UcG&w3j z#=nHRGXpH0&ZLR)f*wf`Mr>SmGO#fdSP6}0z$r!Cs?uGf zL6xhGE&`wgK=#u4I&;e7^Yee>$F;B3lF}WsMfN*tg$q60!Ziu!dq{1TK;Gi zFo59>_#|3G$kkGu;*wGV@6{izA|hL53u{rqksb!i2tXP=Stx<+w8tLpO8ESylPFT4 zQ0+htv`lN7BE_}DoHh2!R*oe?xnI}UQH34vzQ&YoxyZMNV=UcSMO!x3SWoT6@l)Z@ zpi5YNla++6YIcy9g25_cQHT!JJ*jyP$6sJzqp{$58&whu`m+F$(}!a8JR|FsQE!d$ zD2MaWm~D)4m1Wm?d;ZMx0-SuDQh++erI=jiqL?#|^k5O|%;q9nJw7*%JNd>^edo5WT9I~im=W0nDD zP|;P5ZnfEhlQcwf2IFyLgV>XIQuEqu$A8RQ-aFvEZsQ|BGn_lx)DJ~EEz3%ruvYER zL5)BW?Cb>UFNJ0Me!t76hK|jE5`eNZa*mjPCO;ZF)Z}vJqg}(J$!F83X-HE2t>1N_MaR4o$ zTr}iAl0er8c&8N6#;;<=(~J6tC?Lxwwxx+7Y%JRd@EP&o`h?gd$Mtq2CmN`Y09PPj zZc)c0;Hd{2Wy(ej%LQZY#+G~;q{1o=eXgPzW$JlnzZvxVLeCRD^Mu@#Aw%1OYA(_M zq2`qCtU%JS^C=vT+=#ksuPkcpl%K+tDb~nI9MMjOksnfOxijTtATeWs*@=ve0s;d! zS{Z*IAS-?{fE0$oVpW$^ih(%V(N-o|bC6QL7l9q&l&_KUk7{&G=oKXmRZNGHhnk@z z`l)~AJ{Fi{;OLzoa56wDnhHaVdz`VG%^1wDhTHo|@# zh*NtB5KwIbYP_9z^0NK!4xc9kalFTE*)gb*-Re)Rt8A1 z1Kq_ORD(2nUv8F!Yo)%Ss6=Dmq|f$Rd@%d7y6CBM*V#~4GNM?kD^x}qQ!@Qi6u67g*tk(UQ~(8wIaXe^ zN*P4MH7A)Qz=Wxvv#n-(8Yh!QM5jYGze1k=1W>FB_(<307`}iPq%T@f0Ga~jc;>PJ z;QPOeN1dmel8Rx9Hu-7QN(KWW*S2brbXaDP^g{rRng?wOYG+O+U5uEuZYV)z!@2+Q4Dg9#y7&JJ ze{y?s+nT=dHid&wwoyAPHZN*3Bip&?*5{F2@BKV;S-7WiYO9V=H;KGYMS3a22_VjL z#^tOgnb+F9#~k_SSJ`P9GnBO%5UJlu+6tBc(@!WvV{mGTi6yJh*njiy*?1mc6ZFw) zQDe>=$blSh8dgdkcipDUYcp*$C{|%vqZROgr2{KrO2n4%IdXxuk*60KR#~H0#H+EjD zqBj2GXLYsuZXg3e^lN}=r(`L+zrS>ChCMS~Ml`$rlOXWEEQH#ZWcbAXzrg@k{Cael ze{6|=V<^ePQ3V+N_@X?ZVd1EXunH&8y0sN260y8wyl5(#%9L0d--j5H0@^QpR}@={ zukf0KlJ&Lhud^XaZh}Hrfg;3Z$bgyV6G#l}E2I&@_NX9}hsqR4Uflq$s$aJFph9 zD7onb-*(O)d&nvsM8&$gi2ea$J87SDhV7i;6*5y~W=b<!%O(xl5|QULw6P~pj6UXZ)f_(R2vgl_2m*mo z${I}`{e=hZvHeZ{K*Tf8;C+IUDZ2;<`l(T*Lo2^f&W%Xo{)a4=_Jr;O7Y($U&$Q?gS}_M=AJ*GWzuE27>g-I44$Zp_0=ye3E40Og6emgBcRvi`p!p1nk? zOKSY7$I*;z-fbO5$U=6z1NgTdw3nwI(Bt9805RsAhc3?=>7u*kPP9#o8-gWHqP^}|~Pv8t^d9QU^6bmEM-(@bq*lL?dU1xPljAae; zr>U$`NWmcNeZ~8@e-EIY1wOtF@BkQrPT)F;_y}i;+K@#|5o5``4L~uccN?vBMzQRa z$%3aY8nfOac%alU(DipE7ON z?atq(=--da$;1zCW8I&xS=TO!scaAsKP6H0Rf zg>V?5e3ti*|7Sigxn#S#NAIzbbD^w@(?R5-q^9j}H|oeS+-C zc4yW}(9hQoZ_B=iadH@LIDYw``+GKsJhY8)n-W_2Un}#JEuG0yWT!cd-`t0cD(y2j za-~~ibA-wGaMX7Oon+DUg0uP5^s|jacMjJ`r@;tSQy%N5^qtfS&Aw6~oy{2&@3gF&sOw3 ziW`n+1wb6zE#r4@tsmO=2}0_e`b0SPc_^E-uhFH#5JSXgCjeO6Ymh2`N@S=zl9for zaAD-iKO{>geB9kYMz1Zh;WtHafo)9f<6FS_okr3rz`cy2bIP&h^gDa{{yPuaKgM%7 zo-+XAm_YcsO|YNuibYPM^Im}>hcZUBwYw=6=N89UQ9RC~WuCgMKmkr7N0wfc+oiy0 z@=TCZW1LbsK!2o(#sC2_=b}xXNKHN6(inHP{-54nAKvKx6L=oS^9Dd1AN-)-{>BUO zz-8Mr*d%?+=DGdPGT+XD*%{L^rv?N#?;jX4Ke_9Lr2QNwSS9UtLYc%E=jrAot)ysU ze7lSD`T4-3J*OiOmq{ew1*FTtthBQ2oh{NI-NyX%_WJ98vb}$ByPt#a;rN~baCRJ^ zxHW)a_iQ!8Gq}Cc+r8V`_vJRhv3d6P)wc7sJiNW1gNDCP=SWm@-fT`D2eU)ldIqHd zreH|YIT=^ywj94564_4ksKeb%$m_|i&DZkUZh|Ww+aJ@p?yq(P!&BS&$86lKee^rq f`|s7+XUG2q2hwtRO!v)v00000NkvXXu0mjfN>*SE literal 0 HcmV?d00001 diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/icons/172x172.png b/packages/battery_plus/battery_plus_aurora/example/aurora/icons/172x172.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc271ba73a05054cdcb09780a4cc56cc05d5ea7 GIT binary patch literal 23377 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 literal 0 HcmV?d00001 diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/icons/86x86.png b/packages/battery_plus/battery_plus_aurora/example/aurora/icons/86x86.png new file mode 100644 index 0000000000000000000000000000000000000000..5923bb1113acac37ae5d280245b152cc4a1b242d GIT binary patch literal 6632 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 mdnuQ%0#85i!0Z3VDE}Y+awRoL1wwQH0000 +#include "generated_plugin_registrant.h" + +int main(int argc, char *argv[]) { + Application::Initialize(argc, argv); + RegisterPlugins(); + Application::Launch(); + return 0; +} diff --git a/packages/battery_plus/battery_plus_aurora/example/aurora/rpm/com.example.battery_plus_aurora_example.spec b/packages/battery_plus/battery_plus_aurora/example/aurora/rpm/com.example.battery_plus_aurora_example.spec new file mode 100644 index 0000000..a06d8f3 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/aurora/rpm/com.example.battery_plus_aurora_example.spec @@ -0,0 +1,31 @@ +%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$ +%global __requires_exclude ^lib(dconf|flutter-embedder|maliit-glib|appmanifest-.+|.+_platform_plugin)\\.so.*$ + +Name: com.example.battery_plus_aurora_example +Summary: Demonstrates how to use the battery_plus_aurora plugin. +Version: 0.1.0 +Release: 1 +License: Proprietary +Source0: %{name}-%{version}.tar.zst + +BuildRequires: cmake +BuildRequires: pkgconfig(flutter-embedder) + +%description +%{summary}. + +%prep +%autosetup + +%build +%cmake -DCMAKE_BUILD_TYPE=%{_flutter_build_type} +%make_build + +%install +%make_install + +%files +%{_bindir}/%{name} +%{_datadir}/%{name}/* +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png diff --git a/packages/battery_plus/battery_plus_aurora/example/lib/main.dart b/packages/battery_plus/battery_plus_aurora/example/lib/main.dart new file mode 100644 index 0000000..4d6723f --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/lib/main.dart @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2023. Open Mobile Platform LLC. + * License: Proprietary. + */ +import 'package:flutter/material.dart'; +import 'dart:async'; + +import 'package:battery_plus/battery_plus.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + final _battery = Battery(); + String? _error; + int? _batteryLevel; + String? _batteryState; + bool? _isInBatterySaveMode; + + @override + void initState() { + super.initState(); + initPlatformState(); + } + + // Platform messages are asynchronous, so we initialize in an async method. + Future initPlatformState() async { + try { + // Get current battery level + final batteryLevel = await _battery.batteryLevel; + // Get current battery state + final batteryState = await _battery.batteryState; + // Check is enable SaveMode + final isInBatterySaveMode = await _battery.isInBatterySaveMode; + + // Be informed when the state (full, charging, discharging) changes + _battery.onBatteryStateChanged.listen((BatteryState state) { + debugPrint(state.toString()); + }); + + setState(() { + _batteryLevel = batteryLevel; + _batteryState = batteryState.name; + _isInBatterySaveMode = isInBatterySaveMode; + }); + } on Exception catch (e) { + setState(() { + _error = e.toString(); + }); + } + } + + @override + Widget build(BuildContext context) { + const textStyleWhite = TextStyle(fontSize: 18, color: Colors.white); + const textStyleTitle = TextStyle(fontSize: 20, color: Colors.black); + const textStylePath = TextStyle(fontSize: 18, color: Colors.black54); + + const spaceMedium = SizedBox(height: 20); + const spaceSmall = SizedBox(height: 10); + + return MaterialApp( + home: Scaffold( + appBar: AppBar( + title: const Text('Example battery_plus'), + ), + body: Stack( + children: [ + // Error message + Visibility( + visible: _error != null, + child: Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Container( + padding: const EdgeInsets.all(20), + decoration: const BoxDecoration( + color: Colors.redAccent, + borderRadius: BorderRadius.all(Radius.circular(10.0)), + ), + child: Text( + _error ?? '', + style: textStyleWhite, + ), + ), + ), + ), + ), + // List directories path + Visibility( + visible: _error == null, + child: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(16), + child: Center( + child: Column( + children: [ + // Info + Container( + padding: const EdgeInsets.all(20), + decoration: const BoxDecoration( + color: Colors.green, + borderRadius: + BorderRadius.all(Radius.circular(10.0)), + ), + child: const Text( + 'Demo application demonstration implementation of battery_plus', + style: textStyleWhite, + textAlign: TextAlign.center, + ), + ), + const SizedBox(height: 30), + + const Text( + 'Battery Level', + style: textStyleTitle, + ), + spaceSmall, + Text( + "$_batteryLevel%", + style: textStylePath, + ), + + spaceMedium, + const Text( + 'Battery State', + style: textStyleTitle, + ), + spaceSmall, + Text( + _batteryState.toString(), + style: textStylePath, + ), + + spaceMedium, + const Text( + 'Is In Battery SaveMode', + style: textStyleTitle, + ), + spaceSmall, + Text( + _isInBatterySaveMode.toString(), + style: textStylePath, + ), + ], + ), + ), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/packages/battery_plus/battery_plus_aurora/example/pubspec.lock b/packages/battery_plus/battery_plus_aurora/example/pubspec.lock new file mode 100644 index 0000000..0c1972b --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/pubspec.lock @@ -0,0 +1,243 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.1" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.9.0" + battery_plus: + dependency: "direct main" + description: + name: battery_plus + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + battery_plus_aurora: + dependency: "direct main" + description: + path: ".." + relative: true + source: path + version: "0.0.1" + battery_plus_platform_interface: + dependency: transitive + description: + name: battery_plus_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.2" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.16.0" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + dbus: + dependency: transitive + description: + name: dbus + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.8" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.4" + lints: + dependency: transitive + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.12" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.5" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.2" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.12" + upower: + dependency: transitive + description: + name: upower + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.0" +sdks: + dart: ">=2.18.6 <3.0.0" + flutter: ">=3.3.0" diff --git a/packages/battery_plus/battery_plus_aurora/example/pubspec.yaml b/packages/battery_plus/battery_plus_aurora/example/pubspec.yaml new file mode 100644 index 0000000..42def81 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/example/pubspec.yaml @@ -0,0 +1,26 @@ +# Copyright (c) 2023. Open Mobile Platform LLC. +# License: Proprietary. + +name: battery_plus_aurora_example +description: Demonstrates how to use the battery_plus_aurora plugin. + +publish_to: 'none' + +environment: + sdk: '>=2.18.6 <3.0.0' + +dependencies: + flutter: + sdk: flutter + battery_plus: ^4.0.1 + battery_plus_aurora: + path: ../ + cupertino_icons: ^1.0.2 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + +flutter: + uses-material-design: true diff --git a/packages/battery_plus/battery_plus_aurora/lib/battery_plus_aurora.dart b/packages/battery_plus/battery_plus_aurora/lib/battery_plus_aurora.dart new file mode 100644 index 0000000..94040d0 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/lib/battery_plus_aurora.dart @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2023. Open Mobile Platform LLC. + * License: Proprietary. + */ +import 'package:battery_plus_aurora/com_nokia_mce_request.dart'; +import 'package:battery_plus_aurora/com_nokia_mce_signal.dart'; +import 'package:dbus/dbus.dart'; +import 'package:battery_plus_platform_interface/battery_plus_platform_interface.dart'; +import 'package:flutter/foundation.dart'; +import 'dart:async' show Stream; +import 'package:async/async.dart' show StreamGroup; + +class BatteryPlusAurora extends BatteryPlatform { + /// Register this dart class as the platform implementation for aurora + static void registerWith() { + if (TargetPlatform.aurora == defaultTargetPlatform) { + BatteryPlatform.instance = BatteryPlusAurora(); + } + } + + /// Returns the current battery level in percent. + @override + Future get batteryLevel async { + final client = DBusClient.system(); + final request = ComNokiaMceRequest(client, 'com.nokia.mce'); + final level = await request.callget_battery_level(); + await client.close(); + return level; + } + + /// Returns true if the device is on battery save mode + @override + Future get isInBatterySaveMode async { + final client = DBusClient.system(); + final request = ComNokiaMceRequest(client, 'com.nokia.mce'); + final state = await request.callget_psm_state(); + await client.close(); + return state; + } + + /// Returns the current battery state in percent. + @override + Future get batteryState async { + final client = DBusClient.system(); + final request = ComNokiaMceRequest(client, 'com.nokia.mce'); + + final level = await request.callget_battery_level(); + final status = await request.callget_charger_state(); + + await client.close(); + + if (level == 100) { + return BatteryState.full; + } else if (status == 'on') { + return BatteryState.charging; + } else { + return BatteryState.discharging; + } + } + + /// Returns a Stream of BatteryState changes. + @override + Stream get onBatteryStateChanged async* { + final client = DBusClient.system(); + final signal = ComNokiaMceSignal(client, 'com.nokia.mce'); + final request = ComNokiaMceRequest(client, 'com.nokia.mce'); + + var steam = StreamGroup.merge([ + signal.battery_status_ind, + signal.charger_state_ind, + ]); + + await for (final event in steam) { + if (event.name == 'battery_status_ind') { + if (event.values.first.toNative() == 'full') { + yield BatteryState.full; + } + } else { + if (event.values.first.toNative() == 'on') { + yield BatteryState.charging; + final level = await request.callget_battery_level(); + if (level == 100) { + yield BatteryState.full; + } + } else { + yield BatteryState.discharging; + } + } + } + await client.close(); + } +} diff --git a/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_request.dart b/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_request.dart new file mode 100644 index 0000000..7de2a1d --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_request.dart @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023. Open Mobile Platform LLC. + * License: Proprietary. + */ +import 'package:dbus/dbus.dart'; + +class ComNokiaMceRequest extends DBusRemoteObject { + ComNokiaMceRequest(DBusClient client, String destination, + {DBusObjectPath path = + const DBusObjectPath.unchecked('/com/nokia/mce/request')}) + : super(client, name: destination, path: path); + + /// Invokes com.nokia.mce.request.get_psm_state() + Future callget_psm_state( + {bool noAutoStart = false, + bool allowInteractiveAuthorization = false}) async { + var result = await callMethod('com.nokia.mce.request', 'get_psm_state', [], + replySignature: DBusSignature('b'), + noAutoStart: noAutoStart, + allowInteractiveAuthorization: allowInteractiveAuthorization); + return result.returnValues[0].asBoolean(); + } + + /// Invokes com.nokia.mce.request.get_battery_level() + Future callget_battery_level( + {bool noAutoStart = false, + bool allowInteractiveAuthorization = false}) async { + var result = await callMethod( + 'com.nokia.mce.request', 'get_battery_level', [], + replySignature: DBusSignature('i'), + noAutoStart: noAutoStart, + allowInteractiveAuthorization: allowInteractiveAuthorization); + return result.returnValues[0].asInt32(); + } + + /// Invokes com.nokia.mce.request.get_charger_state() + Future callget_charger_state( + {bool noAutoStart = false, + bool allowInteractiveAuthorization = false}) async { + var result = await callMethod( + 'com.nokia.mce.request', 'get_charger_state', [], + replySignature: DBusSignature('s'), + noAutoStart: noAutoStart, + allowInteractiveAuthorization: allowInteractiveAuthorization); + return result.returnValues[0].asString(); + } +} diff --git a/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_signal.dart b/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_signal.dart new file mode 100644 index 0000000..11d4cab --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/lib/com_nokia_mce_signal.dart @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2023. Open Mobile Platform LLC. + * License: Proprietary. + */ +import 'package:dbus/dbus.dart'; + +/// Signal data for com.nokia.mce.signal.battery_status_ind. +class ComNokiaMceSignalbattery_status_ind extends DBusSignal { + String get battery_status => values[0].asString(); + + ComNokiaMceSignalbattery_status_ind(DBusSignal signal) + : super( + sender: signal.sender, + path: signal.path, + interface: signal.interface, + name: signal.name, + values: signal.values); +} + +/// Signal data for com.nokia.mce.signal.charger_state_ind. +class ComNokiaMceSignalcharger_state_ind extends DBusSignal { + String get charger_state => values[0].asString(); + + ComNokiaMceSignalcharger_state_ind(DBusSignal signal) + : super( + sender: signal.sender, + path: signal.path, + interface: signal.interface, + name: signal.name, + values: signal.values); +} + +class ComNokiaMceSignal extends DBusRemoteObject { + /// Stream of com.nokia.mce.signal.battery_status_ind signals. + late final Stream battery_status_ind; + + /// Stream of com.nokia.mce.signal.charger_state_ind signals. + late final Stream charger_state_ind; + + ComNokiaMceSignal(DBusClient client, String destination, + {DBusObjectPath path = + const DBusObjectPath.unchecked('/com/nokia/mce/signal')}) + : super(client, name: destination, path: path) { + battery_status_ind = DBusRemoteObjectSignalStream( + object: this, + interface: 'com.nokia.mce.signal', + name: 'battery_status_ind', + signature: DBusSignature('s')) + .asBroadcastStream() + .map((signal) => ComNokiaMceSignalbattery_status_ind(signal)); + + charger_state_ind = DBusRemoteObjectSignalStream( + object: this, + interface: 'com.nokia.mce.signal', + name: 'charger_state_ind', + signature: DBusSignature('s')) + .asBroadcastStream() + .map((signal) => ComNokiaMceSignalcharger_state_ind(signal)); + } +} diff --git a/packages/battery_plus/battery_plus_aurora/pubspec.yaml b/packages/battery_plus/battery_plus_aurora/pubspec.yaml new file mode 100644 index 0000000..87fb4e2 --- /dev/null +++ b/packages/battery_plus/battery_plus_aurora/pubspec.yaml @@ -0,0 +1,29 @@ +# Copyright (c) 2023. Open Mobile Platform LLC. +# License: Proprietary. + +name: battery_plus_aurora +description: The Aurora OS implementation of battery_plus. +version: 0.0.1 + +environment: + sdk: '>=2.18.6 <3.0.0' + flutter: ">=2.5.0" + +dependencies: + flutter: + sdk: flutter + dbus: ^0.7.8 + async: ^2.9.0 + plugin_platform_interface: ^2.0.2 + battery_plus_platform_interface: ^1.2.2 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + +flutter: + plugin: + platforms: + aurora: + dartPluginClass: BatteryPlusAurora