Commit Graph

4028 Commits (f1ce54891f54b4b75a7662fe08204e9d50e54e55)

Author SHA1 Message Date
Tadashi G. Takaoka 64f4915f46 am ad60fe2e: am 409731fb: Merge "Make KeyDebounce class a top-level class and rename it to PointerTracker" into gingerbread
Merge commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f'

* commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f':
  Make KeyDebounce class a top-level class and rename it to PointerTracker
2010-08-31 20:43:33 -07:00
Ken Wakasa 5d95dfc2cb am 7bb640c1: am 543dbdfd: Always present suggestion strip whenever in appropriate mode.
Merge commit '7bb640c1e06718936412af2c2198e09a57ce5124'

* commit '7bb640c1e06718936412af2c2198e09a57ce5124':
  Always present suggestion strip whenever in appropriate mode.
2010-08-31 20:43:31 -07:00
Tadashi G. Takaoka 409731fb46 Merge "Make KeyDebounce class a top-level class and rename it to PointerTracker" into gingerbread 2010-08-31 20:26:58 -07:00
Tadashi G. Takaoka 6a1514a0de Make KeyDebounce class a top-level class and rename it to PointerTracker
Bug: 2910379
Change-Id: I9503b2211b272a4a2903d0732985e5ab8ee39440
2010-09-01 12:26:32 +09:00
Ken Wakasa 543dbdfdbd Always present suggestion strip whenever in appropriate mode.
Some cleanups too.

bug: 2959293
Change-Id: Idf07fc25c5700b69b93ab4b09ce34941f0d9c157
2010-09-01 11:25:08 +09:00
Ken Wakasa 890c1d5fa3 am 5bb2e9a5: am b24cc640: Fix ArrayIndexOutOfBoundsException.
Merge commit '5bb2e9a55de237e1955ac1fd19eea3771e671afe'

* commit '5bb2e9a55de237e1955ac1fd19eea3771e671afe':
  Fix ArrayIndexOutOfBoundsException.
2010-08-31 17:22:49 -07:00
Ken Wakasa b24cc640c1 Fix ArrayIndexOutOfBoundsException.
bug: 2964045
Change-Id: I97d95181e1a6838ace9c135aa92e7f20034e821f
2010-09-01 09:11:38 +09:00
Tadashi G. Takaoka e202e5e298 am cc742449: am b57b4785: Refactor KeyDebounce class
Merge commit 'cc7424498f63712077e8e4009932b22fabdc1e38'

* commit 'cc7424498f63712077e8e4009932b22fabdc1e38':
  Refactor KeyDebounce class
2010-08-31 10:10:48 -07:00
Tadashi G. Takaoka 224453eea2 am f4230c49: am dc406a2d: Merge "Refactor key preview methods" into gingerbread
Merge commit 'f4230c498d2424e52170599da7cd231df5a9311e'

* commit 'f4230c498d2424e52170599da7cd231df5a9311e':
  Refactor key preview methods
2010-08-31 10:10:46 -07:00
satok 981ddd228d am 28f6351d: am 673aed42: Add settings button
Merge commit '28f6351df341bd27c330b79f315e7419f2f35100'

* commit '28f6351df341bd27c330b79f315e7419f2f35100':
  Add settings button
2010-08-31 10:10:15 -07:00
Tadashi G. Takaoka b57b478569 Refactor KeyDebounce class
This change moves the following methods into KeyDebounce class.
- MotionEvent handling methods (onDownEvent etc.).
- Keyboard action event generator method (detectAndSendKey).
- Multi-tap key support methods (resetMultiTap etc.).
- Key preview text generator method (getPreviewText).

The change that makes KeyDebounce a top-level class will follow.

Bug: 2910379
Change-Id: I1526c0461e247d97f0c4b3bd580330f137c787be
2010-09-01 00:18:49 +09:00
Maryam Garrett 32511ef6cb Merge "Logging for the VoiceSearch alternates" 2010-08-31 07:48:07 -07:00
Tadashi G. Takaoka dc406a2db6 Merge "Refactor key preview methods" into gingerbread 2010-08-31 02:39:41 -07:00
Tadashi G. Takaoka 2ca84dacff Refactor key preview methods
Extract key press and release handling out of previewKey() to
KeyDebouncer class. And pass Key object as argument of previewKey()
instead of key index.

