mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-01 06:22:55 +01:00
Device settings: use ArrayList instead of rigid int[]
This commit is contained in:
parent
8e6571d354
commit
b30b9083d0
@ -35,6 +35,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -1018,44 +1019,61 @@ public class DeviceSpecificSettingsFragment extends AbstractPreferenceFragment i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static private void addElementsToList(ArrayList<Integer> list, int[]... elements){
|
||||||
|
for(int[] array : elements){
|
||||||
|
for(int item : array){
|
||||||
|
list.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static DeviceSpecificSettingsFragment newInstance(GBDevice device, DeviceSettingsActivity.MENU_ENTRY_POINTS applicationSpecificSettings) {
|
static DeviceSpecificSettingsFragment newInstance(GBDevice device, DeviceSettingsActivity.MENU_ENTRY_POINTS applicationSpecificSettings) {
|
||||||
final DeviceCoordinator coordinator = device.getDeviceCoordinator();
|
final DeviceCoordinator coordinator = device.getDeviceCoordinator();
|
||||||
int[] supportedSettings = new int[0];
|
ArrayList<Integer> supportedSettings = new ArrayList<>();
|
||||||
String[] supportedLanguages = null;
|
String[] supportedLanguages = null;
|
||||||
|
|
||||||
if (applicationSpecificSettings.equals(DeviceSettingsActivity.MENU_ENTRY_POINTS.AUTH_SETTINGS)) { //auth settings screen
|
if (applicationSpecificSettings.equals(DeviceSettingsActivity.MENU_ENTRY_POINTS.AUTH_SETTINGS)) { //auth settings screen
|
||||||
supportedSettings = ArrayUtils.insert(0, supportedSettings, coordinator.getSupportedDeviceSpecificAuthenticationSettings());
|
addElementsToList(supportedSettings, coordinator.getSupportedDeviceSpecificAuthenticationSettings());
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_pairingkey_explanation);
|
supportedSettings.add(R.xml.devicesettings_pairingkey_explanation);
|
||||||
if (device.getType() == DeviceType.MIBAND6) { // miband6 might require new protocol and people do not know what to do, hint them:
|
if (device.getType() == DeviceType.MIBAND6) { // miband6 might require new protocol and people do not know what to do, hint them:
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_miband6_new_protocol);
|
supportedSettings.add(R.xml.devicesettings_miband6_new_protocol);
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_miband6_new_auth_protocol_explanation);
|
supportedSettings.add(R.xml.devicesettings_miband6_new_auth_protocol_explanation);
|
||||||
}
|
}
|
||||||
} else { //device/application settings
|
} else { //device/application settings
|
||||||
supportedSettings = ArrayUtils.insert(0, supportedSettings, coordinator.getSupportedDeviceSpecificSettings(device));
|
|
||||||
supportedLanguages = coordinator.getSupportedLanguageSettings(device);
|
supportedLanguages = coordinator.getSupportedLanguageSettings(device);
|
||||||
if (supportedLanguages != null) {
|
if (supportedLanguages != null) {
|
||||||
supportedSettings = ArrayUtils.insert(0, supportedSettings, R.xml.devicesettings_language_generic);
|
supportedSettings.add(R.xml.devicesettings_language_generic);
|
||||||
}
|
}
|
||||||
|
addElementsToList(supportedSettings, coordinator.getSupportedDeviceSpecificSettings(device));
|
||||||
final int[] supportedAuthSettings = coordinator.getSupportedDeviceSpecificAuthenticationSettings();
|
final int[] supportedAuthSettings = coordinator.getSupportedDeviceSpecificAuthenticationSettings();
|
||||||
if (supportedAuthSettings != null && supportedAuthSettings.length > 0) {
|
if (supportedAuthSettings != null && supportedAuthSettings.length > 0) {
|
||||||
supportedSettings = ArrayUtils.add(supportedSettings, R.xml.devicesettings_header_authentication);
|
supportedSettings.add(R.xml.devicesettings_header_authentication);
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, supportedAuthSettings);
|
addElementsToList(supportedSettings, supportedAuthSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportedSettings = ArrayUtils.insert(0, supportedSettings, coordinator.getSupportedDeviceSpecificConnectionSettings());
|
addElementsToList(
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, coordinator.getSupportedDeviceSpecificApplicationSettings());
|
supportedSettings,
|
||||||
|
coordinator.getSupportedDeviceSpecificConnectionSettings(),
|
||||||
|
coordinator.getSupportedDeviceSpecificApplicationSettings());
|
||||||
if (coordinator.supportsActivityTracking()) {
|
if (coordinator.supportsActivityTracking()) {
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_activity_info_header);
|
supportedSettings.addAll(Arrays.asList(
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_chartstabs);
|
R.xml.devicesettings_activity_info_header,
|
||||||
supportedSettings = ArrayUtils.addAll(supportedSettings, R.xml.devicesettings_device_card_activity_card_preferences);
|
R.xml.devicesettings_chartstabs,
|
||||||
|
R.xml.devicesettings_device_card_activity_card_preferences
|
||||||
|
));
|
||||||
}
|
}
|
||||||
supportedSettings = ArrayUtils.add(supportedSettings, R.xml.devicesettings_settings_third_party_apps);
|
supportedSettings.add(R.xml.devicesettings_settings_third_party_apps);
|
||||||
|
}
|
||||||
|
|
||||||
|
int[] supportedSettingsInts = new int[supportedSettings.size()];
|
||||||
|
for(int i = 0; i < supportedSettings.size(); i++){
|
||||||
|
supportedSettingsInts[i] = supportedSettings.get(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
final DeviceSpecificSettingsCustomizer deviceSpecificSettingsCustomizer = coordinator.getDeviceSpecificSettingsCustomizer(device);
|
final DeviceSpecificSettingsCustomizer deviceSpecificSettingsCustomizer = coordinator.getDeviceSpecificSettingsCustomizer(device);
|
||||||
final String settingsFileSuffix = device.getAddress();
|
final String settingsFileSuffix = device.getAddress();
|
||||||
final DeviceSpecificSettingsFragment fragment = new DeviceSpecificSettingsFragment();
|
final DeviceSpecificSettingsFragment fragment = new DeviceSpecificSettingsFragment();
|
||||||
fragment.setSettingsFileSuffix(settingsFileSuffix, supportedSettings, supportedLanguages);
|
fragment.setSettingsFileSuffix(settingsFileSuffix, supportedSettingsInts, supportedLanguages);
|
||||||
fragment.setDeviceSpecificSettingsCustomizer(deviceSpecificSettingsCustomizer);
|
fragment.setDeviceSpecificSettingsCustomizer(deviceSpecificSettingsCustomizer);
|
||||||
fragment.setDevice(device);
|
fragment.setDevice(device);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user