From f57fec4e27b375570b783708087cfaa589295836 Mon Sep 17 00:00:00 2001 From: Igor I Date: Fri, 9 Aug 2024 19:18:39 +0500 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BA=D1=80=D1=8B=D1=82=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B1=D0=B0=D0=B7=D1=8B,=20=D0=BE=D1=81=D0=B2=D0=BE?= =?UTF-8?q?=D0=B1=D0=BE=D0=B6=D0=B4=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=80=D0=B5?= =?UTF-8?q?=D1=81=D1=83=D1=80=D1=81=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/kz/istt/locust/DBGUITable.java | 28 +- .../java/kz/istt/locust/DbOpenHelper.java | 233 +++--- .../java/kz/istt/locust/LocustActivity.java | 397 ++++++---- .../kz/istt/locust/LocustDelActivity.java | 731 ++++++++++-------- .../kz/istt/locust/LocustDelListActivity.java | 160 ++-- .../kz/istt/locust/LocustHealthActivity.java | 713 ++++++++++------- .../istt/locust/LocustHealthListActivity.java | 259 ++++--- .../kz/istt/locust/LocustListActivity.java | 148 ++-- .../java/kz/istt/locust/MainActivity.java | 127 +-- .../java/kz/istt/locust/MapsActivity.java | 80 +- .../kz/istt/locust/MySynchronizationOld.java | 550 +++++++------ .../java/kz/istt/locust/ScanActivity.java | 99 +-- .../java/kz/istt/locust/SetupActivity.java | 11 +- .../java/kz/istt/locust/SplashScreen.java | 8 +- 14 files changed, 2025 insertions(+), 1519 deletions(-) diff --git a/app/src/main/java/kz/istt/locust/DBGUITable.java b/app/src/main/java/kz/istt/locust/DBGUITable.java index 13aa03c..6d12177 100644 --- a/app/src/main/java/kz/istt/locust/DBGUITable.java +++ b/app/src/main/java/kz/istt/locust/DBGUITable.java @@ -226,35 +226,35 @@ public class DBGUITable validateField(cv); - SQLiteDatabase db=null; + SQLiteDatabase wdb=null; try { - db = dboh.getWritableDatabase(); - db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) - db.insert(m_table, null, cv); - db.setTransactionSuccessful(); + wdb = dboh.getWritableDatabase(); + wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) + wdb.insert(m_table, null, cv); + wdb.setTransactionSuccessful(); } catch (Exception ex) { ex.printStackTrace(); } finally { - if(db!=null) db.endTransaction(); - if(db!=null) db.close(); + if(wdb!=null) wdb.endTransaction(); + if(wdb!=null) wdb.close(); } }else //Обновить запись { validateField(cv); - SQLiteDatabase db=null; + SQLiteDatabase wdb=null; try { - db = dboh.getWritableDatabase(); - db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) + wdb = dboh.getWritableDatabase(); + wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) uid=cv.getAsString("uid"); - db.update(m_table, cv, "uid = ?", new String[] {uid}); - db.setTransactionSuccessful(); + wdb.update(m_table, cv, "uid = ?", new String[] {uid}); + wdb.setTransactionSuccessful(); } catch (Exception ex) { ex.printStackTrace(); } finally { - if(db!=null) db.endTransaction(); - if(db!=null) db.close(); + if(wdb!=null) wdb.endTransaction(); + if(wdb!=null) wdb.close(); } } diff --git a/app/src/main/java/kz/istt/locust/DbOpenHelper.java b/app/src/main/java/kz/istt/locust/DbOpenHelper.java index 5b94f9e..92a813c 100644 --- a/app/src/main/java/kz/istt/locust/DbOpenHelper.java +++ b/app/src/main/java/kz/istt/locust/DbOpenHelper.java @@ -1603,8 +1603,11 @@ public class DbOpenHelper extends SQLiteOpenHelper /**Функция для обновления или вставки табличных данных*/ public Boolean updateTable(TCTable tbl) { - SQLiteDatabase db; Cursor cursor; + if(tbl.name.equals("countries")) + Log.i("igor", "tbl0=" + tbl.name); + if(tbl.name.equals("countriesregions")) + Log.i("igor", "tbl0=" + tbl.name); //Проверка на существование полей Boolean[] fb=new Boolean[tbl.fields.size()]; //Для проверки существования полей в локальной таблице @@ -1621,67 +1624,72 @@ public class DbOpenHelper extends SQLiteOpenHelper } } - db = this.getWritableDatabase(); - //Переписываем значения существующих полей и выполняем запросы - while(tbl.ReadNextRecord()) - { - if(tbl.name.equals("frmlocustdel")){ - Log.i("igor","tbl.name="+tbl.name); - } - String sql="select 1 from "+tbl.name+" where id = ?"; - String[] par = new String[] { tbl.getRowByName("id").getStrVal() }; - - boolean exists=false; - SQLiteDatabase rdb=null; - try { - rdb = getReadableDatabase(); - cursor = rdb.rawQuery(sql, par); - exists=cursor.moveToFirst(); - cursor.close(); - }finally{ - if(rdb != null) { rdb.close(); } - } - - ContentValues cv = new ContentValues(); - for(int i=0;i list = adapter.latlonList; list.clear(); DbOpenHelper dboh = new DbOpenHelper(this); - Cursor cursor = dboh.getReadableDatabase().rawQuery("select uid,lat,lon from frmlocust_locations where del=false and frmlocust_uid='" + uid + "' order by pos", null); - if (cursor.moveToFirst()) - { - do + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select uid,lat,lon from frmlocust_locations where del=false and frmlocust_uid='" + uid + "' order by pos", null); + if (cursor.moveToFirst()) { - list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); - } while (cursor.moveToNext()); + do + { + list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); list.add(new LatLon(UUID.randomUUID().toString(),0, 0)); } @@ -2475,20 +2577,31 @@ public class LocustActivity extends FragmentActivity implements LocationListener public void saveLocations(String uid){ if(uid==null) return; DbOpenHelper dboh = new DbOpenHelper(LocustActivity.this); - dboh.getReadableDatabase().execSQL("delete from frmlocust_locations where frmlocust_uid=\'" + uid+"\'"); - ArrayList list = ((LatLonAdapter)latlonList.getAdapter()).latlonList; - for(int i=0;i list = ((LatLonAdapter)latlonList.getAdapter()).latlonList; + for(int i=0;i=0 order by d.degree", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, d.degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprayDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprayDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiSprayDirectionEnd = findViewById(R.id.spiSprayDirectionEnd); // направление опрыскивания кон. guiTable.add(spiSprayDirectionEnd, "weather_spray_direction_end"); ((selectDB)spiSprayDirectionEnd).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprayDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprayDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // locuststypes @@ -611,38 +655,45 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiLocSpecies, "locust_type_id"); ((selectDB)spiLocSpecies).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from LocustsTypes lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from LocustsTypes lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiLocSpecies).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiLocSpecies).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiLocHoppers = findViewById(R.id.spiLocHoppers); // Стадии личинок guiTable.add(spiLocHoppers, "locust_hoppers_id"); ((selectDB)spiLocHoppers).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from list_age lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from list_age lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiLocHoppers).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiLocHoppers).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); /* @@ -682,19 +733,22 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiMainPurpose, "locust_purpose_id"); ((selectDB)spiMainPurpose).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from list_purpose lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from list_purpose lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiMainPurpose).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiMainPurpose).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); @@ -702,98 +756,117 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiLocustPhaseId, "locust_phase_id"); ((selectDB)spiLocustPhaseId).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_phase d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_phase d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiLocustPhaseId).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiLocustPhaseId).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiSprPlatform = findViewById(R.id.spiSprPlatform); // Вид опрыскивания guiTable.add(spiSprPlatform, "spray_platform"); ((selectDB)spiSprPlatform).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers_types d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers_types d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatform).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatform).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiSprPlatformA = findViewById(R.id.spiSprPlatformA); // «Авиа» - выпадающий список:«Самолет», «Вертолет», «Дельтаплан». guiTable.add(spiSprPlatformA, "spray_platform_a"); ((selectDB)spiSprPlatformA).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=1 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=1 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformA).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformA).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiSprPlatformG = findViewById(R.id.spiSprPlatformG); // «Наземное» - выпадающий список:«Трактор», «Машина», «Аэроз.генераторG». guiTable.add(spiSprPlatformG, "spray_platform_g"); ((selectDB)spiSprPlatformG).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=3 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=3 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformG).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformG).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiSprPlatformH = findViewById(R.id.spiSprPlatformH); // «Ручное» - выпадающий список:«Ранцевый», «Моторный», «Батарейный». guiTable.add(spiSprPlatformH, "spray_platform_h"); ((selectDB)spiSprPlatformH).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=5 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=5 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformH).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformH).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); /* @@ -836,19 +909,23 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiSprMarking, "spray_marking_id"); ((selectDB)spiSprMarking).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_markings d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_markings d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprMarking).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprMarking).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); cbEffectiveness = (CheckBox) findViewById(R.id.cbEffectiveness); @@ -892,19 +969,22 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiTypeImpact, "efficacy_impact_id"); ((selectDB)spiTypeImpact).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiTypeImpact).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiTypeImpact).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); edtEffMortality = (EditText) findViewById(R.id.edtEffMortality); // смертность саранчи(%) @@ -918,19 +998,23 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe guiTable.add(spiEffMethod, "efficacy_mortality_method"); ((selectDB)spiEffMethod).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiEffMethod).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiEffMethod).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); OnCheckedChangeListener cclsl = new OnCheckedChangeListener() @@ -1105,33 +1189,37 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe //guiTable.add(spiSafEmptyСontainers, "safety_container_id"); //spiSafEmptyСontainers.addField(this, "", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - //spiSafEmptyСontainers.addField(this, cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + do + { + //spiSafEmptyСontainers.addField(this, cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==1) - ((CheckBox) findViewById(R.id.cbTripleRinsed)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==2) - ((CheckBox) findViewById(R.id.cbPunctured)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==3) - ((CheckBox) findViewById(R.id.cbTakenBackToBase)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==4) - ((CheckBox) findViewById(R.id.cbLeftInField)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==5) - ((CheckBox) findViewById(R.id.cbBuried)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==6) - ((CheckBox) findViewById(R.id.cbBurned)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==1) + ((CheckBox) findViewById(R.id.cbTripleRinsed)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==2) + ((CheckBox) findViewById(R.id.cbPunctured)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==3) + ((CheckBox) findViewById(R.id.cbTakenBackToBase)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==4) + ((CheckBox) findViewById(R.id.cbLeftInField)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==5) + ((CheckBox) findViewById(R.id.cbBuried)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==6) + ((CheckBox) findViewById(R.id.cbBurned)).setText(cursor.getString(cursor.getColumnIndex("name"))); - } while (cursor.moveToNext()); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); ccl = new OnCheckedChangeListener() @@ -1747,38 +1835,49 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe public void saveLocations(String uid){ if(uid==null) return; DbOpenHelper dboh = new DbOpenHelper(LocustDelActivity.this); - dboh.getReadableDatabase().execSQL("update frmlocustdel_locations set del=true where frmlocustdel_uid=\'" + uid+"\'"); - ArrayList list = ((LatLonAdapter)latlonList.getAdapter()).latlonList; - for(int i=0;i list = ((LatLonAdapter)latlonList.getAdapter()).latlonList; + for(int i=0;i list = adapter.latlonList; list.clear(); DbOpenHelper dboh = new DbOpenHelper(this); - Cursor cursor = dboh.getReadableDatabase().rawQuery("select uid,lat,lon from frmlocustdel_locations where del=false and frmlocustdel_uid='" + uid + "' order by pos", null); - if (cursor.moveToFirst()) - { - do + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select uid,lat,lon from frmlocustdel_locations where del=false and frmlocustdel_uid='" + uid + "' order by pos", null); + if (cursor.moveToFirst()) { - list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); - } while (cursor.moveToNext()); + do + { + list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); list.add(new LatLon(UUID.randomUUID().toString(),0, 0)); } @@ -2367,17 +2472,21 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe @Override public void onStart() { super.onStart(); - DbOpenHelper dboh = new DbOpenHelper(this); - SQLiteDatabase db = dboh.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); - if(!cursor.moveToFirst()) - { - Toast toast = Toast.makeText(getApplicationContext(), - getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); - toast.show(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); + if(!cursor.moveToFirst()) + { + Toast toast = Toast.makeText(getApplicationContext(), + getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); + toast.show(); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } diff --git a/app/src/main/java/kz/istt/locust/LocustDelListActivity.java b/app/src/main/java/kz/istt/locust/LocustDelListActivity.java index 4942cdd..14d74a6 100644 --- a/app/src/main/java/kz/istt/locust/LocustDelListActivity.java +++ b/app/src/main/java/kz/istt/locust/LocustDelListActivity.java @@ -28,6 +28,7 @@ import androidx.appcompat.app.AppCompatActivity; import com.google.android.material.floatingactionbutton.FloatingActionButton; import java.io.File; +import java.sql.SQLException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -164,7 +165,13 @@ public class LocustDelListActivity extends AppCompatActivity public void onClick(DialogInterface dialog, int arg1) { DbOpenHelper dboh = new DbOpenHelper(LocustDelListActivity.this); - dboh.getReadableDatabase().execSQL("delete from frmlocustdel where send=1"); + SQLiteDatabase wdb = null; + try { + wdb = dboh.getWritableDatabase(); + wdb.execSQL("delete from frmlocustdel where send=1"); + } finally { + if(wdb!=null){ wdb.close(); } + } dboh.close(); LocustDelListActivity.this.onStart(); } @@ -599,82 +606,88 @@ public class LocustDelListActivity extends AppCompatActivity llList.removeAllViews(); DbOpenHelper dboh = new DbOpenHelper(LocustDelListActivity.this); - Cursor cursor = null; - switch (spiList.getSelectedItemPosition()) - { - case 0: - cursor = dboh.getReadableDatabase().rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and filled!=1 and device_id='"+android_id+"'", null); //Не отправленные - break; - case 1: - cursor = dboh.getReadableDatabase().rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and send=0 and filled=1 and device_id='"+android_id+"'", null); //Не отправленные - break; - case 2: - cursor = dboh.getReadableDatabase().rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and send=1 and device_id='"+android_id+"'", null); //Отправленные - break; - default: - cursor = dboh.getReadableDatabase().rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and device_id='"+android_id+"'", null); //Все - break; - } - - // Tools.logCursor(cursor); - OnClickListener oclBtn = new OnClickListener() - { - @Override - public void onClick(View v) + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = null; + switch (spiList.getSelectedItemPosition()) { - MyButton b = (MyButton) v; - - Intent intent = new Intent(LocustDelListActivity.this, LocustDelActivity.class); - intent.putExtra("uid", b.uid1); - startActivity(intent); + case 0: + cursor = rdb.rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and filled!=1 and device_id='" + android_id + "'", null); //Не отправленные + break; + case 1: + cursor = rdb.rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and send=0 and filled=1 and device_id='"+android_id+"'", null); //Не отправленные + break; + case 2: + cursor = rdb.rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and send=1 and device_id='"+android_id+"'", null); //Отправленные + break; + default: + cursor = rdb.rawQuery("select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocustdel where del=0 and device_id='"+android_id+"'", null); //Все + break; } - }; - if (cursor.moveToFirst()) - { - do + // Tools.logCursor(cursor); + OnClickListener oclBtn = new OnClickListener() { - btn = new MyButton(this); + @Override + public void onClick(View v) + { + MyButton b = (MyButton) v; - btn.setOnClickListener(oclBtn); - - btn.uid1 = cursor.getString(cursor.getColumnIndex("uid")); - - // Преобразует с учётом временой зоны (пример long dv = 946684800L * 1000L; //2000 ный по гринвичу дало 6 утра) - String vv = ""; - String val = cursor.getString(cursor.getColumnIndex("date")); - try { - long dv = Long.parseLong(val) * (long) 1000;// its need to be in milisecond - Date df = new java.util.Date(dv); - vv = new SimpleDateFormat("dd.MM.yyyy").format(df); - } catch (NumberFormatException e) { + Intent intent = new Intent(LocustDelListActivity.this, LocustDelActivity.class); + intent.putExtra("uid", b.uid1); + startActivity(intent); } - if(vv.isEmpty()) { + }; + + if (cursor.moveToFirst()) + { + do + { + btn = new MyButton(this); + + btn.setOnClickListener(oclBtn); + + btn.uid1 = cursor.getString(cursor.getColumnIndex("uid")); + + // Преобразует с учётом временой зоны (пример long dv = 946684800L * 1000L; //2000 ный по гринвичу дало 6 утра) + String vv = ""; + String val = cursor.getString(cursor.getColumnIndex("date")); try { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date df = format.parse(val); + long dv = Long.parseLong(val) * (long) 1000;// its need to be in milisecond + Date df = new java.util.Date(dv); vv = new SimpleDateFormat("dd.MM.yyyy").format(df); - } catch (ParseException e) { + } catch (NumberFormatException e) { + } + if(vv.isEmpty()) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date df = format.parse(val); + vv = new SimpleDateFormat("dd.MM.yyyy").format(df); + } catch (ParseException e) { + } } - } - btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); + btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); - // Устанавливаю высоту в пикселях через высоту макета - int heightInDp = 40; - float scale = getResources().getDisplayMetrics().density; - int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - LayoutParams.MATCH_PARENT, - heightInPx - ); - params.bottomMargin = 4; + // Устанавливаю высоту в пикселях через высоту макета + int heightInDp = 40; + float scale = getResources().getDisplayMetrics().density; + int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + LayoutParams.MATCH_PARENT, + heightInPx + ); + params.bottomMargin = 4; - llList.addView(btn,params); + llList.addView(btn,params); - } while (cursor.moveToNext()); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } @@ -687,15 +700,20 @@ public class LocustDelListActivity extends AppCompatActivity super.onStart(); DbOpenHelper dboh = new DbOpenHelper(this); - SQLiteDatabase db = dboh.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); - if(!cursor.moveToFirst()) - { - Toast toast = Toast.makeText(getApplicationContext(), - getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); - toast.show(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); + if(!cursor.moveToFirst()) + { + Toast toast = Toast.makeText(getApplicationContext(), + getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); + toast.show(); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } diff --git a/app/src/main/java/kz/istt/locust/LocustHealthActivity.java b/app/src/main/java/kz/istt/locust/LocustHealthActivity.java index 716ebbc..2ff4de2 100644 --- a/app/src/main/java/kz/istt/locust/LocustHealthActivity.java +++ b/app/src/main/java/kz/istt/locust/LocustHealthActivity.java @@ -374,15 +374,21 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi ((selectDB)spiCountry).addField("", ""); // Выбираем страны и заполняем поля dboh = new DbOpenHelper(this); - cursor = dboh.getReadableDatabase().rawQuery("select id, uid, name from countries where del=0 order by name", null); - if (cursor.moveToFirst()) - { - do + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select id, uid, name from countries where del=0 order by name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiCountry).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiCountry).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiCountry.setOnTouchListener(new View.OnTouchListener() { @Override @@ -396,16 +402,22 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiRegion, "region_id"); ((selectDB)spiRegion).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh.getReadableDatabase().rawQuery("select id, name from countriesregions where del=0 order by name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select id, name from countriesregions where del=0 order by name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiRegion).addField(cursor.getString(cursor.getColumnIndex("name")), - cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiRegion).addField(cursor.getString(cursor.getColumnIndex("name")), + cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); spiRegion.setOnTouchListener(new View.OnTouchListener() { @@ -479,19 +491,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiVegType, "vegetation_type_id"); ((selectDB)spiVegType).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_vegetation d where d.del=0 order by d.sort, d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_vegetation d where d.del=0 order by d.sort, d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiVegType).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiVegType).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //высота растительности @@ -503,19 +519,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiVegCover, "vegetation_cover_id"); ((selectDB)spiVegCover).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_cover d where d.del=0 order by d.sort, d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_cover d where d.del=0 order by d.sort, d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiVegCover).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiVegCover).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //Наименование сельхоз культуры @@ -550,19 +570,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi ((selectDB)spiInsFormulation).addField("", ""); // Выбираем страны и заполняем поля dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_formulation d where d.del=0 order by d.sort, d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_formulation d where d.del=0 order by d.sort, d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiInsFormulation).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiInsFormulation).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // норма расхода(л/га) @@ -574,19 +598,22 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiInsDiluted, "insecticide_diluted_id"); ((selectDB)spiInsDiluted).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_diluted d where d.del=0 order by d.sort, d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_diluted d where d.del=0 order by d.sort, d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiInsDiluted).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiInsDiluted).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // Если применимо: Коэффициент разбавления рабочего раствора (л или кг коммерческого препарата/л воды или дизельного топлива) @@ -602,19 +629,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableHealth.add(spiInsContainerState, "insecticide_container_state_id"); ((selectDB)spiInsContainerState).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers_states d where d.del=0 order by d.sort, d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers_states d where d.del=0 order by d.sort, d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiInsContainerState).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiInsContainerState).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //**********Погодные условия********** @@ -644,20 +675,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiWindDirectionStart, "weather_direction_start"); ((selectDB)spiWindDirectionStart).addField("", ""); dboh = new DbOpenHelper(this); - - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 order by d.degree", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 order by d.degree", null); + if (cursor.moveToFirst()) { - ((selectDB)spiWindDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiWindDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // направление ветра кон. @@ -665,19 +699,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiWindDirectionEnd, "weather_direction_end"); ((selectDB)spiWindDirectionEnd).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 order by d.degree", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 order by d.degree", null); + if (cursor.moveToFirst()) { - ((selectDB)spiWindDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiWindDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // направление опрыскивания нач. @@ -685,20 +723,24 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprayDirectionStart, "weather_spray_direction_start"); ((selectDB)spiSprayDirectionStart).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name, d.degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, d.degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprayDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprayDirectionStart).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // направление опрыскивания кон. @@ -706,20 +748,24 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprayDirectionEnd, "weather_spray_direction_end"); ((selectDB)spiSprayDirectionEnd).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name, degree from list_directions d where d.del=0 and d.degree>=0 order by d.degree", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprayDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprayDirectionEnd).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //**********Информация о саранчовых********** @@ -728,38 +774,46 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiLocSpecies, "locust_type_id"); ((selectDB)spiLocSpecies).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from LocustsTypes lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from LocustsTypes lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiLocSpecies).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiLocSpecies).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // Возраст личинок (Стадии личинок) spiLocHoppers = findViewById(R.id.spiLocHoppers); guiTableDel.add(spiLocHoppers, "locust_hoppers_id"); ((selectDB)spiLocHoppers).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from list_age lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from list_age lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiLocHoppers).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiLocHoppers).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // плотность на м2 edtLocDensity = (EditText) findViewById(R.id.edtLocDensity); @@ -770,19 +824,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiMainPurpose, "locust_purpose_id"); ((selectDB)spiMainPurpose).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),lt.name) name from list_purpose lt where lt.del=0 order by lt.sort,lt.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select lt.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = lt.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),lt.name) name from list_purpose lt where lt.del=0 order by lt.sort,lt.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiMainPurpose).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiMainPurpose).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //**********Сведения по опрыскиванию********** @@ -791,19 +849,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprPlatform, "spray_platform"); ((selectDB)spiSprPlatform).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers_types d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers_types d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatform).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatform).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // «Авиа» - выпадающий список:«Самолет», «Вертолет», «Дельтаплан». @@ -811,20 +873,24 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprPlatformA, "spray_platform_a"); ((selectDB)spiSprPlatformA).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=1 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=1 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformA).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformA).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // «Наземное» - выпадающий список:«Трактор», «Машина», «Аэроз.генераторG». @@ -832,20 +898,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprPlatformG, "spray_platform_g"); ((selectDB)spiSprPlatformG).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=3 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=3 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformG).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformG).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // «Ручное» - выпадающий список:«Ранцевый», «Моторный», «Батарейный». @@ -853,20 +922,24 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprPlatformH, "spray_platform_h"); ((selectDB)spiSprPlatformH).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=5 order by d.sort,d.name", - null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from sprayers d where d.del=0 and d.sprayer_type_id=5 order by d.sort,d.name", + null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprPlatformH).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprPlatformH).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // Марка опрыскивателя @@ -918,19 +991,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiSprMarking, "spray_marking_id"); ((selectDB)spiSprMarking).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_markings d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_markings d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiSprMarking).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiSprMarking).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // обработанная площадь(га) @@ -1016,19 +1093,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiEffTypeImpact, "efficacy_impact_id"); ((selectDB)spiEffTypeImpact).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiEffTypeImpact).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiEffTypeImpact).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); // Наблюдаемая эфективность обработок (%) @@ -1044,19 +1125,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableDel.add(spiEffMethod, "efficacy_mortality_method"); ((selectDB)spiEffMethod).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiEffMethod).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiEffMethod).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //H Проведен ли контроль эффективности (бригада мониторинга)? @@ -1078,19 +1163,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableHealth.add(spiEffTypeImpact2, "efficacy_impact_type_id"); ((selectDB)spiEffTypeImpact2).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_impact d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiEffTypeImpact2).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiEffTypeImpact2).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //H Наблюдаемая эффективность обработки (%) @@ -1104,19 +1193,23 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi guiTableHealth.add(spiEffMethod2, "efficacy_mortality_method_id"); ((selectDB)spiEffMethod2).addField("", ""); dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_mortality d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - ((selectDB)spiEffMethod2).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); - } while (cursor.moveToNext()); + do + { + ((selectDB)spiEffMethod2).addField(cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("id"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); @@ -1220,30 +1313,34 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi //**********Состояние окружающей среды********** // Пустые контейнеры (выборка локализованных названий) dboh = new DbOpenHelper(this); - cursor = dboh - .getReadableDatabase() - .rawQuery( - "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" - + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers d where d.del=0 order by d.sort,d.name", null); - if (cursor.moveToFirst()) - { - do + rdb = null; + try { + rdb = dboh.getWritableDatabase(); + cursor = rdb.rawQuery( + "select d.id, COALESCE((SELECT translation FROM _translations t JOIN _languages l ON t.language_id=l.id WHERE t.del = 0 AND identifier = d.name AND l.short_name='" + + Tools.getLang() + "' LIMIT 1),d.name) name from list_containers d where d.del=0 order by d.sort,d.name", null); + if (cursor.moveToFirst()) { - if(cursor.getLong(cursor.getColumnIndex("id"))==1) - ((CheckBox) findViewById(R.id.cbTripleRinsed)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==2) - ((CheckBox) findViewById(R.id.cbPunctured)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==3) - ((CheckBox) findViewById(R.id.cbTakenBackToBase)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==4) - ((CheckBox) findViewById(R.id.cbLeftInField)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==5) - ((CheckBox) findViewById(R.id.cbBuried)).setText(cursor.getString(cursor.getColumnIndex("name"))); - if(cursor.getLong(cursor.getColumnIndex("id"))==6) - ((CheckBox) findViewById(R.id.cbBurned)).setText(cursor.getString(cursor.getColumnIndex("name"))); - } while (cursor.moveToNext()); + do + { + if(cursor.getLong(cursor.getColumnIndex("id"))==1) + ((CheckBox) findViewById(R.id.cbTripleRinsed)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==2) + ((CheckBox) findViewById(R.id.cbPunctured)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==3) + ((CheckBox) findViewById(R.id.cbTakenBackToBase)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==4) + ((CheckBox) findViewById(R.id.cbLeftInField)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==5) + ((CheckBox) findViewById(R.id.cbBuried)).setText(cursor.getString(cursor.getColumnIndex("name"))); + if(cursor.getLong(cursor.getColumnIndex("id"))==6) + ((CheckBox) findViewById(R.id.cbBurned)).setText(cursor.getString(cursor.getColumnIndex("name"))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); //Тут сам выбор значений из базы edtSafEmptyContainers = (EditText) findViewById(R.id.edtSafEmptyContainers); @@ -3348,18 +3445,29 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi public void saveLocations(String uid){ if(uid==null) return; DbOpenHelper dboh = new DbOpenHelper(LocustHealthActivity.this); - dboh.getReadableDatabase().execSQL("delete from frmlocusthealth_locations where frmlocusthealth_uid=\'" + uid+"\'"); + SQLiteDatabase wdb = null; + try { + wdb = dboh.getWritableDatabase(); + wdb.execSQL("delete from frmlocusthealth_locations where frmlocusthealth_uid=\'" + uid+"\'"); + }finally{ + if(wdb!=null){ wdb.close(); } + } ArrayList list = ((LatLonAdapter)latlonList.getAdapter()).latlonList; for(int i=0;i list = adapter.latlonList; list.clear(); DbOpenHelper dboh = new DbOpenHelper(this); - Cursor cursor = dboh.getReadableDatabase().rawQuery("select uid,lat,lon from frmlocustdel_locations where frmlocustdel_uid='" + uid + "' order by pos", null); - if (cursor.moveToFirst()) - { - do + SQLiteDatabase rdb = null; + try { + rdb = dboh.getWritableDatabase(); + Cursor cursor = rdb.rawQuery("select uid,lat,lon from frmlocustdel_locations where frmlocustdel_uid='" + uid + "' order by pos", null); + if (cursor.moveToFirst()) { - list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); - } while (cursor.moveToNext()); + do + { + list.add(new LatLon(cursor.getString(0), cursor.getDouble(1), cursor.getDouble(2))); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); list.add(new LatLon(UUID.randomUUID().toString(),0, 0)); } @@ -3970,15 +4084,20 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi super.onStart(); DbOpenHelper dboh = new DbOpenHelper(this); - SQLiteDatabase db = dboh.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from terminals where del=0 and serial='"+ Secure.getString(getContentResolver(), Secure.ANDROID_ID)+"';", null); - if(!cursor.moveToFirst()) - { - Toast toast = Toast.makeText(getApplicationContext(), - getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); - toast.show(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getWritableDatabase(); + Cursor cursor = rdb.rawQuery("select * from terminals where del=0 and serial='"+ Secure.getString(getContentResolver(), Secure.ANDROID_ID)+"';", null); + if(!cursor.moveToFirst()) + { + Toast toast = Toast.makeText(getApplicationContext(), + getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); + toast.show(); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } diff --git a/app/src/main/java/kz/istt/locust/LocustHealthListActivity.java b/app/src/main/java/kz/istt/locust/LocustHealthListActivity.java index fef474c..c7c81f9 100644 --- a/app/src/main/java/kz/istt/locust/LocustHealthListActivity.java +++ b/app/src/main/java/kz/istt/locust/LocustHealthListActivity.java @@ -161,7 +161,13 @@ public class LocustHealthListActivity extends AppCompatActivity public void onClick(DialogInterface dialog, int arg1) { DbOpenHelper dboh = new DbOpenHelper(LocustHealthListActivity.this); - dboh.getReadableDatabase().execSQL("delete from frmlocusthealth where send=1"); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + rdb.execSQL("delete from frmlocusthealth where send=1"); + }finally{ + if(rdb!=null){ rdb.close(); } + } dboh.close(); LocustHealthListActivity.this.onStart(); } @@ -596,12 +602,31 @@ public class LocustHealthListActivity extends AppCompatActivity llList.removeAllViews(); DbOpenHelper dboh = new DbOpenHelper(LocustHealthListActivity.this); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); - Cursor cursor = null; - switch (spiList.getSelectedItemPosition()) - { - case 0: - cursor = dboh.getReadableDatabase().rawQuery(""" + Cursor cursor = null; + switch (spiList.getSelectedItemPosition()) + { + case 0: + cursor = rdb.rawQuery(""" + select + ld.uid as frmlocustdel_uid, + lh.uid as frmlocusthealth_uid, + coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, + lh.date, + EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health + from + frmlocusthealth lh + left join frmlocustdel ld on lh.frmlocustdel_uid=ld.uid + where + lh.del=0 + and lh.filled!=1 + """, null); //Не отправленные + break; + case 1: + cursor = rdb.rawQuery(""" select ld.uid as frmlocustdel_uid, lh.uid as frmlocusthealth_uid, @@ -613,130 +638,117 @@ public class LocustHealthListActivity extends AppCompatActivity left join frmlocustdel ld on lh.frmlocustdel_uid=ld.uid where lh.del=0 - and lh.filled!=1 + and lh.send=0 + and lh.filled=1 """, null); //Не отправленные - break; - case 1: - cursor = dboh.getReadableDatabase().rawQuery(""" - select - ld.uid as frmlocustdel_uid, - lh.uid as frmlocusthealth_uid, - coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, - lh.date, - EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health - from - frmlocusthealth lh - left join frmlocustdel ld on lh.frmlocustdel_uid=ld.uid - where - lh.del=0 - and lh.send=0 - and lh.filled=1 - """, null); //Не отправленные - break; - case 2: - cursor = dboh.getReadableDatabase().rawQuery(""" - select - ld.uid as frmlocustdel_uid, - lh.uid as frmlocusthealth_uid, - coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, - lh.date, - EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health - from - frmlocusthealth lh - left join frmlocustdel ld on lh.frmlocustdel_uid=ld.uid - where - lh.del=0 - and lh.send=1 - """, null); //Отправленные - break; - default: - cursor = dboh.getReadableDatabase().rawQuery(""" - select - ld.uid as frmlocustdel_uid, - lh.uid as frmlocusthealth_uid, - coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, - coalesce(lh.date,ld.date) as date, - EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health - from - frmlocustdel ld - left join frmlocusthealth lh on lh.frmlocustdel_uid=ld.uid - where ld.del=0 and ld.filled=true - """, null); //Все - break; - } - - // Tools.logCursor(cursor); - OnClickListener oclBtn = new OnClickListener() - { - @Override - public void onClick(View v) - { - MyButton b = (MyButton) v; - - Intent intent = new Intent(LocustHealthListActivity.this, LocustHealthActivity.class); - intent.putExtra("frmlocustdel_uid", b.uid1); - intent.putExtra("frmlocusthealth_uid", b.uid2); - startActivity(intent); + break; + case 2: + cursor = rdb.rawQuery(""" + select + ld.uid as frmlocustdel_uid, + lh.uid as frmlocusthealth_uid, + coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, + lh.date, + EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health + from + frmlocusthealth lh + left join frmlocustdel ld on lh.frmlocustdel_uid=ld.uid + where + lh.del=0 + and lh.send=1 + """, null); //Отправленные + break; + default: + cursor = rdb.rawQuery(""" + select + ld.uid as frmlocustdel_uid, + lh.uid as frmlocusthealth_uid, + coalesce(ld.district,'') || ' ' || coalesce(ld.terrain,'') terrain, + coalesce(lh.date,ld.date) as date, + EXISTS(select true from frmlocusthealth where frmlocustdel_uid=ld.uid) as health + from + frmlocustdel ld + left join frmlocusthealth lh on lh.frmlocustdel_uid=ld.uid + where ld.del=0 and ld.filled=true + """, null); //Все + break; } - }; - if (cursor.moveToFirst()) - { - do + // Tools.logCursor(cursor); + OnClickListener oclBtn = new OnClickListener() { - btn = null; - if(cursor.getInt(cursor.getColumnIndex("health"))==0){ - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //Задаю стиль для кнопки для которой нет анкеты здоровья - int buttonPinkStyle = R.style.ButtonPinkTheme; - ContextThemeWrapper newContext = new ContextThemeWrapper(this, R.style.ButtonPinkTheme); - btn = new MyButton(newContext, null, 0, buttonPinkStyle); + @Override + public void onClick(View v) + { + MyButton b = (MyButton) v; + + Intent intent = new Intent(LocustHealthListActivity.this, LocustHealthActivity.class); + intent.putExtra("frmlocustdel_uid", b.uid1); + intent.putExtra("frmlocusthealth_uid", b.uid2); + startActivity(intent); + } + }; + + if (cursor.moveToFirst()) + { + do + { + btn = null; + if(cursor.getInt(cursor.getColumnIndex("health"))==0){ + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //Задаю стиль для кнопки для которой нет анкеты здоровья + int buttonPinkStyle = R.style.ButtonPinkTheme; + ContextThemeWrapper newContext = new ContextThemeWrapper(this, R.style.ButtonPinkTheme); + btn = new MyButton(newContext, null, 0, buttonPinkStyle); + } + } + if(btn==null) { + btn = new MyButton(this); } - } - if(btn==null) { - btn = new MyButton(this); - } - btn.setOnClickListener(oclBtn); + btn.setOnClickListener(oclBtn); - btn.uid1 = cursor.getString(cursor.getColumnIndex("frmlocustdel_uid")); - btn.uid2 = cursor.getString(cursor.getColumnIndex("frmlocusthealth_uid")); + btn.uid1 = cursor.getString(cursor.getColumnIndex("frmlocustdel_uid")); + btn.uid2 = cursor.getString(cursor.getColumnIndex("frmlocusthealth_uid")); - // Преобразует с учётом временой зоны (пример long dv = 946684800L * 1000L; //2000 ный по гринвичу дало 6 утра) - String vv = ""; - String val = cursor.getString(cursor.getColumnIndex("date")); - try { - long dv = Long.parseLong(val) * (long) 1000;// its need to be in milisecond - Date df = new Date(dv); - vv = new SimpleDateFormat("dd.MM.yyyy").format(df); - } catch (NumberFormatException e) { - } - if(vv.isEmpty()) { + // Преобразует с учётом временой зоны (пример long dv = 946684800L * 1000L; //2000 ный по гринвичу дало 6 утра) + String vv = ""; + String val = cursor.getString(cursor.getColumnIndex("date")); try { - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - Date df = format.parse(val); + long dv = Long.parseLong(val) * (long) 1000;// its need to be in milisecond + Date df = new Date(dv); vv = new SimpleDateFormat("dd.MM.yyyy").format(df); - } catch (ParseException e) { + } catch (NumberFormatException e) { + } + if(vv.isEmpty()) { + try { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date df = format.parse(val); + vv = new SimpleDateFormat("dd.MM.yyyy").format(df); + } catch (ParseException e) { + } } - } - btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); + btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); - // Устанавливаю высоту в пикселях через высоту макета - int heightInDp = 40; - float scale = getResources().getDisplayMetrics().density; - int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - LayoutParams.MATCH_PARENT, - heightInPx - ); - params.bottomMargin = 4; + // Устанавливаю высоту в пикселях через высоту макета + int heightInDp = 40; + float scale = getResources().getDisplayMetrics().density; + int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + LayoutParams.MATCH_PARENT, + heightInPx + ); + params.bottomMargin = 4; - llList.addView(btn,params); + llList.addView(btn,params); - } while (cursor.moveToNext()); + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } @@ -749,15 +761,20 @@ public class LocustHealthListActivity extends AppCompatActivity super.onStart(); DbOpenHelper dboh = new DbOpenHelper(this); - SQLiteDatabase db = dboh.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); - if(!cursor.moveToFirst()) - { - Toast toast = Toast.makeText(getApplicationContext(), - getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); - toast.show(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); + if(!cursor.moveToFirst()) + { + Toast toast = Toast.makeText(getApplicationContext(), + getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); + toast.show(); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } diff --git a/app/src/main/java/kz/istt/locust/LocustListActivity.java b/app/src/main/java/kz/istt/locust/LocustListActivity.java index 1f06ccb..d43e683 100644 --- a/app/src/main/java/kz/istt/locust/LocustListActivity.java +++ b/app/src/main/java/kz/istt/locust/LocustListActivity.java @@ -159,7 +159,13 @@ public class LocustListActivity extends AppCompatActivity public void onClick(DialogInterface dialog, int arg1) { DbOpenHelper dboh = new DbOpenHelper(LocustListActivity.this); - dboh.getReadableDatabase().execSQL("delete from frmlocust where send=1"); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + rdb.execSQL("delete from frmlocust where send=1"); + }finally{ + if(rdb!=null){ rdb.close(); } + } dboh.close(); LocustListActivity.this.onStart(); } @@ -573,75 +579,80 @@ public class LocustListActivity extends AppCompatActivity llList.removeAllViews(); DbOpenHelper dboh = new DbOpenHelper(LocustListActivity.this); - - String sql; - Cursor cursor = null; - switch (spiList.getSelectedItemPosition()) - { - case 0: - sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and filled!=1"; - cursor = dboh.getReadableDatabase().rawQuery(sql, null); //Не заполненые - break; - case 1: - sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and send=0 and filled=1"; - cursor = dboh.getReadableDatabase().rawQuery(sql, null); //Не отправленные - break; - case 2: - sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and send=1"; - cursor = dboh.getReadableDatabase().rawQuery(sql, null); //Отправленные - break; - default: - sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0"; - cursor = dboh.getReadableDatabase().rawQuery(sql, null); //Все - break; - } - - // Tools.logCursor(cursor); - OnClickListener oclBtn = new OnClickListener() - { - @Override - public void onClick(View v) + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + String sql; + Cursor cursor = null; + switch (spiList.getSelectedItemPosition()) { - MyButton b = (MyButton) v; - - Intent intent = new Intent(LocustListActivity.this, LocustActivity.class); - intent.putExtra("uid", b.uid1); - startActivity(intent); + case 0: + sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and filled!=1"; + cursor = rdb.rawQuery(sql, null); //Не заполненые + break; + case 1: + sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and send=0 and filled=1"; + cursor = rdb.rawQuery(sql, null); //Не отправленные + break; + case 2: + sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0 and send=1"; + cursor = rdb.rawQuery(sql, null); //Отправленные + break; + default: + sql = "select uid, coalesce(district,'') || ' ' || coalesce(terrain,'') terrain, date from frmlocust where del=0"; + cursor = rdb.rawQuery(sql, null); //Все + break; } - }; - if (cursor.moveToFirst()) - { - do + // Tools.logCursor(cursor); + OnClickListener oclBtn = new OnClickListener() { - btn = new MyButton(this); + @Override + public void onClick(View v) + { + MyButton b = (MyButton) v; - btn.setOnClickListener(oclBtn); + Intent intent = new Intent(LocustListActivity.this, LocustActivity.class); + intent.putExtra("uid", b.uid1); + startActivity(intent); + } + }; - btn.uid1 = cursor.getString(cursor.getColumnIndex("uid")); + if (cursor.moveToFirst()) + { + do + { + btn = new MyButton(this); - long dv = cursor.getLong(cursor.getColumnIndex("date")) * (long) 1000; // its need to be in milisecond - Date df = new java.util.Date(dv); - String vv = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(df); + btn.setOnClickListener(oclBtn); - btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); + btn.uid1 = cursor.getString(cursor.getColumnIndex("uid")); - // Устанавливаю высоту в пикселях через высоту макета - int heightInDp = 40; - float scale = getResources().getDisplayMetrics().density; - int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( - LayoutParams.MATCH_PARENT, - heightInPx - ); - params.bottomMargin = 4; + long dv = cursor.getLong(cursor.getColumnIndex("date")) * (long) 1000; // its need to be in milisecond + Date df = new java.util.Date(dv); + String vv = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss").format(df); - llList.addView(btn,params); + btn.setText(cursor.getString(cursor.getColumnIndex("terrain")) + " (" + vv + ")"); - } while (cursor.moveToNext()); + // Устанавливаю высоту в пикселях через высоту макета + int heightInDp = 40; + float scale = getResources().getDisplayMetrics().density; + int heightInPx = (int) (heightInDp * scale + 0.5f); //Перевожу в dp + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( + LayoutParams.MATCH_PARENT, + heightInPx + ); + params.bottomMargin = 4; + + llList.addView(btn,params); + + } while (cursor.moveToNext()); + } + + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - - cursor.close(); dboh.close(); } /** @@ -652,15 +663,20 @@ public class LocustListActivity extends AppCompatActivity super.onStart(); DbOpenHelper dboh = new DbOpenHelper(this); - SQLiteDatabase db = dboh.getReadableDatabase(); - Cursor cursor = db.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); - if(!cursor.moveToFirst()) - { - Toast toast = Toast.makeText(getApplicationContext(), - getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); - toast.show(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select * from terminals where del=0 and serial='"+ Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID)+"';", null); + if(!cursor.moveToFirst()) + { + Toast toast = Toast.makeText(getApplicationContext(), + getResources().getString(R.string.Please_authorize_the_tablet), Toast.LENGTH_LONG); + toast.show(); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } } diff --git a/app/src/main/java/kz/istt/locust/MainActivity.java b/app/src/main/java/kz/istt/locust/MainActivity.java index 3b21fc4..fb9511b 100644 --- a/app/src/main/java/kz/istt/locust/MainActivity.java +++ b/app/src/main/java/kz/istt/locust/MainActivity.java @@ -85,68 +85,69 @@ public class MainActivity extends Activity { DbOpenHelper dboh = new DbOpenHelper(MainActivity.this);; //Перебираем и удаляем фото файлы названия которых нет в базе данных! - SQLiteDatabase db = dboh.getReadableDatabase(); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + File directory = new File(Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "Locust"); + directory.mkdirs(); + File[] files = directory.listFiles(); + if(files!=null) { + for (int i = 0; i < files.length; i++) { + String fileName = files[i].getName(); + if (fileName.charAt(0) == '_') + fileName = fileName.substring(1); //Чтобы не реагировало на "_" - File directory = new File(Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "Locust"); - directory.mkdirs(); - File[] files = directory.listFiles(); - if(files!=null) { - for (int i = 0; i < files.length; i++) { - String fileName = files[i].getName(); - if (fileName.charAt(0) == '_') - fileName = fileName.substring(1); //Чтобы не реагировало на "_" + boolean exest = false; + String sql; - boolean exest = false; - String sql; + Cursor cursor; + sql = "select 1 from frmlocust where image_name1='" + fileName + "' or image_name2='" + fileName + "' or image_name3='" + fileName + "';"; + cursor = rdb.rawQuery(sql, null); + if (cursor.moveToFirst()) + exest = exest | true; + cursor.close(); - Cursor cursor; - sql = "select 1 from frmlocust where image_name1='" + fileName + "' or image_name2='" + fileName + "' or image_name3='" + fileName + "';"; - cursor = db.rawQuery(sql, null); - if (cursor.moveToFirst()) - exest = exest | true; - cursor.close(); + sql = "select 1 from frmlocustdel where image_name1='" + fileName + "' or image_name2='" + fileName + "' or image_name3='" + fileName + "';"; + cursor = rdb.rawQuery(sql, null); + if (cursor.moveToFirst()) + exest = exest | true; + cursor.close(); - sql = "select 1 from frmlocustdel where image_name1='" + fileName + "' or image_name2='" + fileName + "' or image_name3='" + fileName + "';"; - cursor = db.rawQuery(sql, null); - if (cursor.moveToFirst()) - exest = exest | true; - cursor.close(); - - if (!exest) //Если в базе нет удаляем - { - files[i].delete(); - } - } - } - - - - //Проверяю есть ли в безе записи и вставляю только если их нет - /* теперь в базу не переписываю так как всё храниться в файлах - boolean exest = false; - String sql = "select 1 from CountriesRegionsPoints limit 1;"; - Cursor cursor = db.rawQuery(sql, null); - if (cursor.moveToFirst()) - exest = true; - cursor.close(); - if(!exest) { - //Переписываю координаты из файла в базу данных - try { - InputStream isRaw = null; - isRaw = getResources().openRawResource(R.raw.points); - if (isRaw != null) { - TCTable tbl = new TCTable("", 0); - if (tbl.OpenTableH(isRaw)) { - dboh.insertTable(tbl); + if (!exest) //Если в базе нет удаляем + { + files[i].delete(); } } - } catch (IOException e) { - e.printStackTrace(); } - }*/ - db.close(); + //Проверяю есть ли в безе записи и вставляю только если их нет + /* теперь в базу не переписываю так как всё храниться в файлах + boolean exest = false; + String sql = "select 1 from CountriesRegionsPoints limit 1;"; + Cursor cursor = db.rawQuery(sql, null); + if (cursor.moveToFirst()) + exest = true; + cursor.close(); + if(!exest) { + //Переписываю координаты из файла в базу данных + try { + InputStream isRaw = null; + isRaw = getResources().openRawResource(R.raw.points); + if (isRaw != null) { + TCTable tbl = new TCTable("", 0); + if (tbl.OpenTableH(isRaw)) { + dboh.insertTable(tbl); + } + } + } catch (IOException e) { + e.printStackTrace(); + } + }*/ + + }finally{ + if(rdb!=null){ rdb.close(); } + } dboh.close(); tvCountTasks = (TextView) findViewById(R.id.tvCountTasks); @@ -201,15 +202,21 @@ public class MainActivity extends Activity { DbOpenHelper dboh; Cursor cursor; dboh = new DbOpenHelper(MainActivity.this); - cursor = dboh.getReadableDatabase().rawQuery("select c.id from borns c limit 1;", null); - if (cursor.moveToFirst()) - { - do + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select c.id from borns c limit 1;", null); + if (cursor.moveToFirst()) { - exists=true; - } while (cursor.moveToNext()); + do + { + exists=true; + } while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); if(!exists) { diff --git a/app/src/main/java/kz/istt/locust/MapsActivity.java b/app/src/main/java/kz/istt/locust/MapsActivity.java index a1a999b..c51c599 100644 --- a/app/src/main/java/kz/istt/locust/MapsActivity.java +++ b/app/src/main/java/kz/istt/locust/MapsActivity.java @@ -9,6 +9,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.Color; import android.graphics.drawable.Drawable; @@ -130,56 +131,61 @@ public class MapsActivity extends FragmentActivity implements OnMapReadyCallback ); marker.setVisible(false); - //Геозоны обследования саранчи DbOpenHelper dboh = new DbOpenHelper(this); - Cursor cursor = dboh.getReadableDatabase().rawQuery("select frmlocust_uid,lat,lon from frmlocust_locations where frmlocust_uid!='"+uid+"' order by frmlocust_uid,pos;", null); - if (cursor.moveToFirst()) { - String uid=""; - PolygonOptions pOptions2 = new PolygonOptions(); - do { - if(!uid.equals(cursor.getString(0)) && pOptions2.getPoints().size()>1) { + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + Cursor cursor = rdb.rawQuery("select frmlocust_uid,lat,lon from frmlocust_locations where frmlocust_uid!='"+uid+"' order by frmlocust_uid,pos;", null); + if (cursor.moveToFirst()) { + String uid=""; + PolygonOptions pOptions2 = new PolygonOptions(); + do { + if(!uid.equals(cursor.getString(0)) && pOptions2.getPoints().size()>1) { + Polygon polygon = mMap.addPolygon(pOptions2); + polygons.add(polygon); + polygon.setFillColor(0x7F0000FF); + } + if(!uid.equals(cursor.getString(0))) { + pOptions2 = new PolygonOptions(); + uid=cursor.getString(0); + } + 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); polygon.setFillColor(0x7F0000FF); } - if(!uid.equals(cursor.getString(0))) { - pOptions2 = new PolygonOptions(); - uid=cursor.getString(0); - } - 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); - polygon.setFillColor(0x7F0000FF); } - } - cursor.close(); - //Геозоны противосаначовой обработки - cursor = dboh.getReadableDatabase().rawQuery("select frmlocustdel_uid,lat,lon from frmlocustdel_locations where frmlocustdel_uid!='"+uid+"' order by frmlocustdel_uid,pos;", null); - if (cursor.moveToFirst()) { - String uid=""; - PolygonOptions pOptions2 = new PolygonOptions(); - do { - if(!uid.equals(cursor.getString(0)) && pOptions2.getPoints().size()>1) { + cursor.close(); + //Геозоны противосаначовой обработки + cursor = rdb.rawQuery("select frmlocustdel_uid,lat,lon from frmlocustdel_locations where frmlocustdel_uid!='"+uid+"' order by frmlocustdel_uid,pos;", null); + if (cursor.moveToFirst()) { + String uid=""; + PolygonOptions pOptions2 = new PolygonOptions(); + do { + if(!uid.equals(cursor.getString(0)) && pOptions2.getPoints().size()>1) { + Polygon polygon = mMap.addPolygon(pOptions2); + polygons.add(polygon); + polygon.setFillColor(0x7FFF0000); + } + if(!uid.equals(cursor.getString(0))) { + pOptions2 = new PolygonOptions(); + uid=cursor.getString(0); + } + 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); polygon.setFillColor(0x7FFF0000); } - if(!uid.equals(cursor.getString(0))) { - pOptions2 = new PolygonOptions(); - uid=cursor.getString(0); - } - 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); - polygon.setFillColor(0x7FFF0000); } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); /**/ //Сreating a polygon. (The main polygon at the end since they overlap each) diff --git a/app/src/main/java/kz/istt/locust/MySynchronizationOld.java b/app/src/main/java/kz/istt/locust/MySynchronizationOld.java index af8ad68..2ef424f 100644 --- a/app/src/main/java/kz/istt/locust/MySynchronizationOld.java +++ b/app/src/main/java/kz/istt/locust/MySynchronizationOld.java @@ -194,59 +194,65 @@ public class MySynchronizationOld String xml=""; DbOpenHelper dboh = new DbOpenHelper(_context); Cursor cursor = null; - cursor = dboh.getReadableDatabase().rawQuery("select * from frmlocust where uid=?", new String[] { String.valueOf(uid) }); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select * from frmlocust where uid=?", new String[] { String.valueOf(uid) }); - if(cursor.moveToFirst()) - { - do{ - //Если задано имя файла то добавляем его в очередь на отправку на сервер - String fname; - fname=cursor.getString(cursor.getColumnIndex("image_name1")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + if(cursor.moveToFirst()) + { + do{ + //Если задано имя файла то добавляем его в очередь на отправку на сервер + String fname; + fname=cursor.getString(cursor.getColumnIndex("image_name1")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name2")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name2")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name3")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name3")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - xml=""; - xml+=""; - for(int i=0;i"; + xml+=""; + for(int i=0;i\n"; } - xml+=" <"+cursor.getColumnName(i)+">\n"; - } - String geom=""; - Cursor cursor2 = dboh.getReadableDatabase().rawQuery("select lat,lon from frmlocust_locations where frmlocust_uid=? order by pos", new String[] { String.valueOf(uid) }); - if(cursor2.moveToFirst()) { - String first="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"]"; - do { - geom+="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"],"; - }while (cursor2.moveToNext()); - geom += first; - geom="{\"type\":\"Polygon\",\"coordinates\":[["+geom+"]]}"; - } - xml+=" "; - cursor2.close(); - xml+=""; + String geom=""; + Cursor cursor2 = rdb.rawQuery("select lat,lon from frmlocust_locations where frmlocust_uid=? order by pos", new String[] { String.valueOf(uid) }); + if(cursor2.moveToFirst()) { + String first="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"]"; + do { + geom+="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"],"; + }while (cursor2.moveToNext()); + geom += first; + geom="{\"type\":\"Polygon\",\"coordinates\":[["+geom+"]]}"; + } + xml+=" "; + cursor2.close(); + xml+=""; - rid_sendFrmLocust = myThread.addRequest(MySynchronizationOld.URL+"/get/", xml, null,null); + rid_sendFrmLocust = myThread.addRequest(MySynchronizationOld.URL+"/get/", xml, null,null); - }while (cursor.moveToNext()); + }while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } @@ -261,94 +267,100 @@ public class MySynchronizationOld String xml=""; DbOpenHelper dboh = new DbOpenHelper(_context); Cursor cursor = null; - cursor = dboh.getReadableDatabase().rawQuery("select * from frmlocustdel where uid=?", new String[] { String.valueOf(uid) }); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); - if(cursor.moveToFirst()) - { - do{ - //Если задано имя файла то добавляем его в очередь на отправку на сервер - String fname; - fname=cursor.getString(cursor.getColumnIndex("image_name1")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + cursor = rdb.rawQuery("select * from frmlocustdel where uid=?", new String[] { String.valueOf(uid) }); + if(cursor.moveToFirst()) + { + do{ + //Если задано имя файла то добавляем его в очередь на отправку на сервер + String fname; + fname=cursor.getString(cursor.getColumnIndex("image_name1")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name2")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name2")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name3")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name3")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - xml=""; - xml+=""; - for(int i=0;i"; + xml+=""; + for(int i=0;i\n"; } - xml+=" <"+cursor.getColumnName(i)+">\n"; - } - String geom=""; - Cursor cursor2 = dboh.getReadableDatabase().rawQuery("select lat,lon from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); - if(cursor2.moveToFirst()) { - String first="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"]"; - do { - geom+="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"],"; - }while (cursor2.moveToNext()); - geom += first; - geom="{\"type\":\"Polygon\",\"coordinates\":[["+geom+"]]}"; - } - xml+=" "; - cursor2.close(); - xml+=""; + String geom=""; + Cursor cursor2 = rdb.rawQuery("select lat,lon from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); + if(cursor2.moveToFirst()) { + String first="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"]"; + do { + geom+="["+cursor2.getDouble(1)+","+cursor2.getDouble(0)+"],"; + }while (cursor2.moveToNext()); + geom += first; + geom="{\"type\":\"Polygon\",\"coordinates\":[["+geom+"]]}"; + } + xml+=" "; + cursor2.close(); + xml+=""; - rid_sendFrmLocust = myThread.addRequest(MySynchronizationOld.URL+"/get/", xml, null,null); + rid_sendFrmLocust = myThread.addRequest(MySynchronizationOld.URL+"/get/", xml, null,null); - //Отправляю данные координат отдельно (без подтверждения доставки, потом нужно добавить поле send boolean и отправлять отдельно от frmlocustdel) -/* Cursor cursor3 = dboh.getReadableDatabase().rawQuery("select uid,del,seq,frmlocustdel_uid,pos,lon,lat from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); - ByteArrayOutputStream outStream = new ByteArrayOutputStream(); - TCTableTools2.getTCTableFromCursor("frmlocustdel_locations", 0, cursor3, outStream); - myThread.addRequest(MySynchronizationOld.URL+"/asdc/tctable/", null, null, outStream.toByteArray());*/ + //Отправляю данные координат отдельно (без подтверждения доставки, потом нужно добавить поле send boolean и отправлять отдельно от frmlocustdel) + /* Cursor cursor3 = rdb.rawQuery("select uid,del,seq,frmlocustdel_uid,pos,lon,lat from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + TCTableTools2.getTCTableFromCursor("frmlocustdel_locations", 0, cursor3, outStream); + myThread.addRequest(MySynchronizationOld.URL+"/asdc/tctable/", null, null, outStream.toByteArray());*/ - ByteArrayOutputStream outStream = new ByteArrayOutputStream(); - TCTable tbl = new TCTable("frmlocustdel_locations", 0); - tbl.addField(new TCField("uid",TCField.BD_UTF8_1)); - tbl.addField(new TCField("del",TCField.BD_UINT1)); - tbl.addField(new TCField("seq",TCField.BD_UINT4)); - tbl.addField(new TCField("frmlocustdel_uid",TCField.BD_UTF8_1)); - tbl.addField(new TCField("pos",TCField.BD_UINT4)); - tbl.addField(new TCField("lon",TCField.BD_FLOAT8)); - tbl.addField(new TCField("lat",TCField.BD_FLOAT8)); - tbl.getHeader(outStream); - //Переписываю значения из базы данных в outStream - Cursor cursor3 = dboh.getReadableDatabase().rawQuery("select uid,del,seq,frmlocustdel_uid,pos,lon,lat from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); - if(cursor3.moveToFirst()) { - do { - tbl.fields.get(0).setValue(cursor3.getString(0)); - tbl.fields.get(1).setValue(cursor3.getString(1)); - tbl.fields.get(2).setValue(cursor3.getString(2)); - tbl.fields.get(3).setValue(cursor3.getString(3)); - tbl.fields.get(4).setValue(cursor3.getString(4)); - tbl.fields.get(5).setDoubleVal(cursor3.getDouble(5)); - tbl.fields.get(6).setDoubleVal(cursor3.getDouble(6)); - tbl.getCol(outStream); - }while (cursor3.moveToNext()); - } - cursor3.close(); - //Отправляю пакет данных на сервер для вставки либо обновления - myThread.addRequest(MySynchronizationOld.URL+"/asdc/tctable/", null, null, outStream.toByteArray()); + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + TCTable tbl = new TCTable("frmlocustdel_locations", 0); + tbl.addField(new TCField("uid",TCField.BD_UTF8_1)); + tbl.addField(new TCField("del",TCField.BD_UINT1)); + tbl.addField(new TCField("seq",TCField.BD_UINT4)); + tbl.addField(new TCField("frmlocustdel_uid",TCField.BD_UTF8_1)); + tbl.addField(new TCField("pos",TCField.BD_UINT4)); + tbl.addField(new TCField("lon",TCField.BD_FLOAT8)); + tbl.addField(new TCField("lat",TCField.BD_FLOAT8)); + tbl.getHeader(outStream); + //Переписываю значения из базы данных в outStream + Cursor cursor3 = rdb.rawQuery("select uid,del,seq,frmlocustdel_uid,pos,lon,lat from frmlocustdel_locations where frmlocustdel_uid=? order by pos", new String[] { String.valueOf(uid) }); + if(cursor3.moveToFirst()) { + do { + tbl.fields.get(0).setValue(cursor3.getString(0)); + tbl.fields.get(1).setValue(cursor3.getString(1)); + tbl.fields.get(2).setValue(cursor3.getString(2)); + tbl.fields.get(3).setValue(cursor3.getString(3)); + tbl.fields.get(4).setValue(cursor3.getString(4)); + tbl.fields.get(5).setDoubleVal(cursor3.getDouble(5)); + tbl.fields.get(6).setDoubleVal(cursor3.getDouble(6)); + tbl.getCol(outStream); + }while (cursor3.moveToNext()); + } + cursor3.close(); + //Отправляю пакет данных на сервер для вставки либо обновления + myThread.addRequest(MySynchronizationOld.URL+"/asdc/tctable/", null, null, outStream.toByteArray()); - }while (cursor.moveToNext()); + }while (cursor.moveToNext()); + } + cursor.close(); + }finally{ + if(rdb!=null){ rdb.close(); } } - cursor.close(); dboh.close(); } @@ -364,44 +376,50 @@ public class MySynchronizationOld DbOpenHelper dboh = new DbOpenHelper(_context); Cursor cursor = null; - cursor = dboh.getReadableDatabase().rawQuery("select * from frmlocusthealth where uid=?", new String[] { String.valueOf(uid) }); - if(cursor.moveToFirst()) - { - do{ - //Если задано имя файла то добавляем его в очередь на отправку на сервер - String fname; - fname=cursor.getString(cursor.getColumnIndex("image_name1")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name2")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name3")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name4")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - fname = cursor.getString(cursor.getColumnIndex("image_name5")); - if(fname!=null && !fname.equals("")) - myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + SQLiteDatabase rdb = null; + try { + rdb = dboh.getReadableDatabase(); + cursor = rdb.rawQuery("select * from frmlocusthealth where uid=?", new String[] { String.valueOf(uid) }); + if(cursor.moveToFirst()) + { + do{ + //Если задано имя файла то добавляем его в очередь на отправку на сервер + String fname; + fname=cursor.getString(cursor.getColumnIndex("image_name1")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name2")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name3")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name4")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); + fname = cursor.getString(cursor.getColumnIndex("image_name5")); + if(fname!=null && !fname.equals("")) + myThread.addRequest(MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); - for(int i=0;i