Jean Chalard
059e084e98
Merge "Reject a previously user-refused suggestion."
2013-04-15 07:45:34 +00:00
Jean Chalard
d40f3f6bc1
Reject a previously user-refused suggestion.
...
If the user gestures a word, then hits backspace in
disapproval, and gestures about the same thing again,
make sure that we don't suggest the same thing again.
Bug: 7549311
Change-Id: I793bc4df7c3841fa8f2f4146707c26e873f374c1
2013-04-15 16:36:44 +09:00
Tadashi G. Takaoka
4b6756db3c
Merge "Remove unnecessary harmful finish() from SettingsActivity"
2013-04-15 07:32:05 +00:00
Tadashi G. Takaoka
216fb6a042
Remove unnecessary harmful finish() from SettingsActivity
...
Bug: 8560722
Change-Id: I825b135bd13aca17e712330660978b834648dbc3
2013-04-15 16:26:40 +09:00
Jean Chalard
673ebb4ede
Merge "Update dictionaries"
2013-04-15 07:23:00 +00:00
Tadashi G. Takaoka
1ec4c07a13
Merge "Ignore modifier key while sliding key input"
2013-04-15 06:19:10 +00:00
Tadashi G. Takaoka
f224941c37
Merge "Suppress calling onPressKey and onReleaseKey while detecting gesture"
2013-04-15 06:18:48 +00:00
Tadashi G. Takaoka
29105a725d
Add preference dependency to gesture input related options
...
Bug: 8613600
Change-Id: I279d3264080aede59203205c45763c7f8ff08ae6
2013-04-15 15:07:49 +09:00
Jean Chalard
da175bdcb1
Update dictionaries
...
>>> dictionaries/en_GB_wordlist.combined.gz
Header :
date : 1355802832 <=> 1366003032
version : 29 <=> 31
Body :
Deleted: HTTP 95
Deleted: WWW 72
Added: mm 135
>>> dictionaries/en_US_wordlist.combined.gz
Header :
date : 1355112451 <=> 1366003070
version : 28 <=> 31
Body :
Deleted: HTTP 95
Deleted: WWW 71
Added: mm 135
>>> dictionaries/en_wordlist.combined.gz
Header :
date : 1355802851 <=> 1366003861
version : 29 <=> 31
Body :
Deleted: HTTP 95
Deleted: WWW 71
Added: mm 135
>>> dictionaries/fr_wordlist.combined.gz
Header :
date : 1357617878 <=> 1366003217
version : 29 <=> 31
Body :
Not a word: re false -> true
Shortcut added: re le 15
>>> dictionaries/nb_wordlist.combined.gz
Header :
date : 1355802836 <=> 1366003450
version : 29 <=> 31
Body :
Freq changed: iPhone 91 -> 30
Added: app 30
>>> dictionaries/ru_wordlist.combined.gz
Header :
date : 1358763720 <=> 1366003693
version : 30 <=> 31
Body :
Freq changed: за 140 -> 181
Freq changed: не 140 -> 191
Freq changed: про 131 -> 151
Freq changed: эры 125 -> 140
>>> dictionaries/sv_wordlist.combined.gz
Header :
date : 1355802856 <=> 1366003804
version : 29 <=> 31
Body :
Added: vi 180
>>> java/res/raw/main_en.dict
Header :
date : 1355802851 <=> 1366003861
version : 29 <=> 31
Body :
Deleted: HTTP 95
Deleted: WWW 71
Added: mm 135
>>> java/res/raw/main_fr.dict
Header :
date : 1357617878 <=> 1366003217
version : 29 <=> 31
Body :
Not a word: re false -> true
Shortcut added: re le 15
>>> java/res/raw/main_ru.dict
Header :
date : 1358763720 <=> 1366003693
version : 30 <=> 31
Body :
Freq changed: за 140 -> 181
Freq changed: не 140 -> 191
Freq changed: про 131 -> 151
Freq changed: эры 125 -> 140
Bug: 8560415
Bug: 7556679
Change-Id: If1c628edcb1cc5efd67e1715acf94f19c0eb4643
2013-04-15 14:51:02 +09:00
Tadashi G. Takaoka
8dfbb740e1
Ignore modifier key while sliding key input
...
Bug: 8284624
Change-Id: I839d7a769d98f29be647dbe511ba3f73ca44446d
2013-04-15 14:39:02 +09:00
Tadashi G. Takaoka
e2af9b7eb5
Merge "Reset vertical correction when more suggestions are in modal mode"
2013-04-15 04:57:33 +00:00
Tadashi G. Takaoka
51c38a441a
Reset vertical correction when more suggestions are in modal mode
...
Bug: 8605150
Change-Id: Iadbebfb80e765c97e58e8524eb87419f2a9e41d4
2013-04-15 13:56:03 +09:00
Jean Chalard
03d1dff38d
Merge "Fix Binary dict tests"
2013-04-15 03:53:54 +00:00
Jean Chalard
c2e9c511cb
Fix Binary dict tests
...
There are two problems here. The first one is the tests would send
an invalid unicode character. Although we could want dicttool to
handle this more gracefully, it's fine for now.
The second problem is much more serious. If a node has more than
128 children, then the java code will crash trying to read the
dictionary back because of a bug that this change fixes. In
theory, it's possible that happens when we try to load the user
history dictionary back from the disk - native code is not affected
so there is no other point that may cause a problem.
In the practice, that means you'd need to have 129 words with a
common prefix (including empty string) but all different after
this. It's almost impossible with Google Keyboard since there are
only so many keys on the keyboard that you can make a word out
of, and then again you'd have to do it repeatedly until it
actually enters the user history dictionary, wait for it to get
saved on the disk.
The bad news is, if you manage to get this far, the keyboard will
crash every time and won't be able to get up until you clear
data for the package.
The good news is, the dictionary itself is not corrupted and only
the reading code is wrong. So updating to a newer version would
actually even recover from this situation.
All in all, considering how almost-impossible this is to trigger,
I don't think even a single user actually did hit this bug.
Bug: 8583091
Change-Id: Iabb2a7f47cbd9ed3193d2a3487318d280753e071
2013-04-15 12:48:16 +09:00
Tadashi G. Takaoka
a91da76683
Suppress calling onPressKey and onReleaseKey while detecting gesture
...
Bug: 8284624
Change-Id: I14470bb2373965aefa921b2c94948450bfa438e3
2013-04-15 10:59:54 +09:00
Baligh Uddin
bfedad238f
Merge "Import translations. DO NOT MERGE"
2013-04-12 23:56:49 +00:00
Baligh Uddin
8515649312
Import translations. DO NOT MERGE
...
Change-Id: I2cb68d3f0804a0c9990916a89e079510b465253f
Auto-generated-cl: translation import
2013-04-12 13:26:13 -07:00
Baligh Uddin
f2ab0adc5e
Import translations. DO NOT MERGE
...
Change-Id: Ie74fdb8041ac5d7eb5d15a49f9aac834751cc9c2
Auto-generated-cl: translation import
2013-04-12 13:19:32 -07:00
Kurt Partridge
ededdc6a8b
Merge "Avoid NPE"
2013-04-12 18:10:49 +00:00
Jean Chalard
2cd1136b8e
Merge "Remove the dialog to insert words to the dictionary."
2013-04-12 12:33:24 +00:00
Jean Chalard
91bcf5eb5d
Merge "Restart suggestions when the cursor moves."
2013-04-12 12:27:50 +00:00
Jean Chalard
02ce3dc2d1
Fix a bug with bad application completions
...
Bug: 8561056
Change-Id: I91fb0ac76dabfc841bafc0e2c0ea9f63e6f604f9
2013-04-12 20:53:06 +09:00
Jean Chalard
6a114fa700
Restart suggestions when the cursor moves.
...
This uses the old suggestions. It does not try to recompute
new suggestions if there are no old suggestions yet: this is
coming in a later change.
If there are no suggestions, this shows the word itself
as a suggestion.
Bug: 8084810
Change-Id: I4c2e25df0ff3673be1825f57a0c19a9d23d47a48
2013-04-12 20:49:03 +09:00
Jean Chalard
d24f939712
Merge "Make shortcut-only user dict entry non-words."
2013-04-12 11:02:00 +00:00
Jean Chalard
fb5869e9ff
Merge "Add a class to encapsulate getting the metadata URI"
2013-04-12 11:01:36 +00:00
Jean Chalard
6a2a4b8e4d
Make shortcut-only user dict entry non-words.
...
Bug: 7369456
Change-Id: Iecd6f6d617f31bd2aa6749516711aeb1f0549622
2013-04-12 16:17:09 +09:00
Jean Chalard
1a51833828
Remove the dialog to insert words to the dictionary.
...
Bug: 8562529
Change-Id: Ibd853f0cb995e7fb35f8730eafcef73ead58c869
2013-04-12 15:58:50 +09:00
Jean Chalard
d0623ad7f3
Merge "Move some values to a place where they are easier to override"
2013-04-12 02:53:41 +00:00
Kurt Partridge
2927223edd
Merge "Better isolate ResearchLogging data"
2013-04-11 21:56:01 +00:00
Jean Chalard
8987cccf89
Add a class to encapsulate getting the metadata URI
...
Bug: 8376173
Change-Id: Icaac8ad412e0180c44e6a955943e3b208981b2ea
2013-04-11 17:52:16 +09:00
Jean Chalard
7ad078e89c
Move some values to a place where they are easier to override
...
Bug: 8418765
Change-Id: Iff0edd4ed8da9d0d1a6fb9545224b232ba374469
2013-04-11 17:35:23 +09:00
Tadashi G. Takaoka
cd692be1e1
Merge "Change the default vibration duration to 20msec"
2013-04-11 08:15:29 +00:00
Jean Chalard
b5d5190deb
Merge "Add some utility functions."
2013-04-11 07:35:22 +00:00
Tadashi G. Takaoka
e1416b4399
Change the default vibration duration to 20msec
...
Bug: 8556975
Change-Id: Ia6a0fe230585c9826199a0696fb0c1367e917134
2013-04-11 16:30:32 +09:00
Jean Chalard
1cbb0b8f2a
Add some utility functions.
...
Bug: 7657025
Change-Id: I4889721b5348c77ed56c5157557e9988dea48a02
2013-04-11 16:16:19 +09:00
Tadashi G. Takaoka
4f5f81d5f7
Reorder advanced settings menu
...
Bug: 8247224
Change-Id: I339f285304824b778635f435d8587893fc241c4e
2013-04-11 15:54:38 +09:00
Tadashi G. Takaoka
bd8e92d843
Add debug message to detect unusual zero width condition
...
Bug: 8452013
Change-Id: I0169dc6b0d08d1b4d9e01a5fa2ad01e9db292bda
2013-04-11 15:08:36 +09:00
Tadashi G. Takaoka
f67a388197
Merge "Add TypefaceUtils"
2013-04-11 05:32:58 +00:00
Tadashi G. Takaoka
08ae0d5ca0
Add TypefaceUtils
...
Change-Id: I2d939bc1e3279253902b28ff12bbf7861716b64d
2013-04-11 14:27:42 +09:00
Tadashi G. Takaoka
6d0027a46a
Merge "Use SparseIntArray instead of TreeMap<Integer, Integer>"
2013-04-11 05:06:35 +00:00
Tadashi G. Takaoka
cee512b63e
Merge "More precise geometry checking for more keys keyboard"
2013-04-11 03:51:42 +00:00
Jean Chalard
3722f0877e
Merge "Fix two bugs in dicttool"
2013-04-11 03:07:30 +00:00
Tadashi G. Takaoka
a4463d7a9a
More precise geometry checking for more keys keyboard
...
Bug: 8484528
Change-Id: I0dd09530a5262fee9c19bb0f11d5830b00306944
2013-04-11 10:44:54 +09:00
Kurt Partridge
cdaee868a3
Merge "Preserve a class for testing"
2013-04-10 23:45:33 +00:00
Kurt Partridge
3684036eed
Preserve a class for testing
...
Addresses b/8583091
Change-Id: I89605223784312d9572dfc7c8aaa7e5eba44c4f6
2013-04-10 16:40:17 -07:00
Kurt Partridge
099dd3f277
Merge "Better release build reporting"
2013-04-10 22:51:21 +00:00
Baligh Uddin
cc42e139c3
Import translations. DO NOT MERGE
...
Change-Id: Icb4c4f32b1549f3d98b99a48b7c2f1b0de1b5a04
Auto-generated-cl: translation import
2013-04-10 13:25:52 -07:00
Baligh Uddin
58df3cfaee
Import translations. DO NOT MERGE
...
Change-Id: Iafc0a5506abef8e709d76ebf4600bacae7dd1e00
Auto-generated-cl: translation import
2013-04-10 13:21:21 -07:00
Kurt Partridge
6108624a00
Better isolate ResearchLogging data
...
Calls to LatinIME#onStartInputViewInternal log important information
about the context in which an IME is used. This is reported as a
single LogStatement. Previously, this was not placed into a separate
LogUnit, and was mixed in with general word data. This change wraps
this LogStatement in its own LogUnit.
Change-Id: I0fecd41c8a1de622a764cc4b5d6902336697046c
2013-04-10 11:53:38 -07:00
Kurt Partridge
dfa5628cd3
Better release build reporting
...
The ResearchLogger reports whether a build is a release build or not
to avoid polluting data with IME debugging work by developers.
Previously this was done by checking a constant flag, which was also
serving the dual purpose of masking out debug code in release builds.
This change introduces a heuristic to determine whether a build was
created by a developer (using the package versionName), and annotating
the data sent to the server appropriately.
Change-Id: Icbad17c66b703cabf6d23d05e2c7c41bcceaae45
2013-04-10 11:52:37 -07:00
Jean Chalard
ca0fdbbe2e
Fix two bugs in dicttool
...
Both bugs only affect debug mode. One has the wrong object tested
with equals, the other has the iteration failing in some cases.
Change-Id: Ie9100d257a3f9e3be340cf3e38116f63417bdc1a
2013-04-10 22:10:31 +09:00
Jean Chalard
fb3e805722
Merge "Fix a bug where a space would not be inserted before a gesture"
2013-04-10 11:19:31 +00:00
Jean Chalard
30b8004b56
Fix a bug where a space would not be inserted before a gesture
...
Bug: 8583675
Change-Id: I14924fef5663f48481994c02c56be45f9f85be65
2013-04-10 20:10:28 +09:00
Tadashi G. Takaoka
c7d4158979
Merge "Use private object as a lock instead of synchronized method"
2013-04-10 09:56:27 +00:00
Tadashi G. Takaoka
12e77de212
Merge "Use private lock object instead of synchronized method"
2013-04-10 09:35:12 +00:00
Tadashi G. Takaoka
1e256f5888
Merge "Protect simultaneously modifying gesture preview data"
2013-04-10 09:34:59 +00:00
Tadashi G. Takaoka
951ea3c06d
Use private object as a lock instead of synchronized method
...
Change-Id: I0b9a935d8c97ddfb18ab7950a9d6bf542863072a
2013-04-10 18:34:01 +09:00
Tadashi G. Takaoka
ce811f50d2
Use private lock object instead of synchronized method
...
Change-Id: Ifc62bacbd0583a7d102009681a94bdd9ccff7d47
2013-04-10 18:27:11 +09:00
Tadashi G. Takaoka
ad205b2e3f
Protect simultaneously modifying gesture preview data
...
Bug: 8556775
Change-Id: I83272e3adbfc0c9cc14f9e8b479e926aabf4fa2a
2013-04-10 18:18:54 +09:00
Jean Chalard
99b93d17d5
Fix a bug where autocorrection status would be wrong.
...
Change-Id: Ic220129dc59f585164dbf63591cd1c96de17fe6f
2013-04-10 17:49:19 +09:00
Tadashi G. Takaoka
262d5bd9f9
Don't override EXTRA_SHOW_FRAGMENT if exists
...
Bug: 8541190
Change-Id: I37d3de12558efd55f157389d2e0b51fc83dc5da1
2013-04-10 16:24:17 +09:00
Tadashi G. Takaoka
10af4b6e45
Merge "Separate StringUtils.capitalizeFirstCharacter"
2013-04-10 06:30:33 +00:00
Tadashi G. Takaoka
d20c5a78e2
Separate StringUtils.capitalizeFirstCharacter
...
Bug: 8582061
Change-Id: Iac8f65defdd92d7df533bdf0e2937ad897d96363
2013-04-10 14:55:23 +09:00
Tadashi G. Takaoka
d9a2223570
Hide Setup Wizard icon for stock keyboard
...
Bug: 8581647
Change-Id: Id530f1a33a5c919f4a732ec0d545dfbe76e56316
2013-04-09 21:39:18 -07:00
Keisuke Kuroynagi
87fdde6ec4
Typing double letters via a 'circle' on the key.
...
Bug: 8550980
Change-Id: I5e432dea0e025ccea196f80e90a6bf945488e130
2013-04-10 12:43:13 +09:00
Tadashi G. Takaoka
f606fd8554
Hide Setup Wizard icon for stock keyboard
...
Bug: 8581647
Change-Id: Id530f1a33a5c919f4a732ec0d545dfbe76e56316
2013-04-10 12:24:40 +09:00
Tadashi G. Takaoka
869ea1e555
Use SparseIntArray instead of TreeMap<Integer, Integer>
...
Change-Id: I56a64228a5fd85d440d0d08ac67cba8bf2e5690d
2013-04-10 10:15:26 +09:00
Tadashi G. Takaoka
4fdfce6dcc
Merge "Refactor SpellCheckerProximityInfo as extending ProximityInfo"
2013-04-10 01:06:36 +00:00
Baligh Uddin
224e969ef4
Merge "Import translations. DO NOT MERGE"
2013-04-09 19:42:18 +00:00
Kurt Partridge
09ab6495a2
Merge "[FileEncap18] Clean up uploading scheduling"
2013-04-09 19:08:40 +00:00
Jean Chalard
19dcd15493
Merge "Offer to add any OOV typed word to the dictionary."
2013-04-09 10:28:47 +00:00
Jean Chalard
ddafcf82dc
Merge "Fix bugs and add tests"
2013-04-09 08:35:28 +00:00
Jean Chalard
9310f42a36
Offer to add any OOV typed word to the dictionary.
...
That includes gestures, which used not to work.
Bug: 8532637
Change-Id: I04606565d7000faadf954c4a806c39d4d162a2c1
2013-04-09 12:05:54 +09:00
Kurt Partridge
1f70a4d681
Merge "Allow logging while replaying"
2013-04-09 02:33:09 +00:00
Kurt Partridge
d117c1a116
Merge "Do not record log split time when handling separator"
2013-04-09 02:31:48 +00:00
Baligh Uddin
e4760624ce
Import translations. DO NOT MERGE
...
Change-Id: I3605a7fd941d9ebe76460d114f384b1e233b3440
Auto-generated-cl: translation import
2013-04-08 14:47:06 -07:00
Ken Wakasa
d17c8bd929
Update comments
...
Change-Id: I6aef328ec9041666cc168c8323bed04d39591b71
2013-04-08 23:05:45 +09:00
Ken Wakasa
370461ef9f
Clean up a few option strings under the Advanced settings
...
Change-Id: If41ac016128fce401dedcab0fa7d6c23edaca158
2013-04-08 01:16:32 +09:00
Jean Chalard
c87449497c
Fix bugs and add tests
...
Change-Id: I6b56b91ace57f4a49584b5dceb71b145859f839e
2013-04-05 12:11:19 +09:00
Jean Chalard
7d3836d63a
Move a generic string utility to StringUtils
...
Change-Id: I9cc2e9a7ac0b3346af40bcb083f939333336cf09
2013-04-05 12:09:14 +09:00
Baligh Uddin
4b8494c4fc
Import translations. DO NOT MERGE
...
Change-Id: I66b30c5f9673fc4ed3b96753cfec023e7d498dec
Auto-generated-cl: translation import
2013-04-03 13:13:26 -07:00
Tadashi G. Takaoka
6e3f307266
Refactor SpellCheckerProximityInfo as extending ProximityInfo
...
Change-Id: I544eec9d661796d57749dbaa2163bc1e2a891353
2013-04-02 19:06:32 +09:00
Jean Chalard
ecb59eff90
Revert "[DO NOT MERGE] Activate hardware keyboard handling"
...
This reverts commit c741f1f83b
DO NOT MERGE is ignored and this is merged anyway :(
Change-Id: Ie044cdfc6021933379ec97ad7346c5c8591f70bf
2013-04-02 16:08:48 +09:00
Jean Chalard
c741f1f83b
[DO NOT MERGE] Activate hardware keyboard handling
...
Change-Id: Ifdec9338a454291621b2b87c899f5d4301480b27
2013-04-02 15:38:13 +09:00
Kurt Partridge
30772c3758
Allow logging while replaying
...
Previously logging was disabled during replay. This makes it impossible to use logged data as a
regression test, since the new log was unavailable. This change corrects this problem.
Change-Id: I19dc31def2f2f87fd219dc561c739d18e4ab9c9c
2013-04-01 16:49:39 -07:00
Kurt Partridge
636b8c4231
Do not record log split time when handling separator
...
Previously handleSeparator() caused the ResearchLogger to mark the time at which a LogUnit should be
broken. However, this causes the motion data associated with a separator to be associated with the
LogUnit of the previous word. This change corrects this bug.
Change-Id: I8b4d4fa6de2a013de9e2a28bb668c446a07f1957
2013-04-01 16:48:15 -07:00
Kurt Partridge
5779bc91e6
Merge "Split LogUnits differently."
2013-04-01 23:08:21 +00:00
Baligh Uddin
02fc1ed512
Merge "Import translations. DO NOT MERGE"
2013-04-01 20:54:38 +00:00
Kurt Partridge
0c0ab2b4d9
Merge "Reorder ResearchLogger call"
2013-04-01 15:19:45 +00:00
Jean Chalard
0745fe83d4
am b8869ec1: am 0fcc4960: Deactivate hardware keyboard handling.
...
* commit 'b8869ec1e39c1751825841e790d21fc854dca9ce':
Deactivate hardware keyboard handling.
2013-04-01 05:42:42 -07:00
Jean Chalard
b8869ec1e3
am 0fcc4960: Deactivate hardware keyboard handling.
...
* commit '0fcc4960bcd037b7e1482098f85342743eb2ddee':
Deactivate hardware keyboard handling.
2013-04-01 05:40:07 -07:00
Jean Chalard
0fcc4960bc
Deactivate hardware keyboard handling.
...
Bug: 8000119
Change-Id: I021481343d6d87efd8ff6110e9aa0906a1a3d11d
2013-04-01 21:35:45 +09:00
Tadashi G. Takaoka
75028af28c
Interpolate gesture preview trails
...
There is the boolean flag to kill interpolation.
Bug: 7167303
Change-Id: Iac7e4cb88cf437c2ee77c003c9cddb92416025c7
2013-04-01 19:15:36 +09:00
Jean Chalard
43341ba042
Merge "Ask the client to make itself known when it's not"
2013-04-01 09:00:25 +00:00
Jean Chalard
76d5f512f9
Ask the client to make itself known when it's not
...
Upon invoking the settings of the dictionary pack with an unknown
client, we now launch an intent to ask the client to make itself known.
This change also includes the code that receives this intent and
acts upon it.
Bug: 8492879
Change-Id: I2c6496dea845646961ecafcf64e282cb93ee91dc
2013-04-01 17:37:22 +09:00
Jean Chalard
065f126f1d
Merge "Fix two nasty bugs with surrogate pairs."
2013-04-01 08:28:08 +00:00
Jean Chalard
a411595b16
Fix two nasty bugs with surrogate pairs.
...
The important bug is in findWordInTree. The problem, which is
not obvious, is that we were calling codePointAt() with the
code point index in the string, instead of the char index.
The other bug this change fixes was harmless in the practice,
because it's in the iteration which is only used for debug and
pretty printing purposes. It's very similar in that it would
substract a length in code point to a length in chars and
truncate a StringBuilder at that length, so it would fail in a
quite similar manner. This changes the meaning of the "length"
attribute in Position, but it's clearer this way anyway.
Bug: 8450145
Change-Id: If396f883a9e6449de39351553ba83f5be5bd30f0
2013-04-01 17:06:19 +09:00
Baligh Uddin
bd4fdf8e4e
Import translations. DO NOT MERGE
...
Change-Id: I8752437b40f9f8bcb7b8920bc1dc4342e51b3621
Auto-generated-cl: translation import
2013-03-29 21:27:10 -07:00
Jean Chalard
740da0d8d0
Fix an NPE
...
Also remove an unused method and make 2 private variables
final.
Bug: 8461093
Change-Id: I676d93fda28e82eb5a6978f2e7ad5a0add2cbecf
2013-03-29 18:41:29 +09:00
Tadashi G. Takaoka
48d8d8d0ae
Fix potential NPE in MainKeyboardView.KeyTimerHandler
...
Bug: 8469652
Change-Id: Ib7a548e6a24d2e02de85ab444c0ec99d8f6b82c3
2013-03-28 17:54:36 +09:00