/
SoRusV
/
src_xendil
Обзор
Документация
Войти
/
SoRusV
/
src_xendil
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Android/ActivityLEsp.java
306 строк
14 KB
ruslan
Initial commit
29 окт 2024, 11:18
29 окт 2024, 11:18
5c4dcf5
Код
Авторство
О чём код?
package com.example.scord.scord; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.ServiceConnection; import android.os.Bundle; import android.os.IBinder; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.ExpandableListView; import android.widget.SimpleExpandableListAdapter; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Map; public class ActivityLEsp extends AppCompatActivity { MServiceUdp SrvUdp; ServiceConnection SrvConn; // boolean bBound = false; Intent IntentSrv; public final static String BrScordName = "ru.scord.develop"; BroadcastReceiver BrRcrSrord; // Button btnRefresh; // Timer timer; // TimerTask tTask; //private static View systemUIView; public void onClickRefresh(View v) { startService(new Intent(this, MServiceUdp.class).putExtra("RefreshLMsgIP", true)); } @Override protected void onCreate(Bundle savedInstanceState) { Log.d("TAGW", "onCreate Activite ActivityLEsp @"+Here.At()); super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_esp); // hide the native android navigation and status bar // systemUIView = getWindow().getDecorView(); // hideSystemUI(); // // if (android.os.Build.VERSION.SDK_INT >= 19) { // getWindow().getDecorView().setOnSystemUiVisibilityChangeListener( // new View.OnSystemUiVisibilityChangeListener() { // @Override // public void onSystemUiVisibilityChange(int visibility) { // if (visibility == 0) { // hideSystemUI(); // } // } // }); // } // ... here comes my whole code... // Intent intent0 = new Intent(null, ActivityBrowser.class); elvMain= (ExpandableListView) findViewById(R.id.elvMain); elvMain.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Log.v("TAGW", "itemClick: groupPosition = " + groupPosition + ", childPosition = " + childPosition + ", id = "+ id + " @"+Here.At()); String IP=childData.get(groupPosition).get(childPosition).get("IP"); String AquaName=childData.get(groupPosition).get(childPosition).get("AquaName"); String Name=childData.get(groupPosition).get(childPosition).get("Name"); String Html="MPWMChanel.htm"; if(childData.get(groupPosition).get(childPosition).get("TabLight").compareTo("0")!=0) Html="MLight.htm"; else if(childData.get(groupPosition).get(childPosition).get("TabTimer").compareTo("0")!=0) Html="MTimer.htm"; else if(childData.get(groupPosition).get(childPosition).get("TabTemperature").compareTo("0")!=0) Html="MTemperature.htm"; Log.v("TAGW", "IP="+IP+" @"+Here.At()); Log.v("TAGW", "AquaName="+AquaName+" @"+Here.At()); Log.v("TAGW", "Name="+Name+" @"+Here.At()); // startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://yandex.ru"))); Intent intent = new Intent( ActivityLEsp.this , ActivityBrowser.class); intent.putExtra("IP",IP); intent.putExtra("AquaName",AquaName); intent.putExtra("Name",Name); intent.putExtra("Html", Html); startActivity(intent); return false; } }); // btnRefresh.setOnClickListener(oclBtnRefresh); BrRcrSrord = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { Log.v("TAGW", "LMsgIP changed @"+Here.At()); if(intent.getBooleanExtra("ListEspChange", false)){ MakeLEsp(); } } }; IntentFilter IntentFilt = new IntentFilter(BrScordName); registerReceiver(BrRcrSrord, IntentFilt); IntentSrv = new Intent(this, MServiceUdp.class); SrvConn = new ServiceConnection() { public void onServiceConnected(ComponentName name, IBinder Binder0) { SrvUdp = ((MServiceUdp.MBinder) Binder0).getService(); // bBound = true; MakeLEsp(); } public void onServiceDisconnected(ComponentName name) { // bBound = false; } }; bindService(IntentSrv, SrvConn, 0); startService(IntentSrv); // timer = new Timer(); // schedule(); } // @Override // public void onResume() { // super.onResume(); // hideSystemUI(); // } // // public void hideSystemUI() { // systemUIView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE // | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // | View.SYSTEM_UI_FLAG_FULLSCREEN // | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); // } // void schedule() { // Log.d("TAGW", "Timer run"); // if (tTask != null) // tTask.cancel(); // tTask = new TimerTask() { // public void run() { // Log.d("TAGW", "Timer run"); // if (bBound) { // ArrayList<MMsgIP> LS=SrvUdp.GetLS();//LMsgIP; // Log.v("TAGW", "+++++++++++++++++++++++++"); // for(int k=0; k<LS.size(); k++) { // Log.v("TAGW", "LMsgIP.sIP=" + LS.get(k).sIP+" @" + Here.At()); // Log.v("TAGW", "LMsgIP.sMsg=" + LS.get(k).sMsg+" @" + Here.At()); // } // Log.v("TAGW", "-------------------------"); // } // } // }; // timer.schedule(tTask, 1000, 10000); // } // коллекция для групп ArrayList<Map<String, String>> groupData; // коллекция для элементов одной группы ArrayList<Map<String, String>> childDataItem; // общая коллекция для коллекций элементов ArrayList<ArrayList<Map<String, String>>> childData; // в итоге получится childData = ArrayList<childDataItem> // список атрибутов группы или элемента Map<String, String> m; ExpandableListView elvMain; public void MakeLEsp(){ ArrayList<MMsgIP> LMsgIP=null; if(SrvUdp!=null) LMsgIP=SrvUdp.GetLMsgIP();//LMsgIP; if(LMsgIP==null) return; Log.v("TAGW", "+++++++++++++++++++++++++"); JSONObject JO; ArrayList<String> LAquaName=new ArrayList<String>(); // LinkedHashSet LAquaName = new LinkedHashSet(); synchronized (LMsgIP) { try { for (int k = 0; k < LMsgIP.size(); k++) { Log.v("TAGW", "LMsgIP.sIP=" + LMsgIP.get(k).sIP + " @" + Here.At()); Log.v("TAGW", "LMsgIP.sMsg=" + LMsgIP.get(k).sMsg + " @" + Here.At()); /// {"Data":{"0":{"ID":1034233,"IndexNet":0,"Name":"N_1034233_109-Wem","AquaName":"AquaName","CloneName":"C","IP":"192.168.1.106","TabLight":1,"TabTimer":1,"TabTemperature":0}},"VerUdp":20170822} @com.example.scord.scord.ActivityLEsp$1 onReceive 43 JO = new JSONObject(LMsgIP.get(k).sMsg); LMsgIP.get(k).AquaName = JO.getJSONObject("Data").getJSONObject("0").getString("AquaName"); LAquaName.add(LMsgIP.get(k).AquaName); // Log.v("TAGW", "AquaName=" + AquaName + " @" + Here.At()); LMsgIP.get(k).CloneName = JO.getJSONObject("Data").getJSONObject("0").getString("CloneName"); // Log.v("TAGW", "CloneName=" + CloneName + " @" + Here.At()); LMsgIP.get(k).Name = JO.getJSONObject("Data").getJSONObject("0").getString("Name"); // Log.v("TAGW", "Name=" + Name + " @" + Here.At()); LMsgIP.get(k).bTabLight = JO.getJSONObject("Data").getJSONObject("0").getInt("TabLight"); LMsgIP.get(k).bTabTimer = JO.getJSONObject("Data").getJSONObject("0").getInt("TabTimer"); if(!JO.getJSONObject("Data").getJSONObject("0").isNull("TabTemperature")) LMsgIP.get(k).bTabTemperature = JO.getJSONObject("Data").getJSONObject("0").getInt("TabTemperature"); Log.v("TAGW", "-----"); } } catch (JSONException e) { Log.v("TAGW", "Error"); } } Log.v("TAGW", "-------------------------"); // LAquaName.add("C1"); // LAquaName.add("B1"); // LAquaName.add("A1"); // LAquaName.add("B1"); // LAquaName.add("C1"); // LAquaName.add("C1"); // LAquaName.add("A1"); Collections.sort(LAquaName); for(int i=1; i<LAquaName.size(); i++) if(LAquaName.get(i).compareTo(LAquaName.get(i-1))==0){ LAquaName.remove(i); i--; } for(String s : LAquaName) Log.v("TAGW", s); Log.v("TAGW", "-------------------------"); groupData = new ArrayList<Map<String, String>>(); for (String group : LAquaName) { // заполняем список атрибутов для каждой группы m = new HashMap<String, String>(); m.put("groupName", group); // имя компании groupData.add(m); } //--------- // список атрибутов групп для чтения String groupFrom[] = new String[] {"groupName"}; // список ID view-элементов, в которые будет помещены атрибуты групп int groupTo[] = new int[] {android.R.id.text1}; // создаем коллекцию для коллекций элементов childData = new ArrayList<ArrayList<Map<String, String>>>(); for(int i=0; i<LAquaName.size(); i++) childData.add(new ArrayList<Map<String, String>>()); // создаем коллекцию элементов synchronized (LMsgIP) { for (int iM = 0; iM < LMsgIP.size(); iM++) { for(int iA=0; iA<LAquaName.size(); iA++) if(LMsgIP.get(iM).AquaName.compareTo(LAquaName.get(iA))==0){ m = new HashMap<String, String>(); // m.put("AquaName", LMsgIP.get(iM).AquaName+" ("+LMsgIP.get(iM).sIP+")"); // название телефона m.put("AquaName", LMsgIP.get(iM).AquaName); // название телефона m.put("Name", LMsgIP.get(iM).Name); // название телефона m.put("IP", LMsgIP.get(iM).sIP); // название телефона m.put("ShowName", LMsgIP.get(iM).Name+" ("+LMsgIP.get(iM).sIP+")"); // название телефона m.put("TabLight", Integer.toString(LMsgIP.get(iM).bTabLight)); // название телефона m.put("TabTimer", Integer.toString(LMsgIP.get(iM).bTabTimer)); // название телефона m.put("TabTemperature", Integer.toString(LMsgIP.get(iM).bTabTemperature)); // название телефона // childDataItem.add(m); childData.get(iA).add(m); break; } } } // список атрибутов элементов для чтения String childFrom[] = new String[] {"ShowName"}; // список ID view-элементов, в которые будет помещены атрибуты элементов int childTo[] = new int[] {android.R.id.text1}; SimpleExpandableListAdapter adapter = new SimpleExpandableListAdapter( this, groupData, android.R.layout.simple_expandable_list_item_1, groupFrom, groupTo, childData, android.R.layout.simple_list_item_1, childFrom, childTo); elvMain = (ExpandableListView) findViewById(R.id.elvMain); elvMain.setAdapter(adapter); for(int i=0; i<LAquaName.size(); i++) elvMain.expandGroup(i); } public Object onRetainCustomNonConfigurationInstance(){ // удаляем из MyTask ссылку на старое MainActivity return null;//IntentServise;//null;//GetUdp; } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(BrRcrSrord); // timer.cancel(); } }