Commit Graph

11474 Commits (985b2c2e91485a0cb293bff35a80877b2be71eae)

Author SHA1 Message Date
Tadashi G. Takaoka ad1f880811 Fix NPE when pressing ALT key
Bug: 17203708
Change-Id: I4f203603496e9401dacba4db21372e3353916418
2014-08-25 15:08:27 +09:00
Jean Chalard dc44260484 Merge "Revert "Revert "[ML1] Introduce RichInputMethodSubtype""" 2014-08-25 05:24:28 +00:00
Jean Chalard 85ddfe1317 Revert "Revert "[ML1] Introduce RichInputMethodSubtype""
This reverts commit a63d0a8ee6.

This patch seems to be fine after all, but was submitted without its companion [ML1.1] patch causing a build breakage. Reverting the revert and submitting both at the same time seems like the right thing to do.

Change-Id: Ib8fefa40b74dcee0edb025a52dac9b35c82d49df
2014-08-25 04:42:15 +00:00
Yohei Yukawa 8681287cd6 Fix build due to an illegal character
Change-Id: I597ab26db70387b80ddcd7d51de6ae751380030d
2014-08-24 21:14:41 -07:00
Yohei Yukawa 5eebaddccb Merge "Dismiss "Add to dictionary" hint with non-special char event" into lmp-dev 2014-08-25 04:08:56 +00:00
Yohei Yukawa 2c4cce8d6c Merge "Introduce #shouldShowAddToDictionaryHint" into lmp-dev 2014-08-25 04:05:56 +00:00
Yohei Yukawa ebc1509039 Introduce #shouldShowAddToDictionaryHint
This is a groundwork for subsequent CLs where we need to
call this method from multiple places. This CL does not
change any existing behaviors.

Change-Id: Id8fa0360305d7383571edffab6752b2240367cf9
2014-08-24 20:59:30 -07:00
Tadashi G. Takaoka 5e7a6fe098 Merge "Fix the bottom row of tablet keyboard layout" into lmp-dev 2014-08-25 03:45:35 +00:00
Tadashi G. Takaoka c9aa1beb6d Fix the bottom row of tablet keyboard layout
This CL eliminates "_" and "/" keys from the bottom row of tablet
keyboard.  This CL also reorganizes the bottom row of tablet Dvorak
keyboard.

Bug: 16603887
Change-Id: Ic1570836dea1a475bed5d43aeb6a351507bf5428
2014-08-25 12:34:58 +09:00
Yohei Yukawa 034c326078 Dismiss "Add to dictionary" hint with non-special char event
This CL slightly extends the condition when "Add to dictionary"
hint is dismissed.

With this CL, "Add to dictionary hint" will be dismissed by any
non-special char event. This is more comfortable especially if
we start using more intrusive UIs such as indicator and/or
background color with the text hint in the suggestion strip.

Change-Id: I2ea0fa40d9c6663ebf5d5439be3eca2a2cbd5166
2014-08-24 20:32:22 -07:00
Yohei Yukawa 4a71d2c480 Allow to add/remove background color to/from the committed text
This is a groundwork for subsequent CLs where we need to
add/remove background color to/from the commited text.

In this CL, we use Spanned#SPAN_COMPOSING so that we can easily
remove such a background color by calling
InputConnection#finishComposingText. To make this operation easy
and realiable, we need to track whether we have specified the
background color to the commited text or not at one place. Here
we use RichInputConnection for this purpose.

Change-Id: I5f9bc4425c5d1b80a719a20e5baf336729ec08d2
2014-08-24 20:28:24 -07:00
Yohei Yukawa cd6ef9a8b1 Indroduce SuggestedWords#getTypedWordInfoOrNull
This is a groundwork for subsequent CLs whith need to
do certain things for and only for the typed word.

Change-Id: I374b79cbc79470f57f523c996010301ea5701a61
2014-08-24 16:32:17 -07:00
Baligh Uddin 19a7012db5 Merge "Import translations. DO NOT MERGE" 2014-08-22 18:29:52 +00:00
Baligh Uddin bf32c26578 Merge "Import translations. DO NOT MERGE" 2014-08-22 18:29:52 +00:00
Baligh Uddin dafd54f055 Merge "Import translations. DO NOT MERGE" 2014-08-22 18:29:48 +00:00
Baligh Uddin f1d070eae2 Merge "Import translations. DO NOT MERGE" 2014-08-22 18:29:48 +00:00
Baligh Uddin 7bf6d900b9 Merge "Import translations. DO NOT MERGE" 2014-08-22 18:29:42 +00:00
Tadashi G. Takaoka 560876508f am cc4d21df: am 2637be27: Support Accept typed word UI
* commit 'cc4d21df7b08c3143dd1c4af786609a279a0bb79':
  Support Accept typed word UI
