From 63e15188823c9110d189b7d6bf26ce51419936b1 Mon Sep 17 00:00:00 2001 From: m_broelemann Date: Fri, 8 Jan 2021 01:18:06 +0100 Subject: [PATCH] =?UTF-8?q?alertdialog=20f=C3=BCr=20device=20auswahl=20f?= =?UTF-8?q?=C3=BCr=20plot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/aped/ui/plots/PlotFragment.java | 71 +++++++++++++------ .../app/src/main/res/layout/fragment_plot.xml | 6 ++ 2 files changed, 56 insertions(+), 21 deletions(-) diff --git a/APED/app/src/main/java/com/example/aped/ui/plots/PlotFragment.java b/APED/app/src/main/java/com/example/aped/ui/plots/PlotFragment.java index ca621df..cea0378 100644 --- a/APED/app/src/main/java/com/example/aped/ui/plots/PlotFragment.java +++ b/APED/app/src/main/java/com/example/aped/ui/plots/PlotFragment.java @@ -1,30 +1,23 @@ package com.example.aped.ui.plots; -import android.net.sip.SipSession; +import android.content.DialogInterface; import android.os.Bundle; import androidx.fragment.app.Fragment; - import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; +import android.widget.Toast; import com.example.aped.MainActivity; import com.example.aped.R; import com.example.aped.communication.Communicator; import com.example.aped.utils.IXML; -import com.example.aped.utils.XMLHandler; - -import org.json.JSONArray; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.json.JSONException; import org.json.JSONObject; - import java.util.ArrayList; -import java.util.Dictionary; import java.util.List; -import lecho.lib.hellocharts.model.AxisValue; -import lecho.lib.hellocharts.model.Line; -import lecho.lib.hellocharts.model.LineChartData; -import lecho.lib.hellocharts.model.PointValue; import lecho.lib.hellocharts.view.LineChartView; public class PlotFragment extends Fragment { @@ -35,6 +28,8 @@ public class PlotFragment extends Fragment { private List bufferedDevices; /** Line Chart View that is displayed **/ private LineChartView lineChartView; + /** List of all the devices with buffers. **/ + private List bufferedDevicesSelected; /** * paul @@ -56,12 +51,46 @@ public class PlotFragment extends Fragment { getBufferedValues(mainActivity.getDelivery(), mainActivity.getXml()); mainActivity.getConfigurationHandler().setCurrentView(R.id.nav_plots); + + Button buttonChoseDevice = view.findViewById(R.id.button_alert); + buttonChoseDevice.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(final View v) { + bufferedDevicesSelected = new ArrayList<>(); + MaterialAlertDialogBuilder alertDialogBuilder = new MaterialAlertDialogBuilder(mainActivity); + alertDialogBuilder.setTitle("Choose your devices"); + alertDialogBuilder.setMultiChoiceItems(bufferedDevices.toArray(new String[bufferedDevices.size()]), null, new DialogInterface.OnMultiChoiceClickListener() { + @Override + public void onClick(final DialogInterface dialog, final int which, final boolean isChecked) { + if (isChecked) { + bufferedDevicesSelected.add(bufferedDevices.get(which)); + } else if (bufferedDevices.contains(bufferedDevices.get(which))) { + bufferedDevicesSelected.remove(bufferedDevices.get(which)); + } + } + }); + alertDialogBuilder.setPositiveButton("display", new DialogInterface.OnClickListener() { + @Override + public void onClick(final DialogInterface dialog, final int which) { + String data = ""; + for (String item:bufferedDevicesSelected) { + data = data + " " + item; + } + Toast.makeText(mainActivity, data, Toast.LENGTH_SHORT).show(); + } + }); + alertDialogBuilder.create(); + alertDialogBuilder.show(); + } + }); + return view; } - private List getBufferedDevices(IXML xml){ + private List getBufferedDevices(final IXML xml) { List returnList = new ArrayList<>(); - for (String deviceName : xml.getDeviceNames()){ + for (String deviceName : xml.getDeviceNames()) { if (xml.getBufferSize(deviceName) > 0) { returnList.add(deviceName); } @@ -69,22 +98,22 @@ public class PlotFragment extends Fragment { return returnList; } - private void getBufferedValues(Communicator communicator, IXML xml){ - for (String deviceName : this.bufferedDevices){ - communicator.readBuffer(deviceName,response -> { + private void getBufferedValues(final Communicator communicator, final IXML xml) { + for (String deviceName : this.bufferedDevices) { + communicator.readBuffer(deviceName, response -> { try { JSONObject buffer = response.getJSONObject("buffer"); - for(String pin : (List) (xml.getPort(deviceName)).get("pins")) { + for (String pin : (List) (xml.getPort(deviceName)).get("pins")) { String valueString = buffer.getString(pin); - valueString = valueString.substring(2,valueString.length()-2); + valueString = valueString.substring(2, valueString.length() - 2); String[] valueStringArray = valueString.split("', '"); int[] values = new int[valueString.length()]; - for (int i = 0; i < valueStringArray.length; i++){ + for (int i = 0; i < valueStringArray.length; i++) { values[i] = Integer.parseInt(valueStringArray[i]); } //display data - List yAxisValues = new ArrayList(); + /*List yAxisValues = new ArrayList(); for (int i = 0; i < values.length; i++){ yAxisValues.add(values[i]); } @@ -93,7 +122,7 @@ public class PlotFragment extends Fragment { lines.add(line); LineChartData lineChartData = new LineChartData(); lineChartData.setLines(lines); - this.lineChartView.setLineChartData(lineChartData); + this.lineChartView.setLineChartData(lineChartData);*/ } } catch (JSONException e) { Log.e("PlotFragment", "error while parsing JSON on READ BUFFER: " + e.getMessage()); diff --git a/APED/app/src/main/res/layout/fragment_plot.xml b/APED/app/src/main/res/layout/fragment_plot.xml index 8e24233..669a193 100644 --- a/APED/app/src/main/res/layout/fragment_plot.xml +++ b/APED/app/src/main/res/layout/fragment_plot.xml @@ -9,4 +9,10 @@ android:id="@+id/test_plot" android:layout_width="match_parent" android:layout_height="match_parent"/> + +