{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":139473910,"defaultBranch":"master","name":"PianOli","ownerLogin":"nicolasbrailo","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-07-02T17:32:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/1199441?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1706700779.0","currentOid":""},"activityList":{"items":[{"before":"d17f65626101ab8aacf40cdacf5384572018e0cd","after":"7557a291f185b9ac9629fb47ec3cb784b84a808c","ref":"refs/heads/master","pushedAt":"2024-01-31T11:31:19.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #91 from pserwylo/bump-for-release-v1.25\n\nBump for release V1.25 - New melody + imrpoved instructions for exiting + tech improvements.","shortMessageHtmlLink":"Merge pull request #91 from pserwylo/bump-for-release-v1.25"}},{"before":"c0a1d5410400814c17aaecc63ff3ea1e44dd8907","after":"d17f65626101ab8aacf40cdacf5384572018e0cd","ref":"refs/heads/master","pushedAt":"2024-01-28T10:56:35.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #89 from juleskers/theme-cleanup\n\nEnum-ify `Theme`.","shortMessageHtmlLink":"Merge pull request #89 from juleskers/theme-cleanup"}},{"before":"aa562c9403141833d4e8ae4fd3699157e2659fad","after":null,"ref":"refs/heads/prototype_playamelody","pushedAt":"2024-01-23T09:21:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":"42df8044beea93320ff258301111afdf93224abd","after":"c0a1d5410400814c17aaecc63ff3ea1e44dd8907","ref":"refs/heads/master","pushedAt":"2024-01-19T22:00:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"weblate","name":"Weblate (bot)","path":"/weblate","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1607653?s=80&v=4"},"commit":{"message":"Translated using Weblate (Spanish)\n\nCurrently translated at 100.0% (29 of 29 strings)\n\nTranslation: PianOli/Android strings\nTranslate-URL: https://hosted.weblate.org/projects/pianoli/android-strings/es/","shortMessageHtmlLink":"Translated using Weblate (Spanish)"}},{"before":"216017b8bb24037800a3580992cd11169bf6e0a2","after":"42df8044beea93320ff258301111afdf93224abd","ref":"refs/heads/master","pushedAt":"2024-01-18T20:02:38.000Z","pushType":"pr_merge","commitsCount":8,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #88 from juleskers/vader-jakob\n\nConsistency checks for dynamic strings, before adding \"Frère Jacques\" song.","shortMessageHtmlLink":"Merge pull request #88 from juleskers/vader-jakob"}},{"before":"fbf64be5e4092107b2eff628139f47b68c682fe7","after":"21fd594041982dc503d79ebb793fc23ca72ffd24","ref":"refs/heads/piano-coordinate-testing","pushedAt":"2024-01-09T12:40:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"WIP: NoteMapperTest: Enharmonics; still fail.","shortMessageHtmlLink":"WIP: NoteMapperTest: Enharmonics; still fail."}},{"before":"2ab98271b399d811fbe8f76654f577f3a7b77e2b","after":"fbf64be5e4092107b2eff628139f47b68c682fe7","ref":"refs/heads/piano-coordinate-testing","pushedAt":"2024-01-09T12:24:41.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"WIP: NoteMapperTest: Enharmonics; still fail.","shortMessageHtmlLink":"WIP: NoteMapperTest: Enharmonics; still fail."}},{"before":"0957002602511722b01b4aef7fdbb09ae7ec7de1","after":"216017b8bb24037800a3580992cd11169bf6e0a2","ref":"refs/heads/master","pushedAt":"2024-01-06T18:24:18.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"nicolasbrailo","name":"Nico Brailovsky","path":"/nicolasbrailo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1199441?s=80&v=4"},"commit":{"message":"Merge pull request #87 from juleskers/holiday-hacking-reviews\n\nHoliday hacking reviews","shortMessageHtmlLink":"Merge pull request #87 from juleskers/holiday-hacking-reviews"}},{"before":"81f07cf0a3570c29d1e1a1746d0d58ba5fe598bd","after":"0957002602511722b01b4aef7fdbb09ae7ec7de1","ref":"refs/heads/master","pushedAt":"2024-01-03T20:56:36.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Merge branch 'juleskers/imgbot'","shortMessageHtmlLink":"Merge branch 'juleskers/imgbot'"}},{"before":"b7a30b2c84cfaccf795cc8e6a09023b32331be9a","after":"81f07cf0a3570c29d1e1a1746d0d58ba5fe598bd","ref":"refs/heads/master","pushedAt":"2024-01-03T20:43:29.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Merge pull request #86 from pserwylo/reinit-preferences\n\nFix theme changing by reinitialising preferences each time.","shortMessageHtmlLink":"Merge pull request #86 from pserwylo/reinit-preferences"}},{"before":"0aca375f214c7edc2395fca0d88b36d355e3831d","after":null,"ref":"refs/heads/holiday-hacking-reviews","pushedAt":"2024-01-02T22:53:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":"b87b9de16695dbef1bf52013d450eedee1f9f75c","after":null,"ref":"refs/heads/leak-hunting-with-StrictMode","pushedAt":"2024-01-02T22:32:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":"62fefe4277798585db585285f0b96873ba64fdc4","after":null,"ref":"refs/heads/reshow-config-toast","pushedAt":"2024-01-02T22:25:33.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":"ce5b21b29268df1bc27d68a8b472e43e34c68c40","after":"b7a30b2c84cfaccf795cc8e6a09023b32331be9a","ref":"refs/heads/master","pushedAt":"2024-01-02T21:03:23.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #85 from nicolasbrailo/leak-hunting-with-StrictMode\n\nHoliday Hacking 3: Leak hunting with strict mode","shortMessageHtmlLink":"Merge pull request #85 from nicolasbrailo/leak-hunting-with-StrictMode"}},{"before":"0c6adcfd1b462bbfce7f6c8bde3bd19454247a5c","after":"b87b9de16695dbef1bf52013d450eedee1f9f75c","ref":"refs/heads/leak-hunting-with-StrictMode","pushedAt":"2024-01-02T20:58:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Fun with StrictMode: don't leak entire SoundSets on re-init.\n\nStrictMode pinged on our GC of SoundSets, since they implemented AutoCloseable.\nWe should remember our SoundSets, so we can properly tell them they're no longer needed.","shortMessageHtmlLink":"Fun with StrictMode: don't leak entire SoundSets on re-init."}},{"before":"88d46975713623487e8a11cbf34d69d7ee9de7d5","after":"ce5b21b29268df1bc27d68a8b472e43e34c68c40","ref":"refs/heads/master","pushedAt":"2024-01-02T20:57:14.000Z","pushType":"pr_merge","commitsCount":11,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #84 from nicolasbrailo/reshow-config-toast\n\nHoliday hacking 2: Reshow config toast","shortMessageHtmlLink":"Merge pull request #84 from nicolasbrailo/reshow-config-toast"}},{"before":"e41fddba583df2eff2bb0e0fc13b329f2613a9ab","after":"2ab98271b399d811fbe8f76654f577f3a7b77e2b","ref":"refs/heads/piano-coordinate-testing","pushedAt":"2024-01-02T12:55:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Property-based tests for piano touch-coordinate mapping.","shortMessageHtmlLink":"Property-based tests for piano touch-coordinate mapping."}},{"before":"468eabe7d3db86c1161c769115ed2e0f991ac38b","after":"0aca375f214c7edc2395fca0d88b36d355e3831d","ref":"refs/heads/holiday-hacking-reviews","pushedAt":"2024-01-02T12:44:47.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"review #83: stronger non-null on Piano.addListener.","shortMessageHtmlLink":"review #83: stronger non-null on Piano.addListener."}},{"before":"1e4219858793a4fd17fb975a8ee605954fce159a","after":"468eabe7d3db86c1161c769115ed2e0f991ac38b","ref":"refs/heads/holiday-hacking-reviews","pushedAt":"2024-01-02T12:33:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"review #83: stronger non-null on Piano.addListener.","shortMessageHtmlLink":"review #83: stronger non-null on Piano.addListener."}},{"before":"5fe83d73f862fb90a7f084b0a33f50bdf5328407","after":"1e4219858793a4fd17fb975a8ee605954fce159a","ref":"refs/heads/holiday-hacking-reviews","pushedAt":"2024-01-02T12:31:14.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"review #83: stronger non-null on Piano.addListener.","shortMessageHtmlLink":"review #83: stronger non-null on Piano.addListener."}},{"before":null,"after":"5fe83d73f862fb90a7f084b0a33f50bdf5328407","ref":"refs/heads/holiday-hacking-reviews","pushedAt":"2024-01-02T12:30:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"review #83: stronger non-null on Piano.addListener.","shortMessageHtmlLink":"review #83: stronger non-null on Piano.addListener."}},{"before":"bb5a28487fb86c42b05933da9735177c7c8f8de1","after":null,"ref":"refs/heads/flatten-key-press-handling","pushedAt":"2024-01-02T12:23:00.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":"e0eac05c8dca6a2b652bc363efb77a9e181e9ee9","after":"62fefe4277798585db585285f0b96873ba64fdc4","ref":"refs/heads/reshow-config-toast","pushedAt":"2024-01-02T10:31:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Spam config toasts less often: trigger count 3->5.\n\nsome local testing showed that three config-key hits result\nin a somewhat-spammy behaviour.\nA moderate raising of the trigger limit makes it far less\nlikely to trigger the toast \"by accident\", and still\ngives it relatively quickly when \"seeking\" it.","shortMessageHtmlLink":"Spam config toasts less often: trigger count 3->5."}},{"before":"453e67dd30abf3c872a8d402d6fd523941eaeac6","after":"88d46975713623487e8a11cbf34d69d7ee9de7d5","ref":"refs/heads/master","pushedAt":"2024-01-02T10:25:09.000Z","pushType":"pr_merge","commitsCount":9,"pusher":{"login":"pserwylo","name":"Peter Serwylo","path":"/pserwylo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/248565?s=80&v=4"},"commit":{"message":"Merge pull request #83 from nicolasbrailo/flatten-key-press-handling\n\nHoliday Hacking 1: Architecture: Flatten key press handling","shortMessageHtmlLink":"Merge pull request #83 from nicolasbrailo/flatten-key-press-handling"}},{"before":"a207d2bca708df0ed595d9ac29282f3648fb1934","after":null,"ref":"refs/heads/depend-on-dependabot","pushedAt":"2023-12-17T21:33:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"}},{"before":null,"after":"0c6adcfd1b462bbfce7f6c8bde3bd19454247a5c","ref":"refs/heads/leak-hunting-with-StrictMode","pushedAt":"2023-12-16T21:46:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Fun with StrictMode: don't leak entire SoundSets on re-init.\n\nStrictMode pinged on our GC of SoundSets, since they implemented AutoCloseable.\nWe should remember our SoundSets, so we can properly tell them they're no longer needed.","shortMessageHtmlLink":"Fun with StrictMode: don't leak entire SoundSets on re-init."}},{"before":"9cadc8fa20b30a188a7d52204716da5cd02189a8","after":"e0eac05c8dca6a2b652bc363efb77a9e181e9ee9","ref":"refs/heads/reshow-config-toast","pushedAt":"2023-12-16T12:34:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Spam config toasts less often: trigger count 3->5.\n\nsome local testing showed that three config-key hits result\nin a somewhat-spammy behaviour.\nA moderate raising of the trigger limit makes it far less\nlikely to trigger the toast \"by accident\", and still\ngives it relatively quickly when \"seeking\" it.","shortMessageHtmlLink":"Spam config toasts less often: trigger count 3->5."}},{"before":"6ee76984f57a018069a569e2d7a8b1c2b14d62f4","after":"9cadc8fa20b30a188a7d52204716da5cd02189a8","ref":"refs/heads/reshow-config-toast","pushedAt":"2023-12-02T15:22:06.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Add AppConfigTrigger test, guided by missing coverage.\n\nThis takes our coverage to 91% line, 81% branch.\nTo go any higher, we would have to dynamically create \"impossible\" scenarios by\nmodifying CONFIG_TRIGGER_COUNT (via reflection?), which is a bridge too far.","shortMessageHtmlLink":"Add AppConfigTrigger test, guided by missing coverage."}},{"before":null,"after":"6ee76984f57a018069a569e2d7a8b1c2b14d62f4","ref":"refs/heads/reshow-config-toast","pushedAt":"2023-12-02T12:04:00.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Move 'envious' drawing logic from AppConfigTrigger to PianoCanvas.\n\nGiven that:\n 1) all the drawing implementations it uses are already *in* PianoCanvas, and\n 2) that it gets its required context *from* PianoCanvas, and\n 3) it's the only usage of android context remaining in all of AppConfigTrigger,\nsee it through all the way:\nMove the remaining drawing draw-logic to PianoCanvas as well.\n\nTo do this, we need to expose a bit more of AppConfigTrigger's state, which\nactually brings us closer to a Model-View-Controller pattern, which is a sign we're\nmoving in the right direction.\nAppConfigTrigger is now a proper (View-less) Model.\nPianoCanvas still has a dual identity as View+Controller, but that's a problem\nfor another day.","shortMessageHtmlLink":"Move 'envious' drawing logic from AppConfigTrigger to PianoCanvas."}},{"before":"2a2b1721d6ba3a4fb47de5019bef4e396607d867","after":"bb5a28487fb86c42b05933da9735177c7c8f8de1","ref":"refs/heads/flatten-key-press-handling","pushedAt":"2023-12-01T14:36:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"juleskers","name":"Jules Kerssemakers","path":"/juleskers","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7068025?s=80&v=4"},"commit":{"message":"Group sound-related stuff into 'sound' package.\n\nIt was getting cluttered in the main package.","shortMessageHtmlLink":"Group sound-related stuff into 'sound' package."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD7fXEAgA","startCursor":null,"endCursor":null}},"title":"Activity · nicolasbrailo/PianOli"}