So I have to check if settings have been changed. However, I’m getting strange result.
Even though the values are the same, it returns true, instead of false.
Result:
Old settings: [800, 600, false, true, true, 2.3]
Current settings: [800, 600, false, true, true, 2.3]
Old list element at 0 is 800
Current list element at 0 is 800
TRUE!
public static boolean settingsChanged() {
System.out.println("Old settings: " + oldSettingsList);
System.out.println("Current settings: " + getCurrentSettingsList());
List oldList = oldSettingsList;
List currentList = getCurrentSettingsList();
int maxLen = Math.max(oldList.size(), currentList.size());
for (int i = 0; i < maxLen; i++) {
Object obj1 = oldList.get(i);
Object obj2 = currentList.get(i);
System.out.println("Old list element at " + i + " is " + obj1);
System.out.println("Current list element at " + i + " is " + obj2);
if (!obj1.equals(obj2)) {
System.out.println("TRUE!");
return true;
}
}
System.out.println("FALSE!");
return false;
}
public static List getOldSettingsList() {
return oldSettingsList;
}
public static List getCurrentSettingsList() {
List newSettingsList = new ArrayList();
newSettingsList.add(video.getWidth());
newSettingsList.add(video.getHeight());
newSettingsList.add(video.isFullScreen());
newSettingsList.add(video.isFps());
newSettingsList.add(sound.isSound());
newSettingsList.add(sound.getVolume());
return newSettingsList;
}