+поля

This commit is contained in:
Igor I
2024-07-23 19:26:38 +05:00
parent 49c8f56a2c
commit ce013b31dc
9 changed files with 374 additions and 112 deletions

View File

@ -13,8 +13,8 @@ android {
defaultConfig { defaultConfig {
applicationId "kz.istt.locust" applicationId "kz.istt.locust"
minSdkVersion 15 minSdkVersion 15
versionCode 100 versionCode 101
versionName "2.4.4" versionName "3.0.0"
targetSdkVersion 33 targetSdkVersion 33
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View File

@ -16,6 +16,8 @@ import com.google.android.material.textfield.TextInputEditText;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import dbfields.DateInput; import dbfields.DateInput;
@ -80,6 +82,43 @@ public class DBGUITable
} }
} }
//Проверить название полей в базе и название параметров и если есть различия то вывести в консоль
public boolean validateField(ContentValues cv)
{
boolean result = true;
DbOpenHelper dboh = new DbOpenHelper(m_context);
Cursor cursor = dboh.getReadableDatabase().rawQuery("PRAGMA table_info('"+m_table+"');",null);
if(cursor.moveToFirst())
{
do{
String name=Tools.getStringFromCursor(cursor,"name");
boolean find=false;
String value="";
Set<Map.Entry<String, Object>> valueSet = cv.valueSet();
for (Map.Entry<String, Object> entry : valueSet) {
if(entry.getKey().equals(name)) {
find = true;
Object obj = entry.getValue();
if(obj!=null)
value = obj.toString()+" "+obj.getClass().toString()+" = "+Tools.getStringFromCursor(cursor,"type");
else
value="null";
break;
}
}
if(!find)
Log.e("CCALM", "Validate field = " + name + " not find in CV");
else
Log.e("CCALM", "Validate field = " + name + " find in CV value = "+value);
}while (cursor.moveToNext());
}
cursor.close();
dboh.close();
return result;
}
/* /*
* Передаётся компонент и название поля таблицы * Передаётся компонент и название поля таблицы
*/ */
@ -112,6 +151,10 @@ public class DBGUITable
{ {
String field = m_listN.get(i); String field = m_listN.get(i);
String value = getValue(m_listO.get(i)); String value = getValue(m_listO.get(i));
//if(field.equals("risk_agricultural")) {
// Object o = m_listO.get(i);
// Log.e("CCALM", "NOT FIND field = " + field + " value = " + getValue(o));
//}
String type = getType(field); String type = getType(field);
if(type==null) { if(type==null) {
Log.e("CCALM", "NOT FIND field = " + m_listN.get(i) + " value = " + value); Log.e("CCALM", "NOT FIND field = " + m_listN.get(i) + " value = " + value);
@ -162,6 +205,8 @@ public class DBGUITable
uid = UUID.randomUUID().toString();//.replace("-", ""); удаляеть - для экономии места не нужно uid = UUID.randomUUID().toString();//.replace("-", ""); удаляеть - для экономии места не нужно
cv.put("uid", uid); cv.put("uid", uid);
validateField(cv);
SQLiteDatabase db = dboh.getWritableDatabase(); SQLiteDatabase db = dboh.getWritableDatabase();
db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса)
try { try {
@ -174,6 +219,8 @@ public class DBGUITable
}else //Обновить запись }else //Обновить запись
{ {
validateField(cv);
SQLiteDatabase db = dboh.getWritableDatabase(); SQLiteDatabase db = dboh.getWritableDatabase();
db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) db.beginTransaction(); //Вроде как защита от многопоточности (для сервиса)
uid=cv.getAsString("uid"); uid=cv.getAsString("uid");
@ -220,9 +267,8 @@ public class DBGUITable
setValue(obj, cursor.getString(i)); setValue(obj, cursor.getString(i));
} }
//для проверки обратное действие
//для проверки обратное дёйствие Log.e("CCALM", "read field = " + cursor.getColumnName(i) + " val1 = " + cursor.getString(i) + " val2 = " + getValue(findComponent(cursor.getColumnName(i))));
//Log.e("CCALM", "2 field " + cursor.getColumnName(i) + " = " + getValue(findComponent(cursor.getColumnName(i))));
} }
} }
} }
@ -238,18 +284,19 @@ public class DBGUITable
String value = null; String value = null;
if(obj!=null) if(obj!=null)
{ {
if(obj.getClass().toString().indexOf("android.widget.EditText")!=-1) value = ((EditText)obj).getText().toString(); else String class_name = obj.getClass().toString();
if(obj.getClass().toString().indexOf("android.material.textfield.TextInputEditText")!=-1) value = ((TextInputEditText)obj).getText().toString(); else if(class_name.indexOf("android.widget.EditText")!=-1) value = ((EditText)obj).getText().toString(); else
if(obj.getClass().toString().indexOf("android.widget.Spinner")!=-1) value = ((Spinner)obj).getSelectedItem().toString(); else if(class_name.indexOf("android.material.textfield.TextInputEditText")!=-1) value = ((TextInputEditText)obj).getText().toString(); else
if(obj.getClass().toString().indexOf("android.widget.CheckBox")!=-1) value = ((CheckBox)obj).isChecked() ? "1" : "0"; else if(class_name.indexOf("android.widget.Spinner")!=-1) value = ((Spinner)obj).getSelectedItem().toString(); else
if(obj.getClass().toString().indexOf("java.lang.Integer")!=-1) value = ((Integer)obj).toString(); else if(class_name.indexOf("android.widget.CheckBox")!=-1) value = ((CheckBox)obj).isChecked() ? "1" : "0"; else
if(obj.getClass().toString().indexOf("java.lang.String")!=-1) value = ((String)obj); else if(class_name.indexOf("java.lang.Integer")!=-1) value = ((Integer)obj).toString(); else
if(obj.getClass().toString().indexOf("dbfields.SpinnerDB")!=-1) value = ((SpinnerDB)obj).getValue(); else if(class_name.indexOf("java.lang.String")!=-1) value = ((String)obj); else
if(obj.getClass().toString().indexOf("dbfields.AutoCompleteTextViewDB")!=-1) value = ((AutoCompleteTextViewDB)obj).getValue(); else if(class_name.indexOf("dbfields.SpinnerDB")!=-1) value = ((SpinnerDB)obj).getValue(); else
if(obj.getClass().toString().indexOf("dbfields.StringDB")!=-1) value = ((StringDB)obj).getValue(); else if(class_name.indexOf("dbfields.AutoCompleteTextViewDB")!=-1) value = ((AutoCompleteTextViewDB)obj).getValue(); else
if(obj.getClass().toString().indexOf("dbfields.DateTimeTM")!=-1) value = ((DateTimeTM)obj).getValue(); else if(class_name.indexOf("dbfields.StringDB")!=-1) value = ((StringDB)obj).getValue(); else
if(obj.getClass().toString().indexOf("dbfields.DateTimeText")!=-1) value = ((DateTimeText)obj).getValue(); else if(class_name.indexOf("dbfields.DateTimeTM")!=-1) value = ((DateTimeTM)obj).getValue(); else
if(obj.getClass().toString().indexOf("dbfields.DateInput")!=-1) if(class_name.indexOf("dbfields.DateTimeText")!=-1) value = ((DateTimeText)obj).getValue(); else
if(class_name.indexOf("dbfields.DateInput")!=-1)
{ {
if(((DateInput)obj).getDate()!=null) if(((DateInput)obj).getDate()!=null)
value = ((DateInput)obj).getDate().toString(); //В секундах value = ((DateInput)obj).getDate().toString(); //В секундах

View File

@ -773,7 +773,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
"hlth_clothing_reserve boolean," + // В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки) "hlth_clothing_reserve boolean," + // В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки)
"hlth_operator_passport integer," + // Количество операторов с паспортами использования пестицидов "hlth_operator_passport integer," + // Количество операторов с паспортами использования пестицидов
"hlth_filled_passport integer," + // Количество правильно заполненных паспортов использования пестицидов "hlth_filled_passport integer," + // Количество правильно заполненных паспортов использования пестицидов
//"hlth_passport_count integer," + //"hlth_passport_count integer," + лишнее удалил
"hlth_inhibition boolean," + // Во время мониторинга измерялось ли ингибирование холинэстеразы? "hlth_inhibition boolean," + // Во время мониторинга измерялось ли ингибирование холинэстеразы?
"hlth_description text," + // Дополнительные сведения о случайном воздействии или отравлении "hlth_description text," + // Дополнительные сведения о случайном воздействии или отравлении
@ -787,7 +787,6 @@ public class DbOpenHelper extends SQLiteOpenHelper
"safety_control boolean," + // Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду "safety_control boolean," + // Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду
"safety_control_actions text," + // Если Да, опишите последующее действие(я) "safety_control_actions text," + // Если Да, опишите последующее действие(я)
//"safety_clothing_clean boolean," + // Защитная одержа чистая и в хорошем состоянии (перенесли из таблицы обработки саранчи)
//**********Предоставление информации********** //**********Предоставление информации**********
//**********Карта и фотографии********** //**********Карта и фотографии**********
@ -1306,8 +1305,8 @@ public class DbOpenHelper extends SQLiteOpenHelper
"safety_non_target_effect text," + // Если Да, то где и какое воздействие? "safety_non_target_effect text," + // Если Да, то где и какое воздействие?
"safety_non_target_effect_person text," + // Если информация поступила от прочих лиц, от кого именно? (укажите имя, номер телефона, адрес) "safety_non_target_effect_person text," + // Если информация поступила от прочих лиц, от кого именно? (укажите имя, номер телефона, адрес)
"safety_Control boolean," + // Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду "safety_control boolean," + // Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду
"safety_Control_Actions text," + // Если Да, опишите последующее действие(я) "safety_control_actions text," + // Если Да, опишите последующее действие(я)
"map_treatment boolean," + // Была ли составлена ситуационная карта обработки? "map_treatment boolean," + // Была ли составлена ситуационная карта обработки?
@ -1393,10 +1392,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN insecticide_manufactured_date TO insecticide_manufactured_date_DEL;"); db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN insecticide_manufactured_date TO insecticide_manufactured_date_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN insecticide_manufactured_date_temp TO insecticide_manufactured_date;"); db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN insecticide_manufactured_date_temp TO insecticide_manufactured_date;");
sql = "ALTER TABLE frmlocusthealth ADD safety_clothing_clean boolean;"; db.execSQL("ALTER TABLE frmlocusthealth ADD timezone text;");
db.execSQL(sql);
sql = "ALTER TABLE frmlocusthealth ADD timezone text;";
db.execSQL(sql);
sql = "create table if not exists list_containers_states(" + sql = "create table if not exists list_containers_states(" +
"id integer NOT NULL PRIMARY KEY," + "id integer NOT NULL PRIMARY KEY," +
@ -1408,6 +1404,10 @@ public class DbOpenHelper extends SQLiteOpenHelper
");"; ");";
db.execSQL(sql); db.execSQL(sql);
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN spr_leak_plase TO spr_leak_plase_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN spr_damage_plase TO spr_damage_plase_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_leak_place TEXT;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_leak_place TEXT;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_damage_place TEXT;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_damage_place TEXT;");
@ -1415,16 +1415,97 @@ public class DbOpenHelper extends SQLiteOpenHelper
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_treated_area_check float;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_treated_area_check float;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_fact_volume float;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN spr_fact_volume float;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN efficacy_mortality_method TO efficacy_mortality_method_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN efficacy_mortality_method_id integer;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN efficacy_mortality_method_id integer;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN hlth_inhibition boolean;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN hlth_inhibition boolean;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN hlth_safety_clothing_clean boolean;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN hlth_safety_clothing_clean boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN hlth_passport_count TO hlth_passport_count_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN lat_center double;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN lat_center double;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN lon_center double;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN lon_center double;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house TO risk_house_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house_distance TO risk_house_distance_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house_distance float;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house_buffer_zones TO risk_house_buffer_zones_DEL;"); db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house_buffer_zones TO risk_house_buffer_zones_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house_buffer_zones boolean;"); db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house_buffer_zones boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house_impact TO risk_house_impact_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house_impact boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_house_informed TO risk_house_informed_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_house_informed boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_water TO risk_water_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_water boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_water_distance TO risk_water_distance_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_water_distance float;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_water_buffer_zones TO risk_water_buffer_zones_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_water_buffer_zones boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_water_impact TO risk_water_impact_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_water_impact boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_apiary TO risk_apiary_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_apiary boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_apiary_distance TO risk_apiary_distance_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_apiary_distance float;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_apiary_informed TO risk_apiary_informed_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_apiary_informed boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_apiary_measure TO risk_apiary_measure_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_apiary_measure text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_apiary_impact TO risk_apiary_impact_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_apiary_impact boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN safety_control TO safety_control_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN safety_control boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN safety_control_actions TO safety_control_actions_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN safety_control_actions text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_agricultural TO risk_agricultural_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_agricultural boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_agricultural_name TO risk_agricultural_name_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_agricultural_name text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_agricultural_phase TO risk_agricultural_phase_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_agricultural_phase text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_agricultural_toxic TO risk_agricultural_toxic_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_agricultural_toxic boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_agricultural_inform TO risk_agricultural_inform_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_agricultural_inform boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_silk_inform TO risk_silk_inform_DEL;");
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_silk_inform boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_silk_trees_measure TO risk_silk_trees_measure_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_silk_trees_measure text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_silk_trees_impact TO risk_silk_trees_impact_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_silk_trees_impact boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_pastures TO risk_pastures_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_pastures boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_pastures_inform TO risk_pastures_inform_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_pastures_inform boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_park TO risk_park_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_park boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_park_type TO risk_park_type_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_park_type text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_park_distance TO risk_park_distance_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_park_distance float;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_park_buffer_zones TO risk_park_buffer_zones_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_park_buffer_zones boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_park_impact TO risk_park_impact_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_park_impact boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_probe_analysis TO risk_probe_analysis_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_probe_analysis boolean;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_probe_analysis_name TO risk_probe_analysis_name_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_probe_analysis_name text;");
db.execSQL("ALTER TABLE frmlocusthealth RENAME COLUMN risk_probe_analysis_number TO risk_probe_analysis_number_DEL;"); //Гадина при вставке учитывает регистр символов!!!
db.execSQL("ALTER TABLE frmlocusthealth ADD COLUMN risk_probe_analysis_number text;");
oldVersion=153; oldVersion=153;
} }

