Acknowledged
CIQQA-3370

Instinct 3 Solar has System.DeviceSettings.isTouchScreen in Simulator and on Device

The Instinct 3 Solar exposed the System.DeviceSettings.isTouchScreen-property. It is set to false, but this property is widely used to discern device that have a touch-screen from devices that do not have a touch screen.

In my opinion it should not be exposed on devices that don't have a touch-screen.

The property is exposed in the simulator and on device for the Instinct 3 Solar.

Parents
  •  I have I misunderstood how isTouchScreen is working. I've got the info from this post: https://forums.garmin.com/developer/connect-iq/f/discussion/229697/how-can-my-app-detect-if-the-watch-it-is-run-on-has-a-touchscreen and thought that's how to do it.

    Yeah, that's because somebody keeps suggesting (or outright saying) that isTouchScreen determines whether a device has a touchscreen or not (both in the post from 5 years ago that you linked) and in this thread, even though they absolutely know better.

    Today: "isTouchScreen by itself just means you can check if a device has a touch screen or not"

    No, clearly that is not true.

    5 years ago: "How can my app decide if the device it is run on has a touchscreen?" "System.getDeviceSettings().isTouchScreen"

    Again, not true.

    Like, technically these statements are "kinda true (but not really)" in the sense that if isTouchScreen is true, you know the device has a touchscreen. But these statements completely omit the nuance that a false value of isTouchScreen tells you nothing about whether the device has a touchscreen or not.

    It would have been so easy to simply quote the docs here: isTouchScreen is "true if the device has a touch screen and it is enabled in settings, otherwise false"

    Clearly Garmin's intent is that apps shouldn't have to care whether the device has a touchscreen or not, but simply whether the device has a (currently) enabled touchscreen. That doesn't mean it's ok to pretend that isTouchScreen is the answer to the question of "does my device have a touchscreen?" as opposed to the different question of "does my device have a touchscreen which is currently enabled?"

    The problem is that some people like to oversimplify things to the point of making misleading or partially incorrect statements (which happen to be "kind of correct" for certain purposes, as long as you ignore the cases where the given statements are false or do not apply at all).

    This isn't the first time it's happened, and I'm sure it will continue to happen over and over again. Sorry to say, but every time this kind of thing happens, I predict that someone will take an oversimplified, subtly incorrect statement at face value because it "sounds right", and as a result, they will waste time (or write bad code) because they got the wrong impression. I think this is a good example of exactly that.

Comment
  •  I have I misunderstood how isTouchScreen is working. I've got the info from this post: https://forums.garmin.com/developer/connect-iq/f/discussion/229697/how-can-my-app-detect-if-the-watch-it-is-run-on-has-a-touchscreen and thought that's how to do it.

    Yeah, that's because somebody keeps suggesting (or outright saying) that isTouchScreen determines whether a device has a touchscreen or not (both in the post from 5 years ago that you linked) and in this thread, even though they absolutely know better.

    Today: "isTouchScreen by itself just means you can check if a device has a touch screen or not"

    No, clearly that is not true.

    5 years ago: "How can my app decide if the device it is run on has a touchscreen?" "System.getDeviceSettings().isTouchScreen"

    Again, not true.

    Like, technically these statements are "kinda true (but not really)" in the sense that if isTouchScreen is true, you know the device has a touchscreen. But these statements completely omit the nuance that a false value of isTouchScreen tells you nothing about whether the device has a touchscreen or not.

    It would have been so easy to simply quote the docs here: isTouchScreen is "true if the device has a touch screen and it is enabled in settings, otherwise false"

    Clearly Garmin's intent is that apps shouldn't have to care whether the device has a touchscreen or not, but simply whether the device has a (currently) enabled touchscreen. That doesn't mean it's ok to pretend that isTouchScreen is the answer to the question of "does my device have a touchscreen?" as opposed to the different question of "does my device have a touchscreen which is currently enabled?"

    The problem is that some people like to oversimplify things to the point of making misleading or partially incorrect statements (which happen to be "kind of correct" for certain purposes, as long as you ignore the cases where the given statements are false or do not apply at all).

    This isn't the first time it's happened, and I'm sure it will continue to happen over and over again. Sorry to say, but every time this kind of thing happens, I predict that someone will take an oversimplified, subtly incorrect statement at face value because it "sounds right", and as a result, they will waste time (or write bad code) because they got the wrong impression. I think this is a good example of exactly that.

Children
No Data