2014-08-22 14:27:26 +00:00
Tadashi G. Takaoka 2637be27c5 Support Accept typed word UI
Change-Id: I58e95b2791a45afdc7dae8e26dcfc200b3b4b854
2014-08-22 21:25:35 +09:00
Jean Chalard 6c638d1bbd Merge "Revert "[ML1] Introduce RichInputMethodSubtype"" 2014-08-22 09:41:46 +00:00
Jean Chalard a63d0a8ee6 Revert "[ML1] Introduce RichInputMethodSubtype"
This reverts commit 8ffe4bc932.

Change-Id: I9d4c98b0adfdb78b0f4d376f7691e50d1bd2228f
2014-08-22 09:40:27 +00:00
Yohei Yukawa eb99b461f0 am 96db9222: am cabb66e9: follow-up to API change in I4a577bfd02b37b
* commit '96db9222c2c8c728498751221cc92664676dd4f0':
  follow-up to API change in I4a577bfd02b37b
2014-08-22 09:26:22 +00:00
Keisuke Kuroyanagi e2ebd5d621 Merge "Add ExpandableBinaryDictionary#getDictionaryStats()." 2014-08-22 09:05:18 +00:00
Jean Chalard 395d778739 Merge "Revert "[HW17] Straighten the dead char implementation."" 2014-08-22 08:20:28 +00:00
Jean Chalard 5bfd661b38 Revert "[HW17] Straighten the dead char implementation."
This reverts commit c6612ff051.

Change-Id: I750d9bff9cb89a6ab13af7a33567c3a0fe2af381
2014-08-22 08:16:28 +00:00
Jean Chalard f429d8f138 Merge "[ML1] Introduce RichInputMethodSubtype" 2014-08-22 07:42:29 +00:00
Jean Chalard 8ffe4bc932 [ML1] Introduce RichInputMethodSubtype
Bug: 11230254
Change-Id: Ic7a1bf938a5a186dcff527b556295aba2406e8b9
2014-08-22 16:34:27 +09:00
Jean Chalard 1b34985dcf Merge "[HW17] Straighten the dead char implementation." 2014-08-22 07:33:31 +00:00
Mohammadinamul Sheik 698b19ef35 Pass a new argument to StatsUtils.
Change-Id: I61e32c7a455a273e8daf9a5487d7969923802488
Bug: 17013677
2014-08-22 15:58:45 +09:00
Jean Chalard c6612ff051 [HW17] Straighten the dead char implementation.
This now supports all cases, including cases not supported by
the framework.

Change-Id: I9dfbe2829c28c5bcb64b0b5a2551e7806990c00f
2014-08-22 15:55:32 +09:00
Yohei Yukawa cabb66e9bc follow-up to API change in I4a577bfd02b37b
BUG: 17182367
BUG: 17185263
Change-Id: Id54ca29c191b9752fa82ffe5a960113b2e97e5c1
2014-08-21 21:39:15 -07:00
Keisuke Kuroyanagi 6f2ddddb5b Add ExpandableBinaryDictionary#getDictionaryStats().
Bug: 16553957
Change-Id: I05866624d0ba9f32ea7a71cb231ba501dde4376c
2014-08-22 12:02:40 +09:00
Yohei Yukawa 5a96395b78 am 8cbc37f2: am 8e2fcaa3: Merge "Use FrameLayout for the backing view" into lmp-dev
* commit '8cbc37f2c803fe5854237434742845a7b8ee32b9':
  Use FrameLayout for the backing view
