Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.20)

project(WatchFlower VERSION 6.0 LANGUAGES CXX)
project(RYLO-SmartCare VERSION 6.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -118,8 +118,8 @@ qt_add_executable(${CMAKE_PROJECT_NAME}
)

qt_add_qml_module(${CMAKE_PROJECT_NAME}
URI ${CMAKE_PROJECT_NAME}
RESOURCE_PREFIX "/WatchFlower"
URI "SmartCare"
RESOURCE_PREFIX "/SmartCare"
QML_FILES
qml/MobileApplication.qml
qml/MobileHeader.qml
Expand Down Expand Up @@ -287,7 +287,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
MACOSX_BUNDLE ON
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/assets/macos/Info.plist"
# New Xcode attributes (???)
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "io.emeric.watchflower"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.rylo.smartcare"
XCODE_ATTRIBUTE_PRODUCT_NAME ${CMAKE_PROJECT_NAME}
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${CMAKE_PROJECT_VERSION}
XCODE_ATTRIBUTE_MARKETING_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
Expand All @@ -307,7 +307,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "iOS")
# Qt
QT_IOS_LAUNCH_SCREEN "${CMAKE_SOURCE_DIR}/assets/ios/LaunchScreen.storyboard"
# New Xcode attributes (???)
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "io.emeric.watchflower"
XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.rylo.smartcare"
XCODE_ATTRIBUTE_PRODUCT_NAME ${CMAKE_PROJECT_NAME}
XCODE_ATTRIBUTE_CURRENT_PROJECT_VERSION ${CMAKE_PROJECT_VERSION}
XCODE_ATTRIBUTE_MARKETING_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
Expand Down
75 changes: 30 additions & 45 deletions assets/android/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,79 +1,64 @@
<?xml version="1.0"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto"
package="com.emeric.watchflower" android:versionName="6.0" android:versionCode="06000001">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" package="com.emeric.watchflower" android:versionName="6.0" android:versionCode="1">

<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" />
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:smallScreens="true"/>

<!-- Request legacy Bluetooth permissions (up to Android 11 / SDK 30) -->
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:minSdkVersion="29" /> <!-- android:maxSdkVersion="31" /> -->
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="28"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:minSdkVersion="29"/> <!-- android:maxSdkVersion="31" /> -->

<!-- Request new Bluetooth permissions (Android 12+ / SDK 31) -->
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:minSdkVersion="31" android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" android:minSdkVersion="31" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:minSdkVersion="31" android:usesPermissionFlags="neverForLocation"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" android:minSdkVersion="31"/>

<!-- Service -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" android:minSdkVersion="29" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" android:minSdkVersion="29"/>

<!-- Others -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" android:minSdkVersion="33"/>

<!-- Hardware permissions -->
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
<uses-feature android:name="android.hardware.location.network" android:required="false"/>
<uses-feature android:name="android.hardware.location.gps" android:required="false"/>

<!-- Application -->
<application android:name="org.qtproject.qt.android.bindings.QtApplication"
android:hardwareAccelerated="true" android:allowNativeHeapPointerTagging="false"
android:theme="@style/AppTheme" android:icon="@mipmap/ic_launcher"
android:label="WatchFlower">
<application android:name="org.qtproject.qt.android.bindings.QtApplication" android:hardwareAccelerated="true" android:allowNativeHeapPointerTagging="false" android:theme="@style/AppTheme" android:label="RYLO SmartCare" android:icon="@drawable/icon">

<!-- Activity -->
<activity android:name="org.qtproject.qt.android.bindings.QtActivity"
android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density"
android:screenOrientation="unspecified" android:windowSoftInputMode="adjustResize" android:launchMode="singleTop" android:exported="true"
android:label="WatchFlower">

<activity android:name="org.qtproject.qt.android.bindings.QtActivity" android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:screenOrientation="unspecified" android:windowSoftInputMode="adjustResize" android:launchMode="singleTop" android:exported="true" android:label="RYLO SmartCare" android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>

<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --" />
<meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --" />
<meta-data android:name="android.app.extract_android_style" android:value="minimal" />
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash" />
<meta-data android:name="android.app.splash_screen_sticky" android:value="true" />
<meta-data android:name="android.app.background_running" android:value="false" />
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
<meta-data android:name="android.app.arguments" android:value="-- %%INSERT_APP_ARGUMENTS%% --"/>
<meta-data android:name="android.app.extract_android_style" android:value="minimal"/>
<meta-data android:name="android.app.background_running" android:value="false"/>
<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splashscreen"/>
<meta-data android:name="android.app.splash_screen_sticky" android:value="true"/>
</activity>

<!-- Handle outgoing urls -->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.emeric.watchflower.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
<provider android:name="androidx.core.content.FileProvider" android:authorities="com.emeric.watchflower.fileprovider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/filepaths"/>
</provider>

<!-- Android service(s) -->
<receiver android:name=".WatchFlowerBootServiceBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>

<service android:process=":qt_service" android:name=".WatchFlowerAndroidService">
<meta-data android:name="android.app.background_running" android:value="true" />
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --" />
<meta-data android:name="android.app.arguments" android:value="--service" />
<meta-data android:name="android.app.background_running" android:value="true"/>
<meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
<meta-data android:name="android.app.arguments" android:value="--service"/>
</service>

</application>
Expand Down
Binary file removed assets/android/res/drawable-hdpi/ic_stat_logo.png
Binary file not shown.
Binary file added assets/android/res/drawable-hdpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-hdpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/android/res/drawable-hdpi/splashicon.png
Binary file not shown.
Binary file added assets/android/res/drawable-ldpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-ldpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-mdpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-mdpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/android/res/drawable-mdpi/splashicon.png
Binary file not shown.
Binary file removed assets/android/res/drawable-xhdpi/ic_stat_logo.png
Binary file not shown.
Binary file added assets/android/res/drawable-xhdpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-xhdpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/android/res/drawable-xhdpi/splashicon.png
Binary file not shown.
Binary file removed assets/android/res/drawable-xxhdpi/ic_stat_logo.png
Binary file not shown.
Binary file added assets/android/res/drawable-xxhdpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-xxhdpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/android/res/drawable-xxhdpi/splashicon.png
Binary file not shown.
Binary file removed assets/android/res/drawable-xxxhdpi/ic_stat_logo.png
Binary file not shown.
Binary file added assets/android/res/drawable-xxxhdpi/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/android/res/drawable-xxxhdpi/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/android/res/drawable-xxxhdpi/splashicon.png
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#FFFFFF" />
<solid android:color="#ffffff"/>
</shape>
</item>
<item>
<bitmap android:src="@drawable/splashicon" android:gravity="center" />
<bitmap android:src="@drawable/logo" android:gravity="center"/>
</item>
</layer-list>
Binary file removed assets/android/res/mipmap-hdpi/ic_launcher.png
Binary file not shown.
Binary file removed assets/android/res/mipmap-hdpi/ic_launcher_round.png
Binary file not shown.
Binary file removed assets/android/res/mipmap-mdpi/ic_launcher.png
Binary file not shown.
Binary file removed assets/android/res/mipmap-mdpi/ic_launcher_round.png
Binary file not shown.
Binary file removed assets/android/res/mipmap-xhdpi/ic_launcher.png
Diff not rendered.
Diff not rendered.
Binary file removed assets/android/res/mipmap-xxhdpi/ic_launcher.png
Diff not rendered.
Diff not rendered.
Binary file removed assets/android/res/mipmap-xxxhdpi/ic_launcher.png
Diff not rendered.
Diff not rendered.
1 change: 0 additions & 1 deletion assets/android/res/values/apptheme.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:statusBarColor">@android:color/white</item>
<item name="android:navigationBarColor">@android:color/white</item>
</style>
Expand Down
6 changes: 6 additions & 0 deletions assets/android/res/values/splashscreentheme.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<style name="splashScreenTheme">
<item name="android:windowBackground">@drawable/splashscreen</item>
</style>
</resources>
Binary file added assets/android/rylo-icon.png
Binary file added assets/android/rylo-splash.png
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import androidx.core.app.NotificationCompat;

public class WatchFlowerAndroidNotifier {

Expand Down Expand Up @@ -82,7 +83,7 @@ public static void notify(final Context context, final String title, final Strin
PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, resultIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);

NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification.Builder builder;
NotificationCompat.Builder builder;

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, channelImportance);
Expand All @@ -93,9 +94,9 @@ public static void notify(final Context context, final String title, final Strin
notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);

notificationManager.createNotificationChannel(notificationChannel);
builder = new Notification.Builder(context, notificationChannel.getId());
builder = new NotificationCompat.Builder(context, notificationChannel.getId());
} else {
builder = new Notification.Builder(context);
builder = new NotificationCompat.Builder(context);
}