View File

@ -26,13 +26,17 @@ public class LatLonAdapter extends ArrayAdapter<LatLon> {
LatLonListener latlonListener=null; LatLonListener latlonListener=null;
ListView productList=null; ListView productList=null;
View.OnClickListener clc=null; View.OnClickListener clc=null;
private boolean disabled=false;
LatLonAdapter(Context context, int resource, ArrayList<LatLon> latlon, LatLonListener latlonListener, ListView productList) { LatLonAdapter(Context context, int resource, ArrayList<LatLon> latlon, LatLonListener latlonListener, ListView productList,boolean disabled) {
super(context, resource, latlon); super(context, resource, latlon);
this.latlonList = latlon; this.latlonList = latlon;
this.layout = resource; this.layout = resource;
this.inflater = LayoutInflater.from(context); this.inflater = LayoutInflater.from(context);
this.latlonListener = latlonListener; this.latlonListener = latlonListener;
this.disabled = disabled;
//android:enabled="false"
//android:focusable="false"
} }
@Override @Override
@ -84,6 +88,15 @@ public class LatLonAdapter extends ArrayAdapter<LatLon> {
if(viewHolder.btnGetGPS!=null) { if(viewHolder.btnGetGPS!=null) {
viewHolder.btnGetGPS.setOnClickListener(new OnClickListenerIDADD(position, this)); viewHolder.btnGetGPS.setOnClickListener(new OnClickListenerIDADD(position, this));
} }
if(disabled) {
viewHolder.btnGetGPS.setEnabled(false);
viewHolder.btnGetGPS.setFocusable(false);
viewHolder.btnDelGPS.setEnabled(false);
viewHolder.btnDelGPS.setFocusable(false);
}
return convertView; return convertView;
} }

