Method for processing a touch input and an electronic device thereof
Patent Information
- Application Number
- KR1020220032803
- Authority / Receiving Office
- KR · KR
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-01-12
- Filing Date
- 2022-03-16
- Publication Date
- 2026-08-14
- Estimated Expiration
- 2042-03-16
Smart Images

Figure 112022028461986-PAT00004_ABST
Abstract
Description
Technology Field
[0001] The various embodiments disclosed in this document relate to a method and apparatus for processing touch events input into an electronic device. Background Technology
[0002] With the advancement of information and communication technology, the use of mobile electronic devices such as smartphones and tablet PCs is becoming widespread. These devices are portable and can provide users with various useful functions, including calling capabilities, information input / output, and data storage. As the functions of electronic devices become more diverse, the amount of information provided through displays is gradually increasing. On the other hand, the size of the display equipped on electronic devices may be limited to ensure portability; consequently, users must navigate the screen via touch input scrolling to view information not displayed on the screen. The problem to be solved
[0003] Generally, to determine the start of screen scrolling in response to a user's touch input in an electronic device, it is possible to measure whether the point where the touch input occurs exceeds a designated range (e.g., touch slope). If the touch slope is set too high, the initial response of the scroll may be slow. Conversely, if the touch slope is set too low, the electronic device may misinterpret the touch input intended by the user as a scroll input, leading to malfunction. Once the user's touch input exceeds the touch slope, scrolling may continue regardless of the intensity or direction of the touch input. To address this, various methods have been proposed to correct touch information related to the scroll function; however, these methods primarily focus on techniques for determining whether to perform scrolling before the scroll actually begins. Furthermore, when electronic devices provide scrolling functions, the lack of information to predict the user's intent during scrolling may limit the ability to achieve response speeds that meet user expectations.
[0004] Accordingly, various embodiments of this document provide various embodiments that reduce unnecessary power consumption and control screen scrolling operations according to the user's intent by determining the user's intent in advance based on the user's touch input detected by the electronic device and processing so that unintended actions are not performed.
[0005] The technical problems to be solved by the embodiments disclosed in this document are not limited to those mentioned above, and other unmentioned technical problems will be clearly understood by those skilled in the art from the description below. means of solving the problem
[0006] An electronic device according to one embodiment disclosed in this document comprises a display module, at least one processor operatively connected to the display module, and a memory operatively connected to the at least one processor, wherein the memory may store instructions such that, in response to the detection of a first touch event by the at least one processor, the processor sets a touch slope that serves as a criterion for performing a scroll, acquires touch information corresponding to a current touch point at specified intervals while the first touch event is maintained, and if it is confirmed that the touch movement distance exceeds the touch slope based on the acquired touch information, the processor controls the initiation of scrolling for a first screen displayed on the display module, checks scroll data including at least one of the movement speed, movement distance, or deceleration of the first touch event based on the acquired touch information while the scrolling is performed, and determines whether the scrolling is terminated based on the scroll data to control the state of the scrolling for the first screen.
[0007] A method of operation of an electronic device according to an embodiment disclosed in this document may include: an operation of setting a touch slope that serves as a criterion for performing scrolling in response to detecting a first touch event; an operation of acquiring touch information corresponding to a current touch point at specified intervals while the first touch event is maintained; an operation of initiating scrolling for a first screen displayed on a display module when it is confirmed that the touch movement distance exceeds the touch slope based on the acquired touch information; an operation of checking scroll data including at least one of the movement speed, movement distance, or deceleration of the first touch event based on the acquired touch information while the scrolling is performed; and an operation of determining whether to end the scrolling based on the scroll data to control the state of the scrolling for the first screen. Effects of the invention
[0008] According to the various embodiments disclosed in this document, the user's intent can be predicted in advance while providing a scrolling function based on touch events, thereby preventing the processing of unnecessary touch events and improving the performance of the processor. Furthermore, according to the various embodiments disclosed in this document, the responsiveness of the scrolling function can be improved by learning the content attributes of the point where the touch event is detected and the user's touch pattern, thereby providing an enhanced user experience and convenience.
[0009] In addition, various effects that can be identified directly or indirectly through this document may be provided. Brief explanation of the drawing
[0010] FIG. 1 is a block diagram of an electronic device in a network environment according to one embodiment. FIG. 2 is a diagram illustrating a scroll processing method based on touch movement distance according to one embodiment. FIG. 3 is a diagram illustrating the configuration of an electronic device according to one embodiment. FIG. 4 is a drawing illustrating the detailed configuration of an electronic device according to one embodiment. FIG. 5 is a diagram illustrating a method of controlling a scroll state in response to a touch event input to an electronic device according to one embodiment. FIG. 6 is a diagram illustrating a method for determining a user's intention to end scrolling while a touch event is maintained, according to one embodiment. FIG. 7 is a diagram illustrating a method of disabling animation effects when an intention to end scrolling is detected, according to one embodiment. FIGS. 8A and 8B are drawings illustrating a method of processing scrolling based on the touchdown point of a touch event according to one embodiment. FIG. 9 is a diagram illustrating a method of processing touch information detected in a scroll area according to one embodiment. FIGS. 10a and FIGS. 10b are drawings illustrating a method of processing scrolling by taking into account a user's touch pattern according to one embodiment. FIG. 11 is a flowchart illustrating a method of operation of an electronic device according to one embodiment. In relation to the description of the drawings, the same or similar reference numerals may be used for identical or similar components. Specific details for implementing the invention
[0011] Hereinafter, various embodiments disclosed in this document are described with reference to the attached drawings. It should be understood that the various embodiments of the present invention are not intended to be limited to a specific form and include various modifications, equivalents, and / or alternatives of the present invention.
[0013] FIG. 1 is a drawing illustrating an electronic device in a network environment (100) according to one embodiment.
[0014] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) through a first network (198) (e.g., a short-range wireless communication network) or with at least one of an electronic device (104) or a server (108) through a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) through a server (108). According to one embodiment, the electronic device (101) may include a processor (120), memory (130), input module (150), sound output module (155), display module (160), audio module (170), sensor module (176), interface (177), connection terminal (178), haptic module (179), camera module (180), power management module (188), battery (189), communication module (190), subscriber identification module (196), or antenna module (197). In some embodiments, at least one of these components (e.g., connection terminal (178)) may be omitted from the electronic device (101), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (176), camera module (180), or antenna module (197)) may be integrated into a single component (e.g., display module (160)).
[0015] The processor (120) can control at least one other component (e.g., hardware or software component) of the electronic device (101) connected to the processor (120) by executing software (e.g., program (140)), and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (120) can store commands or data received from other components (e.g., sensor module (176) or communication module (190)) in volatile memory (132), process the commands or data stored in volatile memory (132), and store the resulting data in non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., central processing unit or application processor) or an auxiliary processor (123) that can operate independently or together with it (e.g., graphics processing unit, neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor). For example, if the electronic device (101) includes a main processor (121) and an auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a designated function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as part thereof.
[0016] The auxiliary processor (123) may control at least some of the functions or states associated with at least one component of the electronic device (101) (e.g., display module (160), sensor module (176), or communication module (190)) on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (123) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (180) or communication module (190)). According to one embodiment, the auxiliary processor (123) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (108)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.
[0017] The memory (130) can store various data used by at least one component of the electronic device (101) (e.g., processor (120) or sensor module (176)). The data may include, for example, input data or output data for software (e.g., program (140)) and related commands. The memory (130) may include volatile memory (132) or non-volatile memory (134).
[0018] The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0019] The input module (150) can receive commands or data to be used for a component of the electronic device (101) (e.g., processor (120)) from outside the electronic device (101) (e.g., user). The input module (150) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0020] The sound output module (155) can output a sound signal to the outside of the electronic device (101). The sound output module (155) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.
[0021] The display module (160) can visually provide information to an external (e.g., user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.
[0022] The audio module (170) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150) or output sound through the sound output module (155) or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (101).
[0023] The sensor module (176) can detect the operating state of the electronic device (101) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0024] The interface (177) may support one or more specified protocols that can be used for the electronic device (101) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (102)). According to one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0025] The connection terminal (178) may include a connector through which the electronic device (101) can be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0026] The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (179) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.
[0027] The camera module (180) can capture still images and video. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0028] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).
[0029] The battery (189) can supply power to at least one component of the electronic device (101). According to one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0030] The communication module (190) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may include one or more communication processors that operate independently of the processor (120) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (104) through a first network (198) (e.g., a short-range communication network such as Bluetooth, Wi-Fi (wireless fidelity) direct or IrDA (infrared data association)) or a second network (199) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (196).
[0031] The wireless communication module (192) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (192) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (192) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), external electronic device (e.g., electronic device (104)), or network system (e.g., second network (199)). According to one embodiment, the wireless communication module (192) can support a Peak data rate (e.g., 20 Gbps or more) for eMBB realization, loss coverage (e.g., 164 dB or less) for mMTC realization, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 1 ms or less) for URLLC realization.
[0032] An antenna module (197) can transmit a signal or power to an external source (e.g., an external electronic device) or receive it from an external source. According to one embodiment, the antenna module (197) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (198) or a second network (199), may be selected from the plurality of antennas, for example, by a communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (197).
[0033] According to various embodiments, the antenna module (197) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.
[0034] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.
[0035] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) through a server (108) connected to a second network (199). Each of the external electronic devices (102, or 104) may be the same or different type of device as the electronic device (101). According to one embodiment, all or part of the operations performed on the electronic device (101) may be performed on one or more of the external electronic devices (102, 104, or 108). For example, if the electronic device (101) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (101) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (101) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server using machine learning and / or neural networks. According to one embodiment, the external electronic device (104) or the server (108) may be included within a second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0037] FIG. 2 is a diagram illustrating a scroll processing method based on touch movement distance according to one embodiment. According to various embodiments, an electronic device (101) may provide a screen scrolling function based on touch information acquired (or received) at regular time intervals while the touch event is maintained after the touch event occurs.
[0038] Referring to FIG. 2, the electronic device (101) can acquire touch information at a time interval corresponding to the refresh rate of the display (e.g., the display module (160) of FIG. 1) while the touch event is maintained. According to various embodiments, if the electronic device (101) includes a display having a refresh rate of 60 Hz, the touch information can be acquired every 16 ms. The graph shown in FIG. 2 represents a scroll pattern that occurs in response to a touch event input from bottom to top of the display, and it can be observed that screen scrolling is performed in response to the touch movement distance from the time the touch event occurs until it is released. In FIG. 2, the x-axis represents the elapsed time of a frame provided through the display, and the y-axis represents the scroll size performed through the touch event.
[0039] In one embodiment, the electronic device (101) may generate a scroll on the screen provided through the display in response to the touch event. The electronic device (101) may initiate a scroll on the screen when it detects that the size of the scroll (e.g., touch movement distance) caused by the touch exceeds a specified value while the touch event is maintained after the touch event has occurred. The specified value may correspond to a touch slop, which is a minimum movement size that serves as a criterion for generating the scroll. For example, in FIG. 2, the electronic device (101) may generate a scroll starting from the first frame where a touch movement size greater than the specified touch slop is measured.
[0040] In one embodiment, the electronic device (101) can control the screen to scroll by the size of the touch movement detected at each frame unit time after the scrolling has started. As a result, the electronic device (101) may have to process the scrolling of the screen even if it detects small changes that the user does not perceive. In FIG. 2, from frame 47 to frame 67, only minute changes are detected, and changes moving in the opposite direction to the actual scrolling direction may be detected; if the electronic device (101) performs scrolling for such changes, unnecessary processor usage and inefficient power consumption may occur. According to various embodiments, when the electronic device (101) detects the release of the touch event, it may provide an animation effect such as a fling; however, a fling animation that causes additional scrolling may be perceived as an unnecessary action by a user who wishes to stop scrolling. Therefore, in order to increase scroll responsiveness and improve the efficiency of the processor during the screen scrolling process, the electronic device (101) needs to predict in advance the user's intention to stop (or end) scrolling based on the touch movement size detected during the touch event so as not to perform unnecessary actions.
[0042] FIG. 3 is a drawing illustrating the configuration of an electronic device (300) according to one embodiment.
[0043] Referring to FIG. 3, the electronic device (300) is a device that controls a scroll state by predetermining a user intent based on a touch event, and may include a display module (310), at least one processor (320), or memory (330). In FIG. 3, the electronic device (300) may correspond to the electronic device (101) shown in FIG. 1.
[0044] In one embodiment, the display module (310) (e.g., the display module (160) of FIG. 1) displays the screen of a program (or application) executed by the user, and can display the screen while moving it up and down or left and right in response to touch input detected while displaying the screen.
[0045] In one embodiment, the display module (310) may be composed of at least one of an LCD (liquid crystal display), a TFT-LCD (thin film transistor LCD), an OLED (organic light emitting diodes), an LED, an AMOLED (active matrix organic LED), a flexible display, and a 3-dimensional display. Additionally, some of these displays may be configured to be transparent or light-transmitting so that the outside can be seen through them. This may be configured in the form of a transparent display including a TOLED (transparent OLED).
[0046] In one embodiment, the display module (310) may include a display panel (311), a touch sensor (312), and a touch sensor control circuit (313). The touch sensor control circuit (313) may identify data related to a user's touch input received on the display panel (311) using the touch sensor (312). For example, the touch sensor control circuit (313) may include a touch sensor panel integrated circuit (touch sensor panel IC, TSP IC) for identifying data related to characteristics related to the user's touch input (e.g., location (coordinates) of the touch point, touch area, touch sensitivity, travel distance, and / or hold time). According to various embodiments, the touch sensor control circuit (313) may drive the touch sensor (e.g., apply power) and identify an electrical value (e.g., at least one of a voltage value or a current value) or a change in an electrical value generated by the touch sensor based on the input received based on the applied power. The touch sensor control circuit (313) can determine the type of touch (e.g., normal touch, drag touch, palm touch, and / or pinch) based on an identified electrical value or a change in an electrical value and transmit information thereto to at least one processor (320). The touch sensor control circuit (313) may also transmit raw data for a touch event to at least one processor (320) so that the at least one processor (320) can perform processing for the touch input. According to various embodiments, the touch sensor (312) may include at least one touch sensor among a contact-type capacitive method, a pressure-type resistive method, an infrared sensing method, a surface-type ultrasonic conduction method, and / or a piezo-effect method, and may not be limited to any one of these methods.
[0047] In one embodiment, the memory (330) (e.g., the memory (130) of FIG. 1) may store instructions that control at least one processor (320) (e.g., the processor (120) of FIG. 1) to perform various operations during execution. For example, at least one processor (320) may detect a touch event input by a user through a display module (310). The touch event is a touch gesture input by the user and may be classified into a touch down, a touch move, or a touch release operation. According to various embodiments, at least one processor (320) may recognize that the touch event is maintained from the time a touch down occurs until the touch is released, and may continuously check how far and in which direction the touch point moves while the touch event is maintained.
[0048] In one embodiment, at least one processor (320) may set a touch slope, which is a minimum movement distance that serves as a criterion for generating scrolling, in response to detecting the touch event. At least one processor (320) may not generate scrolling until a touch movement exceeding the touch slope is confirmed after detecting a touchdown of the touch event. According to various embodiments, at least one processor (320) may set the touch slope to various values depending on the location where the touchdown is detected on the display panel (311) of the display module (310). For example, at least one processor (320) may check whether the touchdown point of the touch event corresponds to a selection input area within the first screen being displayed through the display panel (311), and may set the touch slope based on the result of the check. The above selection input area may be an area containing an object set as a touch listener or press listener within the first screen, or a user-selectable element such as an image, video clip, anchor, or form. At least one processor (320) can determine that the touchdown point corresponds to the selection input area if the touchdown point corresponds to the object or the user-selectable element, or if the parent element of the element selected by the touchdown corresponds to the object or the user-selectable element.If the touchdown point does not correspond to the selection input area within the first screen, there is no selectable element at the touchdown point, so at least one processor (320) can set the touch slope to 0 to process the initiation of scrolling immediately without checking the touch slope when a touch movement is detected. If it is confirmed that the touchdown point corresponds to the selection input area within the first screen, at least one processor (320) can set the touch slope to a value greater than 0 to determine whether the subsequently detected touch movement is an input for scrolling or an input for selecting a specific element. In this case, if the detected touch movement distance is smaller than the set touch slope, at least one processor (320) can determine that the touch movement is an input for selecting a specific element. Conversely, if the detected touch movement distance is greater than the set touch slope, at least one processor (320) can determine that the touch movement is a scroll input and perform scrolling corresponding to the touch movement distance.
[0049] In another example, at least one processor (320) can check whether the touchdown point of the touch event corresponds to a scroll area based on a scroll map in which the user's scroll pattern is defined, and can set the touch slope based on the result of the check. At least one processor (320) can store and manage in memory (330) a scroll map that defines the scroll occurrence probability of each of the multiple areas included on the display panel (311) and a scroll area where scrolling occurs with a high probability. The scroll map can be updated whenever a new touch event ends. When at least one processor (320) detects a touchdown of the touch event, it can load the scroll map from memory (330) to check the scroll occurrence probability of the touchdown point or whether the touchdown point corresponds to the scroll area. If at least one processor (320) confirms that the touchdown point corresponds to the scroll area, it can set the touch slope based on the scroll occurrence probability of the touchdown point. For example, at least one processor (320) can determine a constant K proportional to the probability of scroll occurrence and set the touch slope by dividing the default value of the touch slope by the determined constant K. As a result, the higher the probability of scroll occurrence at the touchdown point, the closer the value to 0 can be set as the touch slope. If the touchdown point does not correspond to the scroll area, at least one processor (320) can determine whether to perform scrolling based on the default value without changing the setting for the touch slope.
[0050] In one embodiment, at least one processor (320) may acquire (or receive) touch information associated with the current touch point at specified intervals while the touch event is maintained. The touch information may include at least one of the coordinates of the point where the touch is detected while the touch event is maintained, a movement speed or distance or deceleration calculated based on the current touch point. The specified interval may correspond to the refresh rate of the display panel (311). For example, if the refresh rate of the display panel (311) is 60Hz, at least one processor (320) may acquire the touch information at 16ms. As another example, if the refresh rate of the display panel (311) is 120Hz, at least one processor (320) may acquire the touch information at 8ms. Depending on various embodiments, at least some operations described as being controlled by at least one processor (320) in this disclosure may be performed on a touch sensor control circuit (313) included in the display module (310). For example, the touch sensor control circuit (313) can detect a touch event input on the display panel (311) and acquire touch information at a time period corresponding to the refresh rate of the display panel (311) while the touch event is maintained. As another example, the touch sensor control circuit (313) can set a touch slope that serves as a criterion for determining whether scrolling occurs in relation to the touch event.
[0051] In one embodiment, at least one processor (320) can determine whether the touch movement distance exceeds the set touch slope based on the acquired (or received) touch information. If the result of the determination is that the touch movement distance does not exceed the touch slope, the at least one processor (320) may not perform scrolling on the first screen until a touch movement exceeding the touch slope is detected. If the result of the determination is that the touch movement distance exceeds the touch slope, the at least one processor (320) may control the display module (310) to initiate scrolling on the first screen in response to the touch movement.
[0052] According to various embodiments, at least one processor (320) may check whether to perform a touch slope check whenever new touch information is acquired from the time when the touchdown of the touch event is detected until the time when the touch is released. The touch slope check may be set to a value of true or false. For example, if at least one processor (320) confirms that the touch slope check item is set to true, it may determine whether the touch movement distance confirmed at that time exceeds the set touch slope. For another example, if at least one processor (320) confirms that the touch slope check item is set to false, it may decide to perform scrolling without a touch slope check for the touch movement confirmed at that time. In one embodiment, at least one processor (320) may set the initial value (default) of the touch slope check item to true. Based on the initial setting of the touch slope check item, at least one processor (320) may check whether the touch movement confirmed for the first time after the touch event occurs unconditionally exceeds the touch slope. At least one processor (320) can change the setting value of the touch slope check item according to the scroll state of the touch event, and while scrolling is being performed, can determine whether to check the touch slope according to the previous setting value of the touch slope check item.
[0053] In one embodiment, at least one processor (320) can check scroll data including at least one of the movement speed, movement distance, or deceleration of the touch event based on the touch information acquired while scrolling is performed on the first screen. For example, at least one processor (320) can acquire coordinate information of points where touch movement is detected at the specified time intervals while scrolling is performed, and calculate at least one of the movement speed, movement distance, or deceleration per scroll section based on the acquired coordinate information. The scroll section may correspond to the specified time, which is the time period in which the touch information is acquired.
[0054] In one embodiment, at least one processor (320) can determine whether to end the scroll based on the scroll data. For example, at least one processor (320) can determine the distance of the scroll section corresponding to the current touch movement point based on the scroll data and compare the determined distance with a first threshold value. The first threshold value may represent the minimum touch movement size for continuing the scroll. If the comparison result shows that the determined distance is smaller than the first threshold value, at least one processor (320) may further determine whether to change the state of the scroll. At least one processor (320) can determine the first scroll section with the largest touch movement distance while scrolling the first screen is being performed based on the touch information and calculate the deceleration at the current touch movement point based on the first scroll section. At least one processor (320) can determine the user's intention regarding whether to continue the scroll through a comparison operation of the calculated deceleration with a second threshold value. The second threshold value may represent a deceleration value defined as a criterion for determining the scroll stop section. If the calculated deceleration rate is greater than the second threshold value as a result of the comparison above, at least one processor (320) determines that the user intends to stop the scrolling and can control the display module (310) to stop the scrolling of the first screen.
[0055] According to various embodiments, at least one processor (320) can determine user intent based on the touch travel distance measured in scroll sections without measuring deceleration in low-speed scrolling situations. When a user scrolls by slowly touching, the difference in touch travel distance between the first scroll section and other scroll sections is not large, so scrolling may stop frequently. To prevent this, at least one processor (320) can count scroll sections where the travel distance identified based on the touch information is smaller than the first threshold while scrolling is performed on the first screen. If at least one processor (320) determines that the number of the counted scroll sections exceeds the third threshold, it determines that there is a user intent to stop scrolling and can control the display module (310) to stop scrolling. The third threshold can be predefined as a reference count for determining the user's intent to stop scrolling. While counting scroll sections smaller than the first threshold, at least one processor (320) can additionally identify scroll sections where the identified travel distance is larger than the first threshold. At least one processor (320) can determine the user's intention to continue scrolling and reset the count to 0 when it determines that a scroll section larger than the first threshold exceeds the fourth threshold. The fourth threshold can be predefined as a reference count for determining the user's intention to continue scrolling.
[0056] According to various embodiments, at least one processor (320) may be set to at least temporarily lower the first threshold value in a low-speed scrolling situation (or when determining user intent without measuring deceleration). For example, at least one processor (320) may check the movement speed per scroll section while scrolling is performed on the first screen and calculate the average speed at the current touch movement point based on the checked movement speed. If at least one processor (320) determines that the calculated average speed is lower than or equal to a specified speed, it may be set to change the first threshold value to be smaller than a specified value.
[0057] In one embodiment, when at least one processor (320) detects the release of the touch event, it can check the scroll state of the first screen. For example, when at least one processor (320) detects the release of the touch while scrolling the first screen, it can determine the speed of occurrence of an animation effect (e.g., fling) to be applied immediately before the end of the scroll based on the recent scroll speed (e.g., the average speed of a specified number of scroll sections based on the time of release of the touch). In another example, when at least one processor (320) detects the release of the touch while the scrolling of the first screen is stopped, it can determine that there was a user intention to stop the scrolling of the first screen. In this case, at least one processor (320) can determine the speed of occurrence of the animation effect to 0 so that the touch event is terminated immediately while the scrolling is stopped without applying an animation effect to the scroll. At least one processor (320) can immediately control the scroll state according to the user's intent without processing unnecessary operations during the scrolling process corresponding to the touch event, and thereby improve process efficiency and response speed during the scrolling process.
[0059] FIG. 4 is a diagram illustrating the detailed configuration of an electronic device (300) according to one embodiment. Functions or operations described with reference to FIG. 4 may be understood as functions performed by at least one processor (320) (e.g., application processor) and / or a touch sensor control circuit (313) (e.g., touch IC (integrated circuit)) included in the display module (310) of the electronic device (300) of FIG. 3. For example, the touch event input module (410), scroll determination module (420), scroll control module (430), or content control module (440) illustrated in FIG. 4 may be implemented as software modules containing at least one instruction. At least one processor (320) may execute instructions (e.g., instructions) stored in memory (330) to implement the software modules illustrated in FIG. 4, and may control hardware related to the function (e.g., the display module (310) or memory (330) of FIG. 3). According to various embodiments, the electronic device (300) is not limited to the components shown in FIG. 4 and may additionally include components among the components shown in FIG. 1 that correspond to the functions required by the electronic device (300).
[0060] Referring to FIG. 4, the electronic device (300) may include a touch event input module (410), a scroll determination module (420), a scroll control module (430), or a content control module (440).
[0061] In one embodiment, the touch event input module (410) detects a touch event input on a display panel (311) included in a display module (e.g., the display module (160) of FIG. 1 or the display module (310) of FIG. 3) and can determine the operation type of the touch event. For example, the touch event may be classified into a touch down, a touch move, or a touch release operation. The touch event input module (410) may determine that the touch event has occurred when a touch down is detected on the display panel (311), and determine that the touch event has ended when a touch release is detected on the display panel (311). The touch event input module (410) may determine that the movement of the touch point confirmed while the touch event is maintained in a holding state from the time the touch down is detected until the time the touch release is detected is a touch move.
[0062] In one embodiment, the scroll determination module (420) may set conditions for performing scrolling while the touch event is maintained and perform a determination related to said conditions. For example, the scroll determination module (420) may set a touch slope that serves as a criterion for generating scrolling during the touch event. In another example, the scroll determination module (420) may check the touch movement distance from the current touch point based on touch information acquired at specified intervals while the touch event is maintained, and determine whether the confirmed touch movement distance exceeds a specified touch slope. In yet another example, the scroll determination module (420) may determine whether to check the touch slope each time the touch information is acquired. The touch slope check indicates whether to perform a determination regarding whether the acquired touch information exceeds the touch slope, and may be set to a value of true or false depending on the scroll state. If the touch slope check item is set to true, the scroll determination module (420) may check whether the touch information at that time exceeds the touch slope and determine whether to start scrolling based on the result of the check. When the above touch slope check item is set to false, the scroll determination module (420) can determine whether to continue scrolling without checking whether the touch slope is exceeded for the touch information at that time.
[0063] In one embodiment, the scroll control module (430) controls the scroll state of a first screen being output through a display panel (311) and can check the user's intention while scrolling. For example, if the scroll control module (430) confirms, based on the judgment result of the scroll judgment module (420), that the touch movement distance confirmed at the current touch point exceeds the touch slope, it can control the initiation of scrolling for the first screen. In another example, the scroll control module (430) can check the user's intention to stop or continue the scrolling based on touch information obtained while scrolling for the first screen is being performed, and control the scroll state according to the confirmation result.
[0064] In one embodiment, the content control module (440) can make a determination regarding the content of the first screen displayed on the display panel while the touch event is maintained. For example, the content control module (440) can determine whether the touchdown point of the touch event corresponds to a selection input area within the first screen. The selection input area may be an area containing an object set as a touch listener (or a listener associated with user input) (e.g., including a click listener or a press listener) within the first screen, or a selectable element such as an image, a video clip, an anchor, or a form. In another example, the content control module (440) can update and control the state of the display module (310) to display the first screen in response to a scroll state controlled by the scroll control module (430).
[0065] Specific details regarding the operation or function of the components illustrated in FIG. 4 will be explained with reference to FIG. 5.
[0066] Referring to FIG. 5, in operation 501, the touch event input module (410) can detect that a touchdown has occurred while displaying the first screen through the display module (310). The touch event input module (410) determines that a new touch event has occurred based on the touchdown and can continuously check the touch point until the touch is released after the touchdown has occurred.
[0067] According to one embodiment, in operation 503, the scroll determination module (420) may reset the scroll determination related settings in response to the occurrence of a new touch event. For example, the scroll determination module (420) may set a touch slope check item to an initial state, which is a criterion for determining whether to start scrolling during the touch event and / or a determination of whether the touch information acquired during the touch event exceeds the touch slope. For example, in operation 503, the scroll determination module (420) may set the touch slope to a specified default value and set the touch slope check item to true.
[0068] According to one embodiment, in operation 505, the content control module (440) can determine whether the touch-down point corresponds to a selection input area within the first screen. The content control module (440) can determine that the selection input area is an area containing an object and / or a selectable element that is set as a touch listener within the first screen. For example, if the content control module (440) confirms that the object or the selectable element is placed at the touch-down point within the first screen, the content control module (440) can determine that the touch-down point corresponds to the selection input area. In another example, if the content control module (440) confirms that the parent element of the element selected by the touch-down in the first screen corresponds to the object or the selectable element, the content control module (440) can determine that the touch-down point corresponds to the selection input area.
[0069] According to one embodiment, in operation 507, the scroll determination module (420) may store the result of the verification of operation 505. For example, if the result of the verification is that the touchdown point does not correspond to the selected input area, the scroll determination module (420) may set the item checking whether the touchdown point corresponds to the selected input area to false and set the touch slope to 0. If the result of the verification is that the touchdown point corresponds to the selected input area, the scroll determination module (420) may set the item checking whether it corresponds to the selected input area to true and set the touch slope to a value greater than 0.
[0070] According to one embodiment, in operation 511, the touch event input module (410) can detect the first touch movement of the touch event. According to various embodiments, the touch event input module (410) can detect the touch movement based on touch information acquired at specified intervals while the touch event is maintained. The touch information may include at least one of the coordinates of the point where the touch is detected while the touch event is maintained, a movement speed or distance or deceleration calculated based on the current touch point. The specified time may be set corresponding to the refresh rate of the display panel (311). For example, if the refresh rate of the display panel (311) is 60Hz, at least one processor (320) can acquire touch information related to the touch event every 16ms.
[0071] According to one embodiment, in operation 513, the scroll determination module (420) checks whether the touch slope check item for the touch event is set to true and checks whether the distance traveled by the first touch movement exceeds the set touch slope. If, as a result of the check, the distance traveled by the first touch movement exceeds the touch slope, in operation 515, the scroll control module (430) can start scrolling the first screen. If, as a result of the check, the distance traveled by the first touch movement does not exceed the touch slope, the scroll control module (430) may not perform any operation until a subsequent touch movement exceeding the touch slope is detected.
[0072] According to one embodiment, when scrolling of the first screen occurs by the scroll control module (430), in operation 517, the scroll determination module (420) may change the setting of the touch slope check item to false. The scroll determination module (420) may determine to perform scrolling without checking whether the touch slope exceeds the touch slope for the touch movement detected while the touch slope check item is set to false. In response to the occurrence of scrolling of the first screen, the content control module (440) may update the state of the display module (310) to display the first screen that is scrolled in response to the first touch movement in operation 519.
[0073] According to one embodiment, in operation 521, the touch event input module (410) can detect a second touch movement of the touch event. In response to detecting the second touch movement, in operation 523, the scroll determination module (420) can confirm that the touch slope check item for the touch event is set to false. When the touch slope check item is set to false, the scroll determination module (420) recognizes that scrolling is being performed on the first screen at the time the second touch movement is detected, and can omit the touch slope check for the touch movement.
[0074] According to one embodiment, in operation 525, the scroll control module (430) can determine whether there is a user intention to end the scroll while scrolling is being performed on the first screen. For example, the scroll control module (430) can determine at least one of the movement speed, movement distance, or deceleration in the corresponding scroll section based on touch information acquired at the time when the touch movement is detected. The scroll control module (430) can determine that there is a user intention to end the scroll if the movement distance confirmed for the scroll section is smaller than a first threshold value and the deceleration calculated in the scroll section is greater than a second threshold value. The first threshold value represents the minimum touch movement size for continuing the scroll, and the second threshold value may represent a deceleration value defined as a criterion for determining the scroll stop section. The deceleration of the scroll section may be calculated based on the scroll section with the largest touch movement distance during scrolling on the first screen. The scroll control module (430) may determine that the user intends to continue scrolling if at least one of the judgment conditions regarding the first threshold and the second threshold is not satisfied. As another example, if the first screen is scrolled slowly at a speed less than the specified speed, the scroll control module (430) may determine the user's intention to end scrolling based on the touch movement distance for each scroll section measured up to the point where the touch movement is detected. In this case, the scroll control module (430) counts scroll sections where the touch movement distance is smaller than the first threshold, and if the number of counted scroll sections exceeds the third threshold, it may determine that the user intends to end scrolling.In the above counting process, if the scroll control module (430) confirms that a scroll section where the touch movement distance is greater than the first threshold exceeds the fourth threshold, it can reset the count to 0 and count again from the beginning for subsequent touch movements detected. The third threshold is a value set as a reference count for determining the user's intention to end the scroll, and the fourth threshold may be a value set as a reference count for determining the user's intention to continue the scroll. If the judgment condition regarding the third threshold is not satisfied, the scroll control module (430) can determine that the user has an intention to continue the scroll.
[0075] According to one embodiment, if the user's intention to end the scrolling is not confirmed as a result of the judgment of operation 525, the scroll control module (430) may decide to continue scrolling the first screen in operation 527. Additionally, the content control module (440) may update the state of the display module (310) to display the first screen being scrolled in response to the second touch movement in operation 529.
[0076] According to one embodiment, in operation 531, the touch event input module (410) can detect the nth touch movement of the touch event. In response to detecting the nth touch movement, in operation 533, the scroll determination module (420) can confirm that the touch slope check item for the touch event is set to false and can omit the touch slope check for the touch movement.
[0077] According to one embodiment, in operation 535, the scroll control module (430) can determine whether there is a user intention to end the scroll while scrolling is being performed on the first screen. In operation 535, the determination of the user intention can be performed in the same manner as in operation 525.
[0078] According to one embodiment, if the user's intention to end the scroll is confirmed as a result of the judgment of operation 535, the scroll judgment module (420) may decide to stop the scrolling of the first screen and change the setting value of the touch slope check item to true. The scroll judgment module (420) may reset the touch slope to a specified default value in response to the change in the state of the scroll.
[0079] According to one embodiment, in operation 541, the touch event input module (410) can detect the n+1th touch movement of the touch event. In response to detecting the n+1th touch movement, in operation 543, the scroll determination module (420) can confirm that the touch slope check item for the touch event is set to true and can determine whether the distance of movement caused by the n+1th touch movement exceeds the set touch slope. In operation 543, the scroll control module (430) can confirm that the distance of movement caused by the n+1th touch movement does not exceed the touch slope and can decide not to perform the operation corresponding to the n+1th touch movement while the scrolling of the first screen is stopped.
[0080] According to one embodiment, in operation 551, the touch event input module (410) can detect the n+2th touch movement of the touch event. In response to detecting the n+2th touch movement, in operation 553, the scroll determination module (420) can check that the touch slope check item for the touch event is set to true and check whether the distance of movement caused by the n+2th touch movement exceeds the set touch slope. The scroll control module (430) can check that the distance of movement caused by the n+2th touch movement does not exceed the touch slope and decide not to perform the operation corresponding to the n+2th touch movement.
[0081] According to one embodiment, in operation 561, the touch event input module (410) can detect a touch release. The touch event input module (410) can determine that the touch event has ended based on the detected touch release.
[0082] According to one embodiment, in operation 563, the scroll determination module (420) can check the touch slope check item for the touch event in response to detecting the touch release. For example, if the touch slope check item is set to true, the scroll determination module (420) can confirm that the scrolling of the first screen is stopped and process the touch event to end immediately without additional action. In another example, if the touch slope check item is set to false, the scroll determination module (420) can confirm that the scrolling of the first screen is in progress. In this case, the scroll control module (430) can apply an animation effect (e.g., fling) to the scroll just before the touch event ends in operation 565. The scroll control module (430) can set the speed of the animation effect based on the recent speed of the scroll (e.g., the average speed of a specified number of scroll sections based on the touch release time). According to one embodiment, the content control module (440) can update the state of the display module (310) so that scrolling for the first screen gradually stops based on the setting in response to the touch release in operation 567.
[0084] FIG. 6 is a diagram illustrating a method for determining a user's intention to end scrolling while a touch event is maintained, according to one embodiment. According to various embodiments, an electronic device (300) may determine a user's intention to end scrolling based on information regarding touch movement detected through a display module (e.g., the display module (160) of FIG. 1 or the display module (310) of FIG. 3). The operations illustrated in FIG. 6 may correspond to operations (e.g., operations 511 to 553 of FIG. 4) performed for touch movement detected at specified intervals while the touch event is maintained. The operations of FIG. 6 may be performed by at least one processor included in the electronic device (300) (e.g., the processor (120) of FIG. 1 or at least one processor (320) of FIG. 3), a touch sensor control circuit (the touch sensor control circuit (313) of FIG. 3), and / or modules included in the electronic device (300) of FIG. 4 (e.g., a scroll determination module (420) and / or a scroll control module (430)).
[0085] Referring to FIG. 6, in operation 610, the electronic device (300) can determine whether a determination regarding a change in the scroll state is required while displaying the first screen through the display module (310). For example, if the electronic device (300) detects a new touch movement based on touch information acquired at specified intervals while the touch event is maintained, it may recognize that a determination regarding a change in the scroll state is required.
[0086] If, as a result of checking operation 610, a judgment regarding the change in the scroll state is required (operation 610-yes), the electronic device (300) can check in operation 620 whether the touch slope check item is set to true. The touch slope check item may indicate whether a judgment is performed regarding whether the acquired touch information exceeds the touch slope. If, as a result of checking operation 620, the touch slope check item is set to true (operation 620-yes), the electronic device (300) can check in operation 625 whether the movement distance of the section corresponding to the point where the touch movement is detected is within the touch slope. The touch slope may be a value set as the minimum movement distance that serves as a criterion for generating scrolling for the first screen. If, as a result of checking operation 625, the movement distance is within the touch slope (operation 625-Yes), the electronic device (300) can set the touch slope check item to true in operation 635 and set the scroll movement value to 0 so that scrolling of the first screen does not occur. If, as a result of checking operation 625, the movement distance exceeds the touch slope (operation 625-No), the electronic device (300) can start scrolling of the first screen in operation 640 and set the touch slope check item to false.
[0087] If, as a result of checking operation 620, the touch slope check item is set to false (operation 620-No), the electronic device (300) recognizes in operation 630 that scrolling is being performed on the first screen and may omit the touch slope check for the touch movement. In operation 630, the electronic device (300) may check whether the user intends to end the scroll based on the touch movement.
[0088] According to one embodiment, in operation 630, the electronic device (300) can determine at least one of the movement speed, movement distance, or deceleration in the corresponding scroll section based on touch information acquired at the time when the touch movement is detected. For example, the electronic device (300) can acquire coordinate information of points where the touch movement is detected at specified intervals while scrolling is performed on the first screen, and can calculate at least one of the movement speed, movement distance, or deceleration per scroll section based on the acquired coordinate information. For example, if the touch information is acquired every approximately 16 ms, the electronic device (300) can determine the coordinate information of 10 points where the touch movement is detected {(10, 10), (10, 20), (10, 40), (10, 60), (10, 90), (10, 100), (10, 102), (10, 103), (10, 103), (10, 101)}. The above coordinate information may refer to absolute coordinates defined on a display panel (311) included in a display module (310). In this case, the coordinate information of the current touch point is the most recently measured (10, 101), and the difference between the coordinates may correspond to the movement speed (scroll amount) for each scroll section. The electronic device (300) can calculate the movement speed for each scroll section {(0, 10), (0, 20), (0, 20), (0, 30), (0, 10), (0, 2), (0, 1), (0, 0), (0, -2)} based on the above coordinate information. Based on the calculation result, the electronic device (300) can confirm that the movement distance in the 5th touch movement among the above coordinate information is the largest, and that the movement speed in the scroll section corresponding to the 5th touch movement is (0, 30).According to various embodiments, when the deceleration at the point where the 8th touch movement is detected is to be calculated, the electronic device (300) can determine that the movement speed of the scroll section corresponding to the point is (0, 1) and calculate the deceleration of the scroll section as shown in Equation 1 below.
[0089]
[0090] At this time, assuming that the first threshold value representing the minimum touch movement speed for continuing the scroll is set to 2.1 and the second threshold value representing the deceleration value defined as the criterion for determining the scroll stop section is set to 0.5, the electronic device (300) can determine that there is an intention to stop the scroll from the point (10, 102) where the 7th touch movement is detected.
[0091] According to another embodiment, when a user scrolls by slowly touching and moving at a speed less than a specified speed, the electronic device (300) in operation 630 can determine the intention to end the scroll based on the touch movement speed measured in the scroll sections without calculating the deceleration. For example, when the touch information is acquired every approximately 16 ms, the electronic device (300) can check the coordinate information of the points where 10 touch movements were detected {(10, 9), (10, 13), (10, 16), (10, 18), (10, 21), (10, 24), (10, 28), (10, 32), (10, 36), (10, 40)}. The electronic device (300) can calculate the movement speed {(0, 4), (0, 3), (0, 2), (0, 3), (0, 3), (0, 4), (0, 4), (0, 4), (0, 4)} for each scroll section based on the coordinate information. In this case, since the difference in movement speed between the scroll section where the maximum movement speed is measured and other scroll sections is not large, it may be difficult to determine the user's intention to stop scrolling using the deceleration calculation result. Therefore, when low-speed scrolling is being performed, the electronic device (300) counts scroll sections where the movement speed is smaller than the first threshold value, and if the number of the counted scroll sections exceeds the third threshold value, it can determine that there is an intention to stop scrolling. The third threshold value can be predefined as a reference count for determining the user's intention to stop scrolling. The electronic device (300) can additionally check for scroll sections where the movement speed is greater than the first threshold while counting scroll sections smaller than the first threshold, and if it checks that the checked scroll section exceeds the fourth threshold, it can reset the count to 0 and count again from the beginning for touch movements detected thereafter.The above fourth threshold value can be predefined as a reference number for determining the user's intention to continue scrolling.
[0092] If there is an intention to end the scrolling as a result of checking operation 630 (operation 630-yes), the electronic device (300) can set the touch slope check item to true in operation 635 and set the scroll movement value to 0 so that scrolling does not occur on the first screen.
[0093] If, as a result of checking operation 630, there is no intention to end the scrolling (operation 630-No), the electronic device (300) may decide to continue scrolling the first screen. In this case, the touch slope check item may be maintained at a preset false value.
[0094] If, as a result of checking operation 610, a judgment regarding the change of the scroll state is not required (operation 610-No), the electronic device (300) decides to continue scrolling the first screen in operation 640 and can set the touch slope check item to false.
[0096] FIG. 7 is a diagram illustrating a method of disabling animation effects when an intention to end scrolling is detected, according to one embodiment. According to various embodiments, the electronic device (300) may process the touch event to end without applying animation effects related to scrolling (e.g., fling) when touch release is detected. The operations illustrated in FIG. 7 may correspond to touch slope check related operations (e.g., operations 511 to 565 of FIG. 4) that are determined on touch information acquired at specified intervals during a touch event. The operations of FIG. 7 may be performed by at least one processor included in the electronic device (300) (e.g., the processor (120) of FIG. 1 or at least one processor (320) of FIG. 3), or modules included in the electronic device (300) of FIG. 4 (e.g., a scroll determination module (420) and / or a scroll control module (430)). Depending on various embodiments, at least some of the operations shown in FIG. 7 may be performed by a touch sensor control circuit (313) included in the display module (310).
[0097] Referring to FIG. 7, in operation 710, the electronic device (300) can determine whether the type of touch information detected by the display module (e.g., the display module (160) of FIG. 1 or the display module (310) of FIG. 3) is a touch release.
[0098] If, as a result of checking operation 710, the touch information corresponds to a touch release (operation 710-Yes), the electronic device (300) can check in operation 720 whether the touch slope check item is set to true. The touch slope check item may indicate whether a judgment is performed on whether the acquired touch information exceeds the touch slope. If, as a result of checking operation 720, the touch slope check item is set to true (operation 720-No), the electronic device (300) recognizes that the user did not intend to stop scrolling on the first screen prior to the touch release and may not change the animation effect related settings. In this case, the electronic device (300) may apply an animation effect that causes the scrolling on the first screen to gradually stop in response to the touch release, and the speed at which the animation effect occurs may be determined based on the recent speed of the scroll (e.g., the average speed of a specified number of scroll sections based on the time of touch release).
[0099] If, as a result of checking operation 720, the touch slope check item is set to true (operation 720-Yes), the electronic device (300) recognizes in operation 725 that the user did not intend to stop scrolling on the first screen before the touch release, and can change the animation effect related settings. In this case, the electronic device (300) can, in operation 725, set the occurrence speed of the animation effect to 0 so that the touch event ends immediately without providing a scroll-related animation effect.
[0100] If, as a result of checking operation 710, the touch information does not correspond to touch release (operation 710-No), the electronic device (300) confirms that the touch information is related to touch movement and can terminate the judgment regarding the scroll-related animation effect provided upon touch release.
[0102] FIGS. 8A and 8B are drawings illustrating a method of processing scrolling based on the touchdown point of a touch event according to one embodiment.
[0103] In FIG. 8a, the electronic device (300) can determine whether the point where a touchdown (801) is detected while displaying the first screen (800) through a display module (e.g., the display module (160) of FIG. 1 or the display module (310) of FIG. 3) corresponds to a selected input area. The determination regarding the selected input area is explained with reference to FIG. 8b. The operations of FIG. 8b may be performed by at least one processor included in the electronic device (300) (e.g., the processor (120) of FIG. 1 or at least one processor (320) of FIG. 3), a touch sensor control circuit (e.g., the touch sensor control circuit (313) of FIG. 3) and / or modules included in the electronic device (300) of FIG. 4 (e.g., a touch event input module (410), a scroll determination module (420), a scroll control module (430), or a content control module (440)).
[0104] Referring to FIG. 8b, in operation 810, the electronic device (300) can determine whether the type of touch information detected while displaying the first screen (800) on the display panel (311) of the display module (310) is a touchdown.
[0105] If, as a result of checking operation 810, the touch information corresponds to a touchdown (operation 810-yes), the electronic device (300) can check in operation 812 whether the touchdown point (801) is an area containing a touch listener (or a listener associated with user input) (e.g., a click listener or a press listener) within the first screen (800). If, as a result of checking operation 812, an object set as a touch listener (or a listener associated with user input) is placed at the touchdown point (801) (operation 812-yes), the electronic device (300) can check in operation 820 whether the touchdown point (801) corresponds to a selection input area and set the selection input area item to true. If, as a result of checking in operation 812, no object set as a touch listener (or a listener associated with user input) is placed at the touchdown point (801) (operation 812-No), the electronic device (300) can check in operation 814 whether the touchdown point (801) is an area containing a selectable element within the first screen (800). The selectable element may refer to an element that can be selected within the first screen (800), such as an image, a video clip, an anchor, or a form. If, as a result of checking in operation 814, the selectable element is placed at the touchdown point (801) (operation 814-Yes), the electronic device (300) can check in operation 820 whether the touchdown point (801) corresponds to a selectable input area and set the selectable input area item to true.If the above selection input area item is set to true, the electronic device (300) can set the touch slope to a value greater than 0 (or default value) to determine whether the touch movement subsequently detected is an input for scrolling or an input for selecting a specific element. If, as a result of checking in operation 814, the selectable element is not placed at the touch-down point (801) (operation 814-No), the electronic device (300) can check in operation 816 whether the element at the touch-down point (801) within the first screen (800) includes a parent element. The parent element may refer to a parent element that encloses the view of the element. If, as a result of checking in operation 816, there is no parent element (operation 816-No), the electronic device (300) can check in operation 822 that the touch-down point (801) does not correspond to a selection input area and set the selection input area item to false. If the above selection input area item is set to false, the electronic device (300) sets the touch slope to 0 so that scrolling can begin immediately without checking the touch slope for subsequent touch movements. If, as a result of checking in operation 816, a parent element exists (operation 816-yes), the electronic device (300) can check whether the parent element corresponds to the selection input area in operation 818. In operation 818, the electronic device (300) can check whether the parent element corresponds to the selection input area within the first screen (800) in the same way (e.g., operations 812 to 816).
[0106] If, as a result of checking operation 810, the touch information does not correspond to a touchdown (operation 810-No), the electronic device (300) may further check in operation 830 whether the touch information corresponds to a touch movement. If, as a result of checking operation 830, the touch information corresponds to a touch movement (operation 830-Yes), the electronic device (300) may check in operation 832 whether the touch movement is an input for selecting a specific element. For example, the electronic device (300) may check whether the distance traveled by the touch movement is within the touch slope, and / or whether the point where the touch movement is detected corresponds to a selection input area. If, as a result of checking operation 832, both of the above conditions are satisfied (operation 832-Yes), the electronic device (300) may determine and process the touch movement as a touch input intended for a user's selection. If, as a result of checking operation 832, both of the above conditions are not satisfied (operation 832-No), the electronic device (300) determines in operation 834 that the touch movement is a scroll input for the first screen (800) and can perform scrolling for the first screen (800).
[0107] If, as a result of checking operation 830, the touch information does not correspond to a touch movement (operation 830-No), the electronic device (300) can check that the touch information is related to a touch release and determine that the touch event has ended and process it.
[0109] FIG. 9 is a diagram illustrating a method of processing touch information detected in a scroll area according to one embodiment. According to various embodiments, an electronic device (300) may determine whether the touch information detected in a scroll area on a display panel (e.g., the display module (160) of FIG. 1 or the display panel (311) of FIG. 3) is an input for scrolling or an input for selecting a specific element. The scroll area may be an area on the display panel (311) where scrolling is frequently identified. The operations illustrated in FIG. 9 may be performed by at least one processor included in the electronic device (300) (e.g., the processor (120) of FIG. 1 or at least one processor (320) of FIG. 3), a touch sensor control circuit (e.g., the touch sensor control circuit (313) of FIG. 3), and / or modules included in the electronic device (300) of FIG. 4 (e.g., a scroll determination module (420) and / or a scroll control module (430)).
[0110] Referring to FIG. 9, in operation 910, the electronic device (300) can detect touch information in the scroll area and determine whether the type of the touch information is a touch release.
[0111] If, as a result of checking operation 910, the touch information corresponds to a touch release (operation 910-Yes), the electronic device (300) determines to end scrolling on the first screen in operation 912 and can check in operation 914 whether the movement distance detected upon touch release is within the touch slope. If, as a result of checking operation 914, the movement distance is within the touch slope (operation 914-Yes), the electronic device (300) recognizes in operation 916 that the detected touch information is an input for selecting an object or element within the first screen and can process it as a tap event. If, as a result of checking operation 914, the movement distance exceeds the touch slope (operation 914-No), the electronic device (300) can terminate the judgment regarding the touch information without processing the touch information as a tap event.
[0112] If, as a result of checking operation 910, the touch information does not correspond to a touch release (operation 910-No), the electronic device (300) can further check in operation 920 whether the touch information corresponds to a touch movement. If, as a result of checking operation 920, the touch information corresponds to a touch movement (operation 920-Yes), the electronic device (300) can perform scrolling on the first screen in operation 922 and check in operation 924 whether the distance moved by the touch movement is within the touch slope. At this time, the electronic device (300) can increase the response speed to the touch event by performing operation 922 first and then performing operation 924. If, as a result of checking operation 924, the distance moved exceeds the touch slope (operation 924-No), the electronic device (300) can recognize that the detected touch information is an input for scrolling the first screen and process it to cancel the tap. If the result of checking operation 924 is that the travel distance is within the touch slope (operation 924-yes), the electronic device (300) can terminate the judgment on the touch information without processing the touch information as a tap cancel.
[0113] If, as a result of checking operation 920, the touch information does not correspond to a touch movement (operation 920-No), the electronic device (300) may terminate the judgment on the touch information without performing any operation.
[0115] FIGS. 10a and FIGS. 10b are drawings illustrating a method of processing scrolling by taking into account a user's touch pattern according to one embodiment.
[0116] According to various embodiments, the electronic device (300) may divide a display panel (311) included in a display module (310) into multiple regions and record a touch pattern for each of the divided regions. For example, the electronic device (300) may accumulate the number of confirmed scroll occurrences for each of the multiple regions to calculate a scroll occurrence probability for each region, and generate a scroll map such as FIG. 10a based on the calculated scroll occurrence probability for each region. For example, the electronic device (300) may define and manage a region where scrolling in the upward direction frequently occurs on the display panel (311) as a first scroll region (1001), and a region where scrolling in the downward direction frequently occurs on the display panel (311) as a second scroll region (1002). The electronic device (300) may process touch information detected in the first scroll area (1001) or the second scroll area (1002) by ignoring the touch slope or lowering the set value to perform scrolling more quickly. For example, the electronic device (300) may determine a constant K proportional to the probability of scrolling occurring in the first scroll area (1001) or the second scroll area (1002), and set the touch slope by dividing the default value of the touch slope by the determined constant K. The constant K is a natural number greater than 1, and the higher the probability of scrolling occurring at the touch-down point, the closer the value to 0 may be set as the touch slope. In one embodiment, if the touch slope is ignored or its set value is lowered, an error may occur in which the electronic device (300) determines that the touch information intended by the user as a selected input has exceeded the touch slope and does not process it as a selected action.To prevent such malfunction, the electronic device (300) can perform the operations of FIG. 9 for touch information detected in the first scroll area (1001) or the second scroll area (1002) to enable tap event processing during scrolling.
[0117] According to various embodiments, the electronic device (300) may define a region among a plurality of regions defined on a display panel (311) where the probability of scrolling occurring is significantly low as a selection input processing region. The electronic device (300) may predict in advance that the touch information detected in the selection input processing region is a touch input intended for selection. In this case, the electronic device (300) may perform a preprocessing operation on a link placed at the point where the touch information is detected (e.g., obtaining the IP address of the link by connecting to the DNS (domain name system) in advance, TCP handshaking, or prefetching operation).
[0118] According to various embodiments, the process of determining touch information using the scroll map is described with reference to FIG. 10b. The operations of FIG. 10b may be performed by at least one processor included in the electronic device (300) (e.g., processor (120) of FIG. 1 or at least one processor (320) of FIG. 3), a touch sensor control circuit (touch sensor control circuit (313) of FIG. 3), and / or modules included in the electronic device (300) of FIG. 4 (e.g., touch event input module (410), scroll determination module (420), scroll control module (430) or content control module (440)).
[0119] Referring to FIG. 10b, in operation 1010, the electronic device (300) can determine whether the type of touch information detected through the display module (310) is a touchdown.
[0120] If, as a result of checking operation 1010, the touch information corresponds to a touchdown (operation 1010-Yes), the electronic device (300) can check in operation 1012 whether the touchdown point corresponds to a scroll area defined in the scroll map. If, as a result of checking operation 1012, the touchdown point corresponds to the scroll area (operation 1012-Yes), the electronic device (300) can reset the touch slope based on the scroll occurrence probability of the scroll area in operation 1014. For example, the electronic device (300) can determine a constant K corresponding to the scroll occurrence probability of the scroll area and lower the touch slope of the corresponding scroll area by dividing the default value of the touch slope by the determined constant K to reset the touch slope. If, as a result of checking operation 1012, the touchdown point does not correspond to the scroll area (operation 1012-No), the electronic device (300) can maintain the default value (or initial state) without resetting the touch slope.
[0121] If, as a result of checking operation 1010, the touch information does not correspond to a touchdown (operation 1010-No), the electronic device (300) can check in operation 1020 whether the touch information corresponds to a touch movement. If, as a result of checking operation 1020, the touch information corresponds to a touch movement (operation 1020-Yes), the electronic device (300) can check in operation 1022 whether the distance of movement caused by the touch movement is within the touch slope. If, as a result of checking operation 1022, the distance of movement exceeds the touch slope (operation 1022-No), the electronic device (300) can perform a scroll corresponding to the touch movement in operation 1024. If, as a result of checking operation 1022, the distance of movement is within the touch slope (operation 1022-Yes), the electronic device (300) can process so as not to perform a scroll corresponding to the touch movement.
[0122] If, as a result of checking operation 1020, the touch information does not correspond to a touch movement (operation 1020-No), the electronic device (300) can check in operation 1030 whether the touch information corresponds to a touch release. If, as a result of checking operation 1030, the touch information corresponds to a touch release (operation 1030-Yes), the electronic device (300) can apply a scroll-related animation effect based on the touch release and update the scroll map in operation 1032. The update of the scroll map can be performed whenever a touch event ends. If, as a result of checking operation 1030, the touch information does not correspond to a touch release (operation 1030-No), the electronic device (300) can process the touch information to be ignored without performing any operation corresponding to the touch information.
[0124] FIG. 11 is a flowchart illustrating a method of operation of an electronic device according to one embodiment. According to one embodiment, the electronic device (300) is a device that controls a scroll state by predetermining a user intent based on a touch event, and may correspond to the electronic device (101) shown in FIG. 1 or the electronic device (300) shown in FIG. 3. The operations of FIG. 11 may be performed by at least one processor (e.g., the processor (120) of FIG. 1 or at least one processor (320) of FIG. 3) included in the electronic device (300) or a touch sensor control circuit (e.g., the touch sensor control circuit (313) of FIG. 3).
[0125] Referring to FIG. 11, in operation 1110, the electronic device (300) detects a first touch event while displaying a first screen through a display panel (e.g., the display module (160) of FIG. 1 or the display panel (311) of FIG. 3) and can set a touch slope, which is a minimum movement distance that serves as a criterion for generating scrolling. The touch event is a touch gesture input by a user and can be classified into touch down, touch move, or touch release operations. According to various embodiments, the electronic device (300) recognizes that the touch event is maintained from the time a touch down occurs until the touch is released, and can continuously check how much and in which direction the touch point moves while the touch event is maintained.
[0126] According to various embodiments, the electronic device (300) may set the touch slope to various values depending on the location where the touchdown is detected in operation 1110. For example, the electronic device (300) may check whether the touchdown point of the touch event corresponds to a selection input area within a first screen that is being displayed through a display panel (311), and may set the touch slope based on the result of the check. The selection input area may be an area containing an object set as a touch listener (or a listener associated with user input) (e.g., a click listener or a press listener) within the first screen, or a selectable element such as an image, a video clip, an anchor, or a form. The electronic device (300) can determine that the touchdown point corresponds to the selection input area if the touchdown point corresponds to the object or the selectable element, or if the parent element of the element selected by the touchdown corresponds to the object or the selectable element. If the touchdown point does not correspond to the selection input area within the first screen, there is no selectable element at the touchdown point, so the electronic device (300) can set the touch slope to 0 to initiate scrolling immediately without checking the touch slope when a touch movement is detected. If it is determined that the touchdown point corresponds to the selection input area within the first screen, the electronic device (300) can set the touch slope to a value greater than 0 to determine whether the subsequently detected touch movement is an input for scrolling or an input for selecting a specific element.In this case, the electronic device (300) may determine that the touch movement is an input for selecting a specific element if the detected touch movement distance is smaller than the set touch slope. Conversely, the electronic device (300) may determine that the touch movement is a scroll input if the detected touch movement distance is larger than the set touch slope, and may perform scrolling corresponding to the touch movement distance.
[0127] In another example, the electronic device (320) can check whether the touchdown point of the touch event corresponds to a scroll area based on a scroll map in which the user's scroll pattern is defined, and can set the touch slope based on the result of the check. The electronic device (300) can store and manage the scroll map defining the scroll area where scrolling occurs with high probability and the scroll occurrence probability of each of the multiple areas included on the display panel (311) of the display module (310) in memory (e.g., memory (130) of FIG. 1 or memory (330) of FIG. 3). When the electronic device (300) detects a touchdown of the touch event, it can load the scroll map from the memory (330) to check the scroll occurrence probability of the touchdown point or whether the touchdown point corresponds to the scroll area. When the electronic device (300) confirms that the touchdown point corresponds to the scroll area, it can set the touch slope based on the scroll occurrence probability of the touchdown point. For example, the electronic device (300) can determine a constant K proportional to the probability of scroll occurrence and set the touch slope by dividing the default value of the touch slope by the determined constant K. As a result, the higher the probability of scroll occurrence at the touch-down point, the closer the value to 0 can be set as the touch slope. If the touch-down point does not correspond to the scroll area, the electronic device (300) can determine whether to perform scrolling based on the default value without changing the setting for the touch slope.
[0128] According to one embodiment, in operation 1120, the electronic device (300) may acquire touch information associated with the current touch point at specified intervals while the touch event is maintained. The touch information may include at least one of the coordinates of the point where the touch was detected while the touch event is maintained, a moving speed or moving distance or deceleration calculated based on the current touch point. The specified interval may correspond to the refresh rate of the display panel (311). For example, if the refresh rate of the display panel (311) is 60Hz, the electronic device (300) may acquire the touch information every 16ms. As another example, if the refresh rate of the display panel (311) is 120Hz, the electronic device (300) may acquire the touch information every 8ms.
[0129] According to one embodiment, in operation 1130, the electronic device (300) can check whether the touch movement distance exceeds the set touch slope based on the acquired touch information. If the result of the check is that the touch movement distance does not exceed the touch slope, the electronic device (300) may not perform scrolling on the first screen until a touch movement exceeding the touch slope is detected. If the result of the check is that the touch movement distance exceeds the touch slope, the electronic device (300) may control the display module (310) to initiate scrolling on the first screen in response to the touch movement.
[0130] According to one embodiment, in operation 1140, the electronic device (300) can check scroll data including at least one of the movement speed, movement distance, or deceleration of the touch event based on the touch information acquired while scrolling is performed on the first screen. For example, the electronic device (300) can acquire coordinate information of points where touch movement is detected at the specified time intervals while scrolling is performed, and calculate at least one of the movement speed, movement distance, or deceleration per scroll section based on the acquired coordinate information. The scroll section may correspond to the specified time, which is the time period in which the touch information is acquired.
[0131] According to one embodiment, in operation 1150, the electronic device (300) can determine whether the scroll is terminated based on the scroll data. For example, the electronic device (300) can check the distance of the scroll section corresponding to the current touch movement point based on the scroll data and compare the checked distance with a first threshold value. The first threshold value may represent the minimum touch movement size for continuing the scroll. If the comparison result shows that the checked distance is smaller than the first threshold value, the electronic device (300) can further check whether the state of the scroll is changed. The electronic device (300) can check the first scroll section with the largest touch movement distance while scrolling is being performed on the first screen based on the touch information, and calculate the deceleration at the current touch movement point based on the first scroll section. The electronic device (300) can check the user's intention regarding whether to continue the scroll through a comparison operation of the calculated deceleration with a second threshold value. The second threshold value may represent a deceleration value defined as a criterion for determining the scroll stop section. If the calculated deceleration rate is greater than the second threshold value as a result of the above comparison, the electronic device (300) determines that the user intends to stop the scrolling and can control the display module (310) to stop the scrolling for the first screen.
[0132] According to various embodiments, the electronic device (300) can determine user intent based on the touch movement distance measured in scroll sections without measuring deceleration in low-speed scrolling situations. When a user scrolls by slowly touching, the difference in touch movement distance between the first scroll section and other scroll sections is not large, so scrolling may stop frequently. To prevent this, the electronic device (300) can count scroll sections where the movement distance confirmed based on the touch information is smaller than the first threshold while scrolling is performed on the first screen. If the electronic device (300) confirms that the number of the counted scroll sections exceeds the third threshold, it determines that there is a user intent to stop scrolling and can control the display module (310) to stop scrolling. The third threshold can be predefined as a reference count for determining the user's intent to stop scrolling. While counting scroll sections smaller than the first threshold, the electronic device (300) can additionally check for scroll sections where the confirmed movement distance is larger than the first threshold. When the electronic device (300) confirms that a scroll section larger than the first threshold exceeds the fourth threshold, it can determine the user's intention to continue scrolling and reset the count to 0. The fourth threshold can be predefined as a reference count for determining the user's intention to continue scrolling.
[0133] After operation 1150, the electronic device (300) can detect the release of the touch event. In response to detecting the release of the touch, the electronic device (300) can check the scroll state of the first screen and determine whether to apply a scroll-related animation effect based on the checked state. For example, if the electronic device (300) detects the release of the touch while scrolling the first screen, it can determine the speed of occurrence of an animation effect (e.g., fling) to be applied immediately before the end of the scroll based on the recent scroll speed (e.g., the average movement speed of a specified number of scroll sections based on the time of release of the touch). As another example, if the electronic device (300) detects the release of the touch while the scrolling of the first screen is stopped, it can determine that there was a user intention to stop the scrolling of the first screen. In this case, the electronic device (300) can determine the speed of occurrence of the animation effect to 0 so that the touch event is terminated immediately while the scrolling is stopped without applying an animation effect to the scroll.
[0135] An electronic device (e.g., electronic device (300)) according to one embodiment includes a display module (e.g., display module (310)), at least one processor (e.g., processor (320)) operatively connected to the display module, and a memory (e.g., memory (330)) operatively connected to the at least one processor. The memory may store instructions such that, in response to the at least one processor detecting a first touch event, the memory sets a touch slop that serves as a criterion for performing scrolling, acquires touch information corresponding to a current touch point at specified intervals while the first touch event is maintained, and if the touch movement distance is confirmed to exceed the touch slop based on the acquired touch information, the memory controls the initiation of scrolling for a first screen displayed on the display module, checks scroll data including at least one of the movement speed, movement distance, or deceleration of the first touch event based on the acquired touch information while the scrolling is performed, and determines whether the scrolling is terminated based on the scroll data to control the state of the scrolling for the first screen.
[0136] In one embodiment, the instructions may enable the at least one processor to check whether the touch-down point of the first touch event corresponds to a selection input area within the first screen in response to detecting the first touch event, and to set the touch slope based on the result of the check.
[0137] In one embodiment, the instructions may cause the at least one processor to set the touch slope to 0 if it is determined that the touchdown point does not correspond to the selected input area, and to set the touch slope to a value greater than 0 if it is determined that the touchdown point corresponds to the selected input area.
[0138] In one embodiment, the instructions control the at least one processor to check the distance traveled per scroll section while scrolling the first screen is performed based on the touch information, and to change the state of the scroll if the checked distance traveled is less than a first threshold value, and the scroll section may be set to correspond to the specified time.
[0139] In one embodiment, the instructions may cause the at least one processor to identify a first scroll section with the largest travel distance while scrolling the first screen is performed based on the touch information, calculate a current deceleration rate based on the first scroll section, and stop the scrolling if the calculated deceleration rate is greater than a second threshold value.
[0140] In one embodiment, the instructions may cause the at least one processor to count scroll sections where the identified travel distance is smaller than the first threshold while scrolling is performed on the first screen, and to stop the scrolling if the number of the counted scroll sections exceeds a third threshold.
[0141] In one embodiment, the instructions may cause the at least one processor to reset the count if, while counting a scroll section where the travel distance is smaller than the first threshold, a scroll section larger than the first threshold exceeds the fourth threshold.
[0142] In one embodiment, the instructions may enable the at least one processor to check the movement speed for each scroll section while scrolling the first screen is performed based on the touch information, and if the average speed calculated based on the checked movement speed is less than or equal to a specified speed, to change and set the first threshold value to less than a specified value.
[0143] In one embodiment, the instructions are such that, in response to detecting the first touch event, the at least one processor checks a scroll map stored in the memory, checks whether the touch-down point of the first touch event corresponds to a scroll area within the display module based on the scroll map, and if the touch-down point corresponds to the scroll area, sets the touch slope based on the probability of scroll occurrence at the touch-down point, and the scroll map may include scroll area-related information determined based on the probability of scroll occurrence for a plurality of areas included in the display module and the probability of scroll occurrence for each of the plurality of areas.
[0144] In one embodiment, the instructions may cause the at least one processor, when it detects the release of the first touch event, to check the scroll control state for the first screen, determine the speed of occurrence of an animation effect related to the scroll based on the checked control state, and process the first touch event as having ended.
[0145] A method of operation of an electronic device (e.g., electronic device (300)) according to another embodiment may include: an operation of setting a touch slop that serves as a scroll execution standard in response to detecting a first touch event; an operation of acquiring touch information corresponding to a current touch point at specified intervals while the first touch event is maintained; an operation of initiating scrolling on a first screen displayed on a display module (e.g., display module (310)) when it is confirmed that the touch travel distance exceeds the touch slop based on the acquired touch information; an operation of checking scroll data including at least one of the travel speed, travel distance, or deceleration of the first touch event based on the acquired touch information while the scrolling is being performed; and an operation of determining whether to end the scrolling based on the scroll data to control the state of the scrolling on the first screen.
[0146] In one embodiment, the operation of setting the touch slope may include, in response to detecting the first touch event, checking whether the touch down point of the first touch event corresponds to a selection input area within the first screen, and setting the touch slope based on the result of the check.
[0147] In one embodiment, the operation of setting the touch slope may include the operation of setting the touch slope to 0 when it is confirmed that the touchdown point does not correspond to the selected input area, and the operation of setting the touch slope to a value greater than 0 when it is confirmed that the touchdown point corresponds to the selected input area.
[0148] In one embodiment, the operation of controlling the state of scrolling for the first screen includes checking the distance traveled per scroll section while scrolling for the first screen is performed based on the touch information, and controlling the state of scrolling to change if the checked distance traveled is less than a first threshold value, and the scroll section may be set to correspond to the specified time.
[0149] In one embodiment, the operation of controlling the state of scrolling for the first screen may further include: an operation of identifying a first scroll section with the largest travel distance while scrolling for the first screen is performed based on the touch information; an operation of calculating a current deceleration rate based on the first scroll section; and an operation of controlling the scroll to stop if the calculated deceleration rate is greater than a second threshold value.
[0150] In one embodiment, the operation of controlling the state of scrolling for the first screen may further include the operation of counting scroll sections in which the identified movement distance is smaller than the first threshold while scrolling for the first screen is performed, and the operation of controlling the scrolling to stop when the number of the counted scroll sections exceeds a third threshold.
[0151] In one embodiment, the operation of controlling the state of scrolling for the first screen may further include the operation of resetting the count when a scroll section larger than the first threshold exceeds the fourth threshold while counting a scroll section where the travel distance is smaller than the first threshold.
[0152] In one embodiment, the method may further include an operation of checking the movement speed for each scroll section while scrolling the first screen is performed based on the touch information, and an operation of changing and setting the first threshold value to less than the specified value if the average speed calculated based on the checked movement speed is less than or equal to the specified speed.
[0153] In one embodiment, the operation of setting the touch slope includes: checking a scroll map stored in the memory in response to detecting the first touch event; checking whether the touch down point of the first touch event corresponds to a scroll area within the display module based on the scroll map; and if the touch down point corresponds to the scroll area, setting the touch slope based on the scroll occurrence probability of the touch down point, wherein the scroll map may include scroll area-related information determined based on the scroll occurrence probability for a plurality of areas included in the display module and the scroll occurrence probability of each of the plurality of areas.
[0154] In one embodiment, the method may further include, upon detecting the release of the first touch event, an operation to check the scroll control state for the first screen, and an operation to determine the occurrence speed of an animation effect related to the scroll based on the checked control state and to process the first touch event as having ended.
[0155] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.
[0156] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B and C," and "at least one of A, B, or C" may each include any one of the items listed together in the corresponding phrase, or any combination thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as "coupled" or "connected" to another (e.g., 2nd) component, with or without the terms "functionally" or "communicationly," it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.
[0157] As used in this document, the term "module" may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be a component formed integrally, or a minimum unit of said component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0158] Various embodiments of the present document may be implemented as software (e.g., program (140)) comprising one or more instructions stored in a storage medium (e.g., internal memory (136) or external memory (138)) readable by a machine (e.g., electronic device (101)). For example, a processor (e.g., processor (120)) of the machine (e.g., electronic device (101)) may call at least one of the one or more instructions stored in the storage medium and execute it. This enables the machine to be operated to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, "non-transient" simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.
[0159] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or distributed online (e.g., download or upload) through an application store (e.g., Play Store) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
[0160] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities. According to various embodiments, one or more of the components or operations among the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the components of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to the integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
Claim 1 An electronic device comprising: a display; at least one processor; and a memory for storing instructions, wherein the instructions are executed by the at least one processor, and the electronic device stores instructions such as detecting a touchdown point of a first touch event, determining whether the touchdown point of the first touch event is within a first area containing at least one object selectable by touch within the screen of the display, or within a second area not containing the at least one object, and if the touchdown point is within the second area, setting a touch movement threshold to a first value, and if the touchdown point is within the first area, setting the touch movement threshold to a second value greater than the first value, detecting a touch movement distance from the touchdown point, and if the touch movement distance of the first touch event exceeds the touch movement threshold, performing scrolling on the screen. Claim 2 An electronic device according to claim 1, wherein the instructions are executed by the at least one processor, and wherein the electronic device acquires touch information corresponding to a current touch point of the first touch event at specified intervals while the first touch event is maintained, checks scroll data including at least one of a movement speed, a movement distance, or a deceleration of the first touch event based on the touch information acquired while the scroll is performed, and determines whether the scroll is terminated based on the scroll data to control the state of the scroll for the screen. Claim 3 delete Claim 4 An electronic device according to claim 2, wherein the instructions are executed by the at least one processor, wherein the electronic device checks the distance traveled per scroll section while scrolling the screen is performed based on the touch information, controls the state of the scroll to change if the checked distance traveled is less than a first threshold value, and the scroll section is set to correspond to the specified time. Claim 5 An electronic device according to claim 4, wherein the instructions are executed by the at least one processor, and the electronic device identifies a first scroll section with the largest travel distance while scrolling on the screen is performed based on the touch information, calculates a current deceleration rate based on the first scroll section, and stops the scrolling if the calculated deceleration rate is greater than a second threshold value. Claim 6 An electronic device according to claim 4, wherein the instructions are executed by the at least one processor, such that the electronic device counts the number of scroll sections in which the identified travel distance is smaller than the first threshold while scrolling is performed on the screen, and stops the scrolling when the number of counted scroll sections exceeds the third threshold. Claim 7 An electronic device according to claim 6, wherein the instructions are executed by the at least one processor, such that when the number of scroll sections greater than the first threshold exceeds the fourth threshold while the electronic device is counting the number of scroll sections where the travel distance is smaller than the first threshold, the number of scroll sections is reset. Claim 8 An electronic device according to claim 4, wherein the instructions are executed by the at least one processor, and the electronic device checks the movement speed per scroll section while scrolling the screen is performed based on the touch information, and if the average speed calculated based on the checked movement speed is less than or equal to a specified speed, the first threshold value is changed and set to less than a specified value. Claim 9 An electronic device according to claim 1, wherein the instructions are executed by the at least one processor, wherein the electronic device, in response to detecting the first touch event, checks a scroll map stored in the memory, checks whether the touch down point of the first touch event corresponds to a scroll area within the display based on the scroll map, and if the touch down point corresponds to the scroll area, sets the touch movement threshold value based on the scroll occurrence probability of the touch down point, and the scroll map includes scroll area-related information determined based on the scroll occurrence probability for a plurality of areas included in the display and the scroll occurrence probability of each of the plurality of areas. Claim 10 An electronic device according to claim 1, wherein the instructions are executed by the at least one processor, and when the electronic device detects the release of the first touch event, checks the scroll control state for the screen, determines the speed of occurrence of an animation effect related to the scroll based on the checked control state, and processes the first touch event as terminated. Claim 11 A method of operating an electronic device comprising: detecting a touchdown point of a first touch event; determining whether the touchdown point of the first touch event is within a first area containing at least one object selectable by touch within a screen of a display, or within a second area not containing said at least one object; if the touchdown point is within the second area, setting a touch movement threshold to a first value; if the touchdown point is within the first area, setting the touch movement threshold to a second value greater than the first value; detecting a touch movement distance from the touchdown point; and if the touch movement distance of the touch event exceeds the touch movement threshold, performing a scroll on the screen. Claim 12 A method according to claim 11, further comprising: an operation of acquiring touch information corresponding to a current touch point of the first touch event at specified intervals while the first touch event is maintained; an operation of checking scroll data including at least one of a movement speed, a movement distance, or a deceleration of the first touch event based on the touch information acquired while the scroll is performed; and an operation of determining whether the scroll is terminated based on the scroll data to control the state of the scroll for the screen. Claim 13 delete Claim 14 A method according to claim 12, wherein the operation of controlling the state of scrolling for the screen comprises: an operation of checking the distance traveled per scroll section while scrolling for the screen is performed based on the touch information; and an operation of controlling to change the state of the scroll if the checked distance traveled is less than a first threshold value, wherein the scroll section is set to correspond to the specified time. Claim 15 A method according to claim 14, wherein the operation of controlling the state of scrolling for the screen further comprises: an operation of identifying a first scroll section with the largest movement distance while scrolling for the screen is performed based on the touch information; an operation of calculating a current deceleration rate based on the first scroll section; and an operation of controlling the scroll to stop if the calculated deceleration rate is greater than a second threshold value. Claim 16 A method according to claim 14, wherein the operation of controlling the state of scrolling for the screen further comprises: an operation of counting the number of scroll sections in which the identified movement distance is smaller than the first threshold while scrolling for the screen is performed; and an operation of controlling the scrolling to stop when the number of counted scroll sections exceeds a third threshold. Claim 17 A method according to claim 16, wherein the operation of controlling the state of scrolling for the screen further includes the operation of resetting the number of counted scroll sections when the number of scroll sections larger than the first threshold exceeds the fourth threshold while counting the number of scroll sections where the moving distance is smaller than the first threshold. Claim 18 A method according to claim 14, further comprising: an operation to check the movement speed for each scroll section while scrolling the screen is performed based on the touch information; and an operation to change and set the first threshold value to less than the specified value if the average speed calculated based on the checked movement speed is less than or equal to the specified speed. Claim 19 A method according to claim 11, comprising: checking a scroll map stored in a memory of the electronic device in response to detecting the first touch event; checking whether a touch-down point of the first touch event corresponds to a scroll area within the display based on the scroll map; and, if the touch-down point corresponds to the scroll area, setting a touch movement threshold value based on the scroll occurrence probability of the touch-down point, wherein the scroll map includes scroll area-related information determined based on a scroll occurrence probability for a plurality of areas included in the display and a scroll occurrence probability for each of the plurality of areas. Claim 20 A method according to claim 11, further comprising: an operation to check a scroll control state for the screen when the release of the first touch event is detected; and an operation to determine the speed of occurrence of an animation effect related to the scroll based on the checked control state and to process the first touch event as terminated.
Citation Information
Patent Citations
Scroll control device, terminal equipment and scroll control method
JP2013092942A
Electronic device, control method, and control program
JP2016197284A
Information processing apparatus and program
JP2021077181A