From 0bfba422dc81b047eb161720e543d32b6705af91 Mon Sep 17 00:00:00 2001 From: Igor I Date: Wed, 19 Feb 2025 18:54:47 +0500 Subject: [PATCH] =?UTF-8?q?+=D0=A4=D0=BB=D0=B0=D0=B3=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D1=82=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D1=81?= =?UTF-8?q?=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=B8=D0=B7=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BE=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../java/kz/istt/locust/MapsActivity.java | 81 ++++++++++++++++--- .../java/kz/istt/locust/SetupActivity.java | 4 + app/src/main/res/drawable/ic_flag.xml | 23 ++++++ app/src/main/res/drawable/ic_inspector.xml | 8 +- app/src/main/res/layout/activity_setup.xml | 2 +- 6 files changed, 107 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/drawable/ic_flag.xml diff --git a/app/build.gradle b/app/build.gradle index c77b91d..ef4eab1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { defaultConfig { applicationId "kz.istt.locust" minSdkVersion 15 - versionCode 106 - versionName "3.0.3" + versionCode 108 + versionName "3.0.5" targetSdkVersion 34 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true diff --git a/app/src/main/java/kz/istt/locust/MapsActivity.java b/app/src/main/java/kz/istt/locust/MapsActivity.java index 04b6f9e..324806d 100644 --- a/app/src/main/java/kz/istt/locust/MapsActivity.java +++ b/app/src/main/java/kz/istt/locust/MapsActivity.java @@ -63,7 +63,7 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback ArrayList polygons=new ArrayList(); Polygon polygon=null; - String uid=""; + String g_uid=""; private Marker marker=null; private LocationManager lm; @@ -97,10 +97,10 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback .findFragmentById(R.id.map); mapFragment.getMapAsync(this); - Intent intent = getIntent(); points = intent.getParcelableArrayListExtra("LatLon"); - uid = intent.getStringExtra("uid"); + g_uid = intent.getStringExtra("uid"); + if(g_uid==null) g_uid=""; // Чтоб слушать GPS lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); @@ -131,7 +131,7 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback ); marker.setVisible(false); - //Геозоны обследования саранчи + //Отобразить все геозоны кроме текущей, обследования саранчи (текущие ниже) DbOpenHelper dboh = new DbOpenHelper(this); SQLiteDatabase rdb = null; try { @@ -139,12 +139,25 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback rdb = dboh.getReadableDatabase(); Cursor cursor=null; try { - cursor = rdb.rawQuery("select frmlocust_uid,lat,lon from frmlocust_locations where frmlocust_uid!='" + uid + "' order by frmlocust_uid,pos;", null); + String sql = """ + select + frmlocust_uid, + lat, + lon + from + frmlocust_locations + where + frmlocust_uid!=? + order by + frmlocust_uid, + pos + """; + cursor = rdb.rawQuery(sql, new String[]{g_uid}); if (cursor.moveToFirst()) { String uid = ""; PolygonOptions pOptions2 = new PolygonOptions(); do { - if (!uid.equals(cursor.getString(0)) && pOptions2.getPoints().size() > 1) { + if (pOptions2.getPoints().size() > 1) { Polygon polygon = mMap.addPolygon(pOptions2); polygons.add(polygon); polygon.setFillColor(0x7F0000FF); @@ -155,6 +168,7 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback } pOptions2.add(new LatLng(cursor.getDouble(1), cursor.getDouble(2))); } while (cursor.moveToNext()); + if (pOptions2.getPoints().size() > 1) { Polygon polygon = mMap.addPolygon(pOptions2); polygons.add(polygon); @@ -167,10 +181,23 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback if(cursor!=null){ cursor.close(); } } - //Геозоны противосаначовой обработки + //Отобразить все геозоны кроме текущей, противосаначовой обработки (текущие ниже) cursor=null; try { - cursor = rdb.rawQuery("select frmlocustdel_uid,lat,lon from frmlocustdel_locations where frmlocustdel_uid!='" + uid + "' order by frmlocustdel_uid,pos;", null); + String sql = """ + select + frmlocustdel_uid, + lat, + lon + from + frmlocustdel_locations + where + frmlocustdel_uid!=? + order by + frmlocustdel_uid, + pos + """; + cursor = rdb.rawQuery(sql, new String[]{g_uid}); if (cursor.moveToFirst()) { String uid = ""; PolygonOptions pOptions2 = new PolygonOptions(); @@ -198,6 +225,40 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback if(cursor!=null){ cursor.close(); } } + //Отображаю все центральные точки с анкет противосаранчовой обработки + cursor=null; + try { + String sql = """ + select + uid, + lat_center, + lon_center + from + frmlocustdel + where + del = 0 + and uid!=? + """; + cursor = rdb.rawQuery(sql, new String[]{g_uid}); + if (cursor.moveToFirst()) { + do { + center = new LatLng(cursor.getDouble(1), cursor.getDouble(2)); + mMap.addMarker(new MarkerOptions() + .position(center) + .title("Spray") + .icon(BitmapDescriptorFactory.fromBitmap(getMarker(R.drawable.ic_flag))) + ); + } while (cursor.moveToNext()); + } + }catch(Exception e){ + e.printStackTrace(); + }finally{ + if(cursor!=null){ cursor.close(); } + } + + + + }catch(Exception e){ e.printStackTrace(); }finally{ @@ -205,7 +266,7 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback } dboh.close(); /**/ - //Сreating a polygon. (The main polygon at the end since they overlap each) + //Create a geopolygon for the current survey. (The main polygon at the end since they overlap each) PolygonOptions pOptions = new PolygonOptions(); for(int i=0;i0) { + if(!pOptions.getPoints().isEmpty()) { Polygon polygon = mMap.addPolygon(pOptions); polygon.setFillColor(0x7F00FF00); center = getPolygonCenterPoint(pOptions.getPoints()); diff --git a/app/src/main/java/kz/istt/locust/SetupActivity.java b/app/src/main/java/kz/istt/locust/SetupActivity.java index 5c4a76c..1a0b89c 100644 --- a/app/src/main/java/kz/istt/locust/SetupActivity.java +++ b/app/src/main/java/kz/istt/locust/SetupActivity.java @@ -14,6 +14,7 @@ import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.text.Editable; +import android.text.InputFilter; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; @@ -32,6 +33,8 @@ import com.google.android.gms.vision.barcode.BarcodeDetector; import java.util.Locale; +import dbfields.InputFilterMinMax; + public class SetupActivity extends Activity { @@ -344,6 +347,7 @@ public class SetupActivity extends Activity { }); edtSyncDays = (EditText) findViewById(R.id.edtSyncDays); + edtSyncDays.setFilters(new InputFilter[]{ new InputFilterMinMax(1, 365) }); edtSyncDays.setText(String.valueOf(MySynchronizationOld.SyncDays)); edtSyncDays.addTextChangedListener(new TextWatcher() { diff --git a/app/src/main/res/drawable/ic_flag.xml b/app/src/main/res/drawable/ic_flag.xml new file mode 100644 index 0000000..de5addc --- /dev/null +++ b/app/src/main/res/drawable/ic_flag.xml @@ -0,0 +1,23 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_inspector.xml b/app/src/main/res/drawable/ic_inspector.xml index 9e2c448..fca15c8 100644 --- a/app/src/main/res/drawable/ic_inspector.xml +++ b/app/src/main/res/drawable/ic_inspector.xml @@ -1,5 +1,9 @@ - + diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml index df6f46a..b0526ec 100644 --- a/app/src/main/res/layout/activity_setup.xml +++ b/app/src/main/res/layout/activity_setup.xml @@ -281,7 +281,7 @@ android:autofillHints="" android:ems="10" android:importantForAutofill="no" - android:inputType="numberDecimal" /> + android:inputType="number" />