View File

@ -423,7 +423,7 @@ public class LocustActivity extends FragmentActivity implements LocationListener
latlon.add(new LatLon(0, 0)); latlon.add(new LatLon(0, 0));
} }
latlonList = findViewById(R.id.latlonList); latlonList = findViewById(R.id.latlonList);
LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList); LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList,false);
latlonList.setAdapter(adapter); latlonList.setAdapter(adapter);
adapter.clc=new OnClickListener() { adapter.clc=new OnClickListener() {
@Override @Override

View File

@ -460,7 +460,7 @@ public class LocustDelActivity extends FragmentActivity implements LocationListe
ArrayList<LatLon> latlon = new ArrayList<LatLon>(); ArrayList<LatLon> latlon = new ArrayList<LatLon>();
latlon.add(new LatLon(0, 0)); latlon.add(new LatLon(0, 0));
latlonList = findViewById(R.id.latlonList); latlonList = findViewById(R.id.latlonList);
LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList); LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList, false);
latlonList.setAdapter(adapter); latlonList.setAdapter(adapter);
adapter.clc=new OnClickListener() { adapter.clc=new OnClickListener() {
@Override @Override

View File

@ -240,7 +240,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
public EditText edtHlthClothingState = null; //"hlth_clothing_state text," + //H Замечания относительно типа и состояния средств индивидуальной защиты public EditText edtHlthClothingState = null; //"hlth_clothing_state text," + //H Замечания относительно типа и состояния средств индивидуальной защиты
public View spiHlthClothingReserve = null; //"hlth_clothing_reserve boolean," + //H В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки) public View spiHlthClothingReserve = null; //"hlth_clothing_reserve boolean," + //H В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки)
public EditText edtHlthOperatorPassport = null; //"hlth_operator_passport integer," + //H Количество операторов с паспортами использования пестицидов public EditText edtHlthOperatorPassport = null; //"hlth_operator_passport integer," + //H Количество операторов с паспортами использования пестицидов
public EditText edtHlthPassportCount = null; //"hlth_filled_passport integer," + //H Количество правильно заполненных паспортов использования пестицидов public EditText edtHlthFilledPassport = null; //"hlth_filled_passport integer," + //H Количество правильно заполненных паспортов использования пестицидов
public View spiHlthInhibition = null; //"hlth_inhibition boolean," + //H Во время мониторинга измерялось ли ингибирование холинэстеразы? public View spiHlthInhibition = null; //"hlth_inhibition boolean," + //H Во время мониторинга измерялось ли ингибирование холинэстеразы?
public View spiOperatorExposedInsecticide = null; public View spiOperatorExposedInsecticide = null;
@ -455,7 +455,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
ArrayList<LatLon> latlon = new ArrayList<LatLon>(); ArrayList<LatLon> latlon = new ArrayList<LatLon>();
latlon.add(new LatLon(0, 0)); latlon.add(new LatLon(0, 0));
latlonList = findViewById(R.id.latlonList); latlonList = findViewById(R.id.latlonList);
LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList); LatLonAdapter adapter = new LatLonAdapter(this, R.layout.list_lat_lon, latlon, this, latlonList, true);
latlonList.setAdapter(adapter); latlonList.setAdapter(adapter);
// adapter.clc=new OnClickListener() { // adapter.clc=new OnClickListener() {
// @Override // @Override
@ -613,7 +613,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H Состояние пакетов или контейнеров с инсектицидами //H Состояние пакетов или контейнеров с инсектицидами
spiInsContainerState = findViewById(R.id.spiInsContainerState); spiInsContainerState = findViewById(R.id.spiInsContainerState);
guiTableDel.add(spiInsDiluted, "insecticide_container_state_id"); guiTableHealth.add(spiInsContainerState, "insecticide_container_state_id");
((selectDB)spiInsContainerState).addField("", ""); ((selectDB)spiInsContainerState).addField("", "");
dboh = new DbOpenHelper(this); dboh = new DbOpenHelper(this);
cursor = dboh cursor = dboh
@ -998,7 +998,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
((selectDB)spiCalibrPrecipitation).addField(getString(R.string.No), "0"); ((selectDB)spiCalibrPrecipitation).addField(getString(R.string.No), "0");
//H Длина трансекты, определенная с использованием масляно-/водочувствительной бумаги (м) //H Длина трансекты, определенная с использованием масляно-/водочувствительной бумаги (м)
edtCalibrWidthCard = (EditText) findViewById(R.id.edtCalibrWidthCard); edtCalibrWidthCard = (EditText) findViewById(R.id.edtCalibrWidthCard);
guiTableHealth.add(edtSprDescription, "calibr_width_card"); guiTableHealth.add(edtCalibrWidthCard, "calibr_width_card");
//H Средняя скорость ветра при осаждении капель (м/с) //H Средняя скорость ветра при осаждении капель (м/с)
edtCalibrWindSpeed = (EditText) findViewById(R.id.edtCalibrWindSpeed); edtCalibrWindSpeed = (EditText) findViewById(R.id.edtCalibrWindSpeed);
guiTableHealth.add(edtCalibrWindSpeed, "calibr_wind_speed"); guiTableHealth.add(edtCalibrWindSpeed, "calibr_wind_speed");
@ -1017,6 +1017,14 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
((selectDB)spiEffControl).addField("", ""); ((selectDB)spiEffControl).addField("", "");
((selectDB)spiEffControl).addField(getString(R.string.Yes), "1"); ((selectDB)spiEffControl).addField(getString(R.string.Yes), "1");
((selectDB)spiEffControl).addField(getString(R.string.No), "0"); ((selectDB)spiEffControl).addField(getString(R.string.No), "0");
findViewById(R.id.btnEffControl).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Control_efficacy_conducted_control_team));
}
});
//Тип оцениваемого биологического воздействия //Тип оцениваемого биологического воздействия
spiEffTypeImpact = findViewById(R.id.spiEffTypeImpact); spiEffTypeImpact = findViewById(R.id.spiEffTypeImpact);
@ -1068,13 +1076,21 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H Проведен ли контроль эффективности (бригада мониторинга)? //H Проведен ли контроль эффективности (бригада мониторинга)?
spiEffControl2 = findViewById(R.id.spiEffControl2); spiEffControl2 = findViewById(R.id.spiEffControl2);
guiTableDel.add(spiEffControl2, "efficacy_control"); guiTableHealth.add(spiEffControl2, "efficacy_control");
((selectDB)spiEffControl2).addField("", ""); ((selectDB)spiEffControl2).addField("", "");
((selectDB)spiEffControl2).addField(getString(R.string.Yes), "1"); ((selectDB)spiEffControl2).addField(getString(R.string.Yes), "1");
((selectDB)spiEffControl2).addField(getString(R.string.No), "0"); ((selectDB)spiEffControl2).addField(getString(R.string.No), "0");
findViewById(R.id.btnEffControl2).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Control_efficacy_conducted_monitoring_team));
}
});
//H Тип оцениваемого биологического воздействия //H Тип оцениваемого биологического воздействия
spiEffTypeImpact2 = findViewById(R.id.spiEffTypeImpact2); spiEffTypeImpact2 = findViewById(R.id.spiEffTypeImpact2);
guiTableDel.add(spiEffTypeImpact2, "efficacy_impact_type_id"); guiTableHealth.add(spiEffTypeImpact2, "efficacy_impact_type_id");
((selectDB)spiEffTypeImpact2).addField("", ""); ((selectDB)spiEffTypeImpact2).addField("", "");
dboh = new DbOpenHelper(this); dboh = new DbOpenHelper(this);
cursor = dboh cursor = dboh
@ -1094,7 +1110,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H Наблюдаемая эффективность обработки (%) //H Наблюдаемая эффективность обработки (%)
edtEffMortality2 = (EditText) findViewById(R.id.edtEffMortality2); edtEffMortality2 = (EditText) findViewById(R.id.edtEffMortality2);
guiTableDel.add(edtEffMortality2, "efficacy_mortality"); guiTableHealth.add(edtEffMortality2, "efficacy_mortality");
//H Прошло времени после обработки //H Прошло времени после обработки
edtEffPassedTime2 = (EditText) findViewById(R.id.edtEffPassedTime2); edtEffPassedTime2 = (EditText) findViewById(R.id.edtEffPassedTime2);
guiTableHealth.add(edtEffPassedTime2, "efficacy_passed_time"); guiTableHealth.add(edtEffPassedTime2, "efficacy_passed_time");
@ -1185,12 +1201,15 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки) //H В бригаде или на ближайшей противосаранчовой базе имеется запасная защитная одежда (в частности, комбинезоны и перчатки)
spiHlthClothingReserve = findViewById(R.id.spiHlthClothingReserve); spiHlthClothingReserve = findViewById(R.id.spiHlthClothingReserve);
guiTableHealth.add(spiHlthClothingReserve, "hlth_clothing_reserve"); guiTableHealth.add(spiHlthClothingReserve, "hlth_clothing_reserve");
((selectDB)spiHlthClothingReserve).addField("", "");
((selectDB)spiHlthClothingReserve).addField(getString(R.string.Yes), "1");
((selectDB)spiHlthClothingReserve).addField(getString(R.string.No), "0");
//H Количество операторов с паспортами использования пестицидов //H Количество операторов с паспортами использования пестицидов
edtHlthOperatorPassport = (EditText) findViewById(R.id.edtHlthClothingState); edtHlthOperatorPassport = (EditText) findViewById(R.id.edtHlthOperatorPassport);
guiTableHealth.add(edtHlthOperatorPassport, "hlth_operator_passport"); guiTableHealth.add(edtHlthOperatorPassport, "hlth_operator_passport");
//H Количество правильно заполненных паспортов использования пестицидов //H Количество правильно заполненных паспортов использования пестицидов
edtHlthPassportCount = (EditText) findViewById(R.id.edtHlthClothingState); edtHlthFilledPassport = (EditText) findViewById(R.id.edtHlthFilledPassport);
guiTableHealth.add(edtHlthOperatorPassport, "hlth_filled_passport"); guiTableHealth.add(edtHlthFilledPassport, "hlth_filled_passport");
//H Во время мониторинга измерялось ли ингибирование холинэстеразы? //H Во время мониторинга измерялось ли ингибирование холинэстеразы?
spiHlthInhibition = findViewById(R.id.spiHlthInhibition); spiHlthInhibition = findViewById(R.id.spiHlthInhibition);
guiTableHealth.add(spiHlthInhibition, "hlth_inhibition"); guiTableHealth.add(spiHlthInhibition, "hlth_inhibition");
@ -1210,7 +1229,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
guiTableDel.add(edtDescription, "description"); guiTableDel.add(edtDescription, "description");
//H Дополнительные сведения о случайном воздействии или отравлении //H Дополнительные сведения о случайном воздействии или отравлении
edtHlthDescription = (EditText) findViewById(R.id.edtDescription); edtHlthDescription = (EditText) findViewById(R.id.edtHlthDescription);
guiTableHealth.add(edtHlthDescription, "hlth_description"); guiTableHealth.add(edtHlthDescription, "hlth_description");
//**********Состояние окружающей среды********** //**********Состояние окружающей среды**********
@ -1273,13 +1292,13 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
cbBurned = (CheckBox) findViewById(R.id.cbBurned); cbBurned = (CheckBox) findViewById(R.id.cbBurned);
//H Наблюдалось или сообщалось о случайном загрязнении? (например, разлив инсектицидов, неправильная очистка оборудования и т. д.) //H Наблюдалось или сообщалось о случайном загрязнении? (например, разлив инсектицидов, неправильная очистка оборудования и т. д.)
spiSafObservedPollution = findViewById(R.id.spiOperatorExposedInsecticide); spiSafObservedPollution = findViewById(R.id.spiSafObservedPollution);
guiTableDel.add(spiSafObservedPollution, "safety_observed_pollution"); guiTableHealth.add(spiSafObservedPollution, "safety_observed_pollution");
((selectDB)spiSafObservedPollution).addField("", ""); ((selectDB)spiSafObservedPollution).addField("", "");
((selectDB)spiSafObservedPollution).addField(getString(R.string.Yes), "1"); ((selectDB)spiSafObservedPollution).addField(getString(R.string.Yes), "1");
((selectDB)spiSafObservedPollution).addField(getString(R.string.No), "0"); ((selectDB)spiSafObservedPollution).addField(getString(R.string.No), "0");
//H Если Да, то где и какой тип загрязнения? //H Если Да, то где и какой тип загрязнения?
edtSafTypePollution = (EditText) findViewById(R.id.edtDescription); edtSafTypePollution = (EditText) findViewById(R.id.edtSafTypePollution);
guiTableHealth.add(edtSafTypePollution, "safety_type_pollution"); guiTableHealth.add(edtSafTypePollution, "safety_type_pollution");
// воздействие на нецелевые организмы // воздействие на нецелевые организмы
@ -1295,16 +1314,24 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H Наблюдалось или сообщалось о воздействии на нецелевые организмы? (например, болезни домашнего скота, смертность рыб, гибель пчел и т.д.) //H Наблюдалось или сообщалось о воздействии на нецелевые организмы? (например, болезни домашнего скота, смертность рыб, гибель пчел и т.д.)
spiSafNonTarget2 = findViewById(R.id.spiSafNonTarget2); spiSafNonTarget2 = findViewById(R.id.spiSafNonTarget2);
guiTableDel.add(spiSafNonTarget2, "safety_non_target"); guiTableHealth.add(spiSafNonTarget2, "safety_non_target");
((selectDB)spiSafNonTarget2).addField("", ""); ((selectDB)spiSafNonTarget2).addField("", "");
((selectDB)spiSafNonTarget2).addField(getString(R.string.Yes), "1"); ((selectDB)spiSafNonTarget2).addField(getString(R.string.Yes), "1");
((selectDB)spiSafNonTarget2).addField(getString(R.string.No), "0"); ((selectDB)spiSafNonTarget2).addField(getString(R.string.No), "0");
//H Если Да, то где и какое воздействие? //H Если Да, то где и какое воздействие?
edtSafNonTargetEffect2 = (EditText) findViewById(R.id.edtSafNonTargetEffect2); edtSafNonTargetEffect2 = (EditText) findViewById(R.id.edtSafNonTargetEffect2);
guiTableDel.add(edtSafNonTargetEffect2, "safety_non_target_effect"); guiTableHealth.add(edtSafNonTargetEffect2, "safety_non_target_effect");
//H Если информация поступила от прочих лиц, от кого именно? (укажите имя, номер телефона, адрес) //H Если информация поступила от прочих лиц, от кого именно? (укажите имя, номер телефона, адрес)
edtSafNonTargetEffectPerson = (EditText) findViewById(R.id.edtSafNonTargetEffectPerson); edtSafNonTargetEffectPerson = (EditText) findViewById(R.id.edtSafNonTargetEffectPerson);
guiTableDel.add(edtSafNonTargetEffectPerson, "safety_non_target_effect_person"); guiTableHealth.add(edtSafNonTargetEffectPerson, "safety_non_target_effect_person");
findViewById(R.id.btnSafNonTargetEffectPerson).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.If_reported_by_another_person_by_whom));
}
});
// Другие инциденты по здоровью или окружающей среде, возникшие возможно при обработке // Другие инциденты по здоровью или окружающей среде, возникшие возможно при обработке
spiSafIncident = findViewById(R.id.spiSafIncident); spiSafIncident = findViewById(R.id.spiSafIncident);
@ -1319,27 +1346,27 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
//H Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду //H Осуществлялся ли бригадой по мониторингу ЗЧ и ОС контроль в отношении наблюдаемого или зарегистрированного воздействия на окружающую среду
spiSafControl = findViewById(R.id.spiSafControl); spiSafControl = findViewById(R.id.spiSafControl);
guiTableDel.add(spiSafControl, "safety_control"); guiTableHealth.add(spiSafControl, "safety_control");
((selectDB)spiSafControl).addField("", ""); ((selectDB)spiSafControl).addField("", "");
((selectDB)spiSafControl).addField(getString(R.string.Yes), "1"); ((selectDB)spiSafControl).addField(getString(R.string.Yes), "1");
((selectDB)spiSafControl).addField(getString(R.string.No), "0"); ((selectDB)spiSafControl).addField(getString(R.string.No), "0");
//H Если Да, опишите последующее действие(я) //H Если Да, опишите последующее действие(я)
edtSafControlActions = (EditText) findViewById(R.id.edtSafControlActions); edtSafControlActions = (EditText) findViewById(R.id.edtSafControlActions);
guiTableDel.add(edtSafControlActions, "safety_Control_actions"); guiTableHealth.add(edtSafControlActions, "safety_control_actions");
//********** Предоставление информации ********* //********** Предоставление информации *********
edtComments = (EditText) findViewById(R.id.edtComments); // КОММЕНТАР<D090>?<3F>? edtComments = (EditText) findViewById(R.id.edtComments); // КОММЕНТАР<D090>?<3F>?
guiTableDel.add(edtComments, "comments"); guiTableDel.add(edtComments, "comments");
//********** Карта и фотографии ********** //********** Карта и фотографии **********
//H Была ли составлена ситуационная карта обработки? //H Была ли составлена ситуационная карта обработки?
spiMapTreatment = findViewById(R.id.spiMapTreatment); spiMapTreatment = findViewById(R.id.spiMapTreatment);
guiTableHealth.add(spiMapTreatment, "risk_house"); guiTableHealth.add(spiMapTreatment, "map_treatment");
((selectDB)spiMapTreatment).addField("", ""); ((selectDB)spiMapTreatment).addField("", "");
((selectDB)spiMapTreatment).addField(getString(R.string.Yes), "1"); ((selectDB)spiMapTreatment).addField(getString(R.string.Yes), "1");
((selectDB)spiMapTreatment).addField(getString(R.string.No), "0"); ((selectDB)spiMapTreatment).addField(getString(R.string.No), "0");
//H Фото ситуации, возникшей при обработке, любых инцидентов и т. д. //H Фото ситуации, возникшей при обработке, любых инцидентов и т. д.
edtImage1 = (EditText) findViewById(R.id.edtImage1); // Фото edtImage1 = (EditText) findViewById(R.id.edtImage1); // Фото
guiTableHealth.add(edtImage1, "image_name1"); guiTableHealth.add(edtImage1, "image_name1");
edtImage2 = (EditText) findViewById(R.id.edtImage2); // Фото edtImage2 = (EditText) findViewById(R.id.edtImage2); // Фото
@ -1351,29 +1378,64 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
edtImage5 = (EditText) findViewById(R.id.edtImage3); // Фото edtImage5 = (EditText) findViewById(R.id.edtImage3); // Фото
guiTableHealth.add(edtImage5, "image_name5"); guiTableHealth.add(edtImage5, "image_name5");
//********** Оценки риска ********** //********** Оценки риска **********
//H Имеются ли в непосредственной близости от обработок жилые дома или жилье (в радиусе 2 км вокруг обрабатываемого участка) //H Имеются ли в непосредственной близости от обработок жилые дома или жилье (в радиусе 2 км вокруг обрабатываемого участка)
spiRiskHouse = findViewById(R.id.spiRiskHouse); spiRiskHouse = findViewById(R.id.spiRiskHouse);
guiTableHealth.add(spiRiskHouse, "risk_house"); guiTableHealth.add(spiRiskHouse, "risk_house");
((selectDB)spiRiskHouse).addField("", ""); ((selectDB)spiRiskHouse).addField("", "");
((selectDB)spiRiskHouse).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskHouse).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskHouse).addField(getString(R.string.No), "0"); ((selectDB)spiRiskHouse).addField(getString(R.string.No), "0");
//H Расстояние от ближайшего края обрабатываемого участка (м) до ближайшего жилья: findViewById(R.id.btnRiskHouse).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Any_dwellings_or_housing_nearby_the_treatment));
}
});
// Чтоб при изменении значения скрывались соответствующие поля
((selectDB)spiRiskHouse).setOnChangeValueListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
LinearLayout llRiskHouseDistance = findViewById(R.id.llRiskHouseDistance);
LinearLayout llRiskHouseBufferZones = findViewById(R.id.llRiskHouseBufferZones);
LinearLayout llRiskHouseImpact = findViewById(R.id.llRiskHouseImpact);
LinearLayout llRiskHouseInformed = findViewById(R.id.llRiskHouseInformed);
if(((selectDB)spiRiskHouse).getValue() != null && ((selectDB)spiRiskHouse).getValue().equals("1")) {
llRiskHouseDistance.setVisibility(View.VISIBLE);
llRiskHouseBufferZones.setVisibility(View.VISIBLE);
llRiskHouseImpact.setVisibility(View.VISIBLE);
llRiskHouseInformed.setVisibility(View.VISIBLE);
}else{
edtRiskHouseDistance.setText("");
((dbfields.AutoCompleteTextViewDB)spiRiskHouseBufferZones).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskHouseImpact).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskHouseInformed).setValue(null);
llRiskHouseDistance.setVisibility(View.GONE);
llRiskHouseBufferZones.setVisibility(View.GONE);
llRiskHouseImpact.setVisibility(View.GONE);
llRiskHouseInformed.setVisibility(View.GONE);
}
}
});
//H Расстояние от ближайшего края обрабатываемого участка (м) до ближайшего жилья:
edtRiskHouseDistance = (EditText) findViewById(R.id.edtRiskHouseDistance); edtRiskHouseDistance = (EditText) findViewById(R.id.edtRiskHouseDistance);
guiTableHealth.add(edtRiskHouseDistance, "risk_house_distance"); guiTableHealth.add(edtRiskHouseDistance, "risk_house_distance");
//H Соблюдались ли буферные зоны? //H Соблюдались ли буферные зоны?
spiRiskHouseBufferZones = findViewById(R.id.spiRiskHouseBufferZones); spiRiskHouseBufferZones = findViewById(R.id.spiRiskHouseBufferZones);
guiTableHealth.add(spiRiskHouseBufferZones, "risk_house_buffer_zones"); guiTableHealth.add(spiRiskHouseBufferZones, "risk_house_buffer_zones");
((selectDB)spiRiskHouseBufferZones).addField("", ""); ((selectDB)spiRiskHouseBufferZones).addField("", "");
((selectDB)spiRiskHouseBufferZones).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskHouseBufferZones).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskHouseBufferZones).addField(getString(R.string.No), "0"); ((selectDB)spiRiskHouseBufferZones).addField(getString(R.string.No), "0");
//H Существует ли вероятность воздействия на жилые дома/жилье? //H Существует ли вероятность воздействия на жилые дома/жилье?
spiRiskHouseImpact = findViewById(R.id.spiRiskHouseImpact); spiRiskHouseImpact = findViewById(R.id.spiRiskHouseImpact);
guiTableHealth.add(spiRiskHouseImpact, "risk_house_impact"); guiTableHealth.add(spiRiskHouseImpact, "risk_house_impact");
((selectDB)spiRiskHouseImpact).addField("", ""); ((selectDB)spiRiskHouseImpact).addField("", "");
((selectDB)spiRiskHouseImpact).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskHouseImpact).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskHouseImpact).addField(getString(R.string.No), "0"); ((selectDB)spiRiskHouseImpact).addField(getString(R.string.No), "0");
//H Были ли проинформированы жители о применении инсектицидов? (проверка бригадой по мониторингу) //H Были ли проинформированы жители о применении инсектицидов? (проверка бригадой по мониторингу)
spiRiskHouseInformed = findViewById(R.id.spiRiskHouseInformed); spiRiskHouseInformed = findViewById(R.id.spiRiskHouseInformed);
guiTableHealth.add(spiRiskHouseInformed, "risk_house_informed"); guiTableHealth.add(spiRiskHouseInformed, "risk_house_informed");
((selectDB)spiRiskHouseInformed).addField("", ""); ((selectDB)spiRiskHouseInformed).addField("", "");
@ -1386,6 +1448,15 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
((selectDB)spiRiskWater).addField("", ""); ((selectDB)spiRiskWater).addField("", "");
((selectDB)spiRiskWater).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskWater).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskWater).addField(getString(R.string.No), "0"); ((selectDB)spiRiskWater).addField(getString(R.string.No), "0");
findViewById(R.id.btnRiskWater).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Any_surface_waters_nearby_the_treatment));
}
});
// Чтоб при изменении значения скрывались соответствующие поля
((selectDB)spiRiskWater).setOnChangeValueListener(new OnClickListener() ((selectDB)spiRiskWater).setOnChangeValueListener(new OnClickListener()
{ {
@Override @Override
@ -1401,7 +1472,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
}else{ }else{
edtRiskWaterDistance.setText(""); edtRiskWaterDistance.setText("");
((dbfields.AutoCompleteTextViewDB)spiRiskWaterBufferZones).setValue(null); ((dbfields.AutoCompleteTextViewDB)spiRiskWaterBufferZones).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskAgriculturalInform).setValue(null); ((dbfields.AutoCompleteTextViewDB)spiRiskWaterImpact).setValue(null);
llRiskWaterDistance.setVisibility(View.GONE); llRiskWaterDistance.setVisibility(View.GONE);
llRiskWaterBufferZones.setVisibility(View.GONE); llRiskWaterBufferZones.setVisibility(View.GONE);
llRiskWaterImpact.setVisibility(View.GONE); llRiskWaterImpact.setVisibility(View.GONE);
@ -1430,6 +1501,14 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
((selectDB)spiRiskApiary).addField("", ""); ((selectDB)spiRiskApiary).addField("", "");
((selectDB)spiRiskApiary).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskApiary).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskApiary).addField(getString(R.string.No), "0"); ((selectDB)spiRiskApiary).addField(getString(R.string.No), "0");
findViewById(R.id.btnRiskApiary).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Any_apiculture_nearby_the_treatment));
}
});
// Чтоб при изменении значения скрывались соответствующие поля // Чтоб при изменении значения скрывались соответствующие поля
((selectDB)spiRiskApiary).setOnChangeValueListener(new OnClickListener() ((selectDB)spiRiskApiary).setOnChangeValueListener(new OnClickListener()
{ {
@ -1528,13 +1607,21 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
((selectDB)spiRiskAgriculturalInform).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskAgriculturalInform).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskAgriculturalInform).addField(getString(R.string.No), "0"); ((selectDB)spiRiskAgriculturalInform).addField(getString(R.string.No), "0");
//H Имеются ли в непосредственной близости от обработок шелководства (в радиусе 2 км вокруг обрабатываемого участка) //H Имеются ли в непосредственной близости от обработок шелководства (в радиусе 2 км вокруг обрабатываемого участка)
spiRiskSilk = findViewById(R.id.spiRiskSilk); spiRiskSilk = findViewById(R.id.spiRiskSilk);
guiTableHealth.add(spiRiskSilk, "risk_silk"); guiTableHealth.add(spiRiskSilk, "risk_silk");
((selectDB)spiRiskSilk).addField("", ""); ((selectDB)spiRiskSilk).addField("", "");
((selectDB)spiRiskSilk).addField(getString(R.string.Yes), "1"); ((selectDB)spiRiskSilk).addField(getString(R.string.Yes), "1");
((selectDB)spiRiskSilk).addField(getString(R.string.No), "0"); ((selectDB)spiRiskSilk).addField(getString(R.string.No), "0");
findViewById(R.id.btnRiskSilk).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Any_sericulture_nearby_the_treatment));
}
});
// Чтоб при изменении значения скрывались соответствующие поля // Чтоб при изменении значения скрывались соответствующие поля
((selectDB)spiRiskSilk).setOnChangeValueListener(new OnClickListener() ((selectDB)spiRiskSilk).setOnChangeValueListener(new OnClickListener()
{ {
@ -1644,6 +1731,14 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
} }
} }
}); });
findViewById(R.id.btnRiskPark).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
alert(getString(R.string.Any_other_ecologically_sensitive_areas_nearby_the_treatment));
}
});
//H Какой тип экологически чувствительной зоны //H Какой тип экологически чувствительной зоны
edtRiskParkType = (EditText) findViewById(R.id.edtRiskParkType); edtRiskParkType = (EditText) findViewById(R.id.edtRiskParkType);
@ -1691,10 +1786,10 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
} }
}); });
//H Проба какого субстрата или организма была взята //H Проба какого субстрата или организма была взята
edtRiskProbeAnalysisName = (EditText) findViewById(R.id.edtComments); edtRiskProbeAnalysisName = (EditText) findViewById(R.id.edtRiskProbeAnalysisName);
guiTableHealth.add(edtRiskProbeAnalysisName, "risk_probe_analysis_name"); guiTableHealth.add(edtRiskProbeAnalysisName, "risk_probe_analysis_name");
//H Регистрационный номер формы отбора проб //H Регистрационный номер формы отбора проб
edtRiskProbeAnalysisNumber = (EditText) findViewById(R.id.edtComments); edtRiskProbeAnalysisNumber = (EditText) findViewById(R.id.edtRiskProbeAnalysisNumber);
guiTableHealth.add(edtRiskProbeAnalysisNumber, "risk_probe_analysis_number"); guiTableHealth.add(edtRiskProbeAnalysisNumber, "risk_probe_analysis_number");
@ -3145,17 +3240,36 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
public void updateAlpha() public void updateAlpha()
{ {
String value; String value;
boolean f; //boolean f;
int c; //int c;
//Имеются ли в непосредственной близости от обработок жилые дома или жилье (в радиусе 2 км вокруг обрабатываемого участка) //Имеются ли в непосредственной близости от обработок жилые дома или жилье (в радиусе 2 км вокруг обрабатываемого участка)
LinearLayout llRiskHouseDistance = findViewById(R.id.llRiskHouseDistance);
LinearLayout llRiskHouseBufferZones = findViewById(R.id.llRiskHouseBufferZones);
LinearLayout llRiskHouseImpact = findViewById(R.id.llRiskHouseImpact);
LinearLayout llRiskHouseInformed = findViewById(R.id.llRiskHouseInformed);
value = ((selectDB)spiRiskHouse).getValue();
if(value != null && value.equals("1")) {
llRiskHouseDistance.setVisibility(View.VISIBLE);
llRiskHouseBufferZones.setVisibility(View.VISIBLE);
llRiskHouseImpact.setVisibility(View.VISIBLE);
llRiskHouseInformed.setVisibility(View.VISIBLE);
}else{
edtRiskHouseDistance.setText("");
((dbfields.AutoCompleteTextViewDB)spiRiskHouseBufferZones).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskHouseImpact).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskHouseInformed).setValue(null);
llRiskHouseDistance.setVisibility(View.GONE);
llRiskHouseBufferZones.setVisibility(View.GONE);
llRiskHouseImpact.setVisibility(View.GONE);
llRiskHouseInformed.setVisibility(View.GONE);
}
//Имеются ли в непосредственной близости от обработок поверхностные воды (в радиусе 2 км вокруг обрабатываемого участка) //Имеются ли в непосредственной близости от обработок поверхностные воды (в радиусе 2 км вокруг обрабатываемого участка)
LinearLayout llRiskWaterDistance = findViewById(R.id.llRiskWaterDistance); LinearLayout llRiskWaterDistance = findViewById(R.id.llRiskWaterDistance);
LinearLayout llRiskWaterBufferZones = findViewById(R.id.llRiskWaterBufferZones); LinearLayout llRiskWaterBufferZones = findViewById(R.id.llRiskWaterBufferZones);
LinearLayout llRiskWaterImpact = findViewById(R.id.llRiskWaterImpact); LinearLayout llRiskWaterImpact = findViewById(R.id.llRiskWaterImpact);
value = ((selectDB)spiRiskApiary).getValue(); value = ((selectDB)spiRiskWater).getValue();
if(value != null && value.equals("1")) { if(value != null && value.equals("1")) {
llRiskWaterDistance.setVisibility(View.VISIBLE); llRiskWaterDistance.setVisibility(View.VISIBLE);
llRiskWaterBufferZones.setVisibility(View.VISIBLE); llRiskWaterBufferZones.setVisibility(View.VISIBLE);
@ -3163,7 +3277,7 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
}else{ }else{
edtRiskWaterDistance.setText(""); edtRiskWaterDistance.setText("");
((dbfields.AutoCompleteTextViewDB)spiRiskWaterBufferZones).setValue(null); ((dbfields.AutoCompleteTextViewDB)spiRiskWaterBufferZones).setValue(null);
((dbfields.AutoCompleteTextViewDB)spiRiskAgriculturalInform).setValue(null); ((dbfields.AutoCompleteTextViewDB)spiRiskWaterImpact).setValue(null);
llRiskWaterDistance.setVisibility(View.GONE); llRiskWaterDistance.setVisibility(View.GONE);
llRiskWaterBufferZones.setVisibility(View.GONE); llRiskWaterBufferZones.setVisibility(View.GONE);
llRiskWaterImpact.setVisibility(View.GONE); llRiskWaterImpact.setVisibility(View.GONE);
@ -3281,7 +3395,6 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
llRiskProbeAnalysisNumber.setVisibility(View.GONE); llRiskProbeAnalysisNumber.setVisibility(View.GONE);
} }
/*if (spiEffControl.isChecked()) /*if (spiEffControl.isChecked())
{ {
f = true; f = true;
@ -3960,7 +4073,6 @@ public class LocustHealthActivity extends FragmentActivity implements LocationLi
startService(new Intent(this, MainService.class).putExtra(MainService.PARAM_ACTION, "1")); // Чтоб вызвать событие таймера в сервисе startService(new Intent(this, MainService.class).putExtra(MainService.PARAM_ACTION, "1")); // Чтоб вызвать событие таймера в сервисе
LocustHealthActivity.this.finish(); // Закрываем форму LocustHealthActivity.this.finish(); // Закрываем форму
} }
} }
/** /**

View File

@ -84,9 +84,10 @@ public class MainActivity extends Activity {
Tools.loadLocale(this); Tools.loadLocale(this);
DbOpenHelper dboh = new DbOpenHelper(MainActivity.this);; DbOpenHelper dboh = new DbOpenHelper(MainActivity.this);;
//Перебираем и удаляем фото файлы названия которых нет в базе данных! //Перебираем и удаляем фото файлы названия которых нет в базе данных!
SQLiteDatabase db = dboh.getReadableDatabase(); SQLiteDatabase db = dboh.getReadableDatabase();
File directory = new File(Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "Locust"); File directory = new File(Environment.getExternalStorageDirectory() + File.separator + "Pictures" + File.separator + "Locust");
directory.mkdirs(); directory.mkdirs();
File[] files = directory.listFiles(); File[] files = directory.listFiles();

View File

@ -2441,8 +2441,8 @@
android:enabled="false" android:enabled="false"
android:focusable="false"/> android:focusable="false"/>
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnEffControl"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -2615,6 +2615,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnEffControl2"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -2972,7 +2973,7 @@
android:background="@color/transparent" android:background="@color/transparent"
app:boxBackgroundColor="@color/transparent"> app:boxBackgroundColor="@color/transparent">
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/edtHlthPassportCount" android:id="@+id/edtHlthFilledPassport"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
@ -3213,7 +3214,7 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="2"
android:hint="@string/Accidental_contamination_observed_or_reported"> android:hint="@string/Accidental_contamination_observed_or_reported">
<dbfields.AutoCompleteTextViewDB <dbfields.AutoCompleteTextViewDB
android:id="@+id/spiSafObservedPollution" android:id="@+id/spiSafObservedPollution"
@ -3380,6 +3381,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnSafNonTargetEffectPerson"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -3983,7 +3985,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnInfoRiskHouse" android:id="@+id/btnRiskHouse"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -4001,6 +4003,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/llRiskHouseDistance"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
@ -4026,6 +4029,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/llRiskHouseBufferZones"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
@ -4044,6 +4048,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/llRiskHouseImpact"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
@ -4062,6 +4067,7 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/llRiskHouseInformed"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
@ -4109,6 +4115,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnRiskWater"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -4219,7 +4226,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnInfoRiskApiary" android:id="@+id/btnRiskApiary"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -4468,7 +4475,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnInfoRiskSilk" android:id="@+id/btnRiskSilk"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -4645,6 +4652,7 @@
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/btnRiskPark"
style="@style/Widget.MaterialComponents.Button.Icon" style="@style/Widget.MaterialComponents.Button.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"