Bug: 2910379
Change-Id: Ifec39cfc4845bd92da2f62eba2b26ac6a5cbb341
2010-08-31 18:39:20 +09:00
satok 673aed42c3 Add settings button
- delete unused keyboard layout

Change-Id: Iab39446653460797f1ca876a7d9a23190c3a8df6
2010-08-31 14:03:50 +09:00
Tadashi G. Takaoka 85c1c43540 am c4154ba8: am eeb77d4f: Merge "Remove mAbortKey flag completely" into gingerbread
Merge commit 'c4154ba8dec50eaf7f9d118067d3eb7d89701192'

* commit 'c4154ba8dec50eaf7f9d118067d3eb7d89701192':
  Remove mAbortKey flag completely
2010-08-30 18:29:01 -07:00
Tadashi G. Takaoka eeb77d4f6a Merge "Remove mAbortKey flag completely" into gingerbread 2010-08-30 18:19:03 -07:00
Maryam Garrett 7b9ed1aa76 Logging for the VoiceSearch alternates
Log which voice-based alternates were selected, and what
word in the recognition results were replaced.

Change-Id: I1527dc794902a18a226ca45e186ecf84841094c8

Conflicts:

	java/src/com/android/inputmethod/latin/LatinIME.java
2010-08-30 14:34:10 -04:00
Tadashi G. Takaoka ba9b24edff Remove mAbortKey flag completely
These three conditions assign true to the mAbortKey flag.
1. setKeyboard() sets the new keyboard layout.
2. long press shows the pop-up mini keyboard.
3. ACTION_CANCEL event is occurred.

In the case 1, in LatinIME so far, only "symbol key" and "language
switch" cause keyboard layout change.  In both cases, the event is
occurred in onUpEvent(), so we do not need to worry about aborting
event.

In the case 2, long press is used only to pop-up mini-keyboard and at that
time mMiniKeyboardOnScreen could be used as a flag.

In the case 3, though I'm not sure when this case occurs, in
onCancelEvent() all the things that should be canceled are canceled
in onCancelEvent().

Bug: 2910379
Change-Id: I12377c5f3e808f1c017ce980e12b1513895047bc
2010-08-31 00:43:40 +09:00
Tadashi G. Takaoka a66ccc3e8d am 1cd7d96f: am ed5ce6c1: Merge "Remove extension keyboard" into gingerbread
Merge commit '1cd7d96fe42e63577d70e911c4b5dbfd8b50bba1'

* commit '1cd7d96fe42e63577d70e911c4b5dbfd8b50bba1':
  Remove extension keyboard
2010-08-30 08:34:08 -07:00
Tadashi G. Takaoka d2a431efa7 Remove extension keyboard
Bug: 2959287
Change-Id: I344ac58b4119e96daf5928c784275ee0b7095958
2010-08-30 21:20:55 +09:00
satok 8650230abc am e975c196: am 5d55cf6d: Remove Log functions from Gingerbread
Merge commit 'e975c196c5638ac7f5a61e45100a6eba49900412'

* commit 'e975c196c5638ac7f5a61e45100a6eba49900412':
  Remove Log functions from Gingerbread
2010-08-30 02:01:20 -07:00
satok 5d55cf6dfc Remove Log functions from Gingerbread
Change-Id: I0ab19726a6bfaf14b42c05903f38dfb74cbd0d37
2010-08-30 16:32:50 +09:00
satok cb6221257a DO NOT MERGE. Remove a preference for bigram suggestion
Change-Id: I1a9142d988352abf88da5eefe1d02596c7fc2beb
2010-08-30 14:56:49 +09:00
Tadashi G. Takaoka 06123e5691 Don't re-allocate KeyDebouncer when keyboard is switched.
This change also re-orders instance variables and eliminates
unnecessary ones.

Bug: 2910379
Change-Id: I6b2217f75738fada32a33f59f0f7adba5e99dd6e
2010-08-28 01:23:01 +09:00
Tadashi G. Takaoka 00dda50efd Revert "Show key preview instantaneously"
This reverts commit 09f530e248.

