На работе выключили свет

This commit is contained in:
2024-08-13 15:29:39 +05:00
parent c8b20ca108
commit ec643c43a0
4 changed files with 228 additions and 178 deletions

View File

@ -359,7 +359,7 @@ public class DBGUITable
{ {
if(obj==null) return; if(obj==null) return;
String className = obj.getClass().toString(); String className = obj.getClass().toString();
//Log.d("igor","getClass = "+className); //Log.d("CCALM","getClass = "+className);
if(className.indexOf("android.widget.EditText")!=-1) ((EditText)obj).setText(value); if(className.indexOf("android.widget.EditText")!=-1) ((EditText)obj).setText(value);
if(className.indexOf("android.material.textfield.TextInputEditText")!=-1) ((TextInputEditText)obj).setText(value); if(className.indexOf("android.material.textfield.TextInputEditText")!=-1) ((TextInputEditText)obj).setText(value);

View File

@ -492,7 +492,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
"terrain text, " + //Название местности либо урочища "terrain text, " + //Название местности либо урочища
"observer text, " + //ФИО наблюдателя "observer text, " + //ФИО наблюдателя
"date text, " +//"date integer, " + //Время создания секунд с 1970 года (long) (по гринвичу?) "date text, " +//"date integer, " + //Дата создания (по гринвичу?)
"timezone text, " + //Временная зона "timezone text, " + //Временная зона
"lat_center double, " + "lat_center double, " +
"lon_center double, " + "lon_center double, " +
@ -596,7 +596,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
"terrain text, " + //Название местности либо урочища "terrain text, " + //Название местности либо урочища
"observer text, " + //ФИО наблюдателя "observer text, " + //ФИО наблюдателя
"date text," + //"date integer," + //Время создания секунд с 1970 года (long), теоретически должна быть уникальной для пользователя (по гринвичу?) "date text," + //"date integer," + //Дата создания (по гринвичу?)
"timezone text, " + //Временная зона "timezone text, " + //Временная зона
"lat_center double, " + "lat_center double, " +
"lon_center double, " + "lon_center double, " +
@ -709,7 +709,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
//Для формы уничтожения саранчи id может быть пустым (только если создали на КПК) //Для формы уничтожения саранчи id может быть пустым (только если создали на КПК)
sql = "create table if not exists frmlocusthealth(" + sql = "create table if not exists frmlocusthealth(" +
"id integer," + //Локальный идентификатор на сервере для убыстрения доступа "id integer," + //Локальный идентификатор на сервере для убыстрения доступа
"uid text NOT NULL, " + //Уникальный идентификатор пока не используется но для распределенной базы будет использоваться "uid text NOT NULL, " + //Уникальный идентификатор
"del boolean NOT NULL DEFAULT 0," + "del boolean NOT NULL DEFAULT 0," +
"seq integer NOT NULL DEFAULT 1," + "seq integer NOT NULL DEFAULT 1," +
"send boolean NOT NULL DEFAULT 0," + "send boolean NOT NULL DEFAULT 0," +
@ -724,7 +724,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
//Идентификация места мониторинга //Идентификация места мониторинга
"observer text, " + //Имя руководителя бригады по мониторингу ЗЧ и ОС "observer text, " + //Имя руководителя бригады по мониторингу ЗЧ и ОС
"date text," + //Дата мониторинга (секунд с 1970 года) "date text," + //Дата создания (по гринвичу?)
"timezone text, " + //Временная зона "timezone text, " + //Временная зона
"lat_center double, " + "lat_center double, " +
"lon_center double, " + "lon_center double, " +
@ -888,7 +888,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
");"; ");";
db.execSQL(sql); db.execSQL(sql);
Log.i("igor", "Создали базы"); Log.i("CCALM", "Создали базы");
} }
/** Обновление базы если версия не соответствует /** Обновление базы если версия не соответствует
@ -1248,7 +1248,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
//Идентификация места мониторинга //Идентификация места мониторинга
"observer text, " + //Имя руководителя бригады по мониторингу ЗЧ и ОС "observer text, " + //Имя руководителя бригады по мониторингу ЗЧ и ОС
"date integer," + //Дата мониторинга (секунд с 1970 года) "date integer," + //Дата создания (по гринвичу?)
"frmlocustdel_filled boolean," + //Заполнялась ли Форма по Мониторингу противосаранчовых обработок бригадой по обработке? (Похоже что это бесполезное поле так как есть поле frmlocustdel_uid) "frmlocustdel_filled boolean," + //Заполнялась ли Форма по Мониторингу противосаранчовых обработок бригадой по обработке? (Похоже что это бесполезное поле так как есть поле frmlocustdel_uid)
//Бригада по обработке //Бригада по обработке
@ -1609,9 +1609,9 @@ public class DbOpenHelper extends SQLiteOpenHelper
Cursor cursor; Cursor cursor;
//if(tbl.name.equals("countries")) //if(tbl.name.equals("countries"))
// Log.i("igor", "tbl0=" + tbl.name); // Log.i("CCALM", "tbl0=" + tbl.name);
//if(tbl.name.equals("countriesregions")) //if(tbl.name.equals("countriesregions"))
// Log.i("igor", "tbl0=" + tbl.name); // Log.i("CCALM", "tbl0=" + tbl.name);
//Проверка на существование полей //Проверка на существование полей
Boolean[] fb=new Boolean[tbl.fields.size()]; //Для проверки существования полей в локальной таблице Boolean[] fb=new Boolean[tbl.fields.size()]; //Для проверки существования полей в локальной таблице
@ -1632,7 +1632,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
while(tbl.ReadNextRecord()) while(tbl.ReadNextRecord())
{ {
if(tbl.name.equals("frmlocustdel_locations")){ if(tbl.name.equals("frmlocustdel_locations")){
Log.i("igor","tbl.name="+tbl.name); Log.i("CCALM","tbl.name="+tbl.name);
} }
String sql=null; String sql=null;
String[] par=null; String[] par=null;
@ -1663,7 +1663,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
for(int i=0;i<tbl.fields.size();i++) for(int i=0;i<tbl.fields.size();i++)
{ {
//if(b && tbl.fields.get(i).name.equals("id")) continue; //Если существует не записываем //if(b && tbl.fields.get(i).name.equals("id")) continue; //Если существует не записываем
//Log.i("igor","fld="+tbl.fields.get(i).name+" val="+tbl.fields.get(i).getStrVal()+" type="+tbl.fields.get(i).type); //Для дебага //Log.i("CCALM","fld="+tbl.fields.get(i).name+" val="+tbl.fields.get(i).getStrVal()+" type="+tbl.fields.get(i).type); //Для дебага
if(fb[i]) //Присваиваем только поля существующие в локальной базе if(fb[i]) //Присваиваем только поля существующие в локальной базе
{ {
@ -1728,7 +1728,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
// cursor = rdb.rawQuery("select sum(1) cnt from " + tbl.name, null); // cursor = rdb.rawQuery("select sum(1) cnt from " + tbl.name, null);
// if (cursor.moveToFirst()) { // if (cursor.moveToFirst()) {
// do { // do {
// Log.i("igor", "tbl1=" + tbl.name + " cnt=" + cursor.getString(0)); // Log.i("CCALM", "tbl1=" + tbl.name + " cnt=" + cursor.getString(0));
// } while (cursor.moveToNext()); // } while (cursor.moveToNext());
// } // }
// cursor.close(); // cursor.close();
@ -2250,7 +2250,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
if (cursor.moveToFirst()) { if (cursor.moveToFirst()) {
do { do {
result[0] = cursor.getInt(cursor.getColumnIndex("country_id")); result[0] = cursor.getInt(cursor.getColumnIndex("country_id"));
Log.i("igor", "Region name = " + cursor.getString(cursor.getColumnIndex("name")) + " id = " + cursor.getString(cursor.getColumnIndex("id"))); Log.i("CCALM", "Region name = " + cursor.getString(cursor.getColumnIndex("name")) + " id = " + cursor.getString(cursor.getColumnIndex("id")));
//String points="{ \"type\": \"Polygon\", \"coordinates\": [["; //String points="{ \"type\": \"Polygon\", \"coordinates\": [[";
Point PHead0 = new Point(); Point PHead0 = new Point();
PHead0.x = lon; PHead0.x = lon;
@ -2292,7 +2292,7 @@ public class DbOpenHelper extends SQLiteOpenHelper
} }
} }
//points+="]]}"; //points+="]]}";
//Log.i("igor", points); //Log.i("CCALM", points);
if (cnt % 2 != 0) { if (cnt % 2 != 0) {
result[1] = cursor.getInt(cursor.getColumnIndex("id")); result[1] = cursor.getInt(cursor.getColumnIndex("id"));
break; break;

View File

@ -14,7 +14,6 @@ import android.provider.Settings;
import android.util.Log; import android.util.Log;
import android.webkit.URLUtil; import android.webkit.URLUtil;
/*import org.apache.http.HttpResponse; /*import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion; import org.apache.http.HttpVersion;
import org.apache.http.client.ClientProtocolException; import org.apache.http.client.ClientProtocolException;
@ -81,8 +80,7 @@ import tools.TCTableTools2;
public class MySynchronizationOld public class MySynchronizationOld
{ {
public static String URL="https://ccalm.org"; public static String URL="https://ccalm.org";
//public static String URL="http://192.168.200.100:8080"; public static int SyncDays=30; // How many days to store data of sent data packets and synchronize with the server
public static int SyncDays=30;
private Context _context; //От какого контекста показывать алерты private Context _context; //От какого контекста показывать алерты
private String android_id; private String android_id;
@ -91,12 +89,12 @@ public class MySynchronizationOld
public MyThread myThread = null; public MyThread myThread = null;
/*
private int rid_sendFrmLocust = -1; //Для отправки данных private int rid_sendFrmLocust = -1; //Для отправки данных
private int rid_sendFrmLocustDel = -1; //Для отправки данных private int rid_sendFrmLocustDel = -1; //Для отправки данных
private int rid_sendFrmLocustHealth = -1; //Для отправки данных private int rid_sendFrmLocustHealth = -1; //Для отправки данных
private int rid_frmlocust = -1; //Для запроса данных (не используется так как нет синхронизации) //private int rid_frmlocust = -1; //Для запроса данных (не используется так как нет синхронизации)
private int rid_frmlocustdel = -1; //Для запроса данных private int rid_frmlocustdel = -1; //Для запроса данных
private int rid_frmlocustdel_locations = -1; //Для подгрузки координат формы private int rid_frmlocustdel_locations = -1; //Для подгрузки координат формы
@ -105,7 +103,7 @@ public class MySynchronizationOld
private int rid_CountriesRegions = -1; //Для идентификации прихода данных списка регионов private int rid_CountriesRegions = -1; //Для идентификации прихода данных списка регионов
private int rid__languages = -1; private int rid__languages = -1;
private int rid__translations = -1; private int rid__translations = -1;
private int rid_LocustsTypes = -1; //Виды саранчи //private int rid_LocustsTypes = -1; //Виды саранчи
private int rid_list_density = -1; private int rid_list_density = -1;
private int rid_list_directions = -1; //Стороны света (направления) private int rid_list_directions = -1; //Стороны света (направления)
private int rid_list_phase = -1; private int rid_list_phase = -1;
@ -136,7 +134,7 @@ public class MySynchronizationOld
private int rid_list_diluted = -1; private int rid_list_diluted = -1;
private int rid_terminals = -1; //На кого зарегистрирован данныей планшет private int rid_terminals = -1; //На кого зарегистрирован данныей планшет
private int rid_companies = -1; private int rid_companies = -1;
*/
MySynchronizationOld(Context context) MySynchronizationOld(Context context)
{ {
_context = context; _context = context;
@ -159,6 +157,17 @@ public class MySynchronizationOld
MySynchronizationOld.URL = URL; MySynchronizationOld.URL = URL;
} }
public void renameImage(String name){
String path;
File pFile;
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + name;
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы заново не отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + name));
}
}
/*public static HttpClient getTestHttpClient() { /*public static HttpClient getTestHttpClient() {
try { try {
SSLContextBuilder builder = new SSLContextBuilder(); SSLContextBuilder builder = new SSLContextBuilder();
@ -206,15 +215,15 @@ public class MySynchronizationOld
String fname; String fname;
fname=cursor.getString(cursor.getColumnIndex("image_name1")); fname=cursor.getString(cursor.getColumnIndex("image_name1"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic1",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic1","xml",MySynchronizationOld.URL+"/get/?fn=6", null,null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name2")); fname = cursor.getString(cursor.getColumnIndex("image_name2"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic2",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic2","xml",MySynchronizationOld.URL+"/get/?fn=6", null,null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name3")); fname = cursor.getString(cursor.getColumnIndex("image_name3"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic2",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic2","xml",MySynchronizationOld.URL+"/get/?fn=6", null,null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
xml+="<metadata fn=\"4\">"; xml+="<metadata fn=\"4\">";
@ -245,7 +254,7 @@ public class MySynchronizationOld
cursor2.close(); cursor2.close();
xml+="</metadata>"; xml+="</metadata>";
rid_sendFrmLocust = myThread.addRequest("sendFrmLocust",MySynchronizationOld.URL+"/get/", xml, null,null); myThread.addRequest("sendFrmLocust","xml",MySynchronizationOld.URL+"/get/", xml, null,null,null);
}while (cursor.moveToNext()); }while (cursor.moveToNext());
} }
@ -281,15 +290,15 @@ public class MySynchronizationOld
String fname; String fname;
fname=cursor.getString(cursor.getColumnIndex("image_name1")); fname=cursor.getString(cursor.getColumnIndex("image_name1"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic1",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic1","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name2")); fname = cursor.getString(cursor.getColumnIndex("image_name2"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic2",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic2","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name3")); fname = cursor.getString(cursor.getColumnIndex("image_name3"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic3",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic3","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
@ -320,7 +329,7 @@ public class MySynchronizationOld
cursor2.close(); cursor2.close();
xml+="</metadata>"; xml+="</metadata>";
rid_sendFrmLocust = myThread.addRequest("sendFrmLocust",MySynchronizationOld.URL+"/get/", xml, null,null); myThread.addRequest("sendFrmLocust","xml",MySynchronizationOld.URL+"/get/", xml, null,null,null);
//Отправляю данные координат отдельно (без подтверждения доставки, потом нужно добавить поле send boolean и отправлять отдельно от frmlocustdel) //Отправляю данные координат отдельно (без подтверждения доставки, потом нужно добавить поле 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) }); /* 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) });
@ -354,7 +363,7 @@ public class MySynchronizationOld
} }
cursor3.close(); cursor3.close();
//Отправляю пакет данных на сервер для вставки либо обновления //Отправляю пакет данных на сервер для вставки либо обновления
myThread.addRequest(tbl.name,MySynchronizationOld.URL+"/asdc/tctable/", null, null, outStream.toByteArray()); myThread.addRequest(tbl.name,"",MySynchronizationOld.URL+"/asdc/tctable/", null,null, null, outStream.toByteArray());
}while (cursor.moveToNext()); }while (cursor.moveToNext());
} }
@ -390,19 +399,19 @@ public class MySynchronizationOld
String fname; String fname;
fname=cursor.getString(cursor.getColumnIndex("image_name1")); fname=cursor.getString(cursor.getColumnIndex("image_name1"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic1",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic1","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name2")); fname = cursor.getString(cursor.getColumnIndex("image_name2"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic2",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic2","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name3")); fname = cursor.getString(cursor.getColumnIndex("image_name3"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic3",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic3","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name4")); fname = cursor.getString(cursor.getColumnIndex("image_name4"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic4",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic4","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
fname = cursor.getString(cursor.getColumnIndex("image_name5")); fname = cursor.getString(cursor.getColumnIndex("image_name5"));
if(fname!=null && !fname.equals("")) if(fname!=null && !fname.equals(""))
myThread.addRequest("pic5",MySynchronizationOld.URL+"/get/?fn=6", null, Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null); myThread.addRequest("pic5","xml",MySynchronizationOld.URL+"/get/?fn=6", null, null,Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + fname,null);
for(int i=0;i<cursor.getColumnCount();i++) for(int i=0;i<cursor.getColumnCount();i++)
@ -415,7 +424,7 @@ public class MySynchronizationOld
throw new RuntimeException(e); throw new RuntimeException(e);
} }
} }
rid_sendFrmLocustHealth = myThread.addRequest("sendFrmLocustHealth",MySynchronizationOld.URL+"/asdc/FrmLocustHealth/", jsonObject.toString(), null,null); myThread.addRequest("sendFrmLocustHealth","json",MySynchronizationOld.URL+"/asdc/frmlocusthealth/", null, jsonObject.toString(), null,null);
}while (cursor.moveToNext()); }while (cursor.moveToNext());
} }
@ -449,9 +458,9 @@ public class MySynchronizationOld
} }
dboh.close(); dboh.close();
if(days!=null && !days.isEmpty() && country_id!=null && !country_id.isEmpty()){ if(days!=null && !days.isEmpty() && country_id!=null && !country_id.isEmpty()){
return myThread.addRequest(tableName,MySynchronizationOld.URL+"/get/?fn=1&r=0&n="+tableName+"&s=" + seq + "&l=1000&days="+days+"&country_id="+country_id+"&android_id="+android_id,"", null,null); return myThread.addRequest(tableName,"tbl",MySynchronizationOld.URL+"/get/?fn=1&r=0&n="+tableName+"&s=" + seq + "&l=1000&days="+days+"&country_id="+country_id+"&android_id="+android_id,"", null,null,null);
}else{ }else{
return myThread.addRequest(tableName,MySynchronizationOld.URL+"/get/?fn=1&r=0&n="+tableName+"&s=" + seq + "&l=1000","", null,null); return myThread.addRequest(tableName,"tbl",MySynchronizationOld.URL+"/get/?fn=1&r=0&n="+tableName+"&s=" + seq + "&l=1000","", null,null,null);
} }
} }
@ -531,44 +540,41 @@ public class MySynchronizationOld
//Запрос в очередь на получение списка стран, направлений, итд. //Запрос в очередь на получение списка стран, направлений, итд.
rid_LocustsTypes = makeRequest("locuststypes",null,null); makeRequest("locuststypes",null,null);
rid_sprayers = makeRequest("sprayers",null,null); makeRequest("sprayers",null,null);
rid_sprayers_types = makeRequest("sprayers_types",null,null); makeRequest("sprayers_types",null,null);
rid_Fledgling = makeRequest("fledgling",null,null); makeRequest("fledgling",null,null);
rid_list_density = makeRequest("list_density",null,null); makeRequest("list_density",null,null);
rid_list_phase = makeRequest("list_phase",null,null); makeRequest("list_phase",null,null);
rid_list_directions = makeRequest("list_directions",null,null); //Стороны света (направления) makeRequest("list_directions",null,null); //Стороны света (направления)
rid_list_damage = makeRequest("list_damage",null,null); //Справочник степень повреждения растительного покрова makeRequest("list_damage",null,null); //Справочник степень повреждения растительного покрова
rid_list_mortality = makeRequest("list_mortality",null,null); //Справочник степень повреждения растительного покрова makeRequest("list_mortality",null,null); //Справочник степень повреждения растительного покрова
rid_list_greenery = makeRequest("list_greenery",null,null); makeRequest("list_greenery",null,null);
rid_list_biotope = makeRequest("list_biotope",null,null); makeRequest("list_biotope",null,null);
rid_list_cover = makeRequest("list_cover",null,null); makeRequest("list_cover",null,null);
rid_list_age = makeRequest("list_age",null,null); makeRequest("list_age",null,null);
rid_list_actions = makeRequest("list_actions",null,null); makeRequest("list_actions",null,null);
rid_list_paintings = makeRequest("list_paintings",null,null); makeRequest("list_paintings",null,null);
rid_list_behaviors = makeRequest("list_behaviors",null,null); makeRequest("list_behaviors",null,null);
rid_list_breeding = makeRequest("list_breeding",null,null); makeRequest("list_breeding",null,null);
rid_list_capacities = makeRequest("list_capacities",null,null); makeRequest("list_capacities",null,null);
rid_list_markings = makeRequest("list_markings",null,null); makeRequest("list_markings",null,null);
rid_list_containers = makeRequest("list_containers",null,null); makeRequest("list_containers",null,null);
rid_list_containers_states = makeRequest("list_containers_states",null,null); makeRequest("list_containers_states",null,null);
rid_list_vegetation = makeRequest("list_vegetation",null,null); makeRequest("list_vegetation",null,null);
rid_list_formulation = makeRequest("list_formulation",null,null); makeRequest("list_formulation",null,null);
rid_list_height = makeRequest("list_height",null,null); makeRequest("list_height",null,null);
rid_list_enemies = makeRequest("list_enemies",null,null); makeRequest("list_enemies",null,null);
rid_list_purpose = makeRequest("list_purpose",null,null); makeRequest("list_purpose",null,null);
rid_list_impact = makeRequest("list_impact",null,null); makeRequest("list_impact",null,null);
rid_list_diluted = makeRequest("list_diluted",null,null); makeRequest("list_diluted",null,null);
rid_terminals = makeRequest("terminals",null,null); makeRequest("terminals",null,null);
rid_companies = makeRequest("companies",null,null); makeRequest("companies",null,null);
makeRequest("countries",null,null); //Если есть хоть 1 запись то считается что справочники хоть 1 раз загрузились
rid_countries = makeRequest("countries",null,null); //Если есть хоть 1 запись то считается что справочники хоть 1 раз загрузились makeRequest("countriesregions",null,null);
rid_CountriesRegions = makeRequest("countriesregions",null,null); makeRequest("_languages",null,null);
makeRequest("_translations",null,null);
rid__languages = makeRequest("_languages",null,null); makeRequest("borns",null,null); //Справочник отрождение "Начало", "Массовое".
rid__translations = makeRequest("_translations",null,null);
rid_Borns = makeRequest("borns",null,null); //Справочник отрождение "Начало", "Массовое".
//Загружаю формы саранчовых обработок за последние X дней для страны Y //Загружаю формы саранчовых обработок за последние X дней для страны Y
dboh = new DbOpenHelper(_context); dboh = new DbOpenHelper(_context);
@ -579,9 +585,8 @@ public class MySynchronizationOld
if(cursor.moveToFirst()) if(cursor.moveToFirst())
{ {
String country_id = cursor.getString(0); String country_id = cursor.getString(0);
rid_frmlocustdel = makeRequest("frmlocustdel",String.valueOf(MySynchronizationOld.SyncDays),country_id); makeRequest("frmlocustdel",String.valueOf(MySynchronizationOld.SyncDays),country_id);
//Загружаю координаты для формы frmlocustdel makeRequest("frmlocustdel_locations",String.valueOf(MySynchronizationOld.SyncDays),country_id);
rid_frmlocustdel_locations = makeRequest("frmlocustdel_locations",String.valueOf(MySynchronizationOld.SyncDays),country_id);
} }
cursor.close(); cursor.close();
}catch(Exception e){ }catch(Exception e){
@ -595,7 +600,14 @@ public class MySynchronizationOld
//Пришел ответ от HTTP сервера //Пришел ответ от HTTP сервера
//Если резутьтат true то сохранено (данные корректны) //Если резутьтат true то сохранено (данные корректны)
//public boolean incomingData(int rid, byte[] data) //public boolean incomingData(int rid, byte[] data)
public boolean incomingData(int rid, String filePath)
/**
* Функция обрабатывает скаченные данные
* @param type Тип данных
* @param filePath файл с данными
* @return
*/
public boolean incomingData(String type, String filePath)
{ {
/*if (BuildConfig.DEBUG && ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) )) { /*if (BuildConfig.DEBUG && ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) )) {
try { try {
@ -615,42 +627,14 @@ public class MySynchronizationOld
DbOpenHelper dbOpenHelper = new DbOpenHelper(_context); DbOpenHelper dbOpenHelper = new DbOpenHelper(_context);
//Пока не однообразно то по идентификаторам определяем что в двоичном формате if(type.equals("tbl"))
if((rid == rid_list_mortality && rid_list_mortality!=-1) || (rid == rid_list_damage && rid_list_damage!=-1) ||
(rid == rid_list_directions && rid_list_directions!=-1) || (rid == rid_Fledgling && rid_Fledgling!=-1) ||
(rid == rid_sprayers && rid_sprayers!=-1) || (rid == rid_sprayers_types && rid_sprayers_types!=-1) ||
(rid == rid_list_phase && rid_list_phase!=-1) || (rid == rid_list_density && rid_list_density!=-1) ||
(rid == rid_Borns && rid_Borns!=-1) || (rid == rid_LocustsTypes && rid_LocustsTypes!=-1) ||
(rid == rid_countries && rid_countries!=-1) || (rid==rid_CountriesRegions && rid_CountriesRegions!=-1) ||
(rid == rid__languages && rid__languages != -1) || (rid == rid__translations && rid__translations != -1) ||
(rid == rid_frmlocust && rid_frmlocust!=-1) || (rid == rid_frmlocustdel && rid_frmlocustdel!=-1) || (rid == rid_frmlocustdel_locations && rid_frmlocustdel_locations!=-1) ||
(rid == rid_list_greenery && rid_list_greenery!=-1) || (rid == rid_list_biotope && rid_list_biotope!=-1) ||
(rid == rid_list_cover && rid_list_cover!=-1) || (rid == rid_list_age && rid_list_age!=-1) ||
(rid == rid_list_actions && rid_list_actions!=-1) || (rid == rid_list_paintings && rid_list_paintings!=-1) ||
(rid == rid_list_behaviors && rid_list_behaviors!=-1) ||
(rid == rid_list_breeding && rid_list_breeding!=-1) ||
(rid == rid_list_capacities && rid_list_capacities!=-1) ||
(rid == rid_list_markings && rid_list_markings!=-1) ||
(rid == rid_list_containers && rid_list_containers!=-1) ||
(rid == rid_list_containers_states && rid_list_containers_states!=-1) ||
(rid == rid_list_vegetation && rid_list_vegetation!=-1) ||
(rid == rid_list_formulation && rid_list_formulation!=-1) ||
(rid == rid_list_height && rid_list_height!=-1) ||
(rid == rid_list_enemies && rid_list_enemies!=-1) ||
(rid == rid_list_purpose && rid_list_purpose!=-1) ||
(rid == rid_list_impact && rid_list_impact!=-1) ||
(rid == rid_list_diluted && rid_list_diluted!=-1) ||
(rid == rid_terminals && rid_terminals!=-1) ||
(rid == rid_companies && rid_companies!=-1)
)
{ {
TCTable tbl=new TCTable("",0); TCTable tbl=new TCTable("",0);
if(tbl.OpenTableH(is)) if(tbl.OpenTableH(is))
{ {
result = dbOpenHelper.updateTable(tbl); result = dbOpenHelper.updateTable(tbl);
} }
}else if(type.equals("xml")) //Данные в виде XML файла
}else //Данные в виде XML файла
{ {
//Парсим файл //Парсим файл
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
@ -692,7 +676,7 @@ public class MySynchronizationOld
wdb = dboh.getWritableDatabase(); wdb = dboh.getWritableDatabase();
ContentValues cv = new ContentValues(); ContentValues cv = new ContentValues();
cv.put("send", 1); //Отмечаем как отправленное cv.put("send", 1); //Mark as sent
//cv.put("changed", 0); //Отмечаем как не измененное //cv.put("changed", 0); //Отмечаем как не измененное
wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса)
@ -704,30 +688,12 @@ public class MySynchronizationOld
} finally { } finally {
wdb.endTransaction(); wdb.endTransaction();
} }
//Rename photo files to avoid sending them again.
//Ищем имя файла по id и удаляем фотографии
cursor = rdb.rawQuery("select image_name1, image_name2, image_name3 from frmlocust where uid=?;", new String[]{String.valueOf(uid)}); cursor = rdb.rawQuery("select image_name1, image_name2, image_name3 from frmlocust where uid=?;", new String[]{String.valueOf(uid)});
if (cursor.moveToFirst()) { if (cursor.moveToFirst()) {
String path; renameImage(cursor.getString(cursor.getColumnIndex("image_name1")));
File pFile; renameImage(cursor.getString(cursor.getColumnIndex("image_name2")));
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name1")); renameImage(cursor.getString(cursor.getColumnIndex("image_name3")));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы зановоне отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name1"))));
}
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name2"));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы зановоне отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name2"))));
}
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name3"));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы зановоне отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name3"))));
}
} }
}catch(Exception e){ }catch(Exception e){
e.printStackTrace(); e.printStackTrace();
@ -751,7 +717,7 @@ public class MySynchronizationOld
wdb = dboh.getWritableDatabase(); wdb = dboh.getWritableDatabase();
ContentValues cv = new ContentValues(); ContentValues cv = new ContentValues();
cv.put("send", 1); //Отмечаем как отправленное cv.put("send", 1); //Mark as sent
//cv.put("changed", 0); //Отмечаем как не измененное //cv.put("changed", 0); //Отмечаем как не измененное
wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса) wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса)
@ -764,29 +730,12 @@ public class MySynchronizationOld
wdb.endTransaction(); wdb.endTransaction();
} }
//Ищем имя файла по id и удаляем фотографии //Rename photo files to avoid sending them again.
cursor = rdb.rawQuery("select image_name1, image_name2, image_name3 from frmlocustdel where uid=?;", new String[]{String.valueOf(uid)}); cursor = rdb.rawQuery("select image_name1, image_name2, image_name3 from frmlocustdel where uid=?;", new String[]{String.valueOf(uid)});
if (cursor.moveToFirst()) { if (cursor.moveToFirst()) {
String path; renameImage(cursor.getString(cursor.getColumnIndex("image_name1")));
File pFile; renameImage(cursor.getString(cursor.getColumnIndex("image_name2")));
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name1")); renameImage(cursor.getString(cursor.getColumnIndex("image_name3")));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы заново не отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name1"))));
}
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name2"));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы заново не отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name2"))));
}
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/" + cursor.getString(cursor.getColumnIndex("image_name3"));
pFile = new File(path);
if (pFile.exists()) //Переименовываю файл чтобы заново не отправить при редактировании
{
pFile.renameTo(new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Locust/_" + cursor.getString(cursor.getColumnIndex("image_name3"))));
}
} }
}catch(Exception e){ }catch(Exception e){
e.printStackTrace(); e.printStackTrace();
@ -795,18 +744,86 @@ public class MySynchronizationOld
if(wdb!=null){ wdb.close(); } if(wdb!=null){ wdb.close(); }
} }
} else if (fn.equals("6")) //Фото отправлено } else if (fn.equals("6")) //Photo sent to server
{ {
Log.i("CCALM", "Photo sent to server!");
} }
} catch (Exception e) { } catch (Exception e) {
//throw new RuntimeException(e); Log.e("CCALM", "Error", e);
//MyAlert("ASDC: Synchronization error", e.toString());
//Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG).show();
} }
//if(_showAlert) dialog.dismiss(); }else if(type.equals("json"))
} {
JSONObject jsonObject=null;
String jsonString = Tools.readInputStream(is);
if(jsonString!=null){
try {
jsonObject = new JSONObject(jsonString);
} catch (Exception e) {
e.printStackTrace();
}
}
if(jsonObject!=null){
if(jsonObject.has("error_code"))
{
if(jsonObject.getInt("error_code")!=0)
{
Log.e("CCALM", "Error: "+jsonObject.getString("error_message"));
}else{
String fn=jsonObject.getString("fn");
if(fn.equals("frmlocusthealth")){
String uid = jsonObject.getString("uid");
if (uid.isBlank() || uid == "null") uid = null;
Cursor cursor;
DbOpenHelper dboh = new DbOpenHelper(_context);
SQLiteDatabase rdb = null;
SQLiteDatabase wdb = null;
try {
rdb = dboh.getReadableDatabase();
wdb = dboh.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("send", 1); //Mark as sent
//cv.put("changed", 0); //Отмечаем как не измененное
wdb.beginTransaction(); //Вроде как защита от многопоточности (для сервиса)
try {
wdb.update("frmlocusthealth", cv, "uid = ?", new String[]{String.valueOf(uid)});
wdb.setTransactionSuccessful();
}catch(Exception e){
e.printStackTrace();
} finally {
wdb.endTransaction();
}
//Rename photo files to avoid sending them again.
cursor = rdb.rawQuery("select image_name1, image_name2, image_name3, image_name4, image_name5 from frmlocusthealth where uid=?;", new String[]{String.valueOf(uid)});
if (cursor.moveToFirst()) {
renameImage(cursor.getString(cursor.getColumnIndex("image_name1")));
renameImage(cursor.getString(cursor.getColumnIndex("image_name2")));
renameImage(cursor.getString(cursor.getColumnIndex("image_name3")));
renameImage(cursor.getString(cursor.getColumnIndex("image_name4")));
renameImage(cursor.getString(cursor.getColumnIndex("image_name5")));
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(rdb!=null){ rdb.close(); }
if(wdb!=null){ wdb.close(); }
}
}
}
}
}
Log.e("CCALM", "Unknown JSON data type");
}else{
Log.e("CCALM", "Unknown data type");
}
is.close(); is.close();
file.delete(); file.delete();
@ -827,8 +844,12 @@ class MyThread extends Thread
class Tsk //Задание отправки данных class Tsk //Задание отправки данных
{ {
String name = ""; //Название запроса для дебага String name = ""; //Название запроса для дебага
String type = ""; //Тип ожидаемого результата, такие сейчас: "xml", "json", "tbl"
String url = ""; //URL куда отправлять данные String url = ""; //URL куда отправлять данные
String str = ""; //Отправляемая строка //String str = ""; //Отправляемая строка
String xml = ""; //Отправляемая XML строка
String json = ""; //Отправляемая JSON строка
String file = ""; //Отправляемый файл String file = ""; //Отправляемый файл
byte[] data = null; //Отправляемые данные byte[] data = null; //Отправляемые данные
Boolean s = false; //Integer s = 0; // false - не отправлялось true - в процессе отправки (если ошибка то ставиться статус не отправлено иначе удаляется из списка заданий) Boolean s = false; //Integer s = 0; // false - не отправлялось true - в процессе отправки (если ошибка то ставиться статус не отправлено иначе удаляется из списка заданий)
@ -849,9 +870,8 @@ class MyThread extends Thread
@Override @Override
public void handleMessage(Message msg) //Слушатель ответа после отправки данных на сервер public void handleMessage(Message msg) //Слушатель ответа после отправки данных на сервер
{ {
int rid = msg.getData().getInt("id"); String type = msg.getData().getString("type");
//Boolean b = mListener.incomingData(rid, msg.getData().getByteArray("data")); //Слушатель должен вернуть true иниче запрос останется в очереди Boolean b = mListener.incomingData(type, msg.getData().getString("file")); //Слушатель должен вернуть true иниче запрос останется в очереди
Boolean b = mListener.incomingData(rid, msg.getData().getString("file")); //Слушатель должен вернуть true иниче запрос останется в очереди
try try
{ {
@ -896,7 +916,7 @@ class MyThread extends Thread
// Добавление в задание на отправку до того как не получен ответ от предедущего запроса следующий не отсылается те. последовательно это делает (обработка результатов не в потоке загрузки а в основном потоке) // Добавление в задание на отправку до того как не получен ответ от предедущего запроса следующий не отсылается те. последовательно это делает (обработка результатов не в потоке загрузки а в основном потоке)
//return id запроса //return id запроса
public int addRequest(String name,String url, String str, String file,byte[] data) public int addRequest(String name, String type,String url, String xml, String json, String file,byte[] data)
{ {
mId++; //Инкрементируем идентификатор запроса mId++; //Инкрементируем идентификатор запроса
try try
@ -904,8 +924,10 @@ class MyThread extends Thread
mSemaphore.acquire(); mSemaphore.acquire();
Tsk t = new Tsk(); Tsk t = new Tsk();
t.name = name; t.name = name;
t.type = type; //waiting result data type
t.url = url; t.url = url;
t.str = str; t.xml = xml;
t.json = json;
t.file = file; t.file = file;
t.data = data; t.data = data;
t.s = false; t.s = false;
@ -965,9 +987,9 @@ class MyThread extends Thread
//Выполняем задание на отправку/приём данных //Выполняем задание на отправку/приём данных
if(tsk != null) if(tsk != null)
{ {
Log.i("igor", "download task = "+tsk.name); Log.i("CCALM", "download task = "+tsk.name);
//if(tsk.name.equals("frmlocustdel_locations")){ //if(tsk.name.equals("frmlocustdel_locations")){
// Log.i("igor", "download task = "+tsk.name); // Log.i("CCALM", "download task = "+tsk.name);
//} //}
boolean bError=false; boolean bError=false;
tsk.s = true; //Признак отправляемости запроса на сервер tsk.s = true; //Признак отправляемости запроса на сервер
@ -975,7 +997,7 @@ class MyThread extends Thread
try { try {
sleep(tsk.wait); //Если в задании задано сколько подождать перед запуском sleep(tsk.wait); //Если в задании задано сколько подождать перед запуском
} catch (InterruptedException ex) { } catch (InterruptedException ex) {
Log.i("igor", "Sleep error",ex); Log.i("CCALM", "Sleep error",ex);
} }
try try
@ -1045,14 +1067,25 @@ class MyThread extends Thread
dos.writeBytes("--" + boundary + "--" + crlf); dos.writeBytes("--" + boundary + "--" + crlf);
dos.flush(); dos.flush();
dos.close(); dos.close();
}else{ }else if(tsk.xml!=null) {
conn.setRequestProperty("Accept-Charset", "UTF-8"); conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestProperty("Content-Type", "application/xml; charset=utf-8"); conn.setRequestProperty("Content-Type", "application/xml; charset=utf-8");
conn.setRequestProperty("Accept", "application/xml"); conn.setRequestProperty("Accept", "application/xml");
OutputStream os = conn.getOutputStream(); OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8")); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(tsk.str); writer.write(tsk.xml);
writer.flush();
writer.close();
os.close();
}else if(tsk.json!=null) {
conn.setRequestProperty("Accept-Charset", "UTF-8");
conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
conn.setRequestProperty("Accept", "application/json");
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(tsk.json);
writer.flush(); writer.flush();
writer.close(); writer.close();
os.close(); os.close();
@ -1079,13 +1112,13 @@ class MyThread extends Thread
Message msg = myHandle.obtainMessage(); Message msg = myHandle.obtainMessage();
Bundle b = new Bundle(); Bundle b = new Bundle();
b.putString("file", filePath); b.putString("file", filePath);
b.putInt("id", tsk.id); b.putString("type", tsk.type);
msg.setData(b); msg.setData(b);
myHandle.sendMessage(msg); myHandle.sendMessage(msg);
} }
} catch (Exception ex) { } catch (Exception ex) {
bError = true; bError = true;
Log.i("igor", "URL = "+tsk.url,ex); Log.i("CCALM", "URL = "+tsk.url,ex);
} }
/* /*
HttpClient httpClient = new DefaultHttpClient(); HttpClient httpClient = new DefaultHttpClient();
@ -1140,15 +1173,15 @@ class MyThread extends Thread
} catch (UnsupportedEncodingException ex) } catch (UnsupportedEncodingException ex)
{ {
bError = true; bError = true;
Log.i("igor", "Error 5 = " + ex.toString()); Log.i("CCALM", "Error 5 = " + ex.toString());
} catch (ClientProtocolException ex) } catch (ClientProtocolException ex)
{ {
bError = true; bError = true;
Log.i("igor", "Error 6 = " + ex.toString()); Log.i("CCALM", "Error 6 = " + ex.toString());
} catch (IOException ex) } catch (IOException ex)
{ {
bError = true; bError = true;
Log.i("igor", "Error 7 = " + ex.toString()); Log.i("CCALM", "Error 7 = " + ex.toString());
} }
*/ */

View File

@ -17,8 +17,10 @@ import android.widget.Spinner;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import java.security.NoSuchAlgorithmException;
import java.text.ParseException; import java.text.ParseException;
@ -45,6 +47,21 @@ import android.widget.AdapterView.OnItemSelectedListener;
*/ */
public class Tools public class Tools
{ {
// Чтение строки из InputStream
public static String readInputStream(InputStream is) {
try {
byte[] buffer = new byte[1024];
StringBuilder result = new StringBuilder();
int length;
while ((length = is.read(buffer)) != -1) {
result.append(new String(buffer, 0, length, StandardCharsets.UTF_8));
}
return result.toString();
} catch (IOException e) {
return null;
}
}
public static Date getDateFromStr(String str) { public static Date getDateFromStr(String str) {
if(str==null) if(str==null)
return null; return null;