Commit log

bf77cc5 When entering cheogram.com conversation while onboarding, go to register

Stephen Paul Weber created

50fb3b9 Hide menu and fab when onboarding

Stephen Paul Weber created

a8322c0 Use the JID from the link

Click to expand commit body
Which may contain a resource

Stephen Paul Weber created

9d79d9a Never show tabs in onboarding mode

Stephen Paul Weber created

885e866 This doesn't even work, because we never treat cheogram.com as a stranger

Stephen Paul Weber created

ab45ab7 If onboarding and just cheogram.com conversation open, switch into command flow

Stephen Paul Weber created

48b80f2 When starting command, wait for account to connect

Stephen Paul Weber created

f8b9cea Switch to existing session when there is one, for incoming intent

Stephen Paul Weber created

a814987 Start onboarding where we left off

Click to expand commit body
If they didn't cancel but rather chose an option which could not be completed
under inversion, start where we left off.

Stephen Paul Weber created

2838b7f Fix NPE

Stephen Paul Weber created

8676e52 Fix NPE

Stephen Paul Weber created

d114f37 Allow cancel onboarding

Click to expand commit body
If this is just a register not part of inversion, archive the conversation when
they say "no thanks" so they get back to their regular first start experience.

If this is part of inversion, remove the onboarding account since they aren't
going to use it and set a flag so we know to redirect to magic create instead of
back to the welcome screen.  The flag also lets us know not to offer cheogram
again right after magic create like we normally would.  Then we can clear the
flag out and move on as usual.

Stephen Paul Weber created

260d2c7 Inverted flow happy path

Click to expand commit body
When doing first-time signup, create an account on the onboarding server and
jump into register command at cheogram.  When that command is done, we expect it
will give us an OOB with xmmp:domain.tld?register which will jump us into magic
create flow for that server.  Once the new account is setup, if all we
previously had was an onboarding account we execute jidSwitch and delete the
onboarding account.

If anything goes wrong you are left with the onboarding account still tied to
cheogram and set up in the app as a "normal" account.

If the registration finishes without jumping you to a ?register URI you are left
with the onboarding account, but if you make an account then it will do the
switch after that (it tries the switch blindly, without checking if the current
backend supports it).

If you press "no thanks" you just get a spinner forever.

Stephen Paul Weber created

bcccd8e If a command response indicates an XMPP URI, jump to that

Click to expand commit body
If this is part of completed or canceled then the existing logic will close out
the command run since we do not set responseElement to anything here.

Stephen Paul Weber created

401d447 Make sure UI update happens even if the View was not attached when the iq came in

Stephen Paul Weber created

512dd7f Check google play license and send when registering with cheogram.com

Stephen Paul Weber created

9187739 play dial tones on STREAM_MUSIC when phone is silent

Click to expand commit body
when the phone is silent only the first ~three tones are played when
attempting to play out the tone over STREAM_VOICE_CALL

it’s unclear exactly why this is the case (in the past we went back and forth
between STREAM_VOICE_CALL and STREAM_MUSIC) exactly to fix issues around silent
mode.
Apparently we failed to test this past three sounds.

This commit changes the stream back to music - but not generally as this was in
the past - but only for when the phone is on silent

Daniel Gultsch created

d38c264 lock call activity in portrait mode during audio call

Daniel Gultsch created

9456ba6 put timestamp in all call logs

Daniel Gultsch created

7f5bce4 remove extra translations

Daniel Gultsch created

e7f89fc Translated using Weblate (Swedish)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/sv/

tygyh created

58e0e32 Translated using Weblate (Spanish)

Click to expand commit body
Currently translated at 100.0% (9 of 9 strings)

Translation: Conversations/Android App (Quicksy)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-quicksy/es/

gallegonovato created

1f9861e Translated using Weblate (Italian)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/it/

random_r created

348cbfd Translated using Weblate (Spanish)

Click to expand commit body
Currently translated at 100.0% (9 of 9 strings)

Translation: Conversations/Android App (Quicksy)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-quicksy/es/

gallegonovato created

266b905 Translated using Weblate (Polish)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/pl/

ewm created

2ce24d5 Translated using Weblate (Chinese (Simplified))

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/zh_Hans/

hamburger1024 created

c0c7cf8 Translated using Weblate (Romanian)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ro/

licaon-kter created

54ae06e Translated using Weblate (Galician)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/gl/

ghose created

73e0a0a Translated using Weblate (Spanish)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/es/

gallegonovato created

3c106ed Translated using Weblate (German)