Change-Id: I3106cd22cc1eac750f05bce26df6af3026dfaf86
2010-08-27 21:04:31 +09:00
Tadashi G. Takaoka 09f530e248 Show key preview instantaneously
This change will display the key board preview instantaneously when
the key is pressed.  Dismissing the key preview will be delayed
slightly after the key is released, as we do now.

Because in multi touch mode, we should instantaneously change keyboard
layout when modifier key, such as shit and symbol, is pressed.

Change-Id: I49348d563ca0f40f5a0a236bdcd0bb07eedd599b
2010-08-27 19:38:52 +09:00
Tadashi G. Takaoka 7986d78328 Merge "Disable long-press on shift and symbol keys" into gingerbread 2010-08-26 23:54:29 -07:00
Tadashi G. Takaoka cec1495071 Disable long-press on shift and symbol keys
Long-press on shift and symbol keys will conflict with press-and-hold
these keys and press normal key (a.k.a. multi touch support).

Bug: 2910379

Change-Id: I27007b55a30a3699bf63fd8f64d58c4b23d97d9f
2010-08-27 15:47:35 +09:00
satok f17a50f5a5 Merge "Not to reset the ring buffer in LatinImeLogger" into gingerbread 2010-08-26 22:42:07 -07:00
satok 975fc3cfd8 Not to reset the ring buffer in LatinImeLogger
Change-Id: I3286b2562e07d77a9dfd745ad6ec44aae4396e21
2010-08-27 14:26:58 +09:00
Tadashi G. Takaoka 830fd4af56 Merge "Refactor onModifiedTouchEvent into several methods." into gingerbread 2010-08-26 19:56:32 -07:00
Tadashi G. Takaoka bdd9c3dc4f Remove unused import statement
Change-Id: I61890a702060650369c6edf70c3de823a0fc1bf1
2010-08-27 11:11:05 +09:00
Tadashi G. Takaoka 5b6fbf9a4f Refactor onModifiedTouchEvent into several methods.
This change eliminates the need of extra MotionEvent allocation.  Also
this will lead to the easy way to handle multi touch events.

Bug: 2910379
Change-Id: Ibcfcba554b732c13105f91877b41b553ee6928ba
2010-08-27 09:59:59 +09:00
Tadashi G. Takaoka e83d7385ab Refactor getKeyIndexAndNearbyCodes into independent class
Bug: 2910379
Change-Id: Ib26a898ea108ee4292f9f91b6d7d10c1fc380fd1
2010-08-26 23:33:08 +09:00
Tadashi G. Takaoka dfbc5080a1 Refactor SwipeTracker class
This change moves SwipeTracker out from LatinKeyboardBaseView.  Also
this introduces EventBuffer class for swipe tracking buffer.

Bug: 2910379

Change-Id: I48ff714226a248ca063cbaf9755cf45e458f7402
2010-08-26 23:28:52 +09:00
satok 542f057ef6 Add a log for getting coordinates of keys
Change-Id: I57cc6fb6a9eeb65ce8c0c3c3262fd525726643e2
2010-08-26 18:08:12 +09:00
Tadashi G. Takaoka 0c54809891 Refactor gesture detector logic
GestureDetector listener's onFling method will not call detectAndSendKey
anymore.

Make gesture detector be ignoring multitouch.  Refactoring
GestureDetector out of LatinKeyboardBaseView class change will follow.

Bug: 2910379
Change-Id: I0b2a9c4cf7d432f89f9085f3c2bdf3a3757a8903
2010-08-26 15:54:50 +09:00
Tadashi G. Takaoka 0d098c514e Fix bugs in key repeat logic
Bug: 2950714
Change-Id: I3110369c085f89ee1e8f7392a9a04a6b9e377ed4
2010-08-26 12:03:17 +09:00
Tadashi G. Takaoka 05d1904ed7 Refactor SwipeTracker to top level class
Bug: 2910379
Change-Id: If0ef09d8b0e7ca1c62b4c5a31bcaa620664868f2
2010-08-25 17:21:43 +09:00
Tadashi G. Takaoka f4271e51e7 Refactor key repeating related code
This change encapsulates mInKeyRepeat (former mRepeatKeyIndex) into
UIHandler class.  Also this eliminates mCurrentKey and mLastTapTime
dependency from repeatKey method.

