diff --git a/android_app/app/src/main/AndroidManifest.xml b/android_app/app/src/main/AndroidManifest.xml
index be69a581..72e3db23 100644
--- a/android_app/app/src/main/AndroidManifest.xml
+++ b/android_app/app/src/main/AndroidManifest.xml
@@ -13,9 +13,9 @@
Marked "dangerous" so that explicit user approval is required to read this data, not
just the permission implied from installing the app from the Play Store. -->
@@ -73,7 +73,7 @@
android:authorities="${applicationId}.provider"
android:enabled="true"
android:exported="true"
- android:readPermission="${applicationId}.READ_DATA">
+ android:permission="${applicationId}.READ_WRITE_DATA">
diff --git a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
index 9670a72a..68569833 100644
--- a/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
+++ b/android_app/app/src/main/java/com/health/openscale/core/OpenScale.java
@@ -526,6 +526,19 @@ public class OpenScale {
return numOfMonth;
}
+ public List getScaleDataOfDay(int year, int month, int day) {
+ int selectedUserId = getSelectedScaleUserId();
+
+ Calendar startCalender = Calendar.getInstance();
+ Calendar endCalender = Calendar.getInstance();
+
+ startCalender.set(year, month, day, 0, 0, 0);
+ endCalender.set(year, month, day, 0, 0, 0);
+ endCalender.add(Calendar.DAY_OF_MONTH, 1);
+
+ return measurementDAO.getAllInRange(startCalender.getTime(), endCalender.getTime(), selectedUserId);
+ }
+
public List getScaleDataOfMonth(int year, int month) {
int selectedUserId = getSelectedScaleUserId();
diff --git a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java
index fe79316a..4217bb6b 100644
--- a/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java
+++ b/android_app/app/src/main/java/com/health/openscale/core/database/ScaleDatabaseProvider.java
@@ -26,6 +26,13 @@ import android.preference.PreferenceManager;
import com.health.openscale.BuildConfig;
import com.health.openscale.core.OpenScale;
+import com.health.openscale.core.datatypes.ScaleMeasurement;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import timber.log.Timber;
/**
* Exposes the user and measurement data from openScale via
@@ -34,7 +41,7 @@ import com.health.openscale.core.OpenScale;
* (e.g. syncing to third-party services like Google Fit, Fitbit API, etc) without openScale itself
* needing to do so or request additional permissions.
*
- * This access is gated by the com.health.openscale.READ_DATA permission, which is defined in the
+ * This access is gated by the com.health.openscale.READ_WRITE_DATA permission, which is defined in the
* manifest; it is not accessible to any other app without user confirmation.
*
* The following URIs are supported:
@@ -133,6 +140,30 @@ public class ScaleDatabaseProvider extends android.content.ContentProvider {
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
- throw new UnsupportedOperationException("Not supported");
+ if (!PreferenceManager.getDefaultSharedPreferences(getContext())
+ .getBoolean("dataProviderEnable", false)) {
+ throw new UnsupportedOperationException("Provider access not enabled");
+ }
+
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(new Date((long)values.get("datetime")));
+
+ List measurementList = OpenScale.getInstance().getScaleDataOfDay(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH));
+
+ if (!measurementList.isEmpty()) {
+ ScaleMeasurement measurement = measurementList.get(0);
+ Timber.d("measurement found " + measurement.getDateTime());
+
+ // TODO update new values
+ //float calories = (float)values.get("calories");
+ //measurement.setCalories(calories);
+
+ OpenScale.getInstance().updateScaleData(measurement);
+ return 1;
+ } else {
+ Timber.e("no measurement for an update found");
+ }
+
+ return 0;
}
}
diff --git a/android_app/app/src/main/res/values-cs/strings.xml b/android_app/app/src/main/res/values-cs/strings.xml
index cb2b6b4c..53a1f00f 100644
--- a/android_app/app/src/main/res/values-cs/strings.xml
+++ b/android_app/app/src/main/res/values-cs/strings.xml
@@ -172,7 +172,7 @@
Týdenní přehled
Oprávnění nebylo nastavené
- Číst data openScale
+ Číst data openScale
Další
Nastavit implicitní pořadí
Systémové nastavení
diff --git a/android_app/app/src/main/res/values-de/strings.xml b/android_app/app/src/main/res/values-de/strings.xml
index 1cdec758..f3683c5a 100644
--- a/android_app/app/src/main/res/values-de/strings.xml
+++ b/android_app/app/src/main/res/values-de/strings.xml
@@ -217,8 +217,8 @@
Moderate Tätigkeit
Schwere Tätigkeit
Extreme Tätigkeit
-Auslesen der openScale Daten, inkl. Benutzerinformationen und aller gespeicherten Messungen
- Auslesen der openScale Daten
+Auslesen der openScale Daten, inkl. Benutzerinformationen und aller gespeicherten Messungen
+ Auslesen der openScale Daten
3rd Party App Zugriff
Diese Waage ist nicht gekoppelt!
\n
diff --git a/android_app/app/src/main/res/values-el/strings.xml b/android_app/app/src/main/res/values-el/strings.xml
index 1985f9e8..5b230812 100644
--- a/android_app/app/src/main/res/values-el/strings.xml
+++ b/android_app/app/src/main/res/values-el/strings.xml
@@ -224,8 +224,8 @@
Το ζευγάρωμα ήταν επιτυχημένο!
\n
\nΕπανασυνδεθείτε για να ανακτήσετε τα δεδομένα μετρήσεων.
- ανάγνωση δεδομένων openScale, συμπεριλαμβάνονται οι πληροφορίες χρήστη και όλες οι αποθηκευμένες μετρήσεις
- Ανάγνωση δεδομένων openScale
+ ανάγνωση δεδομένων openScale, συμπεριλαμβάνονται οι πληροφορίες χρήστη και όλες οι αποθηκευμένες μετρήσεις
+ Ανάγνωση δεδομένων openScale
Μακρύ πάτημα και σύρσιμο της μέτρησης για αναδιάταξη
Κλικ στην μέτρηση για ρύθμιση
Επιλογή μέτρησης
diff --git a/android_app/app/src/main/res/values-es/strings.xml b/android_app/app/src/main/res/values-es/strings.xml
index e36d521d..f9cb4379 100644
--- a/android_app/app/src/main/res/values-es/strings.xml
+++ b/android_app/app/src/main/res/values-es/strings.xml
@@ -229,8 +229,8 @@
Pulsa en la medida para configurar
"Báscula Bluetooth "
"Añadir medición "
- "leer los datos de openScale, incluyendo la información de usuarios y todas las mediciones guardadas "
- Leer datos de openScale
+ "leer los datos de openScale, incluyendo la información de usuarios y todas las mediciones guardadas "
+ Leer datos de openScale
"Elegir medición "
Elegir usuario
Configurar widget
diff --git a/android_app/app/src/main/res/values-iw/strings.xml b/android_app/app/src/main/res/values-iw/strings.xml
index 7ca2083f..eb927526 100644
--- a/android_app/app/src/main/res/values-iw/strings.xml
+++ b/android_app/app/src/main/res/values-iw/strings.xml
@@ -192,8 +192,8 @@
ההרשאה נדחתה
נדרשת הרשאה לגשת אל המיקום באופן משוערך כדי לחפש אחר התקני Bluetooth. ניתן לשלול את ההרשאה לאחר איתור המכשיר.
מידע
- קריאת נתונים מ־openScale, לרבות פרטים על המשתמש ואת כל המדידות שנשמרו
- קריאת נתוני openScale
+ קריאת נתונים מ־openScale, לרבות פרטים על המשתמש ואת כל המדידות שנשמרו
+ קריאת נתוני openScale
הבא
ניתן לגעת נגיעה ארוכה במדידה ולגרור כדי לשנות את הסדר
יש ללחוץ על מדידה כדי להגדיר מחדש
diff --git a/android_app/app/src/main/res/values-ko/strings.xml b/android_app/app/src/main/res/values-ko/strings.xml
index 11a9eec8..1c2b9f3c 100644
--- a/android_app/app/src/main/res/values-ko/strings.xml
+++ b/android_app/app/src/main/res/values-ko/strings.xml
@@ -167,8 +167,8 @@
권한이 주어지지 않음
블루투스 장치를 검색하기 위해서 대략적인 위치 권한이 필요합니다. 장치를 찾은 후 권한을 다시 비활성화 할 수 있습니다.
정보
- 사용자 정보와 모든 저장된 측정치를 포함한 openScale 데이터를 읽습니다
- openScale 데이터 읽기
+ 사용자 정보와 모든 저장된 측정치를 포함한 openScale 데이터를 읽습니다
+ openScale 데이터 읽기
다음
측정치를 길게 누르고 드래그 하여 순서를 바꿀 수 있습니다
측정치를 눌러 설정
diff --git a/android_app/app/src/main/res/values-nb/strings.xml b/android_app/app/src/main/res/values-nb/strings.xml
index a787e45d..7b4b1c54 100644
--- a/android_app/app/src/main/res/values-nb/strings.xml
+++ b/android_app/app/src/main/res/values-nb/strings.xml
@@ -242,8 +242,8 @@
Moderat
Tung
Ekstrem
- les openScale-data, inkludert brukerinfo, og alle lagrede målinger
- Les openScale-data
+ les openScale-data, inkludert brukerinfo, og alle lagrede målinger
+ Les openScale-data
Tilgang for tredjepartsprogrammer
Denne vekten har ikke blitt parret.
\n
diff --git a/android_app/app/src/main/res/values-nl/strings.xml b/android_app/app/src/main/res/values-nl/strings.xml
index 0f3c953d..f1737ccf 100644
--- a/android_app/app/src/main/res/values-nl/strings.xml
+++ b/android_app/app/src/main/res/values-nl/strings.xml
@@ -190,8 +190,8 @@
Geen toestemming verleend
"Locatie toestemming is nodig om te kunnen zoeken naar Bluetooth apparaten. Dit kan weer ingetrokken worden zodra het apparaat is gevonden."
Info
- lees openScale gegevens, inclusief gebruikersinformatie en alle bewaarde metingen
- Lees openScale Gegevens
+ lees openScale gegevens, inclusief gebruikersinformatie en alle bewaarde metingen
+ Lees openScale Gegevens
Volgende
Indrukken en slepen om metingen te herordenen
Klik meting om te configureren
diff --git a/android_app/app/src/main/res/values-ru/strings.xml b/android_app/app/src/main/res/values-ru/strings.xml
index 0215815f..0c21287b 100644
--- a/android_app/app/src/main/res/values-ru/strings.xml
+++ b/android_app/app/src/main/res/values-ru/strings.xml
@@ -217,8 +217,8 @@
За неделю
Для поиска устройства Bluetooth требуется разрешение доступа к местоположению. После обнаружения устройства доступ можно снова заблокировать.
- Чтение данных openScale, включая информацию о пользователе и все сохраненные измерения
- Чтение данных openScale
+ Чтение данных openScale, включая информацию о пользователе и все сохраненные измерения
+ Чтение данных openScale
Нажмите, удерживайте и перетащите измерения, чтобы изменить порядок отображения
Нажмите, чтобы настроить измерения
Сохранить поверх предыдущего \"%s\"\?
diff --git a/android_app/app/src/main/res/values-sv/strings.xml b/android_app/app/src/main/res/values-sv/strings.xml
index b8cd556d..308aeeb6 100644
--- a/android_app/app/src/main/res/values-sv/strings.xml
+++ b/android_app/app/src/main/res/values-sv/strings.xml
@@ -224,7 +224,7 @@
Medelhård
Hård
Extrem
- läs openScale-data, inklusive användarinformation och alla sparade mätningar
- Läs openScale-data
+ läs openScale-data, inklusive användarinformation och alla sparade mätningar
+ Läs openScale-data
Tillgång för tredjeparts-app
diff --git a/android_app/app/src/main/res/values-tr/strings.xml b/android_app/app/src/main/res/values-tr/strings.xml
index 1e93a450..3e4ab83f 100644
--- a/android_app/app/src/main/res/values-tr/strings.xml
+++ b/android_app/app/src/main/res/values-tr/strings.xml
@@ -199,8 +199,8 @@
İzin verilmedi
Bilgi
- tüm kayıtlı ölçümler ve kullanıcı bilgilerini içeren openScale verisini oku
- openScale Verisini Okuyun
+ tüm kayıtlı ölçümler ve kullanıcı bilgilerini içeren openScale verisini oku
+ openScale Verisini Okuyun
Sonraki
Yapılandırmak için ölçümü tıklayın
Tahmini ölçüm
diff --git a/android_app/app/src/main/res/values-vi/strings.xml b/android_app/app/src/main/res/values-vi/strings.xml
index a9213f65..ed460d0d 100644
--- a/android_app/app/src/main/res/values-vi/strings.xml
+++ b/android_app/app/src/main/res/values-vi/strings.xml
@@ -195,8 +195,8 @@
Quyền không được cấp
Cần quyền truy cập vị trí thô để tìm kiếm các thiết bị Bluetooth. Nó có thể được thu hồi sau khi thiết bị được tìm thấy.
Thông tin
- đọc dữ liệu của openScale, bao gồm thông tin người dùng và tất cả các số đo được lưu
- Đọc dữ liệu openScale
+ đọc dữ liệu của openScale, bao gồm thông tin người dùng và tất cả các số đo được lưu
+ Đọc dữ liệu openScale
Tiếp
Giữ lâu và kéo số đo để sắp xếp lại
Ấn vào số đo để cấu hình
diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml
index 89e77b63..6a5b0f37 100644
--- a/android_app/app/src/main/res/values/strings.xml
+++ b/android_app/app/src/main/res/values/strings.xml
@@ -190,8 +190,8 @@
Permission not granted
Coarse location permission needed to search for Bluetooth devices. It can be revoked after the device is found.
Info
- read openScale data, including user information and all saved measurements
- Read openScale Data
+ read/write openScale data, including user information and all saved measurements
+ Read/Write openScale Data
Next
Long press and drag measurement to reorder
Click measurement to configure