{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":472635240,"defaultBranch":"main","name":"speedcuber-timer","ownerLogin":"SpeedcuberOSS","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-03-22T06:06:46.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/98855452?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1702617837.0","currentOid":""},"activityList":{"items":[{"before":"bfe002038d84526de6c949554d60ed91470de754","after":"0220d5f5b2c4f3d896ca07a0d7ea6c70bc3bb03e","ref":"refs/heads/main","pushedAt":"2024-01-21T03:30:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"build: fix syntax error in Fastfile","shortMessageHtmlLink":"build: fix syntax error in Fastfile"}},{"before":"f0b3b80c0de8c2b9de2f3391879d4318ce589748","after":"bfe002038d84526de6c949554d60ed91470de754","ref":"refs/heads/main","pushedAt":"2024-01-21T03:28:56.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"chore: Release version 0.2.4 to Android and iOS","shortMessageHtmlLink":"chore: Release version 0.2.4 to Android and iOS"}},{"before":"4c61194b4398a0edf5fca05b2908afea0516ad48","after":"f0b3b80c0de8c2b9de2f3391879d4318ce589748","ref":"refs/heads/main","pushedAt":"2023-12-21T06:27:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"build: Fix iOS deployment for 0.2.3\n\nSpeedcuber Timer is now pending review on both Google Play and the App Store!","shortMessageHtmlLink":"build: Fix iOS deployment for 0.2.3"}},{"before":"d2e479142180f0e78e646dc1814fa59e218b42f3","after":"4c61194b4398a0edf5fca05b2908afea0516ad48","ref":"refs/heads/main","pushedAt":"2023-12-15T05:23:47.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"fix: Render Attempt Charts with DNFs\n\nThe `Infinity` values were breaking the native bridge communication.\n\nNow those are filtered out so their positions on the chart appear empty.","shortMessageHtmlLink":"fix: Render Attempt Charts with DNFs"}},{"before":"7ed3cc5babdd35222f2c760de762fd8bcd962e5f","after":"d2e479142180f0e78e646dc1814fa59e218b42f3","ref":"refs/heads/main","pushedAt":"2023-12-11T05:38:38.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"chore: Release version 0.2.2","shortMessageHtmlLink":"chore: Release version 0.2.2"}},{"before":"aeb59f964703c3876c32e8ae67711c002db93f6e","after":"7ed3cc5babdd35222f2c760de762fd8bcd962e5f","ref":"refs/heads/main","pushedAt":"2023-12-09T08:35:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"chore: Publish version 0.2.0","shortMessageHtmlLink":"chore: Publish version 0.2.0"}},{"before":"3d1f28e19cf52f300db56e2ea735553095c1830e","after":"aeb59f964703c3876c32e8ae67711c002db93f6e","ref":"refs/heads/main","pushedAt":"2023-12-09T08:27:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Use a green colored theme by default\n\nBetter match the colors of the app icon.\n\nIncludes several other theme colors for usage later in the app's\ndevelopment (e.g. as IAP).\n\ncloses #120","shortMessageHtmlLink":"feat: Use a green colored theme by default"}},{"before":"3d1f28e19cf52f300db56e2ea735553095c1830e","after":null,"ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-09T08:08:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"}},{"before":"f13c90f2e7e723641beae1aef921c115fb26499f","after":"3d1f28e19cf52f300db56e2ea735553095c1830e","ref":"refs/heads/main","pushedAt":"2023-12-09T08:08:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"fix: Re-enable support for Giiker cubes on iOS\n\n`react-native-ble-manager` has inconsistent support for 128-bit vs.\n16/32-bit UUIDs.\n\nThis commit implements a workaround that I verified works properly on\nboth Android and iOS.","shortMessageHtmlLink":"fix: Re-enable support for Giiker cubes on iOS"}},{"before":"e8fb373c91b92098b2ce122c58076403dcd228fa","after":"3d1f28e19cf52f300db56e2ea735553095c1830e","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-09T08:07:13.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"fix: Re-enable support for Giiker cubes on iOS\n\n`react-native-ble-manager` has inconsistent support for 128-bit vs.\n16/32-bit UUIDs.\n\nThis commit implements a workaround that I verified works properly on\nboth Android and iOS.","shortMessageHtmlLink":"fix: Re-enable support for Giiker cubes on iOS"}},{"before":"7017e559bccbcaed64f375fe2c24ada361314b74","after":"e8fb373c91b92098b2ce122c58076403dcd228fa","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-09T05:22:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Add \"multi\" events for 2x2x2 and 3x3x3\n\nPrimarily added for an easy way to test multiple smartcubes at once\nwithout misusing the 3x3x3 Multi-BLD event.\n\nHopefully others find these new unofficial events fun too!","shortMessageHtmlLink":"feat: Add \"multi\" events for 2x2x2 and 3x3x3"}},{"before":"ac1b9585297806d813dddc44ec0337fbfd3f17af","after":"7017e559bccbcaed64f375fe2c24ada361314b74","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-09T05:22:02.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Add \"multi\" events for 2x2x2 and 3x3x3\n\nPrimarily added for an easy way to test multiple smartcubes at once\nwithout misusing the 3x3x3 Multi-BLD event.\n\nHopefully others find these new unofficial events fun too!","shortMessageHtmlLink":"feat: Add \"multi\" events for 2x2x2 and 3x3x3"}},{"before":"f7a274576921620b64c6d9d92cc2d61b3f7987d0","after":"ac1b9585297806d813dddc44ec0337fbfd3f17af","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-07T06:11:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Assemble attempts with multiple solutions\n\nSpeedcuber Timer now has proper support for events consisting of solving\nmultiple puzzles, including tracking data from multiple smartcubes at\nonce.\n\nThis final piece came together surprisingly easily. My first draft of\nrewriting the PracticeView only missed a few setter invocations on the\nvarious builders which were quickly resolved.\n\nIt was exhilarating to complete an attempt of solving two 3x3x3 cubes\nsequentially, then see the rest of the app's graphs and analytics\nrespond flawlessly! #excellent-design","shortMessageHtmlLink":"feat: Assemble attempts with multiple solutions"}},{"before":"f27c50acf93ddb8ff3025dd829e216e453706db7","after":"f7a274576921620b64c6d9d92cc2d61b3f7987d0","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-07T06:10:27.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Assemble attempts with multiple solutions\n\nSpeedcuber Timer now has proper support for events consisting of solving\nmultiple puzzles, including tracking data from multiple smartcubes at\nonce.\n\nThis final piece came together surprisingly easily. My first draft of\nrewriting the PracticeView only missed a few setter invocations on the\nvarious builders which were quickly resolved.\n\nIt was exhilarating to complete an attempt of solving two 3x3x3 cubes\nsequentially, then see the rest of the app's graphs and analytics pick\nrespond flawlessly! #excellent-design","shortMessageHtmlLink":"feat: Assemble attempts with multiple solutions"}},{"before":"4e849f5bb9b5edb4e8de089f1ffb7190dcad97df","after":"f27c50acf93ddb8ff3025dd829e216e453706db7","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-07T06:05:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Assemble attempts with multiple solutions\n\nSpeedcuber Timer now has proper support for events consisting of solving\nmultiple puzzles, including tracking from data multiple smartcubes at\nonce.\n\nThis final piece came together surprisingly easily. My first draft of\nrewriting the PracticeView only missed a few setter invocations on the\nvarious builders which were quickly resolved.\n\nIt was exhilarating to complete an attempt of solving two 3x3x3 cubes\nsequentially, then see the rest of the app's graphs and analytics pick\nrespond flawlessly! #excellent-design","shortMessageHtmlLink":"feat: Assemble attempts with multiple solutions"}},{"before":"97d2141334ea0b08f21fa361d979321d33a1f5d2","after":"4e849f5bb9b5edb4e8de089f1ffb7190dcad97df","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-06T07:32:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Enable assigning smartpuzzles to scrambles\n\nIn events with multiple puzzles, speedsolvers may want to use multiple\nsmartcubes to track every solution in the attempt.\n\nThis commit updates the `ScramblingView` component to support linking a\nsmartpuzzle to a specific scramble.\n\nThis update is momentous because it is the first time that any smartcube\napplication has taken the step towards concurrent move tracking from\nmultiple smartpuzzles. Truly a distinguishing feature of the app!","shortMessageHtmlLink":"feat: Enable assigning smartpuzzles to scrambles"}},{"before":"2895dd232f645f9fef38995731c4f313118d493f","after":"97d2141334ea0b08f21fa361d979321d33a1f5d2","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-06T07:12:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Enable assigning smartpuzzles to scrambles\n\nIn events with multiple puzzles, speedsolvers may want to use multiple\nsmartcubes to track every solution in the attempt.\n\nThis commit updates the `ScramblingView` component to support linking a\nsmartpuzzle to a specific scramble.\n\nThis update is momentous because it is the first time that any smartcube\napplication has taken the step towards concurrent move tracking from\nmultiple smartpuzzles. Truly a distinguishing feature of the app!","shortMessageHtmlLink":"feat: Enable assigning smartpuzzles to scrambles"}},{"before":"a021520f8239a4466a982b7462e3d4aea2cbbfd9","after":"2895dd232f645f9fef38995731c4f313118d493f","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-05T05:44:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"chore(IDE): Enable Java null analysis\n\nNot sure how helpful it is, but it removes one pop-up from the IDE\nboot sequence.","shortMessageHtmlLink":"chore(IDE): Enable Java null analysis"}},{"before":"b1c0edccc386073b0d8ab7793a385477a2d4776a","after":"a021520f8239a4466a982b7462e3d4aea2cbbfd9","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-05T05:43:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"chore(IDE): Enable Java null analysis\n\nNot sure how helpful it is, but it removes one pop-up from the IDE\nboot sequence.","shortMessageHtmlLink":"chore(IDE): Enable Java null analysis"}},{"before":"3aecc87f995c65533d2e98261776f7fad5016aaf","after":"b1c0edccc386073b0d8ab7793a385477a2d4776a","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-05T05:19:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"refactor: code cleanup","shortMessageHtmlLink":"refactor: code cleanup"}},{"before":"3ec7038d14a55d4c8b16b463c1bc979815c9e43e","after":"3aecc87f995c65533d2e98261776f7fad5016aaf","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-12-05T04:45:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"wip: Re-renderless scramble measurement\n\nReact Native apparently can't block renders until layouts are complete like React can in the browser.\n\nThis commit uses a basic heuristic (character count) to estimate if the scramble would overflow its area.\n\nThere's also some commented code that does more accurate measurements.\n\nAlso consider https://github.com/aMarCruz/react-native-text-size (if it was maintained) for synchronous computation.","shortMessageHtmlLink":"wip: Re-renderless scramble measurement"}},{"before":"cdc44c109b388713f2c24e636253a88e0b404d93","after":"3ec7038d14a55d4c8b16b463c1bc979815c9e43e","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-11-30T04:53:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"fix: icons","shortMessageHtmlLink":"fix: icons"}},{"before":"f27d93167bb8be95e4269d7d1392def07104594c","after":"cdc44c109b388713f2c24e636253a88e0b404d93","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-11-26T06:05:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"wip: various things\n\nCo-authored-by: Daniel ","shortMessageHtmlLink":"wip: various things"}},{"before":"ea9acff31815a31ee1485e155ff38d1eef6af8b7","after":"f13c90f2e7e723641beae1aef921c115fb26499f","ref":"refs/heads/main","pushedAt":"2023-11-26T06:04:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Add 1x1x1 Unofficial Event\n\n1x1x1 is easily the most popular gimmick event. Might as well include it\nin the app for hilarity.","shortMessageHtmlLink":"feat: Add 1x1x1 Unofficial Event"}},{"before":"47ba29b07345d9fa9c96f196482717048bb6316a","after":"f27d93167bb8be95e4269d7d1392def07104594c","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-11-26T04:18:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"wip: various things\n\nCo-authored-by: Daniel ","shortMessageHtmlLink":"wip: various things"}},{"before":null,"after":"47ba29b07345d9fa9c96f196482717048bb6316a","ref":"refs/heads/multi_puzzle_events","pushedAt":"2023-11-01T07:07:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"wip: Add a ScramblingView supporting scrambles for multiple puzzles in a single event.","shortMessageHtmlLink":"wip: Add a ScramblingView supporting scrambles for multiple puzzles i…"}},{"before":"1bc8650e09fcd39cb7e5d5373c42e2680be72363","after":"ea9acff31815a31ee1485e155ff38d1eef6af8b7","ref":"refs/heads/main","pushedAt":"2023-10-25T05:58:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"feat: Inspect TPS from AttemptDetails\n\ncloses #114","shortMessageHtmlLink":"feat: Inspect TPS from AttemptDetails"}},{"before":"ab87d841be8a340f5812ecfd0bc207d30d7f415e","after":"1bc8650e09fcd39cb7e5d5373c42e2680be72363","ref":"refs/heads/main","pushedAt":"2023-10-22T05:02:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"fix: Handle floats when formatting time\n\nWhen scrubbing the attempt player, the time formatting function\noccasionally received a non-integer value, crashing the application.\n\nfixes #107","shortMessageHtmlLink":"fix: Handle floats when formatting time"}},{"before":"8fbbbe6efbb0419b097d59d8aab1469fa3c0e3d3","after":"ab87d841be8a340f5812ecfd0bc207d30d7f415e","ref":"refs/heads/main","pushedAt":"2023-10-20T04:02:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"doc: Add public localization walkthrough video\n\nApparently, GitHub blocks public access to attachments uploaded while a repository is private.\r\n\r\nRe-uploading the video a third time so it's available for public visitors.","shortMessageHtmlLink":"doc: Add public localization walkthrough video"}},{"before":"2fd55b0e218ee15a7111cd9b6feb8713d68361ea","after":"8fbbbe6efbb0419b097d59d8aab1469fa3c0e3d3","ref":"refs/heads/main","pushedAt":"2023-10-20T03:59:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"thehale","name":"Joseph Hale, MS SE","path":"/thehale","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47901316?s=80&v=4"},"commit":{"message":"doc: Add localization walkthrough video\n\nThe video link didn't work with a relative path, so I uploaded directly to GitHub so the link would render correctly.","shortMessageHtmlLink":"doc: Add localization walkthrough video"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0yMVQwMzozMDo1Mi4wMDAwMDBazwAAAAPk8eTy","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wMS0yMVQwMzozMDo1Mi4wMDAwMDBazwAAAAPk8eTy","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMC0yMFQwMzo1OTowNS4wMDAwMDBazwAAAAObid5g"}},"title":"Activity · SpeedcuberOSS/speedcuber-timer"}