2014-08-21 18:38:12 +00:00
Yohei Yukawa 8e2fcaa334 Merge "Use FrameLayout for the backing view" into lmp-dev 2014-08-21 18:06:07 +00:00
Tadashi G. Takaoka ebec5e1338 Merge "Add Hinglish (hi_ZZ) subtype" 2014-08-21 10:22:17 +00:00
Tadashi G. Takaoka d6696ae78b Add Hinglish (hi_ZZ) subtype
Bug: 17169632
Change-Id: Ibee088d76c2b19f1d62a3c9c119452726e856ec8
2014-08-21 19:12:25 +09:00
Keisuke Kuroyanagi 68a52c1245 Merge "Update FormatSpec.java" 2014-08-21 09:50:38 +00:00
Keisuke Kuroyanagi c7b6393535 Update FormatSpec.java
Change-Id: I27d14697f931c9511420a459c49312ea6e10c366
2014-08-21 17:23:11 +09:00
Yohei Yukawa b8337e7232 am 2834ddf1: am b9768702: Merge "Use #onStartInputInternal to initialize cursor rect retrieval" into lmp-dev
* commit '2834ddf1a0c9bea38569429f90bdf7526ba8fa22':
  Use #onStartInputInternal to initialize cursor rect retrieval
2014-08-20 15:52:48 +00:00
Yohei Yukawa b9768702fa Merge "Use #onStartInputInternal to initialize cursor rect retrieval" into lmp-dev 2014-08-20 01:43:56 +00:00
Yohei Yukawa 9f4f6681a9 Use #onStartInputInternal to initialize cursor rect retrieval
This CL simply moves the method calls of #requestCursorAnchorInfo
into #onStartInputInternal just to consolidate the logic.

Change-Id: Ia205738b9614e9ae375c1dab767a91d2e1f6d0d3
2014-08-21 00:21:57 +09:00
Yohei Yukawa fa39ffcf84 Support more methods in the wrapper of CursorAnchorInfo
This CL add more compatibility wrapper methods for
CursorAnchorInfo.

This CL also adds more utility functions and types into
CompatUtils to reduce explict cast operations.

Change-Id: Id50165b552bbf28b832a6da13bf06eedcd2a190e
2014-08-20 09:27:22 +09:00
Baligh Uddin 8fb9874470 Import translations. DO NOT MERGE
Change-Id: I3cae3b62faf27fea8cc7c24051ac18f415934399
Auto-generated-cl: translation import
2014-08-18 23:15:21 -07:00
Baligh Uddin 2b250a1174 Import translations. DO NOT MERGE
Change-Id: I9d51675746cc1b3987f2c7a2469a3deced820e69
Auto-generated-cl: translation import
2014-08-18 23:14:04 -07:00
Baligh Uddin 0c4679699f Import translations. DO NOT MERGE
Change-Id: Iacc87d9f13f21de7584cd5028527ec59c7c12802
Auto-generated-cl: translation import
2014-08-18 23:09:41 -07:00
Baligh Uddin 71673204f0 Import translations. DO NOT MERGE
Change-Id: Ieef69130fa6f1f9c9f95a8f308175fbec470af86
Auto-generated-cl: translation import
2014-08-18 23:08:37 -07:00
Baligh Uddin a549f99dcc Import translations. DO NOT MERGE
Change-Id: I0b7fb1fc18139ff80343703ab7a6caa2166fa519
Auto-generated-cl: translation import
2014-08-18 23:07:30 -07:00
Yohei Yukawa 907825548b Use FrameLayout for the backing view
If we render our UI around the composing text in the fullscreen
mode, probably we need to have our views under
android.R.id.extractArea, which is implemented as FrameLayout.
Therefore, using FrameLayout for the backing view makes it easy
to simplify the code between normal mode and full screen mode.

Change-Id: I69533b22d9d1368ad906dc5ef7be1a1b674d10b8
2014-08-19 14:04:35 +09:00
Jean Chalard 8adf5e8a70 Have the "add to dictionary" hint display the right word
Before this, we display the word we have committed instead
of the word we will actually insert into the personal dictionary.
There is a difference when the word was typed with auto-caps.

Bug: 17071785
Change-Id: I2bfec0402b1307934590a78ab5c25104d92b75ca
2014-08-18 20:43:40 +09:00
Yohei Yukawa b7a227b93b Merge "Use RelativeLayout for the backing view" into lmp-dev 2014-08-16 04:32:18 +00:00
Ken Wakasa c37205f5ab Merge "DO NOT MERGE: Abolish source code overlay and introduce overridable src dir" into lmp-dev 2014-08-16 04:25:55 +00:00
Ken Wakasa 0b3e48fb50 DO NOT MERGE: Abolish source code overlay and introduce overridable src dir
This should make IDEs happy with appropriate source code directory
selection.

