Hi, I'm Rajesh Malviya. This summer, I spent my time working on zulip-flutter, a new mobile app client for the Zulip server built with Flutter. My work primarily involved adding new features, addressing high-priority issues, and refactoring some code.
Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful.
- Name: Rajesh Malviya
- Title: Implementing cluster of new features preparing for the launch (of Zulip-Flutter)
- Repository: zulip/zulip-flutter
- Mentors: Sumanth Rao, Ken Clary
-
#574 β content: Open links externally on iOS
- Provide a better UX when opening links embeded in the chat messages on iOS, updating the implementation to open them externally instead of using
SFSafariViewControllerwhich doesn't share cookies data with the Safari browser. Also if user's default browser choice is other than Safari, with the new implementation the link would be opened in their choice of the default browser.
- Provide a better UX when opening links embeded in the chat messages on iOS, updating the implementation to open them externally instead of using
-
#587 β content: Handle video previews
- Added support for displaying a thumbnail preview image for external video links from Youtube and Vimeo. In addition to that also added video player support to play the user uploaded videos in-app.
-
#677 β macos: Take automatic migration away from @NSApplicationMain
- A chore update for macos build of Zulip Flutter.
-
#694 β lightbox test: Add video player regression tests
- Added additional regression tests for the video player, expanding on the tests added earlier.
-
#695 β api: Switch to fused json utf8 decoder for parsing response
- Utilize the new fast path added in Dart stdlib to use the new JsonUtf8Decoder, fusing the two separate decoders for utf8 and json.
-
#703 β notif: Create summary notification
- Added support for grouped notifications across different Zulip servers.
-
#717 β notif: Use Zulip's notification sound on Android
- Play the Zulip's custom notification sound when recieving a notification on Android.
-
#718 β notif: Support messaging-style notifications
- Use Android's Messaging Style notifications to display a list of older unread messages for a conversation in a single notification.
-
#724 β api: Embed platform and app info in user-agent
- Generate a platform specific user-agent to send to each HTTP request sent to the Zulip Server.
-
#755 β notif: Enable autoCancel flag for summary notification
- Fix a bug on Android where the summary notification isn't automatically dismissed when all child notifications have been cleared.
-
#793 β login: Show visiblePassword type keyboard only when password is unobscured
- Fix a bug on Android where the Gboard clipboard preview doesn't obscure the password when it is copied to the clipboard.
-
#795 β notif: Replace flutter_local_notification createNotificationChannel with pigeon
- Replace usage of
createNotificationChannelfrompackage:flutter_local_notificationswith a custom binding usingpackage:pigeon.
- Replace usage of
-
#813 β notif: Add more tests for messaging style notif and fix for fetchBitmap
- Added additional regression tests for the messaging style notifications, expanding on the tests added earlier.
-
#820 β content: Handle thumbnails
- Preview smaller image thumbnails in the message list, instead of loading full-size original image, and then later loading full-size original image when opening the specific image. Client counterpart of the new feature added in Zulip Server 9.0.
-
#833 β lightbox: Display thumbnail with original image sizing
- Use original image dimensions reported by the server to fit the thumbnail image, providing a better UX where the image preview doesn't cause any jumpy layout shift when original image loads and replaces the thumbnail.
-
#856 β Replace flutter_local_notifications with pigeon bindings
- Completely remove dependence on
package:flutter_local_notificationsand replace the remaining functionality with custom pigeon bindings.
- Completely remove dependence on
-
#878 β notif: Handle remove notification message
- Handle remove notification events from the server, to remove the notifications entry for any conversation marked-as-read on a different client.
-
#887 β deps android: Upgrade Android Gradle Plugin
- Update a Android Gradle Plugin and related dependencies, unexpectedly fixing a crash when trying to upload an image from the compose-box.
-
#916 β lightbox: Toggle wakelock while video is playing
- Hold the wakelock while the video is playing to prevent screen from sleeping because of inactivity.
First of all, a big thanks to Google for organizing this program, and giving me this opportunity. Thank you to Greg Price and Chris Bobbe for providing extremely thorough feedback and insights about all my work this summer. Thank you to Sumanth Rao and Ken Clary for mentoring me through this program, and providing valuable code reviews. Thank you to my buddies during this GSoC period Sayed Mahmood Sayedi and Khader M Khudair for their supportive and constructive feedback.
I plan to stay involved in the zulip-flutter project, with initially trying to get the unmerged PRs through the reviews and get them merged. I will try to pick priority issues to help get the project close to launch, including the projects I'd proposed in the initial proposal timeline which changed during the start of the program to focus more on the the priority projects.