/aosp12/frameworks/base/services/tests/wmtests/src/com/android/server/policy/ |
H A D | SingleKeyGestureTests.java | 124 final KeyEvent keyDown = new KeyEvent(eventTime, eventTime, ACTION_DOWN, in pressKey() 135 eventTime += pressTime; in pressKey() 136 final KeyEvent keyUp = new KeyEvent(eventTime, eventTime, ACTION_UP, in pressKey() 144 final long eventTime = SystemClock.uptimeMillis(); in testShortPress() local 145 pressKey(eventTime, KEYCODE_POWER, 0 /* pressTime */); in testShortPress() 151 final long eventTime = SystemClock.uptimeMillis(); in testLongPress() local 152 pressKey(eventTime, KEYCODE_POWER, mLongPressTime); in testLongPress() 158 final long eventTime = SystemClock.uptimeMillis(); in testVeryLongPress() local 165 final long eventTime = SystemClock.uptimeMillis(); in testMultiPress() local 173 long eventTime = SystemClock.uptimeMillis(); in testNonInteractive() local [all …]
|
H A D | KeyCombinationTests.java | 153 final long eventTime = SystemClock.uptimeMillis(); in testTriggerRule() local 154 pressKeys(eventTime, KEYCODE_POWER, eventTime, KEYCODE_VOLUME_DOWN); in testTriggerRule() 157 pressKeys(eventTime, KEYCODE_VOLUME_UP, eventTime, KEYCODE_VOLUME_DOWN); in testTriggerRule() 160 pressKeys(eventTime, KEYCODE_POWER, eventTime, KEYCODE_VOLUME_UP, SCHEDULE_TIME + 50); in testTriggerRule() 169 final long eventTime = SystemClock.uptimeMillis(); in testNotTrigger_NoRule() local 170 pressKeys(eventTime, KEYCODE_BACK, eventTime, KEYCODE_VOLUME_DOWN); in testNotTrigger_NoRule() 181 final long eventTime = SystemClock.uptimeMillis(); in testNotTrigger_Interval() local 192 final long eventTime = SystemClock.uptimeMillis(); in testNotTrigger_Condition() local 195 pressKeys(eventTime, KEYCODE_VOLUME_UP, eventTime, KEYCODE_VOLUME_DOWN); in testNotTrigger_Condition() 204 final long eventTime = SystemClock.uptimeMillis(); in testNotTrigger_EarlyRelease() local [all …]
|
/aosp12/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/keyboard/internal/ |
H A D | TypingTimeRecorder.java | 32 public boolean isInFastTyping(final long eventTime) { in isInFastTyping() argument 33 final long elapsedTimeSinceLastLetterTyping = eventTime - mLastLetterTypingTime; in isInFastTyping() 41 public void onCodeInput(final int code, final long eventTime) { in onCodeInput() argument 48 || eventTime - mLastTypingTime < mStaticTimeThresholdAfterFastTyping) { in onCodeInput() 49 mLastLetterTypingTime = eventTime; in onCodeInput() 52 if (eventTime - mLastLetterTypingTime < mStaticTimeThresholdAfterFastTyping) { in onCodeInput() 54 mLastLetterTypingTime = eventTime; in onCodeInput() 57 mLastTypingTime = eventTime; in onCodeInput() 60 public void onEndBatchInput(final long eventTime) { in onEndBatchInput() argument 61 mLastBatchInputTime = eventTime; in onEndBatchInput() [all …]
|
H A D | NonDistinctMultitouchHelper.java | 50 final long eventTime = me.getEventTime(); in processMotionEvent() local 60 injectMotionEvent(action, me.getX(index), me.getY(index), downTime, eventTime, in processMotionEvent() 74 injectMotionEvent(MotionEvent.ACTION_UP, x, y, downTime, eventTime, in processMotionEvent() 89 injectMotionEvent(MotionEvent.ACTION_DOWN, x, y, downTime, eventTime, in processMotionEvent() 93 injectMotionEvent(MotionEvent.ACTION_UP, x, y, downTime, eventTime, in processMotionEvent() 105 final long downTime, final long eventTime, final PointerTracker tracker, in injectMotionEvent() argument 108 downTime, eventTime, action, x, y, 0 /* metaState */); in injectMotionEvent()
|
/aosp12/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/keyboard/ |
H A D | PointerTracker.java | 473 mDownTime = eventTime; in onDownKey() 608 onUpEvent(x, y, eventTime); in processMotionEvent() 611 onCancelEvent(x, y, eventTime); in processMotionEvent() 644 onDownEventInternal(x, y, eventTime); in onDownEvent() 672 Key key = onDownKey(x, y, eventTime); in onDownEventInternal() 776 final long eventTime) { in processDraggingFingerInToNewKey() argument 802 onUpEventInternal(x, y, eventTime); in processPhantomSuddenMoveHack() 821 onUpEventInternal(x, y, eventTime); in processProximateBogusDownMoveUpEventHack() 867 onUpEvent(x, y, eventTime); in dragFingerFromOldKeyToNewKey() 940 onUpEventInternal(x, y, eventTime); in onUpEvent() [all …]
|
/aosp12/frameworks/native/services/inputflinger/ |
H A D | InputListener.cpp | 37 : NotifyArgs(id, eventTime) {} in NotifyConfigurationChangedArgs() 44 return id == rhs.id && eventTime == rhs.eventTime; in operator ==() 57 : NotifyArgs(id, eventTime), in NotifyKeyArgs() 85 return id == rhs.id && eventTime == rhs.eventTime && readTime == rhs.readTime && in operator ==() 106 : NotifyArgs(id, eventTime), in NotifyMotionArgs() 164 bool equal = id == rhs.id && eventTime == rhs.eventTime && readTime == rhs.readTime && in operator ==() 211 return id == rhs.id && eventTime == rhs.eventTime && policyFlags == rhs.policyFlags && in operator ==() 245 return id == rhs.id && eventTime == rhs.eventTime && sensorType == rhs.sensorType && in operator ==() 264 return id == rhs.id && eventTime == rhs.eventTime && deviceId == rhs.deviceId && in operator ==() 281 return id == rhs.id && eventTime == rhs.eventTime && deviceId == rhs.deviceId; in operator ==() [all …]
|
/aosp12/frameworks/base/services/tests/servicestests/src/com/android/server/ |
H A D | GestureLauncherServiceTest.java | 276 eventTime += interval; in testInterceptPowerKeyDown_intervalInBoundsCameraPowerGestureOffInteractive() 321 eventTime += interval; in testInterceptPowerKeyDown_intervalMidBoundsCameraPowerGestureOffInteractive() 368 eventTime += interval; in testInterceptPowerKeyDown_intervalOutOfBoundsCameraPowerGestureOffInteractive() 415 eventTime += interval; in testInterceptPowerKeyDown_intervalInBoundsCameraPowerGestureOnInteractiveSetupComplete() 471 eventTime += interval; in testInterceptPowerKeyDown_fiveInboundPresses_cameraAndEmergencyEnabled_bothLaunch() 517 eventTime += interval; in testInterceptPowerKeyDown_fiveInboundPresses_cameraAndEmergencyEnabled_bothLaunch() 571 eventTime += interval; in testInterceptPowerKeyDown_fiveInboundPresses_emergencyGestureEnabled_launchesFlow() 625 eventTime += interval; in testInterceptPowerKeyDown_tenInboundPresses_emergencyGestureEnabled_keyIntercepted() 665 eventTime += interval; in testInterceptPowerKeyDown_longpress() 711 eventTime += interval; in testInterceptPowerKeyDown_intervalInBoundsCameraPowerGestureOnInteractiveSetupIncomplete() [all …]
|
/aosp12/packages/inputmethods/LatinIME/tests/src/com/android/inputmethod/keyboard/internal/ |
H A D | PointerTrackerQueueTests.java | 56 public void onPhantomUpEvent(long eventTime) { in onPhantomUpEvent() argument 58 mPhantomUpEventTime = eventTime + sPhantomUpCount; in onPhantomUpEvent() 181 final long eventTime = 123; in testReleaseAllPointers() local 183 mQueue.releaseAllPointers(eventTime); in testReleaseAllPointers() 200 final long eventTime = 123; in testReleaseAllPointersOlderThanFirst() local 202 mQueue.releaseAllPointersOlderThan(mElement1, eventTime); in testReleaseAllPointersOlderThanFirst() 219 final long eventTime = 123; in testReleaseAllPointersOlderThanLast() local 238 final long eventTime = 123; in testReleaseAllPointersOlderThanWithoutModifierMiddle() local 257 final long eventTime = 123; in testReleaseAllPointersOlderThanWithoutModifierLast() local 277 final long eventTime = 123; in testReleaseAllPointersExcept() local [all …]
|
/aosp12/frameworks/native/services/inputflinger/dispatcher/ |
H A D | Entry.cpp | 63 eventTime(eventTime), in EventEntry() 81 ConfigurationChangedEntry::ConfigurationChangedEntry(int32_t id, nsecs_t eventTime) in ConfigurationChangedEntry() argument 82 : EventEntry(id, Type::CONFIGURATION_CHANGED, eventTime, 0) {} in ConfigurationChangedEntry() 93 : EventEntry(id, Type::DEVICE_RESET, eventTime, 0), deviceId(deviceId) {} in DeviceResetEntry() 106 : EventEntry(id, Type::FOCUS, eventTime, POLICY_FLAG_PASS_TO_USER), in FocusEntry() 138 : EventEntry(id, Type::DRAG, eventTime, POLICY_FLAG_PASS_TO_USER), in DragEntry() 156 : EventEntry(id, Type::KEY, eventTime, policyFlags), in KeyEntry() 204 : EventEntry(id, Type::MOTION, eventTime, policyFlags), in MotionEntry() 243 deviceId, eventTime, source, displayId, in getDescription() 265 : EventEntry(id, Type::SENSOR, eventTime, policyFlags), in SensorEntry() [all …]
|
H A D | Entry.h | 46 nsecs_t eventTime; member 71 EventEntry(int32_t id, Type type, nsecs_t eventTime, uint32_t policyFlags); 79 explicit ConfigurationChangedEntry(int32_t id, nsecs_t eventTime); 88 DeviceResetEntry(int32_t id, nsecs_t eventTime, int32_t deviceId); 99 FocusEntry(int32_t id, nsecs_t eventTime, sp<IBinder> connectionToken, bool hasFocus, 109 PointerCaptureChangedEntry(int32_t id, nsecs_t eventTime, const PointerCaptureRequest&); 120 DragEntry(int32_t id, nsecs_t eventTime, sp<IBinder> connectionToken, bool isExiting, float x, 150 KeyEntry(int32_t id, nsecs_t eventTime, int32_t deviceId, uint32_t source, int32_t displayId, 179 MotionEntry(int32_t id, nsecs_t eventTime, int32_t deviceId, uint32_t source, int32_t displayId, 201 SensorEntry(int32_t id, nsecs_t eventTime, int32_t deviceId, uint32_t source, [all …]
|
H A D | LatencyTracker.cpp | 43 static bool isMatureEvent(nsecs_t eventTime, nsecs_t now) { in isMatureEvent() argument 44 std::chrono::duration age = std::chrono::nanoseconds(now) - std::chrono::nanoseconds(eventTime); in isMatureEvent() 69 void LatencyTracker::trackListener(int32_t inputEventId, bool isDown, nsecs_t eventTime, in trackListener() argument 71 reportAndPruneMatureRecords(eventTime); in trackListener() 81 eraseByKeyAndValue(mEventTimes, eventTime, inputEventId); in trackListener() 84 mTimelines.emplace(inputEventId, InputEventTimeline(isDown, eventTime, readTime)); in trackListener() 85 mEventTimes.emplace(eventTime, inputEventId); in trackListener()
|
H A D | InputEventTimeline.cpp | 67 InputEventTimeline::InputEventTimeline(bool isDown, nsecs_t eventTime, nsecs_t readTime) in InputEventTimeline() argument 68 : isDown(isDown), eventTime(eventTime), readTime(readTime) {} in InputEventTimeline() 83 return isDown == rhs.isDown && eventTime == rhs.eventTime && readTime == rhs.readTime; in operator ==()
|
/aosp12/frameworks/base/services/tests/servicestests/res/raw/ |
H A D | a11y_three_finger_swipe_down_gesture.log | 2 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=5273700, downTim… 3 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=0, eventTime=5273700, downTim… 4 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=0, eventTime=5273709, downTim… 6 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273715, downTim… 7 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273725, downTim… 8 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273734, downTim… 9 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273741, downTim… 10 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273750, downTim… 11 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=3, historySize=0, eventTime=5273758, downTim… 28 …, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=2, historySize=0, eventTime=5273895, downTim… [all …]
|
/aosp12/frameworks/native/libs/input/ |
H A D | VelocityTracker.cpp | 215 mLastEventTime = eventTime; in addMovement() 348 if (mMovements[mIndex].eventTime != eventTime) { in addMovement() 362 movement.eventTime = eventTime; in addMovement() 611 nsecs_t age = newestMovement.eventTime - movement.eventTime; in getEstimator() 706 float ageMillis = (mMovements[mIndex].eventTime - mMovements[index].eventTime) in chooseWeight() 728 float ageMillis = (mMovements[mIndex].eventTime - mMovements[index].eventTime) in chooseWeight() 890 movement.eventTime = eventTime; in addMovement() 945 nsecs_t duration = movement.eventTime - oldestMovement.eventTime; in getEstimator() 1000 if (mMovements[mIndex].eventTime != eventTime) { in addMovement() 1014 movement.eventTime = eventTime; in addMovement() [all …]
|
H A D | VelocityControl.cpp | 52 void VelocityControl::move(nsecs_t eventTime, float* deltaX, float* deltaY) { in move() argument 54 if (eventTime >= mLastMovementTime + STOP_TIME) { in move() 57 (eventTime - mLastMovementTime) * 0.000001f); in move() 62 mLastMovementTime = eventTime; in move() 69 mVelocityTracker.addMovement(eventTime, BitSet32(BitSet32::valueForBit(0)), {mRawPosition}); in move()
|
/aosp12/frameworks/base/packages/SystemUI/tests/src/com/android/systemui/classifier/ |
H A D | ClassifierTest.java | 84 protected MotionEvent appendDownEvent(float x, float y, long eventTime) { in appendDownEvent() argument 85 return appendMotionEvent(MotionEvent.ACTION_DOWN, x, y, eventTime); in appendDownEvent() 92 protected MotionEvent appendMoveEvent(float x, float y, long eventTime) { in appendMoveEvent() argument 93 return appendMotionEvent(MotionEvent.ACTION_MOVE, x, y, eventTime); in appendMoveEvent() 101 protected MotionEvent appendUpEvent(float x, float y, long eventTime) { in appendUpEvent() argument 102 return appendMotionEvent(MotionEvent.ACTION_UP, x, y, eventTime); in appendUpEvent() 107 long eventTime = mMotionEvents.isEmpty() ? 1 : mMotionEvents.get( in appendMotionEvent() local 109 return appendMotionEvent(actionType, x, y, eventTime); in appendMotionEvent() 112 private MotionEvent appendMotionEvent(int actionType, float x, float y, long eventTime) { in appendMotionEvent() argument 116 MotionEvent motionEvent = MotionEvent.obtain(1, eventTime, actionType, x, y, in appendMotionEvent()
|
/aosp12/frameworks/base/test-runner/src/android/test/ |
H A D | TouchUtils.java | 277 long eventTime = SystemClock.uptimeMillis(); in tapView() local 284 eventTime = SystemClock.uptimeMillis(); in tapView() 291 eventTime = SystemClock.uptimeMillis(); in tapView() 317 long eventTime = SystemClock.uptimeMillis(); in touchAndCancelView() local 324 eventTime = SystemClock.uptimeMillis(); in touchAndCancelView() 352 long eventTime = SystemClock.uptimeMillis(); in clickView() local 360 eventTime = SystemClock.uptimeMillis(); in clickView() 367 eventTime = SystemClock.uptimeMillis(); in clickView() 420 eventTime = SystemClock.uptimeMillis(); in longClickView() 433 eventTime = SystemClock.uptimeMillis(); in longClickView() [all …]
|
/aosp12/frameworks/native/include/input/ |
H A D | VelocityTracker.h | 99 void addMovement(nsecs_t eventTime, BitSet32 idBits, const std::vector<Position>& positions); 151 virtual void addMovement(nsecs_t eventTime, BitSet32 idBits, 183 void addMovement(nsecs_t eventTime, BitSet32 idBits, 197 nsecs_t eventTime; member 226 void addMovement(nsecs_t eventTime, BitSet32 idBits, 244 void initState(State& state, nsecs_t eventTime, float xpos, float ypos) const; 245 void updateState(State& state, nsecs_t eventTime, float xpos, float ypos) const; 260 void addMovement(nsecs_t eventTime, BitSet32 idBits, 275 nsecs_t eventTime; member 295 void addMovement(nsecs_t eventTime, BitSet32 idBits, [all …]
|
/aosp12/frameworks/native/services/inputflinger/include/ |
H A D | InputListener.h | 35 nsecs_t eventTime; member 37 inline NotifyArgs() : id(0), eventTime(0) {} in NotifyArgs() 39 inline explicit NotifyArgs(int32_t id, nsecs_t eventTime) : id(id), eventTime(eventTime) {} in NotifyArgs() 54 NotifyConfigurationChangedArgs(int32_t id, nsecs_t eventTime); 80 NotifyKeyArgs(int32_t id, nsecs_t eventTime, nsecs_t readTime, int32_t deviceId, 130 NotifyMotionArgs(int32_t id, nsecs_t eventTime, nsecs_t readTime, int32_t deviceId, 160 NotifySensorArgs(int32_t id, nsecs_t eventTime, int32_t deviceId, uint32_t source, 181 NotifySwitchArgs(int32_t id, nsecs_t eventTime, uint32_t policyFlags, uint32_t switchValues, 201 NotifyDeviceResetArgs(int32_t id, nsecs_t eventTime, int32_t deviceId); 219 NotifyPointerCaptureChangedArgs(int32_t id, nsecs_t eventTime, const PointerCaptureRequest&);
|
/aosp12/frameworks/base/services/core/java/com/android/server/policy/ |
H A D | SingleKeyGestureDetector.java | 153 void onLongPress(long eventTime) {} in onLongPress() argument 165 void onVeryLongPress(long eventTime) {} in onVeryLongPress() argument 241 final long eventTime = event.getEventTime(); in interceptKeyDown() local 245 eventTime); in interceptKeyDown() 252 eventTime); in interceptKeyDown() 267 mActiveRule.onMultiPress(eventTime, mKeyPressCounter + 1); in interceptKeyDown() 365 final long eventTime = (long) msg.obj; in handleMessage() local 372 mActiveRule.onLongPress(eventTime); in handleMessage() 380 mActiveRule.onVeryLongPress(eventTime); in handleMessage() 388 mActiveRule.onPress(eventTime); in handleMessage() [all …]
|
/aosp12/frameworks/base/core/tests/coretests/src/android/view/ |
H A D | PinchZoomAction.java | 82 long eventTime = startTime; in sendPinchZoomAction() local 86 eventTime, MotionEvent.ACTION_DOWN, 1, pointerProperties, pointerCoords, in sendPinchZoomAction() 89 eventTime = SystemClock.uptimeMillis(); in sendPinchZoomAction() 90 final MotionEvent secondFingerEvent = MotionEvent.obtain(startTime, eventTime, in sendPinchZoomAction() 123 eventTime = SystemClock.uptimeMillis(); in sendPinchZoomAction() 130 final MotionEvent event = MotionEvent.obtain(startTime, eventTime, in sendPinchZoomAction() 147 eventTime = SystemClock.uptimeMillis(); in sendPinchZoomAction() 150 final MotionEvent secondFingerUpEvent = MotionEvent.obtain(startTime, eventTime, in sendPinchZoomAction() 163 eventTime = SystemClock.uptimeMillis(); in sendPinchZoomAction() 165 final MotionEvent firstFingerUpEvent = MotionEvent.obtain(startTime, eventTime, in sendPinchZoomAction()
|
/aosp12/packages/inputmethods/LatinIME/java/src/com/android/inputmethod/accessibility/ |
H A D | MoreKeysKeyboardAccessibilityDelegate.java | 72 final long eventTime = event.getEventTime(); in onHoverEnter() local 73 mKeyboardView.onDownEvent(x, y, pointerId, eventTime); in onHoverEnter() 83 final long eventTime = event.getEventTime(); in onHoverMove() local 84 mKeyboardView.onMoveEvent(x, y, pointerId, eventTime); in onHoverMove() 101 final long eventTime = event.getEventTime(); in onHoverExit() local 109 mKeyboardView.onUpEvent(x, y, pointerId, eventTime); in onHoverExit()
|
/aosp12/packages/modules/StatsD/statsd/src/metrics/duration_helper/ |
H A D | MaxDurationTracker.cpp | 60 const int64_t eventTime, const ConditionKey& conditionKey) { in noteStart() argument 85 duration.lastStartTime = eventTime; in noteStart() 86 startAnomalyAlarm(eventTime); in noteStart() 93 void MaxDurationTracker::noteStop(const HashableDimensionKey& key, const int64_t eventTime, in noteStop() argument 109 stopAnomalyAlarm(eventTime); in noteStop() 111 int64_t durationTime = eventTime - duration.lastStartTime; in noteStop() 113 (long long)duration.lastStartTime, (long long)eventTime, in noteStop() 119 startAnomalyAlarm(eventTime); in noteStop() 154 void MaxDurationTracker::noteStopAll(const int64_t eventTime) { in noteStopAll() argument 160 noteStop(key, eventTime, true); in noteStopAll()
|
/aosp12/frameworks/native/services/inputflinger/tests/ |
H A D | LatencyTracker_test.cpp | 102 << expectedTimeline.eventTime; in assertReceivedTimelines() 113 << receivedTimeline.eventTime; in assertReceivedTimelines() 153 mTracker->trackListener(inputEventId, expected.isDown, expected.eventTime, expected.readTime); in TEST_F() 192 mTracker->trackListener(inputEventId1, timeline1.isDown, timeline1.eventTime, in TEST_F() 195 mTracker->trackListener(inputEventId2, timeline2.isDown, timeline2.eventTime, in TEST_F() 220 mTracker->trackListener(i /*inputEventId*/, timeline.isDown, timeline.eventTime, in TEST_F() 223 InputEventTimeline{timeline.isDown, timeline.eventTime, timeline.readTime}); in TEST_F() 248 mTracker->trackListener(inputEventId, expected.isDown, expected.eventTime, expected.readTime); in TEST_F() 250 InputEventTimeline{expected.isDown, expected.eventTime, expected.readTime}); in TEST_F()
|
/aosp12/frameworks/base/core/tests/coretests/src/android/widget/ |
H A D | EditorCursorDragTest.java | 579 long eventTime = handleDownTime; in testCursorDrag_multiTouch() local 583 long cursorDownTime = eventTime++; in testCursorDrag_multiTouch() 585 tv, MotionEvent.ACTION_DOWN, cursorDownTime, eventTime++, 1, in testCursorDrag_multiTouch() 588 tv, MotionEvent.ACTION_MOVE, cursorDownTime, eventTime++, 1, in testCursorDrag_multiTouch() 591 tv, MotionEvent.ACTION_UP, cursorDownTime, eventTime++, 1, in testCursorDrag_multiTouch() 666 long eventTime = downTime; in dragDownUntilLineChange() local 683 dispatchTouchEvent(view, upEvent(view, downTime, eventTime, startX, startY)); in dragDownUntilLineChange() 688 View view, int action, long downTime, long eventTime, float x, float y) { in obtainTouchEvent() argument 694 MotionEvent.obtain(downTime, eventTime, action, rawX, rawY, 0); in obtainTouchEvent() 710 downTime, eventTime, action, 1, new int[] {pointerId}, in obtainTouchEventWithPointerId() [all …]
|