1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-01 06:20:33 +02:00

grant access to write to the openScale content provider (update a measurement)

This commit is contained in:
oliexdev
2019-01-06 11:07:54 +01:00
parent a9a3ae911c
commit 505f6ab1bb
16 changed files with 75 additions and 31 deletions

View File

@@ -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. -->
<permission
android:name="${applicationId}.READ_DATA"
android:description="@string/permission_read_data_description"
android:label="@string/permission_read_data_label"
android:name="${applicationId}.READ_WRITE_DATA"
android:description="@string/permission_read_write_data_description"
android:label="@string/permission_read_write_data_label"
android:protectionLevel="dangerous" />
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
@@ -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">
</provider>
</application>

View File

@@ -526,6 +526,19 @@ public class OpenScale {
return numOfMonth;
}
public List<ScaleMeasurement> 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<ScaleMeasurement> getScaleDataOfMonth(int year, int month) {
int selectedUserId = getSelectedScaleUserId();

View File

@@ -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. <br />
*
* 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.<br />
*
* 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<ScaleMeasurement> 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;
}
}

View File

@@ -172,7 +172,7 @@
<string name="label_weeks_view">Týdenní přehled</string>
<string name="permission_not_granted">Oprávnění nebylo nastavené</string>
<string name="permission_read_data_label">Číst data openScale</string>
<string name="permission_read_write_data_label">Číst data openScale</string>
<string name="label_next">Další</string>
<string name="label_set_default_order">Nastavit implicitní pořadí</string>
<string name="language_default">Systémové nastavení</string>

View File

@@ -217,8 +217,8 @@
<string name="activity_level_moderate">Moderate Tätigkeit</string>
<string name="activity_level_heavy">Schwere Tätigkeit</string>
<string name="activity_level_extreme">Extreme Tätigkeit</string>
<string name="permission_read_data_description">Auslesen der openScale Daten, inkl. Benutzerinformationen und aller gespeicherten Messungen</string>
<string name="permission_read_data_label">Auslesen der openScale Daten</string>
<string name="permission_read_write_data_description">Auslesen der openScale Daten, inkl. Benutzerinformationen und aller gespeicherten Messungen</string>
<string name="permission_read_write_data_label">Auslesen der openScale Daten</string>
<string name="label_data_provider_enable">3rd Party App Zugriff</string>
<string name="trisa_scale_not_paired">Diese Waage ist nicht gekoppelt!
\n

View File

@@ -224,8 +224,8 @@
<string name="trisa_scale_pairing_succeeded">Το ζευγάρωμα ήταν επιτυχημένο!
\n
\nΕπανασυνδεθείτε για να ανακτήσετε τα δεδομένα μετρήσεων.</string>
<string name="permission_read_data_description">ανάγνωση δεδομένων openScale, συμπεριλαμβάνονται οι πληροφορίες χρήστη και όλες οι αποθηκευμένες μετρήσεις</string>
<string name="permission_read_data_label">Ανάγνωση δεδομένων openScale</string>
<string name="permission_read_write_data_description">ανάγνωση δεδομένων openScale, συμπεριλαμβάνονται οι πληροφορίες χρήστη και όλες οι αποθηκευμένες μετρήσεις</string>
<string name="permission_read_write_data_label">Ανάγνωση δεδομένων openScale</string>
<string name="label_long_press_drag_reorder">Μακρύ πάτημα και σύρσιμο της μέτρησης για αναδιάταξη</string>
<string name="label_click_measurement_configure">Κλικ στην μέτρηση για ρύθμιση</string>
<string name="label_select_measurement">Επιλογή μέτρησης</string>

View File

@@ -229,8 +229,8 @@
<string name="label_click_measurement_configure">Pulsa en la medida para configurar</string>
<string name="label_your_bluetooth_scale">"Báscula Bluetooth "</string>
<string name="label_add_measurement">"Añadir medición "</string>
<string name="permission_read_data_description">"leer los datos de openScale, incluyendo la información de usuarios y todas las mediciones guardadas "</string>
<string name="permission_read_data_label">Leer datos de openScale</string>
<string name="permission_read_write_data_description">"leer los datos de openScale, incluyendo la información de usuarios y todas las mediciones guardadas "</string>
<string name="permission_read_write_data_label">Leer datos de openScale</string>
<string name="label_select_measurement">"Elegir medición "</string>
<string name="label_select_user">Elegir usuario</string>
<string name="label_configure_widget">Configurar widget</string>

