Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade Riot-Android application with RiotX code base #1273

Closed
21 of 24 tasks
bmarty opened this issue Apr 23, 2020 · 8 comments
Closed
21 of 24 tasks

Upgrade Riot-Android application with RiotX code base #1273

bmarty opened this issue Apr 23, 2020 · 8 comments

Comments

@bmarty
Copy link
Member

bmarty commented Apr 23, 2020

The decision has been taken to upgrade the Riot-Android application with the RiotX codebase, and to properly migrate the existing account data to let users enjoy the new version of the app without having to log in again. RiotX application will be then removed from the PlayStore and so will never be a production application.

Here are the identified steps so far:

on the RiotX codebase:

  • 1. Change applicationId to im.vector.app. No need to rename the folder of the source code.
  • 2. Import previous credentials to let logged user stay connected after the upgrade of there Riot-Android application
  • 3. Import the previous crypto database to avoid users loosing there keys after the upgrade
    The two last steps should not impact the user and should be transparent for him.
  • 4. There is no need to migrate the session store. An initial sync will be performed.
  • 5. Cleanup all the previous files created by the legacy codebase and not used anymore by the RiotX codebase.
  • 6. Implement every issues with the label riotx-go-live
  • 7. Check permissions. Some permissions may have been already granted to Riot-Android (ex: read_contact), and not used yet in RiotX. If we remove them from the manifest during the upgrade, we will ask again the user to use the permission in the future. So add them now to the RiotX Android Manifest to keep the user grant access allowance.
    EDIT: permissions will be added when we will add the feature which require them
  • 8. VersionCode: ensure current version code generation of RiotX is compatible to generate an update of Riot-Android
  • 9. SecureStorage: this is a point, study what are the problematics and how we can handle it
  • 10. User agent: restore user agent of Riot-Android on RiotX?
  • 11. RageShake: study impact
  • 12. Appname: change the app name to "Riot.im"
  • 13. Icon. Keep the RiotX icon and look and feel (?)
  • 14. Outdated homeservers: RiotX does not support to get connected to outdated homeserver. Lazy-loading of room members is required. Other checks are done to know if login and registration are supported by RiotX. So we have to deal with current users of Riot-Android who are connected to an outdated homeserver. The current idea is to check, during the migration process, if the homeserver is uptodate regarding RiotX codebase requirement, and if it is not the case, to warn the user about the fact that their homeserver has to be updated, for security reason, and that some features may not work properly. Though the access to the application should not be blocked anyway.
  • 15. Update (remove?) the popup "Welcome to the beta"
RiotX end of life:
  • A branch created before all the previous changes could contains the very last version of RiotX published as a RiotX application, to inform the beta RiotX users that they now have to use (or install) Riot-Android. There will be no migration from RiotX beta app to Riot-Android, but RiotX users are considered power users and won't have difficulties to eventually log in again with the new Riot-Android. Thanks to all the RiotX beta users for there useful contribution!

on the Riot-Android project:

  • Nothing but update the README.md files to let people understand that the code will now die

on Android Matrix SDK:

  • Nothing but update the README.md files to let people understand that the code will now die, even if the new SDK will not be exported from the RiotX codebase for the moment.

Other steps to consider:

  • 1. Remove RiotX application from the PlayStore
  • 2. Ensure Weblate will create PRs on the RiotX codebase and not in Riot-Android and Android matrix SDK project anymore.
  • 3. Update PlayStore description of Riot-Android?

Identified limitations:

  • Riot-Android in minSDK 16 and RiotX is minSDK 19. Every devices running API 18 and less will not get the upgrade of the application.
    EDIT: RiotX is now API 21+
  • Feature parity will not be reached when we will do the upgrade. This is assumed and the following releases will hopefully contains the remaining features. People really annoyed by this can still alternative client, like miniVector (which I know is deliberately missing some features) or download the legacy application from other stores like F-Droid

F-Droid store

  • F-Droid store is also hosting two versions of the application. I assume it will be the same than for the PlayStore: RiotX codebase should replace Riot-Android application.

Forks

Several forks are known by the team (Tchap, miniVector, etc.). The Riot-Android project will stay the same, and the RiotX Github project will stay the same. So it will be up to the forked application owners to fork RiotX and do again the change they have done to their previous fork of Riot-Android. It's worth noting that all the work done to properly handle migration of existing users will also be useful for forked applications.

@bahur142
Copy link

Hi. Thank you for your effort to make the transition flawlessly!

I want to ask how far in the future will that happen? I mean do you consider to implement all the features that Riot-Android has to RiotX and then make the transition update on the Play Store? Or the transition will be soon and the missing features will be added after that step-by-step?

@dkasak
Copy link
Member

dkasak commented Apr 30, 2020

FYI, regarding 13, the new icon looks kind of broken on my screen due to the black shadow -- on first glance it looks like a glitch instead of a shadow. If it is decided that the new icon should be kept, perhaps it would be better to remove the shadow and just leave the uniformly grey background?

@progserega
Copy link

progserega commented May 4, 2020

Do you will implement WebRTC-calls before update Riot-Android to RiotX codebase? I do not see webrtc in this checklist. But if users will lost needed functional after update - it will be not fine.

@aaronraimist
Copy link

@progserega

screenshot

screenshot

@progserega
Copy link

O, sorry! Thank you very mach! We very wait time, when RiotX can do call and will be can stay stable :-)

@Bubu
Copy link
Contributor

Bubu commented May 15, 2020

F-Droid currently still has im.vector.alpha as riot-android as we never made the migration due to the signing key compromise. I guess we could just ask everyone to reinstall at this point.

@bmarty bmarty moved this from Priorization High (P1) to ⏳ Development can start in Deprecated - Element Android Dashboard Jun 11, 2020
@bmarty bmarty moved this from ⏳ Development can start to 🛠️ Development in progress in Deprecated - Element Android Dashboard Jun 19, 2020
@bmarty bmarty self-assigned this Jun 19, 2020
@DanieLoche
Copy link

DanieLoche commented Jul 22, 2020

So... what's the current state of this now, as riot.im android app has been renamed to Element, and RiotX is now "[old] RiotX" ?

=> Does it means that now Element is ahead and RiotX should be dropped down ?
=> OR that's only a name change and RiotX is still the one getting the new functionalities until current issue (#1273) is 100% completed ?

@BillCarsonFr BillCarsonFr moved this from 🛠️ Development in progress to 🎉 Done (merged on develop) in Deprecated - Element Android Dashboard Aug 10, 2020
@bmarty
Copy link
Member Author

bmarty commented Aug 19, 2020

I think we can close this one now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Deprecated - Element Android Dashboard
  
🎉 Done (merged on develop)
Development

No branches or pull requests

7 participants