builder.setSmallIcon(R.drawable.ic_stat_logo);
Expand All @@ -110,6 +111,7 @@ public static void notify(final Context context, final String title, final Strin
builder.setDefaults(Notification.DEFAULT_SOUND);
builder.setOnlyAlertOnce(true);
builder.setAutoCancel(true);
builder.setStyle(new NotificationCompat.BigTextStyle().bigText(message));

notificationManager.notify(channel, builder.build());
} catch (Exception e) {
Expand Down
Binary file removed assets/android/web_hi_res_512.png
Diff not rendered.
7 changes: 1 addition & 6 deletions assets/assets.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,11 @@
<file>gfx/logos/logo.svg</file>
<file>gfx/logos/github.svg</file>
<file>gfx/logos/watchflower.svg</file>
<file>gfx/logos/watchflower_tray_light.svg</file>
<file>gfx/logos/watchflower_tray_dark.svg</file>
<file>gfx/logos/watchflower_tray_monochrome.svg</file>
<file>gfx/logos/watchflower_monochrome.svg</file>

<file>gfx/tutorial/welcome-devices.svg</file>
<file>gfx/tutorial/welcome-bluetooth-searching.svg</file>
<file>gfx/tutorial/welcome-app-connected.svg</file>
<file>gfx/tutorial/welcome-limits.svg</file>
<file>gfx/tutorial/welcome-plants.svg</file>

<file>gfx/icons/arrow_back.svg</file>
<file>gfx/icons/droplet1.svg</file>
<file>gfx/icons/droplet2.svg</file>
Expand All @@ -36,5 +30,6 @@
<file>gfx/icons/sunlight_borders.svg</file>
<file>gfx/icons/thermometer-24px.svg</file>
<file>gfx/icons/thermometer_big-24px.svg</file>
<file>gfx/logos/watchflower_monochrome.png</file>
</qresource>
</RCC>
Binary file modified assets/gfx/logos/logo.svg
Binary file modified assets/gfx/logos/watchflower.png
Binary file modified assets/gfx/logos/watchflower.svg
Binary file added assets/gfx/logos/watchflower_monochrome.png
17 changes: 0 additions & 17 deletions assets/gfx/logos/watchflower_monochrome.svg
Diff not rendered.
16 changes: 0 additions & 16 deletions assets/gfx/logos/watchflower_tray_dark.svg
Diff not rendered.
Loading