Change-Id: Ic734bd4d20aa050c688a3158b1a382ae0ac18991
(cherry picked from commit fb74ab15c1)
2014-08-20 02:56:09 +00:00
Yohei Yukawa 3cf13d1267 am 17aeaa75: am fa39ffcf: Support more methods in the wrapper of CursorAnchorInfo
* commit '17aeaa75780591f1bf7fefcc887869fd90c88a9f':
  Support more methods in the wrapper of CursorAnchorInfo
2014-08-20 05:04:07 +00:00
Ken Wakasa 9be350bc21 Merge "Abolish source code overlay and inroduce overridable src dir" 2014-08-16 04:15:21 +00:00
Yohei Yukawa fd8f1cf1bd am 4617bf56: am b7a227b9: Merge "Use RelativeLayout for the backing view" into lmp-dev
* commit '4617bf563f69047bfceb580477fae8c23c9b39f4':
  Use RelativeLayout for the backing view
2014-08-16 14:10:16 +00:00
Yohei Yukawa c9240d280c am 18ac3c8a: am 16a43d2b: Let the backing view cover the entire content area
* commit '18ac3c8afd06c237a2935abad130aa3b99b5004b':
  Let the backing view cover the entire content area
2014-08-16 14:02:21 +00:00
Keisuke Kuroyanagi ffaa9c2a71 Merge "Add language to PersonalizationDataChunk." 2014-08-16 04:12:14 +00:00
Keisuke Kuroyanagi e66d59e6d8 Add language to PersonalizationDataChunk.
Bug: 16547557
Change-Id: I11b82667631cbd5263cc08ccb304fc97bf692050
2014-08-19 18:27:34 +09:00
Yohei Yukawa 1a1c5e0f60 Use RelativeLayout for the backing view
RelativeLayout allows the IME to place its UI element at an
arbitrary position on the backing view.

Change-Id: Ib40d2111f56d8f38007e37c6c47536db3f0bef75
2014-08-16 12:34:01 +09:00
Yohei Yukawa 16a43d2bd9 Let the backing view cover the entire content area
With this CL, the backing view starts covering the content area
entirely.  This allows the IME to render its UI elements at an
arbitrary position on the screen.

Change-Id: I8b4173410931b776964dddf66de2fe247e51d9de
2014-08-16 12:28:13 +09:00
Ken Wakasa fb74ab15c1 Abolish source code overlay and inroduce overridable src dir
This should make IDEs happy with appropriate source code directory
selection.

bug: 16829244
Change-Id: Ic734bd4d20aa050c688a3158b1a382ae0ac18991
2014-08-16 03:37:54 +09:00
Baligh Uddin ef0808e705 Merge "Import translations. DO NOT MERGE" 2014-08-15 04:31:42 +00:00
Baligh Uddin 5655187ae9 Merge "Import translations. DO NOT MERGE" 2014-08-15 04:31:42 +00:00
Baligh Uddin 94eeb915d0 Merge "Import translations. DO NOT MERGE" 2014-08-15 08:11:59 +00:00
Baligh Uddin 4ebfec72ab Merge "Import translations. DO NOT MERGE" 2014-08-15 04:31:42 +00:00
Jean Chalard 3dbc3ece26 am e04c8b10: am b8d76477: Add the input style to SuggestedWords.
* commit 'e04c8b10d7876effbfdf2340a1fec6bf368c3409':
  Add the input style to SuggestedWords.
2014-08-14 18:10:05 +00:00
Jean Chalard b8d764772b Add the input style to SuggestedWords.
Change-Id: I81f37d08659d449822b027d3d5912e11eec8b8ff
2014-08-14 17:53:04 +09:00
Tadashi G. Takaoka af078ce7b4 am 1901c331: am a94c89e0: Use light emoji icon for Material light tablet keyboard
* commit '1901c331283e2f60e6277a7773a103a447bd31ca':
  Use light emoji icon for Material light tablet keyboard
