)]}'
{"InCallUI/src/com/android/incallui/CallButtonFragment.java":[{"author":{"_account_id":2936,"name":"Ethan Chen","email":"intervigil@gmail.com","username":"intervigil","avatars":[{"url":"https://www.gravatar.com/avatar/382d80f420fb681ba1b88c29df904f29.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/382d80f420fb681ba1b88c29df904f29.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/382d80f420fb681ba1b88c29df904f29.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/382d80f420fb681ba1b88c29df904f29.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a04ab9c75a59b17e6399837c89c39245d5b09de5","unresolved":false,"context_lines":[{"line_number":759,"context_line":"                showBluetoothIcon \u003d true;"},{"line_number":760,"context_line":"            } else if (isAudio(CallAudioState.ROUTE_SPEAKER)) {"},{"line_number":761,"context_line":"                showSpeakerphoneIcon \u003d true;"},{"line_number":762,"context_line":"            } else if (earpieceSupported || wiredHeadsetSupported) {"},{"line_number":763,"context_line":"                    showHandsetIcon \u003d true;"},{"line_number":764,"context_line":"                // TODO: if a wired headset is plugged in, that takes precedence"},{"line_number":765,"context_line":"                // over the handset earpiece.  If so, maybe we should show some"}],"source_content_type":"text/x-java","patch_set":1,"id":"112eceb2_44d9a1d9","line":762,"range":{"start_line":762,"start_character":44,"end_line":762,"end_character":65},"updated":"2018-05-31 03:54:24.000000000","message":"Might want to make a note you\u0027re changing this in your commit message too, although I thought wired headset was it\u0027s own thing?","commit_id":"14951ded5695dcaf9813e5cc3a96e9d824c875e0"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"334ea681b2a71d9bf7b8cea60dddef8471e580ec","unresolved":false,"context_lines":[{"line_number":734,"context_line":"    private void updateAudioButtons() {"},{"line_number":735,"context_line":"        final boolean bluetoothSupported \u003d isSupported(CallAudioState.ROUTE_BLUETOOTH);"},{"line_number":736,"context_line":"        final boolean speakerSupported \u003d isSupported(CallAudioState.ROUTE_SPEAKER);"},{"line_number":737,"context_line":"        final boolean earpieceOrWiredHeadsetSupported \u003d isSupported(CallAudioState.ROUTE_WIRED_OR_EARPIECE);"},{"line_number":738,"context_line":""},{"line_number":739,"context_line":"        boolean audioButtonEnabled \u003d false;"},{"line_number":740,"context_line":"        boolean audioButtonChecked \u003d false;"}],"source_content_type":"text/x-java","patch_set":3,"id":"27015524_67638b2f","line":737,"updated":"2018-05-31 17:04:55.000000000","message":"line length","commit_id":"12acd2ba9c45af2633322c1e94730034abeef9f3"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"bc62305ce244a24f1ee9104c0aecc4813f5b88b0","unresolved":false,"context_lines":[{"line_number":732,"context_line":"     * are visible based on the supported audio formats."},{"line_number":733,"context_line":"     */"},{"line_number":734,"context_line":"    private void updateAudioButtons() {"},{"line_number":735,"context_line":"        final boolean bluetoothSupported \u003d"},{"line_number":736,"context_line":"                          isSupported(CallAudioState.ROUTE_BLUETOOTH);"},{"line_number":737,"context_line":"        final boolean speakerSupported \u003d"},{"line_number":738,"context_line":"                          isSupported(CallAudioState.ROUTE_SPEAKER);"},{"line_number":739,"context_line":"        final boolean earpieceOrWiredHeadsetSupported \u003d"},{"line_number":740,"context_line":"                          isSupported(CallAudioState.ROUTE_WIRED_OR_EARPIECE);"},{"line_number":741,"context_line":""}],"source_content_type":"text/x-java","patch_set":7,"id":"6a29a3b1_71fb5db7","line":738,"range":{"start_line":735,"start_character":8,"end_line":738,"end_character":68},"updated":"2018-06-01 09:29:44.000000000","message":"should leave these untouched","commit_id":"e3d6d25d6e447d5aae7e60df17ae48997126b712"}],"InCallUI/src/com/android/incallui/CallButtonPresenter.java":[{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"e156bf6b04eab345ca257d43915dbb08c0e52f0a","unresolved":false,"context_lines":[{"line_number":557,"context_line":"        }"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"        return (numSupportedRoutes \u003e 1);"},{"line_number":560,"context_line":"    }"},{"line_number":561,"context_line":""},{"line_number":562,"context_line":"    /**"},{"line_number":563,"context_line":"     * Updates the buttons applicable for the UI."}],"source_content_type":"text/x-java","patch_set":3,"id":"f162378f_8e52d36a","line":560,"updated":"2018-05-31 17:12:22.000000000","message":"how about another helper function\nprivate boolean isAudioRouteSupported(int route) {\n    return (getSupportedAudio() \u0026 route) \u003e 0;\n}\n\nand using an array?\n\nint routes[] \u003d {\n    CallAudioState.ROUTE_BLUETOOTH,\n    CallAudioState.ROUTE_WIRED_OR_HEADSET,\n    CallAudioState.ROUTE_SPEAKER\n};\nfor (int i \u003d 0; i \u003c routes.length; i++) {\n    if (isAudioRouteSupported(route)) {\n        numSupportedRoutes++;\n    }\n}","commit_id":"12acd2ba9c45af2633322c1e94730034abeef9f3"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"03a0c37a2e6fcdb8a577cf1fd9ba1a7f88787c57","unresolved":false,"context_lines":[{"line_number":226,"context_line":"     * Function assumes that bluetooth is not supported."},{"line_number":227,"context_line":"     */"},{"line_number":228,"context_line":"    public void toggleSpeakerphone() {"},{"line_number":229,"context_line":"        // this function should not be called if bluetooth is available"},{"line_number":230,"context_line":"        if (isAudioRouteSupported(CallAudioState.ROUTE_BLUETOOTH)) {"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"            // It\u0027s clear the UI is wrong, so update the supported mode once again."},{"line_number":233,"context_line":"            Log.e(this, \"toggling speakerphone not allowed when bluetooth supported.\");"}],"source_content_type":"text/x-java","patch_set":5,"id":"bcd44bed_e72d960b","line":230,"range":{"start_line":229,"start_character":71,"end_line":230,"end_character":12},"updated":"2018-05-31 17:43:36.000000000","message":"unrelated. If code were new, ofc this would be good, but now its just a change which just makes it harder to keep track of what has changes / why it has changed","commit_id":"9af973fb1da3fc4577c96d875533fb924b0b190c"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"03a0c37a2e6fcdb8a577cf1fd9ba1a7f88787c57","unresolved":false,"context_lines":[{"line_number":544,"context_line":"     * Counts number of supported routes and disables audio button if there is only one"},{"line_number":545,"context_line":"     * route supported (i.e nothing to choose from)"},{"line_number":546,"context_line":"     */"},{"line_number":547,"context_line":"    private boolean doesAudioButtonNeedShow() {"},{"line_number":548,"context_line":"        int numSupportedRoutes \u003d 0;"},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"        int routes[] \u003d {"}],"source_content_type":"text/x-java","patch_set":5,"id":"fad8ec0e_3bcb7be3","line":547,"updated":"2018-05-31 17:43:36.000000000","message":"shouldAudioButtonShow()","commit_id":"9af973fb1da3fc4577c96d875533fb924b0b190c"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"03a0c37a2e6fcdb8a577cf1fd9ba1a7f88787c57","unresolved":false,"context_lines":[{"line_number":561,"context_line":""},{"line_number":562,"context_line":"        if (numSupportedRoutes \u003d\u003d 0) {"},{"line_number":563,"context_line":"            Log.e(this, \"numSupportedRoutes \u003d 0\");"},{"line_number":564,"context_line":"            return false;"},{"line_number":565,"context_line":"        }"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"        return (numSupportedRoutes \u003e 1);"}],"source_content_type":"text/x-java","patch_set":5,"id":"f9d4acc9_f7208a8a","line":564,"range":{"start_line":564,"start_character":12,"end_line":564,"end_character":25},"updated":"2018-05-31 17:43:36.000000000","message":"not required, next return statement will do the same","commit_id":"9af973fb1da3fc4577c96d875533fb924b0b190c"},{"author":{"_account_id":13028,"name":"Michael W","email":"baddaemon87@gmail.com","username":"BadDaemon","avatars":[{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/d7353d59293ecf50e0388d0c18b25977.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"03a0c37a2e6fcdb8a577cf1fd9ba1a7f88787c57","unresolved":false,"context_lines":[{"line_number":638,"context_line":"        boolean showCallRecordOption \u003d recorder.isEnabled()"},{"line_number":639,"context_line":"                \u0026\u0026 !isVideo \u0026\u0026 call.getState() \u003d\u003d Call.State.ACTIVE;"},{"line_number":640,"context_line":""},{"line_number":641,"context_line":"        ui.showButton(BUTTON_AUDIO, doesAudioButtonNeedShow());"},{"line_number":642,"context_line":"        ui.showButton(BUTTON_SWAP, showSwap);"},{"line_number":643,"context_line":"        ui.showButton(BUTTON_HOLD, showHold);"},{"line_number":644,"context_line":"        ui.setHold(isCallOnHold);"}],"source_content_type":"text/x-java","patch_set":5,"id":"590c9d69_9f8ade93","line":641,"range":{"start_line":641,"start_character":36,"end_line":641,"end_character":59},"updated":"2018-05-31 17:43:36.000000000","message":"shouldAudioButtonShow()","commit_id":"9af973fb1da3fc4577c96d875533fb924b0b190c"}]}
