It appears that QKSMS does not directly use the default android SMS database. I would like to understand more about how it works and what to expect, from the user perspective.
Currently I am testing QKSMS, and do not have it set as my default sms app. I'm just trying to compare it to my default app. When I receive a new sms, it appears in my default app, but does not appear in QKSMS unless I manually re-sync messages. If I delete a message in QKSMS, it is not deleted in my default SMS app. If I delete a message in the default app, it is not deleted in QKSMS unless I manually re-sync messages. The databases do not appear to sync automatically. The manual re-sync appears to be a one-way sync from the default db to QKSMS. Is this correct?
It's not clear if/how this would change if I did set QKSMS as my default app. It's also not clear what would happen if I use QKSMS for a while and later decide to switch to a different sms app. Would I loose messages that were received while QKSMS was the default app, or are they somehow copied to the default database?
Overall this does not seem very transparent or friendly for new users. Putting some explanation into the wiki would be a good start.
Hi @spocko!
That's correct, QKSMS does use its own internal database for storing messages, because the default one is frankly just too slow. For example, loading a conversation with 30,000+ messages on my phone went from loading in 3 seconds to 20 milliseconds.
When the app isn't set as the default SMS app, it isn't notified when a new message is received or anything in the default database is modified, so this is why you need to manually sync it.
When the app is the default SMS app however, then it will stay in sync and work just as you would expect. And while it reads from its own internal database, it still makes sure that the default one is kept up to date, so that you can switch to another SMS app without losing your history.
In the future I would like to make this more seamless so that you don't need to manually sync the messages when the app isn't set as the default SMS app. This is quite a significant undertaking, however, so I decided that the current solution is a good compromise for the initial launch, as 99% of the app's actual usage will be when it's the default SMS app.
If you have any other questions, I'd be happy to answer!
Thanks for the quick response. In light of that info, I agree that the current solution is fine.
As a quick verification, I just set QKSMS as default, sent myself a sms and a mms, then verified that the new messages appeared in the Samsung Messages app and Textra. QKSMS is indeed noticeably faster than the Samsung app on my phone. Textra is similarly fast, but it also uses it's own db. The QKSMS db seems to be much smaller than the Textra db.
Kudos and thanks for your effort.
Most helpful comment
Hi @spocko!
That's correct, QKSMS does use its own internal database for storing messages, because the default one is frankly just too slow. For example, loading a conversation with 30,000+ messages on my phone went from loading in 3 seconds to 20 milliseconds.
When the app isn't set as the default SMS app, it isn't notified when a new message is received or anything in the default database is modified, so this is why you need to manually sync it.
When the app is the default SMS app however, then it will stay in sync and work just as you would expect. And while it reads from its own internal database, it still makes sure that the default one is kept up to date, so that you can switch to another SMS app without losing your history.
In the future I would like to make this more seamless so that you don't need to manually sync the messages when the app isn't set as the default SMS app. This is quite a significant undertaking, however, so I decided that the current solution is a good compromise for the initial launch, as 99% of the app's actual usage will be when it's the default SMS app.
If you have any other questions, I'd be happy to answer!