2014-08-13 15:54:51 +00:00
Tadashi G. Takaoka a94c89e017 Use light emoji icon for Material light tablet keyboard
Bug: 16808603
Change-Id: I39ce0ed8b5580754dfd0cf1494289b0a23863d50
2014-08-14 00:25:34 +09:00
Yohei Yukawa d9a8e1ccfd Enable CursorAnchorInfo callback when necessary
Change-Id: If3dda7442418053600ac935da50baaddb0e31d37
2014-08-13 20:02:14 +09:00
Yohei Yukawa 6e7806bc00 Add stub implementation of #onUpdateCursorAnchorInfo
This CL never changes existing behavior because
ProductionFlags.ENABLE_CURSOR_ANCHOR_INFO_CALLBACK is
not yet turned on.

Change-Id: I4bcbd2aebd05977b07231e8aa14acdcf6d8e1fa0
2014-08-13 19:36:23 +09:00
Tadashi G. Takaoka c225d2e29c Add setting boolean for showing UI to accept typed word
Change-Id: Iedd90d07b904362d9debc9994ce86cd78a0303b9
2014-08-13 17:29:49 +09:00
Tadashi G. Takaoka a696c92477 (DO NOT MERGE) Add debug setting to force hardware special key
Bug: 13988700
Change-Id: If23f8a14097431e76a303a6d6c24e8d9835fb655
(cherry picked from commit 3659c70fc3)
2014-08-13 08:04:54 +00:00
Tadashi G. Takaoka 78cff10f8d Add BuildCompatUtils to get an effective platfrom API version
This CL removes reference of VERSION_CODES.CUR_DEVELOPMENT.

Bug: 13888366
Change-Id: I5c8499a175473a220c8fb04ead219760c585a19a
2014-08-13 16:21:23 +09:00
Tadashi G. Takaoka 8f3e778a21 Revert "Remove reference of VERSION_CODES.CUR_DEVELOPMENT"
This reverts commit 5380acfd04.

Bug: 13888366
Change-Id: Iae0fb6798cef9d59c9de3790123f6acaf8b2746b
2014-08-13 04:00:36 +00:00
Yohei Yukawa 85ce863d19 am 4a2dbd87: am d9a8e1cc: Enable CursorAnchorInfo callback when necessary
* commit '4a2dbd87c4a49afbe40a61028ff338e2864554ed':
  Enable CursorAnchorInfo callback when necessary
2014-08-13 11:38:19 +00:00
Yohei Yukawa bec6c6e306 am 3a346bf5: am 6e7806bc: Add stub implementation of #onUpdateCursorAnchorInfo
* commit '3a346bf51c441b9b62f0cee364940c2d4661c72c':
  Add stub implementation of #onUpdateCursorAnchorInfo
2014-08-13 10:55:00 +00:00
Tadashi G. Takaoka f8f83c24ca am 43b8646a: am c225d2e2: Add setting boolean for showing UI to accept typed word
* commit '43b8646a31573ef3ce8efbbaf46c3d72d8c5deca':
  Add setting boolean for showing UI to accept typed word
2014-08-13 09:21:32 +00:00
Tadashi G. Takaoka 26233cddee Merge "Add debug setting to force hardware special key" 2014-08-12 23:14:48 +00:00
Tadashi G. Takaoka 089371b649 am bdb05cc8: am 78cff10f: Add BuildCompatUtils to get an effective platfrom API version
* commit 'bdb05cc89f63f4f3956936fa062d0b4555aa072a':
  Add BuildCompatUtils to get an effective platfrom API version
2014-08-13 07:52:52 +00:00
Tadashi G. Takaoka 3659c70fc3 Add debug setting to force hardware special key
Bug: 13988700
Change-Id: If23f8a14097431e76a303a6d6c24e8d9835fb655
2014-08-13 15:33:07 +09:00
Tadashi G. Takaoka 4ac551d189 am 7edc27f1: am 8f3e778a: Revert "Remove reference of VERSION_CODES.CUR_DEVELOPMENT"
* commit '7edc27f17b450e690f08a972c4573b92b39ef7ee':
  Revert "Remove reference of VERSION_CODES.CUR_DEVELOPMENT"
2014-08-13 05:28:51 +00:00
Keisuke Kuroyanagi 82be1873f1 Merge "Add additional wait for writing file in testAddManyWords()." 2014-08-12 23:14:42 +00:00
Tadashi G. Takaoka 89a2145448 am a70542a5: am 5380acfd: Remove reference of VERSION_CODES.CUR_DEVELOPMENT
* commit 'a70542a5ef2c7f4d5cfe62150ed17be3776904c5':
  Remove reference of VERSION_CODES.CUR_DEVELOPMENT