View File

@@ -192,8 +192,8 @@
<string name="permission_not_granted">ההרשאה נדחתה</string>
<string name="permission_bluetooth_info">נדרשת הרשאה לגשת אל המיקום באופן משוערך כדי לחפש אחר התקני Bluetooth. ניתן לשלול את ההרשאה לאחר איתור המכשיר.</string>
<string name="permission_bluetooth_info_title">מידע</string>
<string name="permission_read_data_description">קריאת נתונים מ־openScale, לרבות פרטים על המשתמש ואת כל המדידות שנשמרו</string>
<string name="permission_read_data_label">קריאת נתוני openScale</string>
<string name="permission_read_write_data_description">קריאת נתונים מ־openScale, לרבות פרטים על המשתמש ואת כל המדידות שנשמרו</string>
<string name="permission_read_write_data_label">קריאת נתוני openScale</string>
<string name="label_next">הבא</string>
<string name="label_long_press_drag_reorder">ניתן לגעת נגיעה ארוכה במדידה ולגרור כדי לשנות את הסדר</string>
<string name="label_click_measurement_configure">יש ללחוץ על מדידה כדי להגדיר מחדש</string>

View File

@@ -167,8 +167,8 @@
<string name="permission_not_granted">권한이 주어지지 않음</string>
<string name="permission_bluetooth_info">블루투스 장치를 검색하기 위해서 대략적인 위치 권한이 필요합니다. 장치를 찾은 후 권한을 다시 비활성화 할 수 있습니다.</string>
<string name="permission_bluetooth_info_title">정보</string>
<string name="permission_read_data_description">사용자 정보와 모든 저장된 측정치를 포함한 openScale 데이터를 읽습니다</string>
<string name="permission_read_data_label">openScale 데이터 읽기</string>
<string name="permission_read_write_data_description">사용자 정보와 모든 저장된 측정치를 포함한 openScale 데이터를 읽습니다</string>
<string name="permission_read_write_data_label">openScale 데이터 읽기</string>
<string name="label_next">다음</string>
<string name="label_long_press_drag_reorder">측정치를 길게 누르고 드래그 하여 순서를 바꿀 수 있습니다</string>
<string name="label_click_measurement_configure">측정치를 눌러 설정</string>

View File

@@ -242,8 +242,8 @@
<string name="activity_level_moderate">Moderat</string>
<string name="activity_level_heavy">Tung</string>
<string name="activity_level_extreme">Ekstrem</string>
<string name="permission_read_data_description">les openScale-data, inkludert brukerinfo, og alle lagrede målinger</string>
<string name="permission_read_data_label">Les openScale-data</string>
<string name="permission_read_write_data_description">les openScale-data, inkludert brukerinfo, og alle lagrede målinger</string>
<string name="permission_read_write_data_label">Les openScale-data</string>
<string name="label_data_provider_enable">Tilgang for tredjepartsprogrammer</string>
<string name="trisa_scale_not_paired">Denne vekten har ikke blitt parret.
\n

View File

@@ -190,8 +190,8 @@
<string name="permission_not_granted">Geen toestemming verleend</string>
<string name="permission_bluetooth_info">"Locatie toestemming is nodig om te kunnen zoeken naar Bluetooth apparaten. Dit kan weer ingetrokken worden zodra het apparaat is gevonden."</string>
<string name="permission_bluetooth_info_title">Info</string>
<string name="permission_read_data_description">lees openScale gegevens, inclusief gebruikersinformatie en alle bewaarde metingen</string>
<string name="permission_read_data_label">Lees openScale Gegevens</string>
<string name="permission_read_write_data_description">lees openScale gegevens, inclusief gebruikersinformatie en alle bewaarde metingen</string>
<string name="permission_read_write_data_label">Lees openScale Gegevens</string>
<string name="label_next">Volgende</string>
<string name="label_long_press_drag_reorder">Indrukken en slepen om metingen te herordenen</string>
<string name="label_click_measurement_configure">Klik meting om te configureren</string>

