{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":148093817,"defaultBranch":"develop","name":"oppia-android","ownerLogin":"oppia","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2018-09-10T03:25:11.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/11620230?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717447479.0","currentOid":""},"activityList":{"items":[{"before":"acc6067a1f7e0ea49b7ee111b722e7ba758f251b","after":"7c34ab980edc9fd4bb9abbec0522e6fac1e1415c","ref":"refs/heads/onboarding-learner-intro-screen","pushedAt":"2024-06-04T21:50:42.000Z","pushType":"push","commitsCount":41,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Merge remote-tracking branch 'upstream/create-profile-screen' into onboarding-learner-intro-screen\n\n# Conflicts:\n#\tapp/src/main/java/org/oppia/android/app/activity/ActivityComponentImpl.kt\n#\tapp/src/main/java/org/oppia/android/app/fragment/FragmentComponentImpl.kt\n#\tapp/src/main/java/org/oppia/android/app/onboarding/CreateProfileFragmentPresenter.kt\n#\tapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragment.kt\n#\tapp/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt\n#\tapp/src/main/res/values/styles.xml\n#\tapp/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt\n#\tscripts/assets/test_file_exemptions.textproto","shortMessageHtmlLink":"Merge remote-tracking branch 'upstream/create-profile-screen' into on…"}},{"before":"c23baab4b77c8f80d7e020af2efaddb598aabae1","after":"90d56c119383051d49bcce1ba2e0506e8b096337","ref":"refs/heads/create-profile-screen","pushedAt":"2024-06-04T21:23:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix script check failures","shortMessageHtmlLink":"Fix script check failures"}},{"before":"e39cd1991fbe008421005447e41d896bebeeba38","after":"c23baab4b77c8f80d7e020af2efaddb598aabae1","ref":"refs/heads/create-profile-screen","pushedAt":"2024-06-04T21:15:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix missing build input","shortMessageHtmlLink":"Fix missing build input"}},{"before":"9dcf007f39d3ecfa668047e12e8108760d730b5e","after":"e39cd1991fbe008421005447e41d896bebeeba38","ref":"refs/heads/create-profile-screen","pushedAt":"2024-06-04T20:42:29.000Z","pushType":"push","commitsCount":36,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Add test for image loading","shortMessageHtmlLink":"Add test for image loading"}},{"before":"c694f5140d54e9a6603d675ffb04403212061f1a","after":"12fbcad76b0699280c586a1d00943edd01db17bc","ref":"refs/heads/onboarding-profile-type-screen","pushedAt":"2024-06-04T10:00:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix static check errors","shortMessageHtmlLink":"Fix static check errors"}},{"before":"0bdd4477ab6a70529fef48ee16184aa26fe578e3","after":"c694f5140d54e9a6603d675ffb04403212061f1a","ref":"refs/heads/onboarding-profile-type-screen","pushedAt":"2024-06-03T23:06:33.000Z","pushType":"push","commitsCount":27,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix tests","shortMessageHtmlLink":"Fix tests"}},{"before":"4b26fd57465ac3fc351b0c39c28ab9acd560cfbf","after":null,"ref":"refs/heads/fix-build-time-kotlin-java-warnings","pushedAt":"2024-06-03T20:44:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"BenHenning","name":"Ben Henning","path":"/BenHenning","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12983742?s=80&v=4"}},{"before":"3c7713d832badacf842a5b19ec0f8b6a4ce28fba","after":"3a369ed0994395dde2884331f50a8edb0c8db7aa","ref":"refs/heads/develop","pushedAt":"2024-06-03T20:44:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"BenHenning","name":"Ben Henning","path":"/BenHenning","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12983742?s=80&v=4"},"commit":{"message":"Fixes part of #4120, part of #1051: Fix a lot of build-time warnings (#5402)\n\n## Explanation\r\nFixes part of #4120\r\nFixes part of #1051\r\n\r\nSimilar to #5400, this brings forward changes that would otherwise go in\r\n#4937 to simplify the transition to Kotlin 1.6.\r\n\r\nPart of #4937 is introducing warnings-as-errors for both Kotlin and Java\r\nin order to reduce developer error, simplify the codebase, and minimize\r\nwarnings when building (which can result in developer habits of ignoring\r\nwarnings that might have real consequences to end users of the app). In\r\norder to keep the main migration PR smaller, this PR fixes all existing\r\nwarnings and any new ones detected with the Kotlin 1.6 compiler that are\r\nnot tied to Kotlin 1.5/1.6 API changes (those are part of #4937,\r\ninstead). Fortunately, most of the changes could be brought forward into\r\nthis PR.\r\n\r\nSpecific things to note:\r\n- A few new issues were filed for SDK 33 deprecations caused, but not\r\nnoted by, #5222): #5404, #5405, and #5406 and corresponding TODOs added.\r\nThis PR opts for TODOs over actual fixes to minimize the amount of\r\nmanual verification needed, and to try and keep the PR more focused on\r\nnon-functional refactor changes (to reduce the risk as reverting this PR\r\nmay be difficult if an issue is introduced).\r\n- A lot of the fixes were removing redundant casts or null checks.\r\n- The old mechanism we used for view models is deprecated, and had a lot\r\nof problems (partially documented in #1051). This PR moves the codebase\r\nover to directly injecting view models instead of using the view model\r\nprovider (thus getting rid of true Jetpack view models entirely in the\r\ncodebase).\r\n- We never used the Jetpack functionality, and we were leaking a lot of\r\ncontext objects that could theoretically result in memory leaks.\r\n- The migration of view models in this way has already been ongoing in\r\nthe codebase; this PR just finishes moving the rest of them over to\r\nremove the deprecated JetPack view model reference.\r\n- Note that this doesn't actually change the scope of the view models,\r\nand in fact they should largely behave as they always have.\r\n- ``ObservableViewModel`` was subsequently updated, and may be something\r\nwe could remove in the future now that it's no longer a Jetpack view\r\nmodel.\r\n- The old view model binding code was removed, along with its test file\r\nexemptions. It's no longer used now that the view models have been\r\nfinished being migrated over to direct injection.\r\n- Some of the binding adapters didn't correctly correspond to their\r\nnamespaced properties. I _think_ that the databinding compiler was still\r\nhooking them up correctly, but they produced build warnings that have\r\nnow been addressed (specifically, 'app' is implied). Some other\r\nproperties were using unusual namespaces, so these were replaced with\r\n'app' versions for consistency & correctness.\r\n- Some cases where SAM interfaces could be converted to lambdas were\r\nalso addressed (mainly for ``Observer`` callbacks in UI code).\r\n- ``DrawerLayout.setDrawerListener`` was replaced with calls to\r\n``DrawerLayout.addDrawerListener`` since the former [is\r\ndeprecated](https://developer.android.com/reference/androidx/drawerlayout/widget/DrawerLayout#setDrawerListener(androidx.drawerlayout.widget.DrawerLayout.DrawerListener)).\r\nThis isn't expected to have a functional difference.\r\n- Some other minor control flow warnings were addressed (such as dead\r\ncode paths).\r\n- ``when`` cases were updated to be comprehensive (as this is enforced\r\nstarting in newer versions of Kotlin even for non-result based ``when``\r\nstatements).\r\n- Some unused variables were removed and/or replaced with ``_`` per\r\nKotlin convention.\r\n- Some parameter names needed to be updated to match their override\r\nsignatures.\r\n- One change in ``ExitSurveyConfirmationDialogFragment`` involved\r\nremoving parsing a profile ID. Technically this is a semantic change\r\nsince now a crash isn't going to happen if the profile ID is missing or\r\nincorrect, but that seems fine since the fragment doesn't even need a\r\nprofile ID to be passed.\r\n- Some of the test activities were updated to bind a ``Runnable``\r\ncallback rather than binding to a method (just to avoid passing the\r\nunused ``View`` parameter and to keep things a bit simple binding-wise).\r\n- Some cases were fixed where variables were being shadowed due to\r\nreused names in deeper scopes.\r\n- There were some typing issues going on in tests with custom test\r\napplication components. This has been fixed by explicitly declaring the\r\napplication component types rather than them being implicit within the\r\ngenerated Dagger code.\r\n- ``getDrawable`` calls were updated to pass in a ``Theme`` since the\r\nnon-theme version is deprecated.\r\n- Some Java property references were updated, too (i.e. using property\r\nsyntax instead of Java getters when referencing Java code in Kotlin).\r\n- In some cases, deprecated APIs were suppressed since they're needed\r\nfor testing purposes.\r\n- Mockito's ``verifyZeroInteractions`` has been deprecated in favor of\r\n``verifyNoMoreInteractions``, so updates were made in tests accordingly.\r\n- ``ExperimentalCoroutinesApi`` and ``InternalCoroutinesApi`` have been\r\ndeprecated in favor of a newer ``OptIn`` method (which can actually be\r\ndone via kotlinc arguments, but not in this PR). Thus, they've been\r\noutright removed in cases where not needed, and otherwise migrated to\r\nthe ``OptIn`` approach where they do need to be declared.\r\n- In some cases, Kotlin recommends using a ``toSet()`` conversion for\r\niterable operations when it's more performant, so some of those cases\r\n(where noticed) have been addressed.\r\n- Some unused parameter cases needed to be suppressed for situations\r\nwhen Robolectric is using reflection to access them.\r\n- In some cases Android Studio would recommend transformation chain\r\nsimplifications; these were adopted where obvious.\r\n- There are a few new TODOs added on #3616 as well, to clean up\r\ndeprecated references that have been suppressed in this PR.\r\n- ``BundleExtensions`` was updated to implement its own version of the\r\ntype-based ``getSerializable`` until such time as ``BundleCompat`` can\r\nbe used, instead (per #5405).\r\n- A **lot** of nullability improvements needed to happen throughout the\r\nJSON asset loading process since there was a lot of loose typing\r\nhappening there.\r\n- Some Kotlin & OkHttp deprecated API references were also updated to\r\nuse their non-deprecated replacements.\r\n- ``NetworkLoggingInterceptorTest`` was majorly reworked to ensure that\r\nthe assertions would actually run (``runBlockingTest`` was being used\r\nwhich is deprecated, and something I try to avoid since it's very\r\ndifficult to write tests that use it correctly). My investigations\r\nshowed that the assertions weren't being called, so these tests would\r\nnever fail. The new versions will always run the assertions or fail\r\nbefore reaching them, and fortunately the code under test passes the\r\nassertions correctly. Ditto for ``ConsoleLoggerTest``.\r\n- Some parts of ``SurveyProgressController`` were reworked to have\r\nbetter typing management and to reduce the need for nullability\r\nmanagement.\r\n- Some generic typing trickiness needed to be fixed ahead of the Kotlin\r\nversion upgrade in ``UrlImageParser``. See file comments & links in\r\nthose comments for more context.\r\n- ``BundleExtensionsTest`` had to be changed since\r\n``getSerializableExtra`` is now deprecated. We also can't update the\r\ntest to run SDK 33 since that requires upgrading Robolectric, and\r\nRobolectric can't be upgraded without upgrading other dependencies that\r\neventually lead to needing to upgrade both Kotlin and Bazel (so it's a\r\nnon-starter; this is a workaround until we can actually move to a newer\r\nversion of Robolectric).\r\n- There was some minor code-deduplication & cleanup done in\r\n``ClickableAreasImage``.\r\n- Some incorrect comments were removed in tests (to the effect of \"using\r\nnot-allowed-listed variables should result in a failure.\"). These seemed\r\nto have been copied from an earlier test, but the later tests weren't\r\nactually verifying that behavior so the comment wasn't correct.\r\n- An unused method was removed from ``ConceptCardRetriever``\r\n(``createWrittenTranslationFromJson``) and some other small\r\ncleanup/consolidation work happened in that class.\r\n- Some stylistic changes were done in ``TopicController`` for JSON\r\nloading to better manage nullable situations, and to try and make the\r\nJSON loading code slightly more Kotlin idiomatic.\r\n\r\nNote that overall the PR has relied **heavily** on tooling to detect\r\nwarnings to fix, and automated tests to verify that the changes have no\r\nside effects.\r\n\r\nNote also that this PR does not actually enable warnings-as-errors; that\r\nwill happen in a downstream PR.\r\n\r\n## Essential Checklist\r\n- [x] The PR title and explanation each start with \"Fix #bugnum: \" (If\r\nthis PR fixes part of an issue, prefix the title with \"Fix part of\r\n#bugnum: ...\".)\r\n- [x] Any changes to\r\n[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)\r\nfiles have their rationale included in the PR explanation.\r\n- [x] The PR follows the [style\r\nguide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).\r\n- [x] The PR does not contain any unnecessary code changes from Android\r\nStudio\r\n([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).\r\n- [x] The PR is made from a branch that's **not** called \"develop\" and\r\nis up-to-date with \"develop\".\r\n- [x] The PR is **assigned** to the appropriate reviewers\r\n([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).\r\n\r\n## For UI-specific PRs only\r\nN/A -- While this changes UI code, it should change very few UI\r\nbehaviors and only failure cases for those it does affect. It's largely\r\ninfrastructural-only and falls mainly under refactoring/cleanup work.\r\n\r\n---------\r\n\r\nCo-authored-by: Adhiambo Peres <59600948+adhiamboperes@users.noreply.github.com>\r\nCo-authored-by: Sean Lip ","shortMessageHtmlLink":"Fixes part of #4120, part of #1051: Fix a lot of build-time warnings (#…"}},{"before":"bc98d27daaabfc28ac09055aa13387625d5d9c67","after":"fd69342d5b5d05d2b7ab43e786f39930461b483d","ref":"refs/heads/upgrade-to-kotlin1.6","pushedAt":"2024-06-03T19:58:50.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"BenHenning","name":"Ben Henning","path":"/BenHenning","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12983742?s=80&v=4"},"commit":{"message":"Merge branch 'fix-build-time-kotlin-java-warnings' into upgrade-to-kotlin1.6","shortMessageHtmlLink":"Merge branch 'fix-build-time-kotlin-java-warnings' into upgrade-to-ko…"}},{"before":"2d3f5d53771e55be38a317b775e426cb7ce4ae3b","after":"4b26fd57465ac3fc351b0c39c28ab9acd560cfbf","ref":"refs/heads/fix-build-time-kotlin-java-warnings","pushedAt":"2024-06-03T19:57:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"BenHenning","name":"Ben Henning","path":"/BenHenning","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12983742?s=80&v=4"},"commit":{"message":"Merge branch 'develop' into fix-build-time-kotlin-java-warnings","shortMessageHtmlLink":"Merge branch 'develop' into fix-build-time-kotlin-java-warnings"}},{"before":"6095c54eb96336295c4d324e9b24d964672a5356","after":"65d9f1165b1df11f24d2304376d0d48757d435e0","ref":"refs/heads/new-onboarding-screen","pushedAt":"2024-06-03T16:56:13.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix failing test","shortMessageHtmlLink":"Fix failing test"}},{"before":"4612e6bb476a6b35609dd2c97a842a8da1c84dcb","after":"6095c54eb96336295c4d324e9b24d964672a5356","ref":"refs/heads/new-onboarding-screen","pushedAt":"2024-06-03T15:47:44.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix drawable vector hex exemption","shortMessageHtmlLink":"Fix drawable vector hex exemption"}},{"before":"1c0494fba973d70942ee7d0972c5961fbb1620b6","after":"4612e6bb476a6b35609dd2c97a842a8da1c84dcb","ref":"refs/heads/new-onboarding-screen","pushedAt":"2024-06-03T15:38:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix test file exemption","shortMessageHtmlLink":"Fix test file exemption"}},{"before":"4851a25ae16bd332660f0d6563c4b57cacbf682a","after":"2af4c14259a07d2d80e9eeafbba43c5331c6dc0d","ref":"refs/heads/translatewiki-prs","pushedAt":"2024-06-03T12:16:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"translatewiki","name":"translatewiki.net","path":"/translatewiki","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24829418?s=80&v=4"},"commit":{"message":"Localisation updates from https://translatewiki.net.","shortMessageHtmlLink":"Localisation updates from https://translatewiki.net."}},{"before":"cb96baf9d398d3602cb618014b82edb0549cbdef","after":"2c894e8ff2a111190ae3dc7eded98189fc5797e0","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-03T11:57:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Remove translationLocaleProvider from getClassroomList","shortMessageHtmlLink":"Remove translationLocaleProvider from getClassroomList"}},{"before":"52c5b13d188b1eda07ab333c136cc0319228a150","after":"cb96baf9d398d3602cb618014b82edb0549cbdef","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-03T10:01:56.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Revert \"Gate the createTopicList function\"\n\nThis reverts commit e3dbfde6","shortMessageHtmlLink":"Revert \"Gate the createTopicList function\""}},{"before":"48921d500f6f0bf0694f719b5c7d80f9c30a3e79","after":"52c5b13d188b1eda07ab333c136cc0319228a150","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T10:58:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Remove unused imports from TopicListController","shortMessageHtmlLink":"Remove unused imports from TopicListController"}},{"before":"fde105c23dfcedc37516b8fe0727c9aa68ec663d","after":"1c0494fba973d70942ee7d0972c5961fbb1620b6","ref":"refs/heads/new-onboarding-screen","pushedAt":"2024-06-02T10:55:48.000Z","pushType":"push","commitsCount":14,"pusher":{"login":"adhiamboperes","name":"Adhiambo Peres","path":"/adhiamboperes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/59600948?s=80&v=4"},"commit":{"message":"Fix ktlint","shortMessageHtmlLink":"Fix ktlint"}},{"before":"6584fe7d1ad5b3ec23924e34e870b9163a8033a2","after":"48921d500f6f0bf0694f719b5c7d80f9c30a3e79","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T10:55:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Remove getTopicList function from TopicListController","shortMessageHtmlLink":"Remove getTopicList function from TopicListController"}},{"before":"e957499c43b90cba601321dde911f39b84a570ba","after":"6584fe7d1ad5b3ec23924e34e870b9163a8033a2","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T08:34:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Update checkProfile test","shortMessageHtmlLink":"Update checkProfile test"}},{"before":"49ae0a468ecd82eb2f084d82f145110a6b2d4f80","after":"e957499c43b90cba601321dde911f39b84a570ba","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T05:44:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Return nullable classroom ID from ProfileManagementController\n\nThe empty classroom ID will be handled in the app level, instead of handling it in the domain level.","shortMessageHtmlLink":"Return nullable classroom ID from ProfileManagementController"}},{"before":"a89b8a7ff1b3cb21420c143c5ef974485f6bfb97","after":"49ae0a468ecd82eb2f084d82f145110a6b2d4f80","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T05:10:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Temporarily hard code default classroom ID in ProfileManagementController","shortMessageHtmlLink":"Temporarily hard code default classroom ID in ProfileManagementContro…"}},{"before":"4ceece249210f52895ffe935597d4611e9e2bd31","after":"a89b8a7ff1b3cb21420c143c5ef974485f6bfb97","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T04:13:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Update ProfileManagementController to store last selected classroom ID and add tests","shortMessageHtmlLink":"Update ProfileManagementController to store last selected classroom I…"}},{"before":"9bec9d62fb9103601fc5b6c01f7e455029d8d571","after":"4ceece249210f52895ffe935597d4611e9e2bd31","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T02:11:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Add kdoc for test classroom id constants","shortMessageHtmlLink":"Add kdoc for test classroom id constants"}},{"before":"e3dbfde60a551d69c253f973da74cc910677bc69","after":"9bec9d62fb9103601fc5b6c01f7e455029d8d571","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-02T01:43:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Fix tests","shortMessageHtmlLink":"Fix tests"}},{"before":"008a233fc612b790edb5de6bc3d14b39703054f9","after":"e3dbfde60a551d69c253f973da74cc910677bc69","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-01T16:02:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Gate the createTopicList function","shortMessageHtmlLink":"Gate the createTopicList function"}},{"before":"637b704fb53a5ad1fffc64f9e920bf391171731a","after":"008a233fc612b790edb5de6bc3d14b39703054f9","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-01T12:40:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Add missing import","shortMessageHtmlLink":"Add missing import"}},{"before":"e90f4d2d7275b5fb1555ab4e5e80a927375beabd","after":"637b704fb53a5ad1fffc64f9e920bf391171731a","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-01T12:25:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Move test classroom id constants to ClassroomController","shortMessageHtmlLink":"Move test classroom id constants to ClassroomController"}},{"before":"714f57de633dc1147873c4847a84e0f558f3fa5a","after":"e90f4d2d7275b5fb1555ab4e5e80a927375beabd","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-01T12:09:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Fix tests","shortMessageHtmlLink":"Fix tests"}},{"before":"ea5e65e8e15b7065f9bec9ae23d96f3c0f80d4c3","after":"714f57de633dc1147873c4847a84e0f558f3fa5a","ref":"refs/heads/multiple-classrooms-domain-support","pushedAt":"2024-06-01T12:02:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"theMr17","name":"Mr. 17","path":"/theMr17","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/84731134?s=80&v=4"},"commit":{"message":"Fix ktlint issues","shortMessageHtmlLink":"Fix ktlint issues"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXH3X2AA","startCursor":null,"endCursor":null}},"title":"Activity · oppia/oppia-android"}