Click to expand commit body
Currently translated at 100.0% (962 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/de/

nautilusx created

587cf22 Translated using Weblate (Russian)

Click to expand commit body
Currently translated at 96.7% (931 of 962 strings)

Translation: Conversations/Android App (shared)
Translate-URL: https://translate.codeberg.org/projects/conversations/android-app-shared/ru/

tonya15115 created

2cb21bc use static (not translated) text for Privacy policy and TOS

Click to expand commit body
For a long time Quicksy had a privacy policy written by myself that explains
in plain English what data we store and how we use it.
https://quicksy.im/#privacy

Google doesn’t like that and prefers that we use some bullshit template that
is extremely vague, doesn’t explain anything and gives us permission to do
basically everything. (At least I think so. I don’t understand the text I
copy pasted)

Apparantly the text in the app is important as well (BARD didn’t explain
that very well when it reviewed our app) therfor we need a static text (not
allow translations)

Furthermore the data safety section on Google Play now claims we store the
users address book even though we don’t actually. But who cares; nobody reads
this and we just do this to make the machine happy. Cool!

Daniel Gultsch created

92f4603 Initial license check code for playstore

Stephen Paul Weber created

4d675aa New new appid for playstore

Click to expand commit body
Someone took ours somehow?

Stephen Paul Weber created

6c0b410 Fix DTMF causes track to become disposed

Stephen Paul Weber created

42c09f4 use setText instead of append()

Daniel Gultsch created

214b3d4 expand emoji range to cover e14

Daniel Gultsch created

c4bc52f Merge branch 'color-resources' of git.sr.ht:~hdasch/cheogram-android

Click to expand commit body
* 'color-resources' of git.sr.ht:~hdasch/cheogram-android:
  Fix ColorResourcesTableCreator creation exception.

Stephen Paul Weber created

fb88410 Throttle BobTransfer re-attempts

Stephen Paul Weber created

bdafe2c Fix ColorResourcesTableCreator creation exception.

Click to expand commit body
A java.lang.ArrayIndexOutOfBoundsException is thrown the third,
and subsequent times, ThemeHelper.applyCustomColors() is called.

,----
| java.lang.ArrayIndexOutOfBoundsException: src.length=128 srcPos=0 dst.length=131 dstPos=2 length=-128
`----

One way to trigger this is to call
ConversationsOverviewFragment.onStart() three times.  For example,
open the app then, three dot menu -> Settings, back, three dot menu ->
Settings, back.

The exception is raised at line ColorResourcesTableCreator.java:616.
So, stringToByteArrayUtf8() is ill prepared to deal with a string
longer than 127 bytes.

While the cast to signed byte is the immediate cause of the exception,
the root cause is growth of the ColorResource name string as the
package name is prepended to the color resource name on each pass
through ColorResourceTableCreator.create().  Using
Resource.getResourceEntryName() instead of Resource.getResourceName()
prevents this.

For the record, here’s the Exception stack trace:

2023-03-23 23:18:34.592   622-622   ColorResou...derCreator com.cheogram.android                 E  Failed to create the ColorResourcesTableCreator.
                                                                                                    java.lang.ArrayIndexOutOfBoundsException: src.length=128 srcPos=0 dst.length=131 dstPos=2 length=-128
                                                                                                    	at java.lang.System.arraycopy(Native Method)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator.stringToByteArrayUtf8(ColorResourcesTableCreator.java:616)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator.access$800(ColorResourcesTableCreator.java:40)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator$StringPoolChunk.processString(ColorResourcesTableCreator.java:299)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator$StringPoolChunk.<init>(ColorResourcesTableCreator.java:223)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator$PackageChunk.<init>(ColorResourcesTableCreator.java:347)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator$ResTable.<init>(ColorResourcesTableCreator.java:140)
                                                                                                    	at com.cheogram.android.ColorResourcesTableCreator.create(ColorResourcesTableCreator.java:114)
                                                                                                    	at com.cheogram.android.ColorResourcesLoaderCreator.create(ColorResourcesLoaderCreator.java:45)
                                                                                                    	at eu.siacs.conversations.utils.ThemeHelper.applyCustomColors(ThemeHelper.java:67)
                                                                                                    	at eu.siacs.conversations.ui.ConversationsActivity.onStart(ConversationsActivity.java:658)
                                                                                                    	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1455)
                                                                                                    	at android.app.Activity.performStart(Activity.java:8076)
                                                                                                    	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3660)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
                                                                                                    	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
                                                                                                    	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210)
                                                                                                    	at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                    	at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                    	at android.os.Looper.loop(Looper.java:288)
                                                                                                    	at android.app.ActivityThread.main(ActivityThread.java:7839)
                                                                                                    	at java.lang.reflect.Method.invoke(Native Method)
                                                                                                    	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                    	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

Hugh Daschbach created

935570b Delay showing command bar on refreshes

Click to expand commit body
To prevent flickering when the other side says it has commands but doesn't.

Stephen Paul Weber created

3737b01 Tags haven't been "read-only" for awhile

Stephen Paul Weber created

b0e7dc7 Respect tag visibility setting more often

Stephen Paul Weber created

b6b9a67 Fix NPE

Stephen Paul Weber created

1e5fe19 Fetch and render vcard4

Stephen Paul Weber created

ef1744a Allow experimental suffix/prefix-label extensions

Stephen Paul Weber created

d2fe3f0 type of null means text-single which is surely fillable

Stephen Paul Weber created

36a0f0a Release sign key

Stephen Paul Weber created

35544cf Sign release bundle

Stephen Paul Weber created

b323f12 Build release aab for playstore as well

Stephen Paul Weber created