Quasselclient for Android

Related tags

App QuasselDroid
Overview

QuasselDroid Legacy

This is the repository for the legacy version of Quasseldroid. This version is not maintained anymore. Please open all new issues on the rewrite at https://git.kuschku.de/justJanne/QuasselDroid-ng/

Quassel is a distributed, decentralized IRC client, written using C++ and Qt. QuasselDroid is a pure-java client for the Quassel core, allowing you to connect to your Quassel core using your Android (TM) phone.

Screenshot of the main chat window in modern dark Screenshot of the main chat window in classical light

Build Requirements

It requires a recent Android SDK , and the new build system.

It uses the following extra projects (though all support libraries are included for your convenience):

Building

Building is done using gradle. Run "gradlew tasks" to see possible build tasks. Some useful tasks are assemble and installDebug

Things to Note

We finally do support encryption and compression, but the service and the fragments need to be redone properly. Also the UI should get a complete makeover, preferably at the same time as reworking it to use Material Design.

Authors

(in chronological order of appearance)

  • Frederik M. J. Vestre (freqmod)
    (Initial qdatastream deserialization attempts)
  • Martin "Java Sucks" Sandsmark (sandsmark)
    (Protocol implementation, (de)serializers, project (de)moralizer)
  • Magnus Fjell (magnuf)
    (GUI, Android stuff)
  • Ken Børge Viktil (Kenji)
    (GUI, Android stuff)
  • Janne Koschinski (justJanne)
    (GUI, Android stuff, magic-(de)serializers)

Homepage: http://github.com/sandsmark/QuasselDroid
Beta Builds: https://plus.google.com/communities/104094956084217666662

