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