Bug: 2910379
Change-Id: I9351a558be2ebc04de4ebb0d323af4be33bd470c
2010-08-25 12:33:46 +09:00
Tadashi G. Takaoka 8ee1321264 Refactor long press related code
This change eliminates mCurrentKey dependency from openPopupIfRequired
method.  Also slightly cleanup onModifiedTouchEvent.

Bug: 2910379
Change-Id: I90c9b39c46c0bb32ecc6588abfc49eb60315f54c
2010-08-25 12:08:20 +09:00
Tadashi G. Takaoka edadd2661b Merge "Refactor onModifiedTouchEvent of LatinKeyboardBaseView" into gingerbread 2010-08-24 18:27:47 -07:00
Tadashi G. Takaoka 8b0cb128be Refactor onModifiedTouchEvent of LatinKeyboardBaseView
This change simplifies onModifierTouchEvent to focus on handling
motion event related to a key event.

Other refactoring will follow in order to support multi touch.

Bug: 2910379

Change-Id: I036be64168d951a535600a7910b36bc109f88490
2010-08-25 10:17:14 +09:00
satok 525141a402 Clean up LatinIME java
- remove unused code
- add @Override
- change the inappropriate cast

Change-Id: Ib25b4939e5b4273794ab0f6349776b5b62d89894
2010-08-24 12:40:00 +09:00
Ken Wakasa 78c4611719 Fix LatinIME crashing due to crash in Contacts DB
bug: 2895391
Change-Id: I3a0628942b74556f8b600b63ebc5d808fb2f0abd
2010-08-20 20:12:39 +09:00
Ken Wakasa 17dc363a63 Fix an NPE found in KeyboardSwitcher.isAlphabetMode()
Change-Id: I03d3d9b25147632d25c1502f796acad4cdaeb239
2010-08-20 18:28:22 +09:00
satok 979f869096 DO NOT MERGE. Backport LatinIME from master to Gingerbread
TODO: Cleanup will follow.

Change-Id: I4a68ba9f2f55760aa24187f1f13fdfa8a0b70963
2010-08-20 14:37:03 +09:00
Ken Wakasa 6511376ff6 am 65582531: Fix a bug in backspace handling for the "Tap again to save"
Merge commit '6558253160e2039c87f424bd814f402ecd31de3b' into gingerbread

* commit '6558253160e2039c87f424bd814f402ecd31de3b':
  Fix a bug in backspace handling for the "Tap again to save"
2010-08-05 16:37:47 -07:00
Ken Wakasa 6558253160 Fix a bug in backspace handling for the "Tap again to save"
bug: 2889273
Change-Id: I0f317e203f368f5f47738154a6dee0f556d56148
2010-08-06 01:14:09 +09:00
Amith Yamasani b1068051c7 am f0296426: Don\'t auto-select the system language in IME language selection screen.
Merge commit 'f02964264f196447b03a88591a2964b67c318718' into froyo-plus-aosp

* commit 'f02964264f196447b03a88591a2964b67c318718':
  Don't auto-select the system language in IME language selection screen.
2010-05-04 12:05:33 -07:00
Amith Yamasani f02964264f Don't auto-select the system language in IME language selection screen.
Fixes http://b/2650378

On entering the selection screen, don't add the system language in addition
to other selected languages.

Change-Id: Id7a3b45df39a8493d17be668029eee139bf00ff3
2010-05-03 14:13:34 -07:00
Amith Yamasani 335a0c5511 am 938c1782: Fix for hanging extension keyboard. Bug: 2593488
Merge commit '938c178215d38c6f085b32b0994598f9e8bc5ab5' into froyo-plus-aosp

* commit '938c178215d38c6f085b32b0994598f9e8bc5ab5':
  Fix for hanging extension keyboard. Bug: 2593488
2010-04-15 16:48:13 -07:00
Amith Yamasani 938c178215 Fix for hanging extension keyboard. Bug: 2593488
Sometimes the only motion event that is above the keyboard is the UP
event. In that case we can't expect one more event to come that will
dismiss the extension. So don't show the extension if the only Y < 0
event is an UP event.

