Loading README.md +4 −3 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Together they make a complete self owned and controlled client–server solution ## Features - meant to be simple and small (*μ*) - low memory and battery impact - focus on privacy, doesn't use Google Play services, logs to self-owned server - uses GPS or network based location data - synchronizes location with web server in real time, in case of problems keeps retrying - alternatively works in offline mode; positions may be uploaded to the servers manually Loading @@ -17,9 +18,9 @@ Together they make a complete self owned and controlled client–server solution - automation ## Screenshots    <img alt="main" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot1" width="250"> <img alt="waypoint" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot2" width="250"> <img alt="settings" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot3" width="250"> ## Download [](https://f-droid.org/app/net.fabiszewski.ulogger) Loading app/build.gradle +5 −5 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ android { applicationId 'net.fabiszewski.ulogger' minSdkVersion 19 targetSdkVersion 29 versionCode 208 versionName '2.8' versionCode 300 versionName '3.0' } buildTypes { Loading Loading @@ -46,7 +46,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.exifinterface:exifinterface:1.1.0' testImplementation 'junit:junit:4.12' implementation 'androidx.preference:preference:1.1.1' implementation 'androidx.exifinterface:exifinterface:1.2.0' testImplementation 'junit:junit:4.13' } app/src/main/java/net/fabiszewski/ulogger/ImageHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -424,7 +424,7 @@ class ImageHelper { * @param context Context * @param uri URI */ static void getPersistablePermision(@NonNull Context context, @NonNull Uri uri) { static void getPersistablePermission(@NonNull Context context, @NonNull Uri uri) { context.getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); } } app/src/main/java/net/fabiszewski/ulogger/ImageTask.java +3 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import androidx.preference.PreferenceManager; import java.io.IOException; import java.lang.ref.WeakReference; import static net.fabiszewski.ulogger.ImageHelper.getPersistablePermision; import static net.fabiszewski.ulogger.ImageHelper.getPersistablePermission; import static net.fabiszewski.ulogger.ImageHelper.getResampledBitmap; import static net.fabiszewski.ulogger.ImageHelper.getThumbnail; import static net.fabiszewski.ulogger.ImageHelper.saveToCache; Loading Loading @@ -61,7 +61,7 @@ class ImageTask extends AsyncTask<Uri, Void, ImageTask.ImageTaskResult> { int dstWidth = Integer.parseInt(prefs.getString(SettingsActivity.KEY_IMAGE_SIZE, activity.getString(R.string.pref_imagesize_default))); if (dstWidth == 0) { savedUri = inUri; getPersistablePermision(activity, inUri); getPersistablePermission(activity, inUri); thumbnail = getThumbnail(activity, inUri); } else { Bitmap bitmap = getResampledBitmap(activity, inUri, dstWidth); Loading Loading @@ -108,7 +108,7 @@ class ImageTask extends AsyncTask<Uri, Void, ImageTask.ImageTaskResult> { Activity getActivity(); } class ImageTaskResult { static class ImageTaskResult { final Uri savedUri; final Bitmap thumbnail; Loading app/src/main/java/net/fabiszewski/ulogger/ListWithEditTextPreference.java +1 −1 Original line number Diff line number Diff line Loading @@ -139,7 +139,7 @@ class ListWithEditTextPreference extends ListPreference implements Preference.On editText.setHint(prefs.getString(key, "")); submit.setOnClickListener(v -> { String newval = editText.getText().toString(); if (newval.length() > 0 && Integer.valueOf(newval) >= 0) { if (newval.length() > 0 && Integer.parseInt(newval) >= 0) { SharedPreferences.Editor editor = prefs.edit(); editor.putString(key, newval); editor.apply(); Loading Loading
README.md +4 −3 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ Together they make a complete self owned and controlled client–server solution ## Features - meant to be simple and small (*μ*) - low memory and battery impact - focus on privacy, doesn't use Google Play services, logs to self-owned server - uses GPS or network based location data - synchronizes location with web server in real time, in case of problems keeps retrying - alternatively works in offline mode; positions may be uploaded to the servers manually Loading @@ -17,9 +18,9 @@ Together they make a complete self owned and controlled client–server solution - automation ## Screenshots    <img alt="main" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot1" width="250"> <img alt="waypoint" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot2" width="250"> <img alt="settings" src="fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot3" width="250"> ## Download [](https://f-droid.org/app/net.fabiszewski.ulogger) Loading
app/build.gradle +5 −5 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ android { applicationId 'net.fabiszewski.ulogger' minSdkVersion 19 targetSdkVersion 29 versionCode 208 versionName '2.8' versionCode 300 versionName '3.0' } buildTypes { Loading Loading @@ -46,7 +46,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.exifinterface:exifinterface:1.1.0' testImplementation 'junit:junit:4.12' implementation 'androidx.preference:preference:1.1.1' implementation 'androidx.exifinterface:exifinterface:1.2.0' testImplementation 'junit:junit:4.13' }
app/src/main/java/net/fabiszewski/ulogger/ImageHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -424,7 +424,7 @@ class ImageHelper { * @param context Context * @param uri URI */ static void getPersistablePermision(@NonNull Context context, @NonNull Uri uri) { static void getPersistablePermission(@NonNull Context context, @NonNull Uri uri) { context.getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION); } }
app/src/main/java/net/fabiszewski/ulogger/ImageTask.java +3 −3 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ import androidx.preference.PreferenceManager; import java.io.IOException; import java.lang.ref.WeakReference; import static net.fabiszewski.ulogger.ImageHelper.getPersistablePermision; import static net.fabiszewski.ulogger.ImageHelper.getPersistablePermission; import static net.fabiszewski.ulogger.ImageHelper.getResampledBitmap; import static net.fabiszewski.ulogger.ImageHelper.getThumbnail; import static net.fabiszewski.ulogger.ImageHelper.saveToCache; Loading Loading @@ -61,7 +61,7 @@ class ImageTask extends AsyncTask<Uri, Void, ImageTask.ImageTaskResult> { int dstWidth = Integer.parseInt(prefs.getString(SettingsActivity.KEY_IMAGE_SIZE, activity.getString(R.string.pref_imagesize_default))); if (dstWidth == 0) { savedUri = inUri; getPersistablePermision(activity, inUri); getPersistablePermission(activity, inUri); thumbnail = getThumbnail(activity, inUri); } else { Bitmap bitmap = getResampledBitmap(activity, inUri, dstWidth); Loading Loading @@ -108,7 +108,7 @@ class ImageTask extends AsyncTask<Uri, Void, ImageTask.ImageTaskResult> { Activity getActivity(); } class ImageTaskResult { static class ImageTaskResult { final Uri savedUri; final Bitmap thumbnail; Loading
app/src/main/java/net/fabiszewski/ulogger/ListWithEditTextPreference.java +1 −1 Original line number Diff line number Diff line Loading @@ -139,7 +139,7 @@ class ListWithEditTextPreference extends ListPreference implements Preference.On editText.setHint(prefs.getString(key, "")); submit.setOnClickListener(v -> { String newval = editText.getText().toString(); if (newval.length() > 0 && Integer.valueOf(newval) >= 0) { if (newval.length() > 0 && Integer.parseInt(newval) >= 0) { SharedPreferences.Editor editor = prefs.edit(); editor.putString(key, newval); editor.apply(); Loading