Comments
  • Certificate issue with new Android N beta

    Certificate issue with new Android N beta

    I installed the Android N beta and quasseldroid is not compatible with the new version due to a certificate store error when attempting to connect. It can't seem to retrieve the cached certificate or store the new certificate from the server on connect attempt so it never successfully connects to a server. The error is below:

    The core SSL-Certificate has changed, do you trust the new one? java.lang.RuntimeException: Failed to load certificates from KeyStore

    opened by kevinbenton 11
  • [Feature Request] Automatically reconnect after lost connection

    [Feature Request] Automatically reconnect after lost connection

    I would really like to see an option which enables an automatic reconnect after the connection is lost. After every network change (wifi to mobile or vice versa) or after a period of poor/no mobile connection quasseldroid's connection to the core is lost and you have to manually open the application and hit "connect" to reconnect.

    opened by MrCustomizer 10
  • Non-clean disconnect/exit

    Non-clean disconnect/exit

    Issue:

    Based on the version currently available on Google Play (https://play.google.com/store/apps/details?id=com.iskrembilen.quasseldroid), upon disconnect, Quassel remains in the notification bar as disconnected.

    This is useful if the user wants to continue using and has experienced an unintended disconnect, but not useful if somebody has invoked the disconnect themselves. When navigating away from the Quassel intent(s), the notification of being disconnected remains in the notification bar; it's a little irritating and also makes me concerned about whether a wake-lock is still locked.

    To get round the problem, I currently have to force stop the Quassel app.

    Desired result:

    No disconnection notification altogether, OR

    A disconnection notification when a disconnection has been experienced outside of user invocation. Such a notification should be able to be cleared and not remain resident along with the process.

    A menu option to exit the Quassel app would also be nice.

    opened by ghost 10
  • Material Design, UI and UX improvements and quite a lot of bugfixes

    Material Design, UI and UX improvements and quite a lot of bugfixes

    This is probably the largest Pull Request here yet, I should have split it up into multiple seperate ones, but it was easier to do this way.

    Screenhots APKs

    Here’s a summary of the changes this Pull Request does:

    UI:

    • Replaced ActionBarSherlock with the new AppCompat implementation
    • Added DetailFragment as a right navigation drawer for QueryBuffers
    • Changed the whole UI to use Material Design.
    • Updated Notifications
    • Replaced most icons with new ones from @oppoyu and Android Lollipop default icons
    • Rewrote sender color system
    • Added Tablet UI

    Misc:

    • Made a lot of stuff more modular, allowing for easier modification
    • Moved ALL strings out of the code into the strings.xml, also sorted that file properly to make translations easier
    • Added support for automated Travis building and testing

    Bugfixes:

    • Fixed Notifications: #180 and #26, ~~hopefully~~ confirmed #195
    • Fixed Multiline-input: #181
    • Fixed NickCompletion: #57
    • Fixed #42 (partially) by saving the last state in the app, this stores the state beyond reconnect, but the state is lost at reboot of the phone
    • Fixed UI bugs #76, #40, #99
    • Fixed a lot of reconnect bugs, including #105, #114 and #146, but also multiple ones that weren’t even tracked yet
    • Fixed a bug where, upon joining a new channel, the client would show a random other channel instead.
    opened by justjanne 9
  • HD Version / Tablet Support?

    HD Version / Tablet Support?

    I love this app. IRC was never easier to use, thanks!

    I only wish, it would make better use of all the space on my 10" tablet. Especially in landscape mode, the channel and nickname lists could be integrated with the chat on one screen, making it even more usable! ;)

    Are there any plans to make a HD version for tablets, or to use a different layout for large screens?

    opened by f69m 9
  • Connecting core too slow?

    Connecting core too slow?

    I have a core running craploads of IRC buffers. Looks like QuasselDroid (emulator) fails to get all the init data from the core, even after hard trying:

    03-14 23:38:38.910: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:38.910: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:38.920: WARN/System.err(411): Slow parsing (2ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:38.950: INFO/System.out(411): Slow core is slow: 31ms
    03-14 23:38:38.950: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:38.960: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:38.970: WARN/System.err(411): Slow parsing (10ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:39.010: INFO/System.out(411): Slow core is slow: 28ms
    03-14 23:38:39.010: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:39.020: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:39.020: WARN/System.err(411): Slow parsing (6ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:39.060: INFO/System.out(411): Slow core is slow: 36ms
    03-14 23:38:39.060: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:39.060: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:39.070: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:39.100: INFO/System.out(411): Slow core is slow: 32ms
    03-14 23:38:39.110: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:39.120: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:39.120: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:39.160: INFO/System.out(411): Slow core is slow: 35ms
    03-14 23:38:39.160: INFO/CoreConnection(411): Package reviced, reseting countdown
    03-14 23:38:39.170: ERROR/CoreConnService(411): Getting message buffer already have
    03-14 23:38:39.170: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
    03-14 23:38:40.140: DEBUG/dalvikvm(411): GC freed 9135 objects / 477720 bytes in 74ms
    03-14 23:38:41.880: DEBUG/dalvikvm(411): GC freed 7266 objects / 398368 bytes in 113ms
    03-14 23:38:43.880: DEBUG/dalvikvm(411): GC freed 7238 objects / 397864 bytes in 137ms
    03-14 23:38:45.640: DEBUG/dalvikvm(411): GC freed 7226 objects / 397704 bytes in 84ms
    03-14 23:38:47.170: DEBUG/dalvikvm(411): GC freed 7243 objects / 397904 bytes in 82ms
    03-14 23:38:48.790: DEBUG/dalvikvm(411): GC freed 7257 objects / 398144 bytes in 84ms
    03-14 23:38:50.450: DEBUG/dalvikvm(411): GC freed 7253 objects / 398368 bytes in 87ms
    03-14 23:38:52.101: DEBUG/dalvikvm(411): GC freed 7729 objects / 424576 bytes in 93ms
    03-14 23:38:54.610: DEBUG/dalvikvm(411): GC freed 8371 objects / 458512 bytes in 138ms
    03-14 23:38:56.750: DEBUG/dalvikvm(411): GC freed 9028 objects / 494912 bytes in 104ms
    03-14 23:38:59.160: DEBUG/dalvikvm(411): GC freed 9825 objects / 537120 bytes in 116ms
    03-14 23:39:01.440: DEBUG/dalvikvm(411): GC freed 10463 objects / 576432 bytes in 151ms
    03-14 23:39:03.760: DEBUG/dalvikvm(411): GC freed 11389 objects / 624912 bytes in 126ms
    03-14 23:39:06.630: DEBUG/dalvikvm(411): GC freed 12270 objects / 675016 bytes in 123ms
    03-14 23:39:09.170: INFO/CoreConnection(411): Timer finished, disconnection from core
    03-14 23:39:09.190: WARN/System.err(411): IO error!
    03-14 23:39:09.190: WARN/System.err(411): java.net.SocketException: Bad socket
    03-14 23:39:09.200: WARN/System.err(411):     at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStreamImpl(Native Method)
    03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStream(OSNetworkSystem.java:478)
    03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:565)
    03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:87)
    03-14 23:39:09.250: WARN/System.err(411):     at java.io.DataInputStream.readToBuff(DataInputStream.java:157)
    03-14 23:39:09.250: WARN/System.err(411):     at java.io.DataInputStream.readInt(DataInputStream.java:285)
    03-14 23:39:09.250: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QInteger.unserialize(QInteger.java:24)
    03-14 23:39:09.260: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QInteger.unserialize(QInteger.java:1)
    03-14 23:39:09.270: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.270: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.282: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
    03-14 23:39:09.320: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
    03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
    03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
    03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.340: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.351: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
    03-14 23:39:09.351: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
    03-14 23:39:09.360: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.390: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.410: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
    03-14 23:39:09.410: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
    03-14 23:39:09.420: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.430: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QList.unserialize(QList.java:36)
    03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QList.unserialize(QList.java:1)
    03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
    03-14 23:39:09.460: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
    03-14 23:39:09.470: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QMetaTypeRegistry.unserialize(QMetaTypeRegistry.java:172)
    03-14 23:39:09.470: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QMetaTypeRegistry.unserialize(QMetaTypeRegistry.java:175)
    03-14 23:39:09.480: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection.readQVariantList(CoreConnection.java:805)
    03-14 23:39:09.500: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection.access$2(CoreConnection.java:803)
    03-14 23:39:09.500: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection$ReadThread.run(CoreConnection.java:463)
    

    I assume it tries to load backbuffers and finally gives up after timeoutting?

    opened by miohtama 8
  • Unable to authenticate / zlib end-of-stream

    Unable to authenticate / zlib end-of-stream

    Software versions: Quasselcore Version: v0.12.4, Protocol 10, Debian stretch. Quasseldroid 0.11.7 Build #174 Android 7.0, HTC One M9

    Description: I get an invalid username/password combination on android, and the following were on the sever's core.log

    2017-10-16 16:43:16 Info: Client connected from 2017-10-16 16:43:16 Warning: Reached end of zlib stream!
    2017-10-16 16:43:16 Warning: "Socket error 1: The TLS/SSL connection has been closed"
    2017-10-16 16:43:16 Warning: "Socket error 1: The remote host closed the connection"
    2017-10-16 16:43:16 Info: Non-authed client disconnected:

    opened by BaderSZ 7
  • Add support for Pebble smartwatch

    Add support for Pebble smartwatch

    It would be great to have support for Pebble. I made an quick hack: https://github.com/kipe/QuasselDroid/commit/7046344154b831bed8a34700f9a3ffdc768031a6, which proves that the support shouldn't be that hard to implement. I'm very unexperienced with Android coding at the moment, so I have no means to take this much further, at least not at the moment.

    At the moment the features and/or issues include:

    • Send highlights as notifications to Pebble (not sure if done correctly / in the correct location)
    • ~~The Pebble support should have an item in settings, however I didn't figure out how to do it correctly.~~
    • Notification is sent on each message (even if the buffer is open and visible, configurable in settings?)

    So, any help and suggestions are more than appreciated, I'm more than willing to work on this to get Quassel to my wrist :smile:

    //E: Well, adding the settings -item wasn't that hard: https://github.com/kipe/QuasselDroid/commit/b6400756d0758eb8fc3a6e348cd56d78c91498e4

    Feature Request 
    opened by kipe 6
  • Input history without arrow keys

    Input history without arrow keys

    A google search turns up 8494417fc806e0db70ce4d0e49366319aceee2e1 , which implies that QuasselDroid supports history in the input widget with "up" and "down" keys. On a computer, that would be they arrow keys of the keyboard. However my mobile device (Nexus 5 with the default/built-in software keyboard) has nothing equivalent to arrow keys, as far as I can tell. Can the history feature still be accessed somehow?

    Feature Request 
    opened by SimonSapin 6
  • Quasseldroid crashes on connection; regular Quassel connects just fine.

    Quasseldroid crashes on connection; regular Quassel connects just fine.

    I'm running a Galaxy Nexus (stock GooPlay version) and, after upgrading to 4.3 from the OTA install, Quasseldroid crashes on connecting to my home QuasselCore. I've tried wiping settings from my phone and reinstalling Quasseldroid - no effect. I've submitted this via Android's crash report feature, but I wasn't sure if those got to you.

    After further testing, it looks like the upgrade to 4.3 was a red herring; I still can't connect even after wiping my phone and installing the latest stable Cyanogenmod, so I'm assuming it is choking on something in my SQLlite database for Quassel.

    What additional info do you need from me?

    opened by aetherspoon 6
  • Cannot connect after recreating certificate

    Cannot connect after recreating certificate

    I had some issues with my quassel core so i recreated the certificate using the wiki suggested method: openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout ~/.config/quassel-irc.org/quasselCert.pem -out ~/.config/quassel-irc.org/quasselCert.pem

    After doing this i got an "Connection failed" every time i tried to connect to my core. Removing the "core-configuration" from quassel droid and adding it again didnt help. Neither did upgrading the application to the latest version.

    Completely uninstalling the application and installing it again from android maket fixed the issue.

    Should i supply any more information?

    opened by emil-nasso 6
  • Improve GRADLE build Performance

    Improve GRADLE build Performance

    Parallel test execution maxParallelForks, running multiple test cases in parallel is useful and helpful when there are several CPU cores.

    According to Process forking options, Gradle will run all tests in a single forked VM by default. This can be problematic if there are a lot of tests or some very memory-hungry ones. one option is to fork a new test VM after a certain number of tests have run. So our recommendation is to configure "forkEvery" and we give a specific value of 100

    Disable report generation, Gradle will automatically create test reports by default which will slowing down the overall build. So it's better to disable the test reports while we don't need it

    Incremental compilation, We note that the gradle version for this project is smaller than 4.10, so we recommend enabling this configuration to shorten build times

    ===================== If there are any inappropriate modifications in this PR, please give me a reply and I will change them.

    opened by ChenZhangg 3
  • Unexpected behaviours after a screen orientation change (reported by activity)

    Unexpected behaviours after a screen orientation change (reported by activity)

    I developed an automatic test case generation tool and it detected these problems in your app. I would like to know if you consider them as failures and, if not, why. Thanks for your collaboration.

    1. When I change the orientation of the device screen, the Dialog inside WhitelistActivity disappears 2019-07-16 20-40-03_before 2019-07-16 20-40-03_after

    2. When I change the orientation of the device screen, the Dialog inside NetworkServerActivity disappears 2019-07-17 05-38-31_before 2019-07-17 05-38-31_after

    3. When I change the orientation of the device screen, NetworkCreateActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- "SASL" ToggleButton loses its value 2019-07-17 00-55-45_before 2019-07-17 00-55-45_after

    -- second case -- The Dialog disappears 2019-07-16 21-31-52_before 2019-07-16 21-31-52_after

    1. When I change the orientation of the device screen, NetworkConfigActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- The Dialog disappears 2019-07-17 03-54-51_before 2019-07-17 03-54-51_after

    -- second case -- "Disconnect after" EditText loses its value 2019-07-17 03-35-26_before 2019-07-17 03-35-26_after

    -- third case -- Two ToggleButtons lose their values 2019-07-16 22-57-00_before 2019-07-16 22-57-00_after

    1. When I change the orientation of the device screen, the "Type" options disappear in IgnoreItemActivity 2019-07-17 03-29-58_before 2019-07-17 03-29-58_after

    2. When I change the orientation of the device screen, IdentityCreateActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- "Add to dictionary" option disappears 2019-07-17 00-50-24_before 2019-07-17 00-50-24_after

    -- second case -- The TextView disappears 2019-07-17 00-48-01_before 2019-07-17 00-48-01_after

    -- third case -- It doesn't keep the scroll position 2019-07-16 22-54-29_before 2019-07-16 22-54-29_after

    1. When I change the orientation of the device screen, the Dialog inside HighlightRuleActivity disappears 2019-07-17 05-25-06_before 2019-07-17 05-25-06_after

    2. When I change the orientation of the device screen, HighlightListActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- It loses the value of the "Case Sensitive" ToggleButton 2019-07-17 09-25-10_before 2019-07-17 09-25-10_after

    -- second case -- The options disappear 2019-07-17 03-58-37_before 2019-07-17 03-58-37_after

    -- third case -- The "Highlight rules" disappear 2019-07-16 23-02-56_before 2019-07-16 23-02-56_after

    1. When I change the orientation of the device screen, CoreSettingsActivity doesn't keep the scroll position 2019-07-17 02-11-15_before 2019-07-17 02-11-15_after

    2. When I change the orientation of the device screen, ClientSettingsActivity loses the options opened 2019-07-17 08-34-56_before 2019-07-17 08-34-56_after

    3. When I change the orientation of the device screen, ChatlistCreateActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- "All Networks" option disappears 2019-07-17 11-08-51_before 2019-07-17 11-08-51_after

    -- second case -- The Dialog disappears 2019-07-17 03-26-23_before 2019-07-17 03-26-23_after

    -- third case -- It loses the text written inside the "name" EditText 2019-07-17 03-25-43_before 2019-07-17 03-25-43_after

    1. When I change the orientation of the device screen, the "Paste and Select all" options disappear in ChatActivity 2019-07-17 00-18-44_before 2019-07-17 00-18-44_after

    2. When I change the orientation of the device screen, the Menu in AccountSelectionActivity disappears 2019-07-16 20-50-05_before 2019-07-16 20-50-05_after

    3. When I change the orientation of the device screen, AccountSetupActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- "Paste, Select All" options disappear 2019-07-16 23-54-27_before 2019-07-16 23-54-27_after

    -- second case -- The menu disappears 2019-07-16 21-49-37_before 2019-07-16 21-49-37_after

    -- third case -- "Port" EditText loses the focus 2019-07-16 21-46-41_before 2019-07-16 21-46-41_after

    1. When I change the orientation of the device screen, AccountEditActivity changes its state. Below there are different examples: the screenshots were taken before and after the screen orientation change and they are paired (before, after), (before, after) ...

    -- first case -- It loses some of the text written in the "Password" EditText 2019-07-17 01-46-33_before 2019-07-17 01-46-33_after

    -- second case -- The Dialog disappears 2019-07-16 20-55-58_before 2019-07-16 20-55-58_after

    1. When I change the orientation of the device screen, AboutActivity doesn't keep the scroll position 2019-07-16 20-28-01_before 2019-07-16 20-28-01_after
    opened by datalossdetector 2
  • Random performance improvements

    Random performance improvements

    I have a very large quassel core with many buffers and many users in those buffers, and quasseldroid is very slow to connect (4 minutes) for me. These changes attempt to fix some of the most obvious issues, cutting down connect time by 50% or 2 minutes for me.

    Some of these solutions are more patching up than real fixes (especially that Executor...) but it works.

    Feel free to cherry-pick individual changes from this PR, or split it into multiple commits, I don't really care since it runs fine on my phone now :)

    opened by yawkat 5
  • Add Spanish translation

    Add Spanish translation

    Thanks for porting Quassel for Android. I'm a happy user. Here you are the Spanish translation, for the case you want to offer in next releases. Thanks!

    opened by larjona 0
  • adds files for Spanish translation

    adds files for Spanish translation

    Hello. I added some strings.xml files to translate QuasselDroid to Spanish. This is an initial translation, if you find something odd let me know. Please review and merge if/when possible.

    Thanks.

    opened by auroszx 0
Owner
martin
Information transmitted is intended only for the entity to which it is addressed. If you received this in error please delete the material from all computers.
martin
FoldingNavigationDrawer-Android This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer.

FoldingNavigationDrawer-Android Sample (Play Store Demo) This is a sample project present how to use Folding-Android to add Folding Efect to Navigatio

null 242 Nov 25, 2022
Twidere-Android Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature.

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Jan 2, 2023
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.

Popular Movies Stage 1 + Stage 2 Discover the most popular and top rated movies playing. Movies data fetched using themoviedb.org API. ✨ Screenshots M

Yassin AJDI 189 Nov 26, 2022
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!

Spokestack is an all-in-one solution for mobile voice interfaces on Android. It provides every piece of the speech processing puzzle, including voice

Spokestack 57 Nov 20, 2022
Aggregated Android news, articles, podcasts and conferences about Android Development

DroidFeed Curated news feed for Android Developers! Stay up to date with the latest Android Development news. Built for the Android developer communit

Dogan Gulcan 183 Dec 2, 2022
Shreyas Patil 2.1k Dec 30, 2022
A simple app to showcase Androids Material Design and some of the cool new cool stuff in Android Lollipop. RecyclerView, CardView, ActionBarDrawerToggle, DrawerLayout, Animations, Android Compat Design, Toolbar

#Android-LollipopShowcase This is a simple showcase to show off Android's all new Material Design and some other cool new stuff which is (new) in Andr

Mike Penz 1.8k Nov 10, 2022
The Android startup used to schedule tasks, jobs while launching Android App.

Android Startup, schedule your startup jobs Introduction AndroidStartup is an open source project used to refine your Andriod App startup. Compared wi

ShouHeng 46 Aug 24, 2022
Android playground project with modularization by feature (android libraries), unit tests, MVVM & MVI.

Movies Movies is a simple project to study and play with some android components, architecture and tools for Android development. Tech Stack This proj

Christopher Elias 333 Dec 30, 2022
🌄 Photo editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and PhotoEditor (Android)

React Native Photo Editor (RNPE) ?? Image editor using native modules for iOS and Android. Inherit from 2 available libraries, Brightroom (iOS) and Ph

Baron Ha. 242 Dec 28, 2022
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

MindOrks 1.2k Dec 29, 2022
A simple Android app to demonstrate the use of Hover SDK for M-PESA Send Money while offline. This SDK does not require an internet connection, it automates USSD sessions in the background of an android application.

HoverSDKDemo Hover SDK is an Android SDK that lets mobile developers to add money features to the applications. This SDK does not require an internet

Joel Kanyi 9 Dec 21, 2022
Source code of JekyllEx Android App which can manage your Jekyll blog directly from your Android device!

JekyllEx Android App Built with ❤︎ by Gourav Khunger ?? Introduction JekyllEx is an Android App that allows you to manage a Jekyll Blog directly from

JekyllEx 24 Nov 8, 2022
A Simple and Minimal Quotes Android Application to demonstrate the Modern Android Development tools

Quotee Android ?? A Simple and Minimal Quotes Android Application to demonstrate the Modern Android Development tools. Developed with ❤️ by Aminullah

null 12 Aug 24, 2022
🎥 A Simple and Minimal Movies Android Application to demonstrate the Modern Android Development and Jetpack Compose.

ComposeMovie Android ?? A Simple and Minimal Movies Android Application to demonstrate the Modern Android Development and Jetpack Compose. Built with

null 13 Oct 1, 2022
Android Studio project wrapper around the Elixir TodoApp Desktop app to run on Android including the Erlang runtime

TodoApp Android: An Android Sample App This Android Studio project wraps the Desktop Sample App to run on an Android phone. How to build & run Install

elixir-desktop 78 Dec 10, 2022
GmailCompose is an Android application 📱 for showcasing Jetpack Compose for building declarative UI in Android.

GmailCompose GmailCompose Demo GmailCompose is an Android application ?? for showcasing Jetpack Compose for building declarative UI in Android. About

Baljeet Singh 35 Nov 29, 2022
Parsing and re-packing Android boot.img/vbmeta.img, supporting Android 12(preview)

Android_boot_image_editor A tool for reverse engineering Android ROM images. Getting Started install required packages Mac: brew install lz4 xz dtc Li

null 615 Dec 30, 2022
android-trinity is tiny proactive framework with much of the scaffolding code required to start a new Android Application.

android-trinity This is tiny framework with much of the scaffolding code (with some nice utilities and prepared source code) required to start a new A

Fernando Cejas 49 Nov 24, 2022