Change-Id: I04a8b742dea03cd700006dc5df740ac7d9620c0b
2010-04-15 14:44:22 -07:00
Valentin Kravtsov b98c17a7a9 am f9d0f3a8: Fix for: For Voice IME busy circle displayed below waveform
Merge commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3' into froyo-plus-aosp

* commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3':
  Fix for: For Voice IME busy circle displayed below waveform
2010-04-14 12:01:40 -07:00
Valentin Kravtsov f9d0f3a81a Fix for: For Voice IME busy circle displayed below waveform
bugfix for: http://b/issue?id=2568048

[Sapphire] ]For Voice IME busy circle displayed below waveform.
STEPS TO REPRODUCE:
1. launch Calendar . -> Select menu -> New Event.
2.  Switch soft keyboard to Number view.
3.  Tap on mic symbol of  to speak
4. Speak any word to enter in Text field .
5. Verify busy icon ( circular icon ) displayed in "working " screen.

EXPECTED RESULTS:
 Busy circle should be displayed in center of waveform

OBSERVED RESULTS:
 Busy circle displayed below waveform

ADDITIONAL INFORMATION:
 Spoken word is enetering in text field correctly.

Change-Id: I043ce6a985f526cade0e9f63525619a92d918485
2010-04-12 21:02:27 +01:00
Amith Yamasani 97f4b4ad34 am c2b8c16b: Possible fix for monkey bug: 2529350
Merge commit 'c2b8c16bdf392c81785031483d21740c5e883046' into froyo-plus-aosp

* commit 'c2b8c16bdf392c81785031483d21740c5e883046':
  Possible fix for monkey bug: 2529350
2010-04-06 12:39:02 -07:00
Amith Yamasani 4f695092a2 am 3e0c82ec: Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
Merge commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb' into froyo-plus-aosp

* commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb':
  Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
2010-04-06 12:38:59 -07:00
Amith Yamasani c2b8c16bdf Possible fix for monkey bug: 2529350
Don't try to show the extension if the main keyboard is not showing.

Change-Id: Ic3368f48f8973dedfb1ab8f4644b0766b52aed1b
2010-04-06 11:22:19 -07:00
Amith Yamasani 3e0c82ec80 Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
This was due to the multi-touch error correction code that was recently
added. Make sure that one of the move points is in the upper 3 rows
to allow for fast swipe on spacebar.

Change-Id: I420bdb83a4cd8833c4158bc37a2d806b8c83b948
2010-04-06 11:14:03 -07:00
Jean-Baptiste Queru 443c360d0a Clarify licensing
-use AOSP copyright instead of Google
-add NOTICE and tag file

Bug: 2548782
Change-Id: If50b2e9e9cc4b4876b0d047fc9f34e2d537a6da4
2010-04-05 09:47:36 -07:00
Amith Yamasani dad0e792aa Fix for 2559069 IME ".com" should be erasable with one backspace
Change-Id: Ifef97a9b66e051fef7ca8b0a92bfe21f3d1e6cf6
2010-04-01 06:28:52 -07:00
Amith Yamasani 0fef498a07 Treat fast moves as multi-touch. Bug: 2561786
Detect sudden moves that have a large delta that would not be a typical drag
by the user when hunting for a key. Drop move events until the user releases
the touch and register both starting and ending keys instead of only the
ending key. This reduces the frequency of dropped keys on touch hardware that
isn't able to detect multi-touch reliably.

This also takes into account diagonal moves or right angled moves due to
pseudo-multi-touch.

It weakens the swipe gestures (to swipe, you'll need to swipe slowly and fully,
  otherwise it will trigger 2 keys)

Change-Id: Ieba3a0bef4c8910f0f17aa20baedb3581d1de12b
2010-03-31 15:18:17 -07:00
Amith Yamasani fbd1866424 Avoid race conditions between queries and closing of the auto_dict database.
Keep a reference to the openhelper around across locale and input language
changes. Also, share the openhelper between the queries and updates. Creating
a new one in a separate thread could cause it to be closed at the wrong time.

Monkey bugs, probably dupes.