2014-08-12 15:02:59 +00:00
Tadashi G. Takaoka 5380acfd04 Remove reference of VERSION_CODES.CUR_DEVELOPMENT
Bug: 13888366
Change-Id: I0b829e2cf9a11c694cf01b6f02753233c9c85105
2014-08-12 23:13:18 +09:00
Keisuke Kuroyanagi 9f584e15eb Add additional wait for writing file in testAddManyWords().
Change-Id: Ibb79b9821dac3d48e18c684e8aca605254bec045
2014-08-12 22:29:02 +09:00
Baligh Uddin 15d6876bb0 Import translations. DO NOT MERGE
Change-Id: Idee05910c3f7bb4d2206c231d763cf026d62fa3c
Auto-generated-cl: translation import
2014-08-12 02:18:20 -07:00
Baligh Uddin e956a81998 Import translations. DO NOT MERGE
Change-Id: Ib7098ce2fffd7eb5040b2714cbae17eb66a072e5
Auto-generated-cl: translation import
2014-08-12 02:13:46 -07:00
Baligh Uddin 599098783c Import translations. DO NOT MERGE
Change-Id: I6e9684b6ce3aeb85084b135e78a2082add1d436d
Auto-generated-cl: translation import
2014-08-12 02:12:42 -07:00
Baligh Uddin 08bc5a45c2 Import translations. DO NOT MERGE
Change-Id: I691365225a7a9006723751aa26be4898f46948b0
Auto-generated-cl: translation import
2014-08-12 02:11:18 -07:00
Jatin Matani 0807c897f4 Make SettingsValues non-final to testability
Add getter for enableMetricsLogging boolean.

Bug:16522256
Change-Id: Ie9a38efc7861b3d4207562d2bf0344c5c2ae957a
2014-08-11 16:33:01 -07:00
Yohei Yukawa 89e8cba6ae Merge "Add CursorAnchorInfoCompatWrapper for KitKat and older platforms" into lmp-dev 2014-08-11 19:46:21 +00:00
Tadashi G. Takaoka 499153734e (DO NOT MERGE) Add SpecialkeyDetector
Bug: 13988700
Change-Id: I215e879ad33b149370c1d0a5fdcf2203c0fc8b4a
(cherry picked from commit 34541bfeb6)
2014-08-12 10:14:41 +00:00
Tadashi G. Takaoka 8fdff5a111 (DO NOT MERGE) Show InputView even when hardware keyboard is connected
Bug: 13988700
Change-Id: I4aeb01bf3571afc97959c213474a6424d7896120
(cherry picked from commit 06514f00f4)
2014-08-12 10:03:47 +00:00
Yohei Yukawa deff9495f7 Add CursorAnchorInfoCompatWrapper for KitKat and older platforms
Change-Id: Ia26c783ebefd7b928d623a598792b7ba32d89a80
2014-08-12 17:26:56 +09:00
Tadashi G. Takaoka 016d6c424c Auto scale-X text of key popup preview
Bug: 9978106
Change-Id: I335fa3117ac2af2cb8220c4827dd54c1a1da4c5c
2014-08-12 12:17:40 +09:00
Yohei Yukawa 0ba23b3ab3 am 6a5cba26: am 89e8cba6: Merge "Add CursorAnchorInfoCompatWrapper for KitKat and older platforms" into lmp-dev
* commit '6a5cba2695cc82707535845d6265ddc7d92a79ed':
  Add CursorAnchorInfoCompatWrapper for KitKat and older platforms
2014-08-12 11:08:47 +00:00
Tadashi G. Takaoka 1fc4d5aab3 Merge "Add SpecialkeyDetector" 2014-08-11 19:46:21 +00:00
Tadashi G. Takaoka 34541bfeb6 Add SpecialkeyDetector
Bug: 13988700
Change-Id: I215e879ad33b149370c1d0a5fdcf2203c0fc8b4a
2014-08-12 19:08:58 +09:00
Tadashi G. Takaoka 06514f00f4 Show InputView even when hardware keyboard is connected
Bug: 13988700
Change-Id: I4aeb01bf3571afc97959c213474a6424d7896120
2014-08-12 18:44:05 +09:00