From 3f225fb4cfd68e7b9c62545b93089ade9a4ceaa6 Mon Sep 17 00:00:00 2001 From: Danesh Mariapan <161300025+dmariapan-shimmer@users.noreply.github.com> Date: Fri, 7 Nov 2025 16:06:09 +0800 Subject: [PATCH 1/3] Changes for Dark Mode fix and compatibility --- .../ConnectedShimmersListFragment.java | 7 ++++--- .../supportfragments/DeviceConfigFragment.java | 2 +- .../supportfragments/DeviceConfigListAdapter.java | 10 +++++----- .../supportfragments/SignalsToPlotFragment.java | 2 +- .../res/layouts/fragments/layout/list_group.xml | 1 - .../shimmercapture/MainActivity.java | 14 +++++++------- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/ConnectedShimmersListFragment.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/ConnectedShimmersListFragment.java index 8d80d647..de07b686 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/ConnectedShimmersListFragment.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/ConnectedShimmersListFragment.java @@ -18,6 +18,7 @@ import com.shimmerresearch.driver.ShimmerDevice; import java.util.List; +import java.util.Objects; /** * A simple {@link Fragment} subclass. @@ -83,7 +84,7 @@ public void buildShimmersConnectedListView(final List deviceList, displayList[i] = nameList[i] + "\n" + macList[i]; } - ArrayAdapter listAdapter = new ArrayAdapter(context, R.layout.simple_list_item_multiple_choice_force_black_text, displayList); + ArrayAdapter listAdapter = new ArrayAdapter(context, android.R.layout.simple_list_item_multiple_choice, displayList); //Set the list of devices to be displayed in the Fragment setListAdapter(listAdapter); @@ -93,7 +94,7 @@ public void buildShimmersConnectedListView(final List deviceList, listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { - if(selectedDeviceAddress != null && selectedDeviceAddress == macList[position]){ + if(selectedDeviceAddress != null && selectedDeviceAddress.equals(macList[position])){ selectedDeviceAddress = null; selectedDevicePos = -1; } @@ -137,7 +138,7 @@ public void onResume() { if(savedListView != null && savedListAdapter != null) { buildShimmersConnectedListView(shimmerDeviceList, context); } else { - buildShimmersConnectedListView(null, getActivity().getApplicationContext()); + buildShimmersConnectedListView(null, requireActivity()); } super.onResume(); } diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigFragment.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigFragment.java index f215f3e1..03b5b9a6 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigFragment.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigFragment.java @@ -77,7 +77,7 @@ public void buildDeviceConfigList(final ShimmerDevice shimmerDevice, final Conte // final CharSequence[] cs = listOfKeys.toArray(new CharSequence[listOfKeys.size()]); - expandListAdapter = new DeviceConfigListAdapter(context, listOfKeys, configOptionsMap, shimmerDevice, shimmerDeviceClone); + expandListAdapter = new DeviceConfigListAdapter(requireActivity(), listOfKeys, configOptionsMap, shimmerDevice, shimmerDeviceClone); expandListView = (ExpandableListView) getView().findViewById(R.id.expandable_listview); expandListView.setAdapter(expandListAdapter); expandListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java index 82efcb82..9dc4e61f 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java @@ -153,11 +153,11 @@ public boolean onKey(View v, int keyCode, KeyEvent event) { String currentConfigValue = Integer.toString(currentConfigInt); String valuelabel = getConfigValueLabelFromConfigLabel(configValueLabel); - if(configValueLabel.contains("Rate")){ - expandedListTextView.setEnabled(false); - }else{ - expandedListTextView.setEnabled(true); - } +// if(configValueLabel.contains("Rate")){ +// expandedListTextView.setEnabled(false); +// }else{ +// expandedListTextView.setEnabled(true); +// } if(valuelabel.equals(expandedListText)) { expandedListTextView.setChecked(true); } else { diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/SignalsToPlotFragment.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/SignalsToPlotFragment.java index 5df6cc19..cc3da4b4 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/SignalsToPlotFragment.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/SignalsToPlotFragment.java @@ -138,7 +138,7 @@ public void buildSignalsToPlotList(Context context, final ShimmerService service //final String[] sensorNames = sensorList.toArray(new String[sensorList.size()]); final String[] sensorNames = sensorList.toArray(new String[sensorList.size()]); - ArrayAdapter adapter = new ArrayAdapter(context, R.layout.simple_list_item_multiple_choice_force_black_text, android.R.id.text1, sensorNames); + ArrayAdapter adapter = new ArrayAdapter(requireActivity(), android.R.layout.simple_list_item_multiple_choice, android.R.id.text1, sensorNames); setListAdapter(adapter); listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); updateCheckboxes(); diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/res/layouts/fragments/layout/list_group.xml b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/res/layouts/fragments/layout/list_group.xml index fc36807f..4c1dc8fb 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/res/layouts/fragments/layout/list_group.xml +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/res/layouts/fragments/layout/list_group.xml @@ -9,7 +9,6 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" - android:textColor="@android:color/black" android:paddingTop="10dp" android:paddingBottom="10dp" /> \ No newline at end of file diff --git a/ShimmerAndroidInstrumentDriver/shimmerServiceExample/src/main/java/com/shimmerresearch/shimmercapture/MainActivity.java b/ShimmerAndroidInstrumentDriver/shimmerServiceExample/src/main/java/com/shimmerresearch/shimmercapture/MainActivity.java index d56073dd..c9ba4bab 100644 --- a/ShimmerAndroidInstrumentDriver/shimmerServiceExample/src/main/java/com/shimmerresearch/shimmercapture/MainActivity.java +++ b/ShimmerAndroidInstrumentDriver/shimmerServiceExample/src/main/java/com/shimmerresearch/shimmercapture/MainActivity.java @@ -444,7 +444,7 @@ public void run(){ }else if(id == R.id.disconnect_all_devices){ mService.disconnectAllDevices(); - connectedShimmersListFragment.buildShimmersConnectedListView(null, getApplicationContext()); + connectedShimmersListFragment.buildShimmersConnectedListView(null, MainActivity.this); mViewPager.setCurrentItem(0); selectedDeviceAddress = null; selectedDeviceName = null; @@ -642,7 +642,7 @@ public void onServiceConnected(ComponentName className, IBinder service) { //if there is a device connected display it on the fragment if(connectedShimmersListFragment!=null) { - connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), getApplicationContext()); + connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), MainActivity.this); } } @@ -780,7 +780,7 @@ public Fragment getItem(int position) { // getItem is called to instantiate the fragment for the given page. if(position < fragmentArrayList.size()){ if(position == 0){ - connectedShimmersListFragment.buildShimmersConnectedListView(null, getApplicationContext()); + connectedShimmersListFragment.buildShimmersConnectedListView(null, MainActivity.this); } return fragmentArrayList.get(position); } @@ -879,11 +879,11 @@ public void handleMessage(Message msg) { switch (state) { case CONNECTED: if(isNumberOfConnectedDevicesChanged()) { - connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), getApplicationContext()); + connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), MainActivity.this); if (selectedDeviceAddress != null) { ShimmerDevice mDevice = mService.getShimmer(selectedDeviceAddress); if (mDevice!=null) { - deviceConfigFragment.buildDeviceConfigList(mDevice, getApplicationContext(), mService.getBluetoothManager()); + deviceConfigFragment.buildDeviceConfigList(mDevice, MainActivity.this, mService.getBluetoothManager()); } } } @@ -910,7 +910,7 @@ public void handleMessage(Message msg) { } break; case SDLOGGING: - connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), getApplicationContext()); + connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), MainActivity.this); break; case STREAMING_LOGGED_DATA: Toast.makeText(getApplicationContext(), "Data Sync: " + shimmerName + " " + macAddress, Toast.LENGTH_SHORT).show(); @@ -920,7 +920,7 @@ public void handleMessage(Message msg) { case DISCONNECTED: isNumberOfConnectedDevicesChanged(); Toast.makeText(getApplicationContext(), "Device disconnected: " + shimmerName + " " + macAddress, Toast.LENGTH_SHORT).show(); - connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), getApplicationContext()); //to be safe lets rebuild this + connectedShimmersListFragment.buildShimmersConnectedListView(mService.getListOfConnectedDevices(), MainActivity.this); //to be safe lets rebuild this break; } } From 14b5f61b4dcb43982b87d3386dbb724cd56ebdac Mon Sep 17 00:00:00 2001 From: Danesh Mariapan <161300025+dmariapan-shimmer@users.noreply.github.com> Date: Fri, 14 Nov 2025 12:32:05 +0800 Subject: [PATCH 2/3] Fixed sequence error --- .../src/main/java/com/shimmerresearch/android/Shimmer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/Shimmer.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/Shimmer.java index fe8080fc..9b15b829 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/Shimmer.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/Shimmer.java @@ -1923,8 +1923,8 @@ public void stateHandler(Object obj){ } private static final byte PING_BYTE = (byte) 0xB5; - private java.util.concurrent.ScheduledExecutorService pingExec; - private java.util.concurrent.ScheduledFuture pingTask; + private transient java.util.concurrent.ScheduledExecutorService pingExec; + private transient java.util.concurrent.ScheduledFuture pingTask; public void startPingTask() { if (pingExec != null && !pingExec.isShutdown()) return; From fce153222a590ba9843f00c90ea0411da438d5fe Mon Sep 17 00:00:00 2001 From: Danesh Mariapan <161300025+dmariapan-shimmer@users.noreply.github.com> Date: Fri, 14 Nov 2025 12:50:34 +0800 Subject: [PATCH 3/3] Minor change - removed comment out --- .../supportfragments/DeviceConfigListAdapter.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java index 9dc4e61f..82efcb82 100644 --- a/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java +++ b/ShimmerAndroidInstrumentDriver/ShimmerAndroidInstrumentDriver/src/main/java/com/shimmerresearch/android/guiUtilities/supportfragments/DeviceConfigListAdapter.java @@ -153,11 +153,11 @@ public boolean onKey(View v, int keyCode, KeyEvent event) { String currentConfigValue = Integer.toString(currentConfigInt); String valuelabel = getConfigValueLabelFromConfigLabel(configValueLabel); -// if(configValueLabel.contains("Rate")){ -// expandedListTextView.setEnabled(false); -// }else{ -// expandedListTextView.setEnabled(true); -// } + if(configValueLabel.contains("Rate")){ + expandedListTextView.setEnabled(false); + }else{ + expandedListTextView.setEnabled(true); + } if(valuelabel.equals(expandedListText)) { expandedListTextView.setChecked(true); } else {