Bug: 2560471
Bug: 2544169
Change-Id: I6eb39145de7191732ddde455728bf147a2d1ba31
2010-03-31 14:01:59 -07:00
Jean-Michel Trivi 06933183c8 Fix bug 2553592 API REVIEW: android.speech
Change 3 of 4
Notes from API Council review:
Rename RecognitionManager to SpeechRecognizer

Change-Id: Ieea0ade975b7c01f1fccb83a78a5b8f75e0c62de
2010-03-30 10:29:41 -07:00
Amith Yamasani d079b98ec4 Fix build breakage due to api change
Change-Id: I72661c51f277cb9aa3df0bd5a16756408b53ab7f
2010-03-29 18:04:13 -07:00
Amith Yamasani 0c05902e33 Don't auto-add when in suggest-only mode. Bug: 2521344
Also don't highlight quickfixes when in suggest-only mode
In general, reduce the situations where words are auto-added. It was
too eagerly adding even words that were in the dictionary.
2010-03-24 19:31:49 -07:00
Amith Yamasani 4ff60be170 Write the auto dictionary data to disk in a background thread to avoid blocking the UI thread.
Bug: 2536846

This also potentially fixes the occasional hangs on pressing space. Need to verify.
Bug: 2509010
2010-03-23 16:21:46 -07:00
Amith Yamasani bad436e93b Potential fix for extension keyboard not cleaning up bubbles sometimes.
This might also fix the keyboard closing suddenly when using the extension.
Re-enable bubble for landscape extension keyboard, since the framework can
now display it to the side.
2010-03-19 17:31:54 -07:00
Amith Yamasani 6780b898ec Fix a StringIndexOutOfBounds. Bug: 2524050 2010-03-17 21:39:02 -07:00
Amith Yamasani 1e5374e98b Remove popup for extension keyboard in landscape. bug: 2519903
Also add a summary text in the input language list for languages with
a dictionary so that users don't feel cheated when they pick a language
that doesn't happen to have a dictionary. Remove greek as it isn't an
extension of the QWERTY keyboard.
2010-03-17 17:02:28 -07:00
Amith Yamasani c3413faf92 Merge "Fix occasional correction errors in suggesting obvious corrections." 2010-03-16 12:24:13 -07:00
Maryam Garrett 4f1f2201bd Fixes the over-logging of TextModified
We were overlogging the TextMoified action because the old
implementation would log a cursor change as a text
modification. This CL logs 4 specific actions (choose
suggestion, delete text, insert text, insert punctuation)
as a text modification rather than any action in the textbox

I also add in logging of the length of the recognition result
so that we can get some more context around the scope of the
editing of the ime result.

Change-Id: I172df24ddc0a7b62bcc5ed806fd70ef7e1c42310
2010-03-15 12:18:08 -04:00
Amith Yamasani 231cacd080 Fix occasional correction errors in suggesting obvious corrections.
Bug: 2513996

The array of adjacent letters did not have the primary code in the first
position. Swap the codes around to make the primary the first one.

Change-Id: Id753254c88d440d3d76dbc048d123dfc78edf58d
2010-03-14 22:53:16 -07:00
Amith Yamasani 6c2f9f5ba7 Fix bug: 2512075 : Current input language resets to first in list on orientation change
Have separate variables for system locale and input locale.
2010-03-12 17:29:23 -08:00
Amith Yamasani 8102ae7941 2175312 : IME suggestions stay on screen after switching orientation in search dialog
Only show the candidate strip if the input view is showing. Otherwise ignore any
completions from the AutoCompleteTextView
2010-03-10 21:18:49 -08:00
Amith Yamasani 283a77f633 Load UserDictionary and AutoDictionary in a background thread.
This is to avoid ANRs during bootup, as some of the providers
may not have been initialized yet.

Refactored the ContactsDictionary and moved the async loading
code to ExpandableDictionary to share with the other dicts.

Bug: 2501133
Change-Id: I20393edb6fdf5df2f54ebac8dd04419a592177a2
2010-03-10 11:39:06 -08:00
Amith Yamasani 07b1603a3f Don't let the native code target be included twice when unbundling.
Move java code to a different directory so that the unbundled
version doesn't try to compile the native code again.

Change-Id: I05cf9e643824ddc448821f69805ccb0240c5b986
2010-03-09 15:01:09 -08:00