From aaff483fdbd277a992cbc2da4417c22ebea454ed Mon Sep 17 00:00:00 2001 From: Hpsaturn Date: Sun, 26 Jan 2025 22:58:49 +0100 Subject: [PATCH 1/3] testing possible fix to CI gradle version issue --- .github/workflows/android.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 0498122..7c0b22a 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -6,13 +6,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the code - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set up Java - uses: actions/setup-java@v2 + uses: actions/setup-java@v4 with: - distribution: "temurin" + distribution: "zulu" java-version: 17 + cache: 'gradle' - name: Loading submodules run: git submodule update --init --recursive From b221b827d4109acc5a5fe3ef0f1aa55412438e1e Mon Sep 17 00:00:00 2001 From: Hpsaturn Date: Mon, 27 Jan 2025 23:10:22 +0100 Subject: [PATCH 2/3] removed EasyPreferences library. Instead by own implementation --- app/build.gradle | 2 +- .../hpsaturn/pollutionreporter/AppData.java | 15 ++++---- .../pollutionreporter/MainActivity.java | 36 +++++++++---------- .../pollutionreporter/common/Storage.java | 24 ++++++++++++- .../service/RecordTrackService.java | 13 ++----- .../pollutionreporter/view/ScanFragment.java | 8 ++--- .../view/SettingsFixedStation.java | 11 +++--- .../view/SettingsFragment.java | 20 ++--------- 8 files changed, 63 insertions(+), 66 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 838abfa..a4326c7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'com.github.pwittchen:reactivewifi-rx2:0.3.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0-alpha' implementation 'com.google.code.gson:gson:2.10.1' - implementation 'com.iamhabib:easy-preference:1.0.1' +// implementation 'com.iamhabib:easy-preference:1.0.1' implementation 'com.github.MKergall:osmbonuspack:6.5.2' implementation 'io.nlopez.smartlocation:library:3.3.3' diff --git a/app/src/main/java/hpsaturn/pollutionreporter/AppData.java b/app/src/main/java/hpsaturn/pollutionreporter/AppData.java index f970d7b..4a26f60 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/AppData.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/AppData.java @@ -5,7 +5,6 @@ import androidx.multidex.MultiDexApplication; import com.google.firebase.database.FirebaseDatabase; -import com.iamhabib.easy_preference.EasyPreference; import com.polidea.rxandroidble2.RxBleClient; import com.polidea.rxandroidble2.internal.RxBleLog; @@ -18,16 +17,19 @@ public class AppData extends MultiDexApplication{ private RxBleClient rxBleClient; - private EasyPreference.Builder prefBuilder; public static RxBleClient getRxBleClient(Context context) { AppData application = (AppData) context.getApplicationContext(); return application.rxBleClient; } - public static EasyPreference.Builder getPrefBuilder(Context context){ - AppData application = (AppData) context.getApplicationContext(); - return application.prefBuilder; +// public static EasyPreference.Builder getPrefBuilder(Context context){ +// AppData application = (AppData) context.getApplicationContext(); +// return application.prefBuilder; +// } + + public Context getContext() { + return this.getContext(); } @Override @@ -42,7 +44,8 @@ public void onCreate() { RxJavaPlugins.setErrorHandler(throwable -> {}); rxBleClient = RxBleClient.create(this); RxBleClient.setLogLevel(RxBleLog.VERBOSE); - prefBuilder = EasyPreference.with(this,"KEYS_APP_PREFERENCES"); + +// prefBuilder = EasyPreference.with(this,"KEYS_APP_PREFERENCES"); // AqicnApiManager.getInstance().init(this); super.onCreate(); } diff --git a/app/src/main/java/hpsaturn/pollutionreporter/MainActivity.java b/app/src/main/java/hpsaturn/pollutionreporter/MainActivity.java index 728f5a8..ae748d4 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/MainActivity.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/MainActivity.java @@ -31,7 +31,6 @@ import com.google.firebase.database.FirebaseDatabase; import com.hpsaturn.tools.Logger; import com.hpsaturn.tools.UITools; -import com.iamhabib.easy_preference.EasyPreference; import com.yarolegovich.discretescrollview.DiscreteScrollView; import com.yarolegovich.discretescrollview.transform.ScaleTransformer; @@ -40,6 +39,7 @@ import butterknife.BindView; import butterknife.ButterKnife; import hpsaturn.pollutionreporter.common.Keys; +import hpsaturn.pollutionreporter.common.Storage; import hpsaturn.pollutionreporter.models.ResponseConfig; import hpsaturn.pollutionreporter.models.SensorData; import hpsaturn.pollutionreporter.models.SensorTrackInfo; @@ -90,7 +90,6 @@ public class MainActivity extends BaseActivity implements DiscreteScrollView fragmentPicker; private ScanFragment scanFragment; - private EasyPreference.Builder prefBuilder; private ChartFragment chartFragment; private RecordTrackManager recordTrackManager; private MapFragment mapFragment; @@ -110,7 +109,6 @@ protected void onCreate(Bundle savedInstanceState) { startRecordTrackService(); ButterKnife.bind(this); - prefBuilder = AppData.getPrefBuilder(this); startDataBase(); setSupportActionBar(toolbar); @@ -198,7 +196,7 @@ public void onSensorConfigWrite(String config) { }; public boolean isRecording(){ - return prefBuilder.getBoolean(Keys.SENSOR_RECORD, false); + return Storage.getBoolean(Keys.SENSOR_RECORD, false, this); } private void buttonRecordingAction () { @@ -221,14 +219,14 @@ public void shareAction(String metadata, boolean isShare){ private void stopRecord() { showSnackMessage(R.string.msg_record_stop); - prefBuilder.addBoolean(Keys.SENSOR_RECORD, false).save(); + Storage.addBoolean(Keys.SENSOR_RECORD, false, this); recordTrackManager.serviceRecordStop(); fabUpdateLayout(); } private void startRecord() { showSnackMessage(R.string.msg_record); - prefBuilder.addBoolean(Keys.SENSOR_RECORD, true).save(); + Storage.addBoolean(Keys.SENSOR_RECORD, true, this); recordTrackManager.serviceRecord(); fabUpdateLayout(); } @@ -328,7 +326,7 @@ private void scrollToRecordsFragment() { private void fabUpdateLayout() { fab.hide(); - if (prefBuilder.getBoolean(Keys.SENSOR_RECORD, false)) { + if (Storage.getBoolean(Keys.SENSOR_RECORD, false, this)) { fab.setBackgroundTintList(ContextCompat.getColorStateList(this,R.color.color_state_record_stop)); fab.setImageDrawable(ContextCompat.getDrawable(this,R.drawable.ic_stop_white_24dp)); } else { @@ -420,7 +418,7 @@ public void stopRecordTrackService() { } public void deviceConnect() { - if (prefBuilder.getBoolean(Keys.DEVICE_PAIR, false)) { + if (Storage.getBoolean(Keys.DEVICE_PAIR, false, this)) { startRecordTrackService(); showSnackMessage(R.string.msg_device_connecting); } @@ -462,15 +460,15 @@ public boolean isStorageGranted(){ int permissionState = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); return permissionState == PackageManager.PERMISSION_GRANTED; -// return prefBuilder.getBoolean(Keys.PERMISSION_STORAGE,false); +// return Storage.getBoolean(Keys.PERMISSION_STORAGE,false); } public boolean isGPSGranted(){ - return prefBuilder.getBoolean(Keys.PERMISSION_BACKGROUND,false); + return Storage.getBoolean(Keys.PERMISSION_BACKGROUND,false, this); } public boolean isBLEGranted(){ - return prefBuilder.getBoolean(Keys.PERMISSION_BLE,false); + return Storage.getBoolean(Keys.PERMISSION_BLE,false, this); } public void checkPreviousPermission() { @@ -560,16 +558,16 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis break; } Log.i(TAG, "[PERM] User granted background location permission"); - prefBuilder.addBoolean(Keys.PERMISSION_BACKGROUND, true).save(); + Storage.addBoolean(Keys.PERMISSION_BACKGROUND, true, this); buttonRecordingAction(); break; case STORAGE: if (grantResults.length == 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) { - prefBuilder.addBoolean(Keys.PERMISSION_STORAGE, false).save(); + Storage.addBoolean(Keys.PERMISSION_STORAGE, false, this); Log.i(TAG, "[PERM] User denied WRITE_EXTERNAL_STORAGE permission."); } else { Log.i(TAG, "[PERM] User granted WRITE_EXTERNAL_STORAGE permission."); - prefBuilder.addBoolean(Keys.PERMISSION_STORAGE, true).save(); + Storage.addBoolean(Keys.PERMISSION_STORAGE, true, this); } break; case BLUETOOTH: @@ -588,7 +586,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis break; } Log.i(TAG, "[PERM] User granted scan nearby devices permission"); - prefBuilder.addBoolean(Keys.PERMISSION_BLE, true).save(); + Storage.addBoolean(Keys.PERMISSION_BLE, true, this); requestLocationPermission(); default: @@ -597,7 +595,7 @@ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permis } public void performBLEScan() { - if(!isBLEGranted())prefBuilder.addBoolean(Keys.PERMISSION_BLE, true).save(); + if(!isBLEGranted())Storage.addBoolean(Keys.PERMISSION_BLE, true, this); if(scanFragment!=null)scanFragment.executeScan(); } @@ -609,8 +607,8 @@ void actionUnPair() { Logger.i(TAG, "[BLE] unpaired.."); stopRecord(); recordTrackManager.stop(); - prefBuilder.addString(Keys.DEVICE_ADDRESS,"").save(); - prefBuilder.addBoolean(Keys.DEVICE_PAIR, false).save(); + Storage.addString(Keys.DEVICE_ADDRESS,"", this); + Storage.addBoolean(Keys.DEVICE_PAIR, false, this); fab.hide(); if (chartFragment != null) chartFragment.clearData(); removeFragment(chartFragment); @@ -638,7 +636,7 @@ protected void onDestroy() { } private boolean isPaired(){ - return prefBuilder.getBoolean(Keys.DEVICE_PAIR, false); + return Storage.getBoolean(Keys.DEVICE_PAIR, false, this); } public boolean isDeviceConnected() { diff --git a/app/src/main/java/hpsaturn/pollutionreporter/common/Storage.java b/app/src/main/java/hpsaturn/pollutionreporter/common/Storage.java index 380ad71..318e446 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/common/Storage.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/common/Storage.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.SharedPreferences; -import android.preference.PreferenceManager; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -115,4 +114,27 @@ public static List getTempAPList(Context ctx) { } } + public static boolean getBoolean(String key, boolean value, Context ctx) { + SharedPreferences preferences = ctx.getSharedPreferences(KEYS_TRACKS_PREFERENCES,0); + return preferences.getBoolean(key, value); + } + + public static void addBoolean(String key, boolean value, Context ctx) { + SharedPreferences preferences = ctx.getSharedPreferences(KEYS_TRACKS_PREFERENCES,0); + SharedPreferences.Editor editor = preferences.edit(); + editor.putBoolean(key, value); + editor.apply(); + } + + public static void addString(String key, String value, Context ctx) { + SharedPreferences preferences = ctx.getSharedPreferences(KEYS_TRACKS_PREFERENCES,0); + SharedPreferences.Editor editor = preferences.edit(); + editor.putString(key, value); + editor.apply(); + } + + public static String getString(String key, String value, Context ctx) { + SharedPreferences preferences = ctx.getSharedPreferences(KEYS_TRACKS_PREFERENCES,0); + return preferences.getString(key, value); + } } diff --git a/app/src/main/java/hpsaturn/pollutionreporter/service/RecordTrackService.java b/app/src/main/java/hpsaturn/pollutionreporter/service/RecordTrackService.java index 3ef4b7f..3f7e9ab 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/service/RecordTrackService.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/service/RecordTrackService.java @@ -8,18 +8,14 @@ import android.content.Context; import android.content.Intent; import android.location.Location; -import android.os.Build; import android.os.IBinder; -import androidx.annotation.RequiresApi; import androidx.core.app.NotificationCompat; import com.fonfon.geohash.GeoHash; import com.google.gson.Gson; import com.hpsaturn.tools.FileTools; import com.hpsaturn.tools.Logger; -import com.hpsaturn.tools.UITools; -import com.iamhabib.easy_preference.EasyPreference; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -27,7 +23,6 @@ import java.util.Date; import java.util.Locale; -import hpsaturn.pollutionreporter.AppData; import hpsaturn.pollutionreporter.Config; import hpsaturn.pollutionreporter.MainActivity; import hpsaturn.pollutionreporter.R; @@ -50,7 +45,6 @@ public class RecordTrackService extends Service { private static final String TAG = RecordTrackService.class.getSimpleName(); private static final boolean VERBOSE = Config.DEBUG && false; - private EasyPreference.Builder prefBuilder; private BLEHandler bleHandler; private boolean isRecording; private RecordTrackManager recordTrackManager; @@ -64,15 +58,14 @@ public class RecordTrackService extends Service { public void onCreate() { super.onCreate(); Logger.i(TAG, "[BLE] Creating Service container.."); - prefBuilder = AppData.getPrefBuilder(this); - isRecording = prefBuilder.getBoolean(Keys.SENSOR_RECORD, false); + isRecording = Storage.getBoolean(Keys.SENSOR_RECORD, false, this); if (isRecording) restoreValues(); recordTrackManager = new RecordTrackManager(this, managerListener); notificationSetup(); } private void startConnection() { - if (prefBuilder.getBoolean(Keys.DEVICE_PAIR, false)) { + if (Storage.getBoolean(Keys.DEVICE_PAIR, false, this)) { if (bleHandler == null) { connect(); } @@ -86,7 +79,7 @@ else if (bleHandler.isConnected()) { private void connect() { Logger.i(TAG, "[BLE] starting BLE connection.."); - String macAddress = prefBuilder.getString(Keys.DEVICE_ADDRESS, ""); + String macAddress = Storage.getString(Keys.DEVICE_ADDRESS, "", this); Logger.i(TAG, "[BLE] deviceConnect to " + macAddress); bleHandler = new BLEHandler(this, macAddress, bleListener); bleHandler.connect(); diff --git a/app/src/main/java/hpsaturn/pollutionreporter/view/ScanFragment.java b/app/src/main/java/hpsaturn/pollutionreporter/view/ScanFragment.java index 27f5074..27d5810 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/view/ScanFragment.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/view/ScanFragment.java @@ -15,7 +15,6 @@ import com.hpsaturn.tools.Logger; import com.hpsaturn.tools.UITools; -import com.iamhabib.easy_preference.EasyPreference; import com.polidea.rxandroidble2.RxBleClient; import com.polidea.rxandroidble2.exceptions.BleScanException; import com.polidea.rxandroidble2.scan.ScanFilter; @@ -33,6 +32,7 @@ import hpsaturn.pollutionreporter.PermissionUtil; import hpsaturn.pollutionreporter.R; import hpsaturn.pollutionreporter.common.Keys; +import hpsaturn.pollutionreporter.common.Storage; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; @@ -162,9 +162,9 @@ private void onDeviceConnectClick(ScanResult scanResults) { String macAddress = scanResults.getBleDevice().getMacAddress(); String deviceName = scanResults.getBleDevice().getName(); Logger.i(TAG, "onDeviceConnectClick: "+deviceName+ " " + macAddress); - EasyPreference.Builder prefBuilder = AppData.getPrefBuilder(getContext()); - prefBuilder.addString(Keys.DEVICE_ADDRESS, macAddress).save(); - prefBuilder.addBoolean(Keys.DEVICE_PAIR, true).save(); +// EasyPreference.Builder Storage = AppData.getPrefBuilder(getContext()); + Storage.addString(Keys.DEVICE_ADDRESS, macAddress, requireContext()); + Storage.addBoolean(Keys.DEVICE_PAIR, true, requireContext()); getMain().deviceConnect(); getMain().removeScanFragment(); } diff --git a/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFixedStation.java b/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFixedStation.java index 17af5ed..b7ca4cc 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFixedStation.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFixedStation.java @@ -13,13 +13,11 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.hpsaturn.tools.Logger; import com.hpsaturn.tools.UITools; -import com.iamhabib.easy_preference.EasyPreference; import org.apache.commons.lang3.math.NumberUtils; import java.util.TimerTask; -import hpsaturn.pollutionreporter.AppData; import hpsaturn.pollutionreporter.Config; import hpsaturn.pollutionreporter.R; import hpsaturn.pollutionreporter.common.Keys; @@ -29,6 +27,7 @@ import hpsaturn.pollutionreporter.models.ResponseConfig; import hpsaturn.pollutionreporter.models.SensorConfig; import hpsaturn.pollutionreporter.models.WifiConfig; +import hpsaturn.pollutionreporter.common.Storage; import io.nlopez.smartlocation.SmartLocation; /** @@ -329,20 +328,18 @@ else if (geoHash.length() >=2 ) { try { summary = summary + geoHash; ifxdbSwitch.setSummary(R.string.summary_key_enable_ifx_ready); - EasyPreference.Builder prefBuilder = AppData.getPrefBuilder(getContext()); String name = geoHash.substring(0,3); - String flavor = prefBuilder.getString(Keys.DEVICE_FLAVOR,""); + String flavor = Storage.getString(Keys.DEVICE_FLAVOR,"", requireContext()); if (flavor.length()>6) flavor = flavor.substring(0,7); name = name + flavor; - name = name + prefBuilder.getString(Keys.DEVICE_ADDRESS,"").substring(10); + name = name + Storage.getString(Keys.DEVICE_ADDRESS,"", requireContext()).substring(10); name = name.replace("_",""); name = name.replace(":",""); name = name.toUpperCase(); name = getString(R.string.summary_fixed_stations_map)+" "+name; updateSummary(R.string.key_fixed_stations_map,name); } catch (Exception e) { - EasyPreference.Builder prefBuilder = AppData.getPrefBuilder(getContext()); - String flavor = prefBuilder.getString(Keys.DEVICE_FLAVOR,""); + String flavor = Storage.getString(Keys.DEVICE_FLAVOR,"", requireContext()); FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey(Keys.DEVICE_FLAVOR,flavor); crashlytics.setCustomKey("geohash",geoHash); diff --git a/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFragment.java b/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFragment.java index 5a93a22..0246a24 100644 --- a/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFragment.java +++ b/app/src/main/java/hpsaturn/pollutionreporter/view/SettingsFragment.java @@ -1,37 +1,21 @@ package hpsaturn.pollutionreporter.view; -import static android.Manifest.permission.ACCESS_COARSE_LOCATION; -import static android.Manifest.permission.ACCESS_FINE_LOCATION; -import static android.content.pm.PackageManager.PERMISSION_GRANTED; - import android.content.SharedPreferences; -import android.net.wifi.ScanResult; import android.os.Bundle; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.app.ActivityCompat; import androidx.preference.Preference; -import com.github.pwittchen.reactivewifi.AccessRequester; -import com.github.pwittchen.reactivewifi.ReactiveWifi; import com.hpsaturn.tools.DeviceUtil; import com.hpsaturn.tools.Logger; import com.hpsaturn.tools.UITools; -import com.iamhabib.easy_preference.EasyPreference; - -import java.util.ArrayList; -import java.util.List; -import hpsaturn.pollutionreporter.AppData; import hpsaturn.pollutionreporter.R; import hpsaturn.pollutionreporter.common.Keys; import hpsaturn.pollutionreporter.common.Storage; import hpsaturn.pollutionreporter.models.ResponseConfig; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; /** * Created by Antonio Vanegas @hpsaturn on 3/31/21. @@ -113,8 +97,8 @@ private void saveDeviceInfoString(ResponseConfig config) { if(config.vrev<774)info="\n!!YOUR FIRMWARE IS OUTDATED!!\n\n"+info; updateSummary(R.string.key_device_info,info); saveSharedPreference(R.string.key_device_info,info); - EasyPreference.Builder prefBuilder = AppData.getPrefBuilder(getContext()); - prefBuilder.addString(Keys.DEVICE_FLAVOR,config.vflv).save(); +// EasyPreference.Builder Storage = AppData.getPrefBuilder(getContext()); + Storage.addString(Keys.DEVICE_FLAVOR,config.vflv,requireContext()); } private void saveAppVersionString() { From 9c5d28864a9dfb33d50c21609a1e95939cdcfd04 Mon Sep 17 00:00:00 2001 From: Hpsaturn Date: Mon, 27 Jan 2025 23:14:52 +0100 Subject: [PATCH 3/3] added libtoolscommon target without EasyPreferences Library --- libtoolscommon | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libtoolscommon b/libtoolscommon index 2045108..a20668f 160000 --- a/libtoolscommon +++ b/libtoolscommon @@ -1 +1 @@ -Subproject commit 2045108c471f56b506084bf42ea459365863feb2 +Subproject commit a20668f355e0e19126e6cd0c2f978e1dc69721c5