Guest User

Untitled

a guest
Mar 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.80 KB | None | 0 0
  1. public class MainActivity extends Activity {
  2.  
  3. private Button start;
  4. private Intent districts;
  5. private Intent detail;
  6.  
  7. private static RequestQueue mQueue;
  8. private static ConnectivityManager connectivityManager;
  9. private static ProgressDialog progressDialog;
  10. private static ArrayAdapter<HashMap<String, Object>> adapter;
  11. private static ArrayAdapter<HashMap<String, Object>> sAdapter;
  12.  
  13. private ArrayList<HashMap<String, Object>> d_Task;
  14. private static final String it_address = "Address"; // Верхний текст
  15. private static final String it_id = "Position"; // ниже главного
  16. private static final String it_kz = "Kod";
  17.  
  18. private static Context context;
  19.  
  20. private static Handler handler;
  21.  
  22. public static ListView LISTVIEW;
  23. public static final Map<String, String> fields = new HashMap<String, String>(1);
  24.  
  25. private static final int delay_min = 30 * 1000 * 60;
  26.  
  27. private Integer verCode;
  28. private String verName;
  29.  
  30. @Override
  31. protected void onCreate(Bundle savedInstanceState) {
  32. super.onCreate(savedInstanceState);
  33. setContentView(R.layout.activity_main);
  34.  
  35. // находим список
  36. LISTVIEW = (ListView) findViewById(R.id.LIST_VIEW);
  37. LISTVIEW.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  38. String[] from = {};
  39. // создаем адаптер
  40. adapter = new ArrayAdapter<HashMap<String, Object>>(this, R.layout.main_item,
  41. R.id.main_textitem);
  42. // присваиваем адаптер списку
  43. LISTVIEW.setAdapter(adapter);
  44. start = (Button) findViewById(R.id.start);
  45. context = getApplicationContext();
  46. mQueue = Volley.newRequestQueue(context);
  47. detail = new Intent(context, DetailActivity.class);
  48. districts = new Intent(context, DistrictsActivity.class);
  49. connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  50.  
  51. try {
  52. verCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
  53. verName = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
  54. } catch (Exception e) {
  55. }
  56.  
  57. fields.put("ROOT", context.getString(R.string.DATA));
  58. fields.put("data_unp_err",
  59. context.getString(R.string.data_unpack_error));
  60. fields.put("ver_remind", context.getString(R.string.ver_remind_text));
  61.  
  62. DataStruct.getStruct().setPrefObj(getPreferences(MODE_PRIVATE));
  63. DataStruct.getStruct().getPrefObj()
  64. .setCurrVersionInfo(verName, verCode);
  65.  
  66. DataStruct.getStruct().setRequestQueue(mQueue);
  67. DataStruct.getStruct().setMAdapter(adapter);
  68. DataStruct.getStruct().setAdapter((new DBadapter(context, verCode)));
  69.  
  70. if (!DataStruct.getStruct().getPrefObj().checkVersionInfo()
  71. || !DataStruct.getStruct().getPrefObj().checkAccDataExists()) {
  72. Intent accountActivity = new Intent(context,
  73. CreateAccountActivity.class);
  74. startActivity(accountActivity);
  75. }
  76.  
  77. DataStruct.getStruct().getSavedRecords();
  78. startActionOnTimer();
  79.  
  80. start.setOnClickListener(new OnClickListener() {
  81. @Override
  82. public void onClick(View v) {
  83. if (checkNetWorkState()) {
  84. progressDialog = new ProgressDialog(v.getContext());
  85. progressDialog.setIndeterminate(true);
  86. progressDialog.setCancelable(false);
  87.  
  88. handler = new Handler() {
  89. @Override
  90. public void handleMessage(Message message) {
  91. switch (message.what) {
  92. case WaitResponce.statusNumKeys.RESPONSE_FAILED:
  93. stopMFDialog(String.valueOf(message.obj));
  94. DataStruct.getStruct().getRequestObject()
  95. .cancelQueue();
  96. break;
  97. case WaitResponce.statusNumKeys.RESPONSE_WAITING:
  98. progressDialog.setMessage("Подождите...");
  99. progressDialog.show();
  100. break;
  101. case WaitResponce.statusNumKeys.RESPONSE_OK:
  102. stopMFDialog(String.valueOf(message.obj));
  103. break;
  104. default:
  105. break;
  106. }
  107. }
  108. };
  109.  
  110. if (DataStruct.getStruct().getListener()
  111. .setHandler(handler)) {
  112. DataStruct.getStruct().getReqParams()
  113. .prepareParamForSelectReq();
  114. DataStruct.getStruct().getListener().getEvent()
  115. .onResponceStartWait();
  116. }
  117. }
  118. }
  119. });
  120.  
  121.  
  122. LISTVIEW.setOnItemClickListener(new OnItemClickListener() {
  123. @Override
  124. public void onItemClick(AdapterView<?> parent, View view,
  125. int position, long id) {
  126. HashMap<String, Object> itemHashMap = (HashMap<String, Object>) parent.getItemAtPosition(position);
  127. String titleItem = itemHashMap.get(it_id).toString();
  128. int a = Integer.parseInt(titleItem);
  129. detail.putExtra("arg", a);
  130. startActivity(detail);
  131. }
  132. });
  133. }
  134.  
  135.  
  136. @Override
  137. public void onBackPressed() {
  138. showQiutDialog();
  139. }
  140.  
  141. public void showQiutDialog() {
  142. AlertDialog.Builder quitDialog = new AlertDialog.Builder(this);
  143. quitDialog.setTitle("Выход: Вы уверены?");
  144.  
  145. quitDialog.setPositiveButton("Да",
  146. new DialogInterface.OnClickListener() {
  147. @Override
  148. public void onClick(DialogInterface dialog, int which) {
  149. System.exit(0);
  150. }
  151. });
  152.  
  153. quitDialog.setNegativeButton("Нет",
  154. new DialogInterface.OnClickListener() {
  155. @Override
  156. public void onClick(DialogInterface dialog, int which) {
  157. return;
  158. }
  159. });
  160. quitDialog.show();
  161. }
  162.  
  163. private void showMessageDialog() {
  164. String Doz = "";
  165. for (int i = 0; i < DataStruct.getStruct().getMainListSize(); i++) {
  166. String Kod1 = DataStruct.getStruct().getKodByid(i);
  167. String Sut1 = DataStruct.getStruct().getSutByid(i);
  168. for (int j = 0; j < OldDataStruct.getStruct().getMainListSize(); j++) {
  169. String Kod2 = OldDataStruct.getStruct().getKodByid(j);
  170. String Sut2 = OldDataStruct.getStruct().getSutByid(j);
  171. if (Kod1.equals(Kod2)) {
  172. if (Sut1.equals(Sut2)) {
  173. } else {
  174. Doz = Sut1.replaceFirst(Sut2, "");
  175. String Address = DataStruct.getStruct().getAddressByid(i);
  176. Address = Address.replace("город", "");
  177. Address = Address.replace("улица", "ул.");
  178. AlertDialog.Builder quitDialog = new AlertDialog.Builder(this);
  179. quitDialog.setTitle(Address);
  180. quitDialog.setMessage("Дополнение: " + Doz);
  181. quitDialog.setNegativeButton("ОК",
  182. new DialogInterface.OnClickListener() {
  183. @Override
  184. public void onClick(DialogInterface dialog, int which) {
  185. return;
  186. }
  187. });
  188. quitDialog.show();
  189. }
  190. }
  191. }
  192.  
  193.  
  194. }
  195. }
  196.  
  197. private void startActionOnTimer() {
  198. Intent l_intent = new Intent(this, UpdateOnTimer.class);
  199. PendingIntent l_pendingIntent = PendingIntent.getBroadcast(context, 0,
  200. l_intent, 0);
  201. AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
  202. alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
  203. System.currentTimeMillis(), delay_min, l_pendingIntent);
  204. }
  205.  
  206. public static void stopMFDialog(String message) {
  207. if (progressDialog != null) {
  208. progressDialog.dismiss();
  209. }
  210. ShowMessage.Show(message);
  211. }
  212.  
  213. public static void setViewAdapter(ArrayAdapter<HashMap<String, Object>> mAdapter) {
  214. adapter = mAdapter;
  215. LISTVIEW.setAdapter(adapter);
  216. }
  217. }
  218.  
  219. public class DataStruct extends Application {
  220.  
  221. /**
  222. * здесь собраны все функции для операции с массивом данных (заявок)
  223. */
  224.  
  225. private static DataStruct mStruct;
  226.  
  227. private RequestParams params;
  228. private Map<Integer, Map<String, String>> mainDataList;
  229. private DistrictDataAdapterStruct districtsList;
  230. private Integer currCount;
  231. private Integer currIndex;
  232. private Pref pref;
  233. private AddRequest request;
  234. private String districtName;
  235. private DBadapter dbAdapter;
  236. private ArrayAdapter<HashMap<String, Object>> mAdapter;
  237. private TasksFieldsNames fieldsNames;
  238. private WaitResponce waitResponce;
  239.  
  240. private void setMainDataList(Map<Integer, Map<String, String>> list) {
  241. mainDataList = list;
  242. }
  243.  
  244. private ArrayAdapter<HashMap<String, Object>> getMainAdapter() {
  245. return mAdapter;
  246. }
  247.  
  248. public void setMAdapter(ArrayAdapter<HashMap<String, Object>> _mAdapter) {
  249. mAdapter = _mAdapter;
  250. }
  251.  
  252. public int getMainListSize() {
  253. return mainDataList.size();
  254. }
  255.  
  256. public Map<Integer, Map<String, String>> getMainDataList() {
  257. return mainDataList;
  258. }
  259. public void setAdapter(DBadapter dbAdapter) {
  260. this.dbAdapter = dbAdapter;
  261. }
  262.  
  263. public void setCurrIndex(Integer i) {
  264. currIndex = i;
  265. }
  266.  
  267. public final DBadapter getAdapter() {
  268. return dbAdapter;
  269. }
  270.  
  271. public DistrictDataAdapterStruct getDistricstsList() {
  272. return districtsList;
  273. }
  274.  
  275. public WaitResponce getListener() {
  276. return waitResponce;
  277. }
  278.  
  279. @SuppressLint("UseSparseArrays")
  280. public void getSavedRecords() {
  281. Map<Integer, Map<String, String>> LIST = new HashMap<Integer, Map<String, String>>();
  282. LIST = getAdapter().getSelectedRows();
  283. if (LIST != null) {
  284. setRecFromBase(LIST);
  285. }
  286. }
  287.  
  288. public Map<String, String> getRecById(Integer i) {
  289. return mainDataList.get(i);
  290. }
  291.  
  292. public String getAddressByid(Integer i) {
  293. return mainDataList.get(i).get("Адрес").trim();
  294. }
  295.  
  296. public String getSutByid(Integer i) {
  297. return mainDataList.get(i).get("Суть заявки").trim();
  298. }
  299.  
  300. public String getKodByid(Integer i) {
  301. return mainDataList.get(i).get("Код заявки").trim();
  302. }
  303.  
  304. public String getHarakterByid(Integer i) {
  305. return mainDataList.get(i).get("Характер заявки").trim();
  306. }
  307.  
  308. public void setRequestQueue(RequestQueue queue) {
  309. request = new AddRequest(queue);
  310. }
  311.  
  312. public AddRequest getRequestObject() {
  313. return request;
  314. }
  315.  
  316. public void setPrefObj(SharedPreferences preferences) {
  317. pref = new Pref(preferences);
  318. }
  319.  
  320. public Pref getPrefObj() {
  321. return pref;
  322. }
  323.  
  324. public RequestParams getReqParams() {
  325. return params;
  326. }
  327.  
  328. public ArrayList<String> getAllRec() {
  329. ArrayList<String> values = new ArrayList<String>(0);
  330. Iterator<Map<String, String>> iterator = mainDataList.values().iterator();
  331. while (iterator.hasNext()) {
  332. values.addAll(iterator.next().values());
  333. }
  334. return values;
  335. }
  336.  
  337.  
  338. public void createDistrictsList() {
  339. districtsList = new DistrictDataAdapterStruct();
  340. }
  341.  
  342. public void setDistricts(ArrayList<Map<String, String>> items) {
  343. final String idRaion = "kodRaiona";
  344. final String valRaion = "Raion";
  345. final String KolvoZayavok = "KolvoZayavok";
  346. createDistrictsList();
  347. Iterator<Map<String, String>> iterator = items.iterator();
  348. while (iterator.hasNext()) {
  349. Map<String, String> item = iterator.next();
  350. getDistricstsList().addItem(String.valueOf(item.get(valRaion)),
  351. Integer.parseInt(item.get(KolvoZayavok)),
  352. Integer.parseInt(item.get(idRaion)));
  353. }
  354. }
  355.  
  356. public void setRecFromBase(Map<Integer, Map<String, String>> LIST) {
  357. if (LIST.size() > 0) {
  358. setMainDataList(LIST);
  359. currCount = mainDataList.size();
  360. addItemsToMainAdapter();
  361. }
  362. }
  363. //добавление значений в ListView
  364. private void addItemsToMainAdapter() {
  365. ArrayList<HashMap<String, Object>> items = new ArrayList<HashMap<String, Object>>(currCount);
  366. for (int i = 0; i < currCount; i++) {
  367. HashMap<String, Object> hm = new HashMap<String, Object>();
  368. hm.put("Address",getAddressByid(i));
  369. hm.put("Kod",getKodByid(i));
  370. hm.put("Position",""+i);
  371. items.add(hm);
  372. }
  373. mAdapter.addAll(items);
  374. mAdapter.notifyDataSetChanged();
  375. MainActivity.setViewAdapter(getMainAdapter());
  376. }
  377. //обновление значений в ListView
  378. private void addItemToMainAdapter() {
  379. if (getHarakterByid(currCount).equals("Продажа мониторов")) {
  380. /*ArrayList<String> it = new ArrayList<String>();
  381. it.add(getAddressByid(currCount));
  382. it.add(currCount);*/
  383. HashMap<String, Object> hm = new HashMap<String, Object>();
  384. hm.put("Address",getAddressByid(currCount));
  385. hm.put("Kod",getKodByid(currCount));
  386. hm.put("Position",""+currCount);
  387. mAdapter.add(hm);
  388. }
  389. mAdapter.notifyDataSetChanged();
  390. MainActivity.setViewAdapter(getMainAdapter());
  391. }
  392.  
  393. public void setMainNode() {
  394. currCount = mainDataList.size();
  395. mainDataList.put(currCount, new LinkedHashMap<String, String>());
  396. }
  397.  
  398. private void setChildNode(String key, String value) {
  399. mainDataList.get(currCount).put(key, value.trim());
  400. }
  401.  
  402. public void setREC(JSONObject unParseRec) {
  403. setMainNode();
  404. Iterator<Names> iterator = getFieldsNamesList().getNamesList();
  405. while (iterator.hasNext()) {
  406. Names item = iterator.next();
  407. String val = unParseRec.optString(item.getUSName());
  408.  
  409. setChildNode(item.getRUSName(),
  410. (val.isEmpty()) ? getFieldsNamesList().emptyValue : val);
  411. }
  412. addItemToMainAdapter();
  413.  
  414. }
  415.  
  416. public TasksFieldsNames getFieldsNamesList() {
  417. return fieldsNames;
  418. }
  419.  
  420. private DataStruct() {
  421. currCount = 0;
  422. districtName = null;
  423. params = new RequestParams();
  424. fieldsNames = new TasksFieldsNames();
  425. waitResponce = new WaitResponce();
  426. mainDataList = new LinkedHashMap<Integer, Map<String, String>>(currCount);
  427. }
  428.  
  429. public static synchronized DataStruct getStruct() {
  430. if (mStruct == null) {
  431. mStruct = new DataStruct();
  432. }
  433. return mStruct;
  434. }
  435.  
  436. private void replaceItems() {
  437. if (currCount > 0) {
  438. Map<Integer, Map<String, String>> map = new LinkedHashMap<Integer, Map<String, String>>(0);
  439. Integer index = 0;
  440. Iterator<Map<String, String>> items = mainDataList.values().iterator();
  441. do {
  442. Map<String, String> item = items.next();
  443. map.put(index, item);
  444. index++;
  445. } while (items.hasNext());
  446. mainDataList.clear();
  447. setMainDataList(map);
  448. }
  449. }
  450.  
  451. public void deleteRec() {
  452. getMainAdapter().remove(getMainAdapter().getItem(currIndex));
  453. getMainAdapter().notifyDataSetChanged();
  454. String task_code = getFieldsNamesList().getRUNameByTag(TasksFieldsNames.fields_name.task_code);
  455. getAdapter().deleteRows(getRecById(currIndex).get(task_code));
  456. mainDataList.remove(currIndex);
  457. currCount = mainDataList.size();
  458. replaceItems();
  459. }
  460.  
  461. public void deleteAllRec() {
  462. getMainAdapter().clear();
  463. getMainAdapter().notifyDataSetChanged();
  464. getAdapter().reCreateBase();
  465. mainDataList.clear();
  466. currCount = mainDataList.size();
  467. }
  468.  
  469. public String getDistrictName() {
  470. return districtName;
  471. }
  472.  
  473. public void setDistrictName(String districtName) {
  474. this.districtName = districtName;
  475. }
  476.  
  477. }
Add Comment
Please, Sign In to add comment