View File

@@ -217,8 +217,8 @@
<string name="label_weeks_view">За неделю</string>
<string name="permission_bluetooth_info">Для поиска устройства Bluetooth требуется разрешение доступа к местоположению. После обнаружения устройства доступ можно снова заблокировать.</string>
<string name="permission_read_data_description">Чтение данных openScale, включая информацию о пользователе и все сохраненные измерения</string>
<string name="permission_read_data_label">Чтение данных openScale</string>
<string name="permission_read_write_data_description">Чтение данных openScale, включая информацию о пользователе и все сохраненные измерения</string>
<string name="permission_read_write_data_label">Чтение данных openScale</string>
<string name="label_long_press_drag_reorder">Нажмите, удерживайте и перетащите измерения, чтобы изменить порядок отображения</string>
<string name="label_click_measurement_configure">Нажмите, чтобы настроить измерения</string>
<string name="label_export_overwrite">Сохранить поверх предыдущего \"%s\"\?</string>

View File

@@ -224,7 +224,7 @@
<string name="activity_level_moderate">Medelhård</string>
<string name="activity_level_heavy">Hård</string>
<string name="activity_level_extreme">Extrem</string>
<string name="permission_read_data_description">läs openScale-data, inklusive användarinformation och alla sparade mätningar</string>
<string name="permission_read_data_label">Läs openScale-data</string>
<string name="permission_read_write_data_description">läs openScale-data, inklusive användarinformation och alla sparade mätningar</string>
<string name="permission_read_write_data_label">Läs openScale-data</string>
<string name="label_data_provider_enable">Tillgång för tredjeparts-app</string>
</resources>

View File

@@ -199,8 +199,8 @@
<string name="permission_not_granted">İzin verilmedi</string>
<string name="permission_bluetooth_info_title">Bilgi</string>
<string name="permission_read_data_description">tüm kayıtlı ölçümler ve kullanıcı bilgilerini içeren openScale verisini oku</string>
<string name="permission_read_data_label">openScale Verisini Okuyun</string>
<string name="permission_read_write_data_description">tüm kayıtlı ölçümler ve kullanıcı bilgilerini içeren openScale verisini oku</string>
<string name="permission_read_write_data_label">openScale Verisini Okuyun</string>
<string name="label_next">Sonraki</string>
<string name="label_click_measurement_configure">Yapılandırmak için ölçümü tıklayın</string>
<string name="label_estimate_measurement">Tahmini ölçüm</string>

View File

@@ -195,8 +195,8 @@
<string name="permission_not_granted">Quyền không được cấp</string>
<string name="permission_bluetooth_info">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.</string>
<string name="permission_bluetooth_info_title">Thông tin</string>
<string name="permission_read_data_description">đọ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</string>
<string name="permission_read_data_label">Đọc dữ liệu openScale</string>
<string name="permission_read_write_data_description">đọ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</string>
<string name="permission_read_write_data_label">Đọc dữ liệu openScale</string>
<string name="label_next">Tiếp</string>
<string name="label_long_press_drag_reorder">Giữ lâu và kéo số đo để sắp xếp lại</string>
<string name="label_click_measurement_configure">Ấn vào số đo để cấu hình</string>

View File

@@ -190,8 +190,8 @@
<string name="permission_not_granted">Permission not granted</string>
<string name="permission_bluetooth_info">Coarse location permission needed to search for Bluetooth devices. It can be revoked after the device is found.</string>
<string name="permission_bluetooth_info_title">Info</string>
<string name="permission_read_data_description">read openScale data, including user information and all saved measurements</string>
<string name="permission_read_data_label">Read openScale Data</string>
<string name="permission_read_write_data_description">read/write openScale data, including user information and all saved measurements</string>
<string name="permission_read_write_data_label">Read/Write openScale Data</string>
<string name="label_next">Next</string>
<string name="label_long_press_drag_reorder">Long press and drag measurement to reorder</string>
<string name="label_click_measurement_configure">Click measurement to configure</string>