question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Upgrade Riot-Android application with RiotX code base

See original GitHub issue

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.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:20
  • Comments:8 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
Bubucommented, 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.

2reactions
aaronraimistcommented, May 4, 2020
Read more comments on GitHub >

github_iconTop Results From Across the Web

Emulator release notes - Android Developers
This update includes the following improvements and fixes: ... Linux emulator source code now supports cross compilation from x86_64 to ...
Read more >
12 Best Root Apps For Android Phone In 2022 [Updated List]
Verdict: Magisk Manager is one of the best Android root apps. You can use the software to root your device and enhance the...
Read more >
How to Implement Root Detection in Android Applications
Most detection apps simply try to run su or perform basic checks. Root Inspector uses multiple methods of root detection. There are 15...
Read more >
How to root Android: Everything you need to know!
You can unlock your phone's potential when you root Android and get access to all it can do. ... Install apps that do...
Read more >
How to root Android phones and tablets (and unroot them)
Looking to root your Android device and gain access to an entirely new world of apps and features? Here's our guide to rooting...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found