Compare commits

..

284 Commits

Author SHA1 Message Date
B. Petersen 3b193c35d9 Update messenger-backend submodule. 2018-12-13 15:09:20 +01:00
B. Petersen aab44755aa add 'dev' to app_name (was removed by reworking strings, we do not want temporary names in the tx repos) 2018-12-13 15:08:55 +01:00
B. Petersen 582b5d035b bump version 2018-12-13 15:02:32 +01:00
B. Petersen 4458577927 colored sender names in groups, tackles #170 2018-12-13 14:57:40 +01:00
B. Petersen cdf2aad98e simplify color handling 2018-12-13 14:41:32 +01:00
B. Petersen 6bc11ed1c0 simplify Recipient handling 2018-12-13 14:08:41 +01:00
B. Petersen c09333d5d6 use delta colors for the avatars in the notification area, remove dead code wrt colors 2018-12-13 13:27:53 +01:00
B. Petersen b9c43c7b6a update translations 2018-12-13 02:45:36 +01:00
B. Petersen 0401b2a0d9 clearify add-language instructions 2018-12-13 02:44:44 +01:00
B. Petersen 2ceb5e11bf update translations 2018-12-13 02:39:23 +01:00
B. Petersen 3d9345ed87 typo 2018-12-13 01:58:42 +01:00
B. Petersen 5af3284e06 add script to add a new language and base scripts to be called from the repo root 2018-12-13 01:55:07 +01:00
B. Petersen bc987a4591 Update messenger-backend submodule. 2018-12-13 01:54:12 +01:00
B. Petersen f3366681d0 add missing core-strings 2018-12-12 23:12:49 +01:00
B. Petersen 0ad2916bcf pimp search results 2018-12-12 21:23:32 +01:00
B. Petersen e4c564ace4 adjust app name, init transifex 2018-12-12 18:10:26 +01:00
björn petersen e90ab537d3 Merge pull request #171 from deltachat/transl
rework translations
2018-12-12 17:56:46 +01:00
B. Petersen defac037de rework strings 2018-12-12 17:55:08 +01:00
B. Petersen 33f07b584b remove unused strings and ids, remove translations for now 2018-12-11 23:31:58 +01:00
B. Petersen 6efbd89674 remove unused share menu; for creation of a new chat, the known floating button should be used 2018-12-11 22:49:49 +01:00
B. Petersen c7e37d153d set correct locale in share activity fragment, fixes crash in #147 2018-12-11 22:41:22 +01:00
B. Petersen 2021979d8e remove unused resources: styles 2018-12-11 22:11:42 +01:00
B. Petersen 5b8383dac3 remove dead code and unused resources wrt group creation 2018-12-11 21:55:09 +01:00
B. Petersen 0b05b954f7 remove unused resources: colors, authenticator, dimensions 2018-12-11 21:35:07 +01:00
B. Petersen 0376acb5ae remove unused google playstore strings 2018-12-11 21:34:25 +01:00
B. Petersen 17dc8cebca remove unused resources detected by lint 2018-12-11 16:45:09 +01:00
B. Petersen 33747e7a41 remove unused resources detected by lint 2018-12-11 14:49:32 +01:00
B. Petersen 99b1703097 remove unused resources detected by lint 2018-12-11 14:22:22 +01:00
B. Petersen a14547ce42 remove unused resources: message refresh 2018-12-11 14:11:25 +01:00
B. Petersen d682084542 remove unused resources: videocam 2018-12-11 14:04:08 +01:00
B. Petersen 9813f01da8 remove unused resources: block, visibility, misc 2018-12-11 13:54:46 +01:00
B. Petersen 27cfc39786 remove unused resources: menu, face 2018-12-11 13:38:54 +01:00
B. Petersen 86914bf4fc remove unused resources: dashboard, devices 2018-12-11 13:10:09 +01:00
B. Petersen 1f9bd90eae remove unused resources: textsms, laptio, video splash, message, signal 2018-12-11 13:05:11 +01:00
B. Petersen 9edbc23207 remove unused resources: document download button 2018-12-11 11:36:38 +01:00
B. Petersen e425533d68 remove unused resources: bluetooth, fingerprint, database, transfer controls 2018-12-11 11:30:52 +01:00
B. Petersen 451f03a6a8 remove unused resources: lockscreen, dialpad, profile splash 2018-12-11 11:19:38 +01:00
B. Petersen 1c76562fc6 remove unused resources: timer, call icons 2018-12-11 11:13:02 +01:00
B. Petersen 94592d46ae remove dead code 2018-12-11 02:56:26 +01:00
B. Petersen a02dde5d51 remove unused resources 2018-12-11 01:40:57 +01:00
B. Petersen 73359fba7d cleanup gradle 2018-12-11 01:12:26 +01:00
B. Petersen f65ac4d604 remove unused squareup/dagger and okhttp dependencies 2018-12-11 01:04:30 +01:00
B. Petersen a469713fbc remove dependency to signal-protocol, closes #138 2018-12-11 00:56:08 +01:00
B. Petersen c781f3b9a4 remove complicated dependencies for tiny appendInt() to array 2018-12-11 00:53:04 +01:00
B. Petersen 87e1937381 remove dependency to google's phonenumers library, tackles #138 2018-12-11 00:23:58 +01:00
B. Petersen cf45c566ba remove tiny dependency to spongycastle/bouncycastle 2018-12-11 00:02:48 +01:00
B. Petersen 612dab112c remove dead code 2018-12-10 23:55:58 +01:00
B. Petersen 1d7bf82b18 add logger from external source here 2018-12-10 23:12:08 +01:00
B. Petersen 55ca2d0ef6 use deltachat-yyyy-MM-dd-HHmmss as a fallback file name, closes #115 2018-12-10 22:30:22 +01:00
B. Petersen 3542455e2a bump version 2018-12-10 17:53:56 +01:00
B. Petersen 2217ce6788 add global information to log, closes #108 2018-12-10 17:36:50 +01:00
B. Petersen 6e48c126fa more logic appearance-preference-order 2018-12-10 17:16:22 +01:00
B. Petersen 177288a8d4 do not open unused deaddrop profile, closes #131 2018-12-10 17:11:58 +01:00
B. Petersen 229ede09f1 do not truncate text to sms-like-sizes, closes #169 2018-12-10 17:04:26 +01:00
B. Petersen e9de6f7e40 rework log handling, no log uploading to foreign servers, closes #119 2018-12-10 15:54:54 +01:00
B. Petersen ce0c181489 remove unused OkHttp 2018-12-10 02:15:31 +01:00
B. Petersen 4e73f4cd0a remove UpdateApk for now as it uses dependecies to signal-http we want to get rid of 2018-12-10 01:57:18 +01:00
B. Petersen 890052d018 remove HourglassView and other probably dead code 2018-12-10 01:28:55 +01:00
B. Petersen 46a7159c5a remove dead code and layouts, remove webrtc 2018-12-10 01:04:25 +01:00
B. Petersen cc94b66799 remove unneeded DisplayMode 2018-12-10 00:43:44 +01:00
B. Petersen 3e4bf6a4a7 remove curve25519 java-dependency 2018-12-10 00:14:20 +01:00
B. Petersen 5dfc54bd43 allow editing name of contact, closes #166 2018-12-10 00:07:58 +01:00
B. Petersen db99a1da6c show encryption info, closes #167 2018-12-09 23:54:52 +01:00
B. Petersen c3c110b55a remove dead code 2018-12-09 22:46:02 +01:00
B. Petersen 31d4e5260f add missing components to profile activity 2018-12-09 21:53:05 +01:00
B. Petersen 109d49668f use DcEventCenter in RecipientPreferenceActivity 2018-12-09 21:12:40 +01:00
B. Petersen 5f13330a8e set avatar-click-handler only if needed, tackles #30 2018-12-09 13:52:38 +01:00
B. Petersen 6503469686 remove unneeded LoaderManager indirection 2018-12-09 13:46:24 +01:00
B. Petersen 9acef33db9 hide unused items from contact profile, tackles #30 2018-12-09 13:22:20 +01:00
B. Petersen 70c44c3efc show contact profile on contact-avatar-click in groups, tackles #30 2018-12-09 12:53:01 +01:00
B. Petersen bb8d4b2ef9 remove sqlite dependency 2018-12-09 03:39:01 +01:00
B. Petersen efb0f31387 remove unneeded persistent jobs 2018-12-09 03:30:44 +01:00
B. Petersen 7fd90ca5d6 remove unneeded parameters from Job object 2018-12-09 03:22:11 +01:00
B. Petersen 9f01b780c7 Update messenger-backend submodule. 2018-12-09 03:06:35 +01:00
B. Petersen 2738251be9 do not create or use signal.db, closes #144 2018-12-09 03:03:14 +01:00
B. Petersen 2ecd6bed8d do not try to load MediaRecord from AttachmentDatabase 2018-12-09 02:50:55 +01:00
B. Petersen 858747149a remove dead code, forward reply-event 2018-12-09 02:43:15 +01:00
B. Petersen b166f1e4fd remove dead code 2018-12-09 02:33:41 +01:00
B. Petersen b34cbc2b88 remove PartDataSource 2018-12-09 02:15:11 +01:00
B. Petersen efb640fb91 remove unneeded PartProvider 2018-12-09 02:04:40 +01:00
B. Petersen db7fcf81d8 make video playback work, closes #152 2018-12-09 01:03:22 +01:00
björn petersen 87f887fe3f Merge pull request #157 from deltachat/clean_out_signal_database
[wip] Clean out signal database
2018-12-08 23:46:33 +01:00
B. Petersen 5da75c7dd0 remove AttachmentDatabase loadings from PartAuthority 2018-12-08 18:22:08 +01:00
B. Petersen a945e659f5 fix crash in MediaOverviewActivity 2018-12-08 18:21:30 +01:00
B. Petersen bcf460eefd Remove GroupDatabase, RecipientDatabase from DatabaseFactory 2018-12-08 17:50:16 +01:00
B. Petersen 496d7ea8a0 remove RecipientsAdapter and belonging functions 2018-12-08 16:35:48 +01:00
Angelo Fuchs 68a5d887c5 #138 removing ThreadDatabase and link from DatabaseFactory to MediaDatabase 2018-12-08 16:18:08 +01:00
Angelo Fuchs dc22c9ef22 #138 removing Mms and Sms Database 2018-12-08 16:18:07 +01:00
Angelo Fuchs 8588765dc7 #138 removing MmsSmsDatabase 2018-12-08 16:18:07 +01:00
B. Petersen f49226d335 tweak 'archived' label 2018-12-08 01:36:59 +01:00
daniel.boehrs 575c815c97 Sharing and forwarding to chats #74 #147 2018-12-07 13:33:47 +01:00
daniel.boehrs 392d6df2c8 Fixed typo 2018-12-07 10:31:32 +01:00
daniel.boehrs 911ed8919a Merge branch 'master' of https://github.com/deltachat/deltachat-android-ii 2018-12-07 10:30:50 +01:00
daniel.boehrs 9dd344e6b7 implement "attach contact" #148 2018-12-07 10:30:08 +01:00
Florian Haar f31817c0a1 Merge branch 'master' of https://github.com/deltachat/deltachat-android-ii 2018-12-07 08:41:49 +01:00
Florian Haar 823217c593 Added default image as default on preferences screen #50 2018-12-07 08:41:21 +01:00
daniel.boehrs 8517570014 Removed patches folder #151 2018-12-07 08:22:48 +01:00
B. Petersen 155bcd42ea round borders for date/system messages 2018-12-06 20:25:51 +01:00
B. Petersen 245982d111 make date and system messages more visible, closes #98 2018-12-06 19:36:35 +01:00
B. Petersen 323ed1b79f adapt default background 2018-12-06 17:54:49 +01:00
B. Petersen 18b4363e83 remove dead code 2018-12-06 17:26:54 +01:00
B. Petersen f30a18422f set bubble foreground colors 2018-12-06 16:31:04 +01:00
B. Petersen d4f5732496 set bubble background color 2018-12-06 16:09:34 +01:00
B. Petersen ada9377a37 use new colors in profile 2018-12-06 15:16:34 +01:00
B. Petersen ef0eb15034 Update messenger-backend submodule. 2018-12-05 20:17:05 +01:00
björn petersen 71ac87c50e Merge pull request #158 from deltachat/colors
addapt to new color api
2018-12-05 20:16:37 +01:00
B. Petersen 84957ace38 addapt to new color api 2018-12-05 16:10:16 +01:00
B. Petersen 77f436c871 bump version 2018-12-04 15:26:19 +01:00
B. Petersen b8b94265a1 Update messenger-backend submodule. 2018-12-04 15:11:22 +01:00
Angelo Fuchs c80cca5cb9 #152 autodiscover unknown mimetypes. 2018-12-04 12:30:18 +01:00
B. Petersen 4a258ee155 remove dead code 2018-12-04 01:11:03 +01:00
B. Petersen e03a78d6a9 remove dead code 2018-12-04 01:00:29 +01:00
björn petersen 58a4bef619 Merge pull request #155 from deltachat/search
implement global search
2018-12-04 00:51:51 +01:00
B. Petersen 48b3982a9e make clicks on search result work 2018-12-04 00:50:54 +01:00
B. Petersen 83d42f689f move recipient dependency to local var 2018-12-04 00:18:37 +01:00
B. Petersen ec094dbd3d do search for chats, contacts, messages 2018-12-04 00:14:40 +01:00
B. Petersen d89540d798 adapt basic search functions 2018-12-03 19:22:30 +01:00
Angelo Fuchs 89355667c3 reformat at two spaces. 2018-12-03 15:02:55 +01:00
Angelo Fuchs fb6b30185d removing unused icon closes #154 2018-12-03 12:32:13 +01:00
B. Petersen c2bc362cb3 remove unneeded permission for global search, tackles #24 2018-12-03 04:22:24 +01:00
B. Petersen e7b2a63e39 remove dead database code 2018-12-03 01:22:49 +01:00
B. Petersen 9835021582 remove dead database code 2018-12-03 00:58:31 +01:00
B. Petersen a190897dfe handle image, gif, audio, video, document and text drafts, closes #73 2018-12-03 00:49:12 +01:00
B. Petersen a37dc03324 save complex draft, async draft saving+message sending 2018-12-01 19:00:29 +01:00
B. Petersen be30da8821 simplify checking for empty messages 2018-12-01 17:45:31 +01:00
B. Petersen 91a9363d20 remove separate sendTextMessage function 2018-12-01 17:35:56 +01:00
B. Petersen 5d235341f8 prepare for unique sendMessage function 2018-12-01 17:23:46 +01:00
B. Petersen eb1773799c remove one recusion on message sending 2018-12-01 16:07:57 +01:00
B. Petersen caef11536b correct logic error on filename generation 2018-12-01 09:48:22 +01:00
B. Petersen b641a72de4 remove even more dead contact sharing code 2018-12-01 00:49:31 +01:00
B. Petersen 5a530ca258 remove dead contact sharing code 2018-12-01 00:05:38 +01:00
B. Petersen f0a7f54025 group send-functions together 2018-11-30 23:32:32 +01:00
B. Petersen 5f159e1d4d cleanup ConversationActivity 2018-11-30 17:56:39 +01:00
B. Petersen 5aa526d979 remove unused dependency to pl.tajchert:waitingdots 2018-11-30 17:36:01 +01:00
B. Petersen 7879f9c22d remove unused apn database and tools 2018-11-30 16:50:27 +01:00
B. Petersen 17399f08e5 remove remaining giphy helpers, tackles #149 2018-11-30 16:02:43 +01:00
B. Petersen 868678b91d rearrange attach-buttons in attach-drawer so that the gap is less disturbing, tackles #149 2018-11-30 16:01:33 +01:00
B. Petersen ef11e1beb2 fill DcContact.getProfileImage() with life 2018-11-30 14:51:41 +01:00
B. Petersen d608f72599 Update messenger-backend submodule. 2018-11-30 14:00:18 +01:00
daniel.boehrs 3417cf428b remove giphy #149 2018-11-30 13:32:37 +01:00
B. Petersen 2a6609e76e Merge branch 'master' of https://github.com/deltachat/deltachat-android-ii 2018-11-30 11:53:21 +01:00
B. Petersen 6f19f922c6 Update messenger-backend submodule. 2018-11-30 11:53:10 +01:00
daniel.boehrs ba7bedb789 Fix naming #148 2018-11-30 11:33:18 +01:00
daniel.boehrs df55c901f0 implement "attach contact" #148 2018-11-30 11:30:11 +01:00
B. Petersen f90d1d6306 remove dead code 2018-11-30 07:26:33 +01:00
björn petersen e7ba46273e Merge pull request #150 from deltachat/profileimage
prefer delta profile image over system profile image
2018-11-30 07:20:34 +01:00
B. Petersen f2cecff741 prefer delta profile image over system profile image 2018-11-30 06:54:59 +01:00
B. Petersen e840e3bcbd remove dead code 2018-11-29 15:26:48 +01:00
B. Petersen bf4053d093 Update messenger-backend submodule. 2018-11-29 01:13:57 +01:00
B. Petersen 1750c07f4d handle text drafts, tackles #73 2018-11-29 01:13:46 +01:00
B. Petersen 983ee6bb80 remove TextSecurePreferences to Prefs which is more handy and has no branding 2018-11-28 16:52:04 +01:00
B. Petersen 7a33f75ba5 remove dead code 2018-11-28 16:50:16 +01:00
B. Petersen df5f3ded29 remove expiring messages manager 2018-11-28 02:00:18 +01:00
B. Petersen 96e1a19b4c remove unused profile sharing 2018-11-28 01:44:27 +01:00
B. Petersen fce4a4267a allow chat-specific ringtones and vibrations 2018-11-28 01:32:14 +01:00
B. Petersen dd8c869eb6 Update messenger-backend submodule. 2018-11-28 00:00:41 +01:00
B. Petersen 126b730f7e allow muting chats and show the state, closes #146 2018-11-27 23:58:07 +01:00
B. Petersen c0e365d2c7 remove dead code 2018-11-27 23:30:31 +01:00
B. Petersen 1f29102176 set name for requestCode 2018-11-27 22:22:36 +01:00
B. Petersen 676308a6fb remove dead code wrt quotes 2018-11-27 17:40:15 +01:00
B. Petersen ba635754ed remove dead code 2018-11-26 23:38:55 +01:00
B. Petersen 01de3d1599 remove dead code 2018-11-26 23:34:56 +01:00
B. Petersen ebcfd61e9a remove unverified|untrusted dialogs|banner 2018-11-26 23:08:26 +01:00
B. Petersen 38218d1846 remove dead code 2018-11-26 22:54:17 +01:00
B. Petersen 01b078cd38 disable doze reminder for now 2018-11-26 22:36:08 +01:00
B. Petersen 7f3f8451c3 remove signal's master key 2018-11-26 22:24:16 +01:00
B. Petersen ffe0f2b22d remove KeyCachingService completely 2018-11-26 22:09:28 +01:00
Daniel 44269cc6bb Merge pull request #140 from deltachat/keycache
remove unused functionality from KeyCachingService
2018-11-26 15:47:19 +01:00
daniel.boehrs eb4be81dce disallow multi select #101 2018-11-26 14:49:15 +01:00
daniel.boehrs a69d99dc7a allow unblocking contacts #101 2018-11-26 14:13:13 +01:00
daniel.boehrs d028ce34b0 Importing system contacts seems broken #134 2018-11-26 13:31:39 +01:00
B. Petersen f8affc698e remove dependencies from KeyCachingService 2018-11-26 02:08:43 +01:00
B. Petersen f84e468402 remove unused functionality from KeyCachingService 2018-11-26 01:56:43 +01:00
B. Petersen 2632117a34 remove dead code 2018-11-26 01:35:36 +01:00
B. Petersen 80dc9f2bd4 remove unused locked-flag 2018-11-26 01:17:35 +01:00
B. Petersen bf122cdb6b remove unneeded passphrase activities 2018-11-26 00:45:27 +01:00
B. Petersen 4f5b43579b move helper-classes from org.whispersystem here, tackles #138 2018-11-26 00:36:35 +01:00
B. Petersen b379dafbb5 remove sleep() dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:48:08 +01:00
B. Petersen 8fffcf9c80 remove group-db dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:41:21 +01:00
B. Petersen ef7fdee701 Merge branch 'master' of https://github.com/deltachat/deltachat-android-ii 2018-11-25 23:35:49 +01:00
B. Petersen 48b98150dc remove db dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:35:35 +01:00
B. Petersen af97da38da remove attachment/slider dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:23:34 +01:00
B. Petersen 39ad881eb2 remove dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:16:04 +01:00
B. Petersen 0bcec8ba44 remove group dependecy to org.whispersystems:signal-service-android, tackles #138 2018-11-25 23:07:47 +01:00
B. Petersen 8eb5b33aec show draft-title in chatlist 2018-11-25 22:44:01 +01:00
B. Petersen 612d7aa2b2 do not display empty messages as 'media messages' 2018-11-25 22:03:59 +01:00
B. Petersen 1927961002 remove signalservice-specific code 2018-11-25 13:56:37 +01:00
B. Petersen 2417ac06c4 allow saving attachments, closes #137 2018-11-25 13:20:22 +01:00
B. Petersen 3340df3cc7 cleanup StorageUtil 2018-11-25 13:01:35 +01:00
B. Petersen e3becf575a wording 2018-11-25 12:44:41 +01:00
B. Petersen 1363e56014 Update messenger-backend submodule. 2018-11-23 15:03:09 +01:00
Angelo Fuchs df37936ca9 cleanup: apk produced by gradle is now called 'Deltachat' instead of 'Signal' 2018-11-22 13:58:39 +01:00
Angelo Fuchs 7b6af2557d ignored git swap files. 2018-11-22 10:59:46 +01:00
daniel.boehrs f2b1967831 allow unblocking contacts #101 2018-11-21 15:20:14 +01:00
B. Petersen d305c61645 rm outdated BUILDING.md, refer to README.md for build instructions 2018-11-20 23:52:07 +01:00
B. Petersen ded1ad56a7 remove now unneeded dependecy-injector-classes 2018-11-20 23:06:50 +01:00
B. Petersen b8da4bc9c7 bump version 2018-11-20 18:56:38 +01:00
B. Petersen b83b2e9e29 Update messenger-backend submodule. 2018-11-20 18:50:28 +01:00
Angelo Fuchs 7f97bd0ea9 closes #114 when a user taps a picture or document (or the non-player segment of an audio message) he is asked if he wants to engage in a chat, just like he would if tapping a text. 2018-11-20 14:46:48 +01:00
Angelo Fuchs f0abb05e0a removed double filtering of messages. closes #128 - If there are new messages that only belong to one group the senders are now shown properly if the messages should be hidden. 2018-11-20 12:22:24 +01:00
Angelo Fuchs 7db7c5beeb proper handling of events in the background threads #128 2018-11-20 11:51:24 +01:00
Angelo Fuchs 50e22ddcc9 changing the display for multi-sender notifications for groups #128 2018-11-19 15:23:14 +01:00
Angelo Fuchs 85e2203244 notifications are now recreated once on startup of the app (e.G. after a restart of the phone). 2018-11-19 12:22:06 +01:00
Angelo Fuchs 7b2ef54922 notifications are now updated when a chat is seen #128 2018-11-19 11:22:27 +01:00
Angelo Fuchs 4043338f90 selecting chat background #50 for lower SDK versions. 2018-11-19 11:21:55 +01:00
Angelo Fuchs 269cb006c4 Update messenger-backend submodule. 2018-11-19 09:53:03 +01:00
B. Petersen 3daaa51d13 update issue-template 2018-11-17 23:51:52 +01:00
B. Petersen 099f3ad109 Update messenger-backend submodule. 2018-11-16 12:18:28 +01:00
B. Petersen 91ec15330b no interrupt-idle an activity starting, seems too much 2018-11-16 12:18:09 +01:00
Florian Haar 7a5f382315 Allow for customized Background image #50 2018-11-16 08:41:39 +01:00
B. Petersen 0cfc61fde9 handle DC_EVENT_ERROR_NETWORK, closes #129 2018-11-16 00:08:49 +01:00
B. Petersen 0a060fbb74 Update messenger-backend submodule. 2018-11-15 23:23:26 +01:00
B. Petersen 8a8034c33e tweak imap-thread 2018-11-15 16:38:33 +01:00
Angelo Fuchs 313e67fa57 multiple different senders in a chat are now distinguished #128 2018-11-15 12:13:41 +01:00
B. Petersen 0613b879fe remove dead code: BackoffReceiver, MmsBodyProvider 2018-11-15 02:26:36 +01:00
B. Petersen 155e748bd1 remove some verbose logging 2018-11-15 02:25:15 +01:00
B. Petersen 40e57b3286 remove header boilerplate 2018-11-15 02:11:44 +01:00
B. Petersen 90bf08845b remove dead code 2018-11-15 02:03:48 +01:00
B. Petersen 328132e041 adapt permissions 2018-11-15 01:55:53 +01:00
B. Petersen baec8d229d remove dead close: telephony 2018-11-15 01:32:57 +01:00
B. Petersen 740c7bd210 format 2018-11-15 01:17:40 +01:00
B. Petersen 032c38b3d7 remove dead code: sms 2018-11-15 01:15:15 +01:00
B. Petersen 2fbcf3f7f9 ignore warning that the apk is not searchable; this is a feature :) 2018-11-15 01:13:45 +01:00
B. Petersen 4a811d4f37 remove dead code: sms 2018-11-15 00:59:32 +01:00
B. Petersen 1f9ae91488 remove dead code: AccountAuthenticator 2018-11-15 00:49:51 +01:00
B. Petersen 3e76970257 remove dead code: verify identity 2018-11-15 00:00:46 +01:00
B. Petersen f022088ed9 remove dead code 2018-11-14 23:56:42 +01:00
B. Petersen e60c143a42 remove dead code: signal registration service 2018-11-14 23:44:01 +01:00
B. Petersen 5861ca14d6 remove no unused injections 2018-11-14 22:58:05 +01:00
B. Petersen 99f5948fc7 use DcContext.sendMsg() instead of MessageSender 2018-11-14 18:19:34 +01:00
B. Petersen c2e9ba3763 implement reply-from-notification, closes #126 2018-11-14 18:06:13 +01:00
B. Petersen 9743011f25 remove now unused greenrobot.eventbus 2018-11-14 17:56:07 +01:00
B. Petersen 7fb244b0be remove dead code 2018-11-14 17:36:47 +01:00
B. Petersen a79a33751b remove dead code 2018-11-14 17:28:27 +01:00
B. Petersen 1f4ccc2944 rework MessageRetrievalService into KeepAliveService 2018-11-14 17:12:59 +01:00
B. Petersen 7776939716 remove dead code: gcm receiver 2018-11-14 15:10:55 +01:00
B. Petersen d9810443fc remove dead code: SignalCommunicationModule and releated jobs and classes 2018-11-14 14:57:32 +01:00
B. Petersen 17d01b27f2 webrtc: remove dead code 2018-11-14 14:01:15 +01:00
B. Petersen fd2e034f13 webrtc: remove dependency from MessageNotifier 2018-11-14 14:01:01 +01:00
björn petersen 361e153605 Merge pull request #125 from deltachat/connect
connect permanently
2018-11-14 03:39:48 +01:00
B. Petersen 564915ab9f add out boot receiver 2018-11-14 03:37:55 +01:00
B. Petersen 69a887fe61 Update messenger-backend submodule. 2018-11-14 03:28:50 +01:00
B. Petersen e6020f9707 use permanent notification to keep threads alive 2018-11-14 03:28:25 +01:00
B. Petersen b2ee6320f4 remove header boilerplate 2018-11-14 00:12:51 +01:00
B. Petersen 98af653204 add network state receiver and call dc_maybe_network() on re-connect 2018-11-14 00:09:44 +01:00
B. Petersen 56527d3f3f remove signal's network state receiver 2018-11-13 23:55:03 +01:00
B. Petersen 1355f59a94 add a timer to restart smtp- and imap-threads if needed 2018-11-13 23:32:08 +01:00
B. Petersen c02df7a370 remove signals exponential backoff 2018-11-13 23:07:06 +01:00
B. Petersen 89e8e80665 adapt to new API, use lambda for threads 2018-11-13 21:40:03 +01:00
Angelo Fuchs 3ef1650b51 only produce a notification if something new happens, not if something gets noticed. #117 2018-11-13 14:39:27 +01:00
Angelo Fuchs 4739b8c165 in case ndk-build is done from gradle, this folder needs to be ignored. 2018-11-13 14:38:28 +01:00
B. Petersen ebdb5f382d Update messenger-backend submodule. 2018-11-13 00:20:09 +01:00
daniel.boehrs fa8e9cefd3 verified-icon not always visible in chat-titlebar #120 2018-11-09 15:23:32 +01:00
daniel.boehrs b459e9bd0e avatars from system contacts #55 2018-11-09 12:49:25 +01:00
Florian Haar a336ce3e2c Allow for customized Background image #50 2018-11-09 10:16:32 +01:00
Lars-Magnus Skog 986d86f82e Merge pull request #121 from JellyRollJunior/master
Fix error in README.md
2018-11-09 04:15:44 +01:00
Brandon Lin f202ca1eb2 Fix error in README.md
-removed double usage of "can"
2018-11-08 18:32:13 -08:00
Angelo Fuchs f1b2dd581a addendum #113. the notification event is running on the background thread now, the default for event handlers is the main thread, though. 2018-11-04 23:35:59 +02:00
Angelo Fuchs 5ed18c106c close #113. the notification event is running on the background thread now, the default for event handlers is the main thread, though. 2018-11-04 22:58:05 +02:00
Angelo Fuchs e051eecf48 closes #111 media gallery image selection now goes to the right image. 2018-11-04 21:42:40 +02:00
Angelo Fuchs 5fcf183215 don't display notifications for the currently active thread. closes #32 notifications are now completle 2018-11-04 16:58:18 +02:00
Angelo Fuchs df494a49a8 some cleanup, no functional change. 2018-11-04 14:16:53 +02:00
Angelo Fuchs 564b837d93 activating signalling (sound and vibration) for #32 2018-11-04 13:57:44 +02:00
Angelo Fuchs 8c9cd3dd3d having the proper icon for #32 notifications. 2018-11-02 17:10:35 +02:00
Florian Haar c290194c9a Allow for customized Background image #50 2018-11-02 13:39:03 +01:00
Florian Haar cf2bdefcee forward selected messages #74 2018-11-02 11:02:51 +01:00
Florian Haar 4f9c692dbd forward selected messages #74 2018-11-02 10:04:17 +01:00
daniel.boehrs dd67248066 avatars for contact / new chat view #55 2018-11-02 09:01:43 +01:00
Angelo Fuchs d4f1af7521 for #32 (notifications) the type of thread id in ConversationActivity is now int (not long). Where its too hard, I added a cast and a todo. 2018-11-01 21:22:13 +02:00
Angelo Fuchs df62bfe8de #32 grouping together the actions of marking messages as notified. 2018-11-01 21:22:13 +02:00
Angelo Fuchs b8929c181a added todos for future work. 2018-11-01 21:22:13 +02:00
Angelo Fuchs 9fa44b3e68 #32 notification stuff running in background thread so glide is satisfied. 2018-11-01 21:22:13 +02:00
daniel.boehrs 755d081c64 Adjust avatar fallback colors #55 2018-11-01 10:42:26 +01:00
daniel.boehrs b635384dd5 Make GroupCreateActivity aware of verified joins #92 2018-11-01 10:04:51 +01:00
daniel.boehrs 1fb07c9f80 unlocking does not work #112 2018-11-01 08:54:14 +01:00
Angelo Fuchs 5a9220356c notifications for new messages are displayed and hidden appropriately #32 2018-10-31 14:01:40 +02:00
Angelo Fuchs c8accec761 added convenience function when you already have a dc context 2018-10-31 14:01:40 +02:00
Angelo Fuchs cad5c5c185 generating slides from messages 2018-10-31 14:01:39 +02:00
Angelo Fuchs acaf836af9 DcMsg no longer requires the Recipient. 2018-10-31 14:01:39 +02:00
daniel.boehrs 5221b4c8fd Show qr and self reference on group edit #92 2018-10-30 16:19:18 +01:00
daniel.boehrs 5ee4320a6c Prepare ContactAccessor to load photos for #55 2018-10-30 14:02:26 +01:00
daniel.boehrs 92a0a83187 Rewrite profile image handling for #55 2018-10-30 12:16:02 +01:00
daniel.boehrs 76a8a724ff Adjust UI #55 2018-10-30 12:16:02 +01:00
B. Petersen d8ccf5ed6d add a function to get profile image of a contact 2018-10-30 11:21:55 +01:00
1206 changed files with 7008 additions and 885393 deletions
+14 -38
View File
@@ -1,48 +1,24 @@
<!--
Please read the guidelines linked above, especially when you are a first time contributor. Remove this text and provide some basic informations below, if applicable. Remove template content which is not applicable.
This is a bug report forum, if you like to discuss a new feature or submit suggestions, please use the community forum at https://support.delta.chat
Please fill in as much as you can below (leaving out if not applicable is ok). This is a bug report and feature-tracking forum, if you like to discuss a new feature, please use the community forum at https://support.delta.chat.
-->
**Delta Chat version**
<!-- See settings dialog … -->
**Expected behavior**
<!-- What is the expected output? -->
**Actual behavior**
<!-- What do you see instead? -->
**Steps to reproduce the problem**
1.
2.
**Screen snapshots**
<!-- If applicable … -->
**Debug logs**
<details>
<summary>Logs</summary>
```
- Platform (android/blackberry/anbox):
- Device:
- Delta Chat Version:
- Expected behavior:
- Actual behavior:
- Steps to reproduce the problem:
- Screenshots:
- Logs:
<!--
If applicable, debug logs can be copied from within the Delta Chat app:
Open the _Settings_ menu -> _About_ -> _version number|Info_.
Debug logs can be copied from within the Delta Chat app with
Settings menu -> Advanced -> Debug log
Alternatively from the Android system log:
`adb logcat -v time -s DeltaChat`
` adb logcat -v time -s DeltaChat `
This log contains private data (e.g. mail address, provider information) which shall be removed or anonymised prior to posting.
Logs may contain private data
which shall be removed or anonymised prior to posting.
-->
```
</details>
+6
View File
@@ -27,3 +27,9 @@ jni/libspeex/.deps/
# ignore private scripts and directories, eg. local2github.prv.sh
*.prv*
# contains files for ndk-build when done from gradle.
.externalNativeBuild
# no vi tmp files
*.swp
+2 -2
View File
@@ -1,8 +1,8 @@
[main]
host = https://www.transifex.com
lang_map = fr_CA:fr-rCA,pt_BR:pt-rBR,pt_PT:pt,zh_CN:zh-rCN,zh_HK:zh-rHK,zh_TW:zh-rTW,da_DK:da-rDK,de_DE:de,tr_TR:tr,fr_FR:fr,es_ES:es,hu_HU:hu,sv_SE:sv-rSE,bg_BG:bg,el_GR:el,kn_IN:kn-rIN,cs_CZ:cs,he:iw,id:in,lt_LT:lt,km_KH:km-rKH,th_TH:th
lang_map = nl_NL:nl
[signal-android.master]
[delta-chat-app.stringsxml]
file_filter = res/values-<lang>/strings.xml
source_file = res/values/strings.xml
source_lang = en
+19 -166
View File
@@ -15,76 +15,32 @@
<uses-feature android:name="android.hardware.portrait" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-permission android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="org.thoughtcrime.securesms.ACCESS_SECRETS"/>
<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.WRITE_PROFILE"/>
<uses-permission android:name="android.permission.BROADCAST_WAP_PUSH"
tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_CALL_STATE"/>
<!-- For sending/receiving events -->
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<!-- Normal -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- So we can add a TextSecure 'Account' -->
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
<!-- For conversation 'shortcuts' on the desktop -->
<uses-permission android:name="android.permission.INSTALL_SHORTCUT"/>
<!-- For fixing MMS -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<!-- Set image as wallpaper -->
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
<application android:name=".ApplicationContext"
android:icon="@mipmap/ic_launcher_dev"
android:label="@string/app_name"
android:label="Delta Chat dev"
android:supportsRtl="true"
tools:replace="android:allowBackup"
android:allowBackup="false"
android:theme="@style/TextSecure.LightTheme"
android:largeHeap="true">
android:largeHeap="true"
tools:ignore="GoogleAppIndexingWarning">
<meta-data
android:name="com.google.android.geo.API_KEY"
@@ -96,12 +52,6 @@
<meta-data android:name="com.google.android.gms.car.application"
android:resource="@xml/automotive_app_desc" />
<activity android:name="org.thoughtcrime.securesms.WebRtcCallActivity"
android:excludeFromRecents="true"
android:screenOrientation="portrait"
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|screenSize|fontScale"
android:launchMode="singleTask"/>
<activity android:name=".InviteActivity"
android:theme="@style/TextSecure.HighlightTheme"
android:windowSoftInputMode="stateHidden"
@@ -140,7 +90,7 @@
</activity>
<activity android:name=".ConversationListActivity"
android:label="@string/app_name"
android:label="Delta Chat dev"
android:launchMode="singleTask"
android:theme="@style/TextSecure.LightNoActionBar"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
@@ -164,7 +114,7 @@
</activity-alias>
<activity android:name=".ConversationListArchiveActivity"
android:label="@string/AndroidManifest_archived_conversations"
android:label="@string/chat_archived_chats_title"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
android:parentActivityName=".ConversationListActivity">
@@ -194,45 +144,16 @@
<activity android:name=".GroupCreateActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".DatabaseUpgradeActivity"
android:theme="@style/NoAnimation.Theme.AppCompat.Light.DarkActionBar"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphraseCreateActivity"
android:label="@string/AndroidManifest__create_passphrase"
android:windowSoftInputMode="stateUnchanged"
android:theme="@style/TextSecure.LightNoActionBar"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphrasePromptActivity"
android:launchMode="singleTask"
android:theme="@style/TextSecure.LightIntroTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".NewConversationActivity"
android:theme="@style/TextSecure.LightNoActionBar"
android:windowSoftInputMode="stateAlwaysVisible"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ContactMultiSelectionActivity"
android:label="@string/AndroidManifest__select_contacts"
android:label="@string/contacts_title"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".giph.ui.GiphyActivity"
android:theme="@style/TextSecure.LightNoActionBar"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".PassphraseChangeActivity"
android:label="@string/AndroidManifest__change_passphrase"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".VerifyIdentityActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ApplicationPreferencesActivity"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
@@ -247,13 +168,13 @@
android:windowSoftInputMode="stateUnchanged"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".LogSubmitActivity"
android:label="@string/AndroidManifest__log_submit"
<activity android:name=".LogViewActivity"
android:label="@string/pref_view_log"
android:windowSoftInputMode="stateHidden"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".MediaPreviewActivity"
android:label="@string/AndroidManifest__media_preview"
android:label="@string/media_preview"
android:windowSoftInputMode="stateHidden"
android:launchMode="singleTask"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
@@ -279,7 +200,7 @@
android:theme="@style/TextSecure.LightNoActionBar"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".BlockedContactsActivity"
<activity android:name=".BlockedAndShareContactsActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
@@ -300,18 +221,18 @@
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".QrScanActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".QrShowActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".QrShowActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".ClearProfileAvatarActivity"
android:theme="@style/Theme.AppCompat.Dialog.Alert"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
android:icon="@drawable/clear_profile_avatar"
android:label="@string/AndroidManifest_remove_photo">
android:label="@string/menu_delete_image">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.action.CLEAR_PROFILE_PHOTO"/>
@@ -319,40 +240,11 @@
</intent-filter>
</activity>
<activity android:name=".contactshare.ContactShareEditActivity"
<activity android:name=".preferences.ChatBackgroundActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".contactshare.ContactNameEditActivity"
android:theme="@style/TextSecure.LightNoActionBar"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".contactshare.SharedContactDetailsActivity"
android:theme="@style/TextSecure.LightNoActionBar"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<activity android:name=".preferences.ChatBackgroundActivity"
android:theme="@style/TextSecure.LightTheme"
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<service android:enabled="true" android:name="org.thoughtcrime.securesms.service.WebRtcCallService"/>
<service android:enabled="true" android:exported="false" android:name=".service.KeyCachingService"/>
<service android:enabled="true" android:name=".service.MessageRetrievalService"/>
<service android:name=".service.AccountAuthenticatorService" android:exported="true">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator" />
</service>
<service android:name=".service.ContactsSyncAdapterService" android:exported="true">
<intent-filter>
<action android:name="android.content.SyncAdapter"/>
</intent-filter>
<meta-data android:name="android.content.SyncAdapter" android:resource="@xml/syncadapter" />
<meta-data android:name="android.provider.CONTACTS_STRUCTURE" android:resource="@xml/contactsformat" />
</service>
<service android:name=".connect.KeepAliveService" android:enabled="true"/>
<service android:name=".service.DirectShareService"
android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
@@ -361,14 +253,7 @@
</intent-filter>
</service>
<service android:name=".service.GenericForegroundService"/>
<receiver android:name=".gcm.GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="org.thoughtcrime.securesms" />
</intent-filter>
</receiver>
<receiver android:name=".connect.TimerReceiver" android:enabled="true"/>
<receiver android:name=".notifications.MarkReadReceiver"
android:enabled="true"
@@ -400,20 +285,6 @@
</intent-filter>
</receiver>
<receiver android:name=".service.ExpirationListener" />
<receiver android:name=".jobmanager.requirements.BackoffReceiver" />
<provider android:name=".providers.PartProvider"
android:grantUriPermissions="true"
android:exported="false"
android:authorities="${applicationId}.provider.securesms" />
<provider android:name=".providers.MmsBodyProvider"
android:grantUriPermissions="true"
android:exported="false"
android:authorities="${applicationId}.provider.securesms.mms" />
<provider android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
@@ -437,24 +308,6 @@
</intent-filter>
</receiver>
<receiver android:name=".service.DirectoryRefreshListener">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".service.RotateSignedPreKeyListener">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".service.PersistentConnectionBootListener">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<receiver android:name=".notifications.MessageNotifier$ReminderReceiver">
<intent-filter>
<action android:name="org.thoughtcrime.securesms.MessageNotifier.REMINDER_ACTION"/>
-74
View File
@@ -1,74 +0,0 @@
Building Signal
===============
Basics
------
Signal uses [Gradle](http://gradle.org) to build the project and to maintain
dependencies. However, you needn't install it yourself; the
"gradle wrapper" `gradlew`, mentioned below, will do that for you.
Building Signal
---------------
The following steps should help you (re)build Signal from the command line.
1. Checkout the Signal-Android project source with the command:
git clone https://github.com/signalapp/Signal-Android.git
2. Make sure you have the [Android SDK](https://developer.android.com/sdk/index.html) installed.
3. Ensure that the following packages are installed from the Android SDK manager:
* Android SDK Build Tools (see buildToolsVersion in build.gradle)
* SDK Platform (All API levels)
* Android Support Repository
* Google Repository
4. Create a local.properties file at the root of your source checkout and add an sdk.dir entry to it. For example:
sdk.dir=/Application/android-sdk-macosx
5. Using Java 8
6. Execute Gradle:
./gradlew build
Visual assets
----------------------
Source assets tend to be large binary blobs, which are best stored outside of git repositories. Some source files are SVGs that can be auto-colored and sized using a tool like [android-res-utils](https://github.com/sebkur/android-res-utils).
Sample command for generating our audio placeholder image:
```bash
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #000 --opacity 0.54 --suffix _light
pngs_from_svg.py ic_audio.svg /path/to/Signal/res/ 150 --color #fff --opacity 1.00 --suffix _light
```
Setting up a development environment
------------------------------------
[Android Studio](https://developer.android.com/sdk/installing/studio.html) is the recommended development environment.
1. Install Android Studio.
2. Open Android Studio. On a new installation, the Quickstart panel will appear. If you have open projects, close them using "File > Close Project" to see the Quickstart panel.
3. From the Quickstart panel, choose "Configure" then "SDK Manager".
4. In the SDK Tools tab of the SDK Manager, make sure that the "Android Support Repository" is installed, and that the latest "Android SDK build-tools" are installed. Click "OK" to return to the Quickstart panel.
5. From the Quickstart panel, choose "Checkout from Version Control" then "git".
6. Paste the URL for the Signal-Android project when prompted (https://github.com/signalapp/Signal-Android.git).
7. Android studio should detect the presence of a project file and ask you whether to open it. Click "yes".
9. Default config options should be good enough.
9. Project initialisation and build should proceed.
Contributing code
-----------------
Code contributions should be sent via github as pull requests, from feature branches [as explained here](https://help.github.com/articles/using-pull-requests).
Mailing list
------------
Development discussion happens on the whispersystems mailing list.
[To join](https://lists.riseup.net/www/info/whispersystems)
Send emails to whispersystems@lists.riseup.net
-34
View File
@@ -1,34 +0,0 @@
TextSecure provides encrypted text messages for Android.
Copyright 2011 Whisper Systems
This software has the follow third party dependencies:
Bouncy Castle 1.42
http://www.bouncycastle.org/
MIT License
Copyright (c) 2000 - 2011 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
ZXing
http://code.google.com/p/zxing/
Apache License 2.0
Copyright 2009 ZXing authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+1 -1
View File
@@ -14,7 +14,7 @@ For ready-to-use binaries, please go to https://delta.chat .
When checking out _deltachat-android-ii_, make sure also to check out the
subproject _deltachat-core_:
- When using Git, you can can do this initially by
- When using Git, you can do this initially by
`$ git clone --recursive https://github.com/deltachat/deltachat-android-ii`
or later by `git submodule update --init --recursive`. If you do this in your
home directory, this results in the folder `~/deltachat-android-ii` which is just fine.
-2
View File
@@ -1,2 +0,0 @@
*.db
*.db.gz
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-106
View File
@@ -1,106 +0,0 @@
import sys
import re
import argparse
import sqlite3
import gzip
from progressbar import ProgressBar, Counter, Timer
from lxml import etree
parser = argparse.ArgumentParser(prog='apntool', description="""Process Android's apn xml files and drop them into an
easily queryable SQLite db. Tested up to version 9 of
their APN file.""")
parser.add_argument('-v', '--version', action='version', version='%(prog)s v1.1')
parser.add_argument('-i', '--input', help='the xml file to parse', default='apns.xml', required=False)
parser.add_argument('-o', '--output', help='the sqlite db output file', default='apns.db', required=False)
parser.add_argument('--quiet', help='do not show progress or verbose instructions', action='store_true', required=False)
parser.add_argument('--no-gzip', help="do not gzip after creation", action='store_true', required=False)
args = parser.parse_args()
def normalized(target):
o2_typo = re.compile(r"02\.co\.uk")
port_typo = re.compile(r"(\d+\.\d+\.\d+\.\d+)\.(\d+)")
leading_zeros = re.compile(r"(/|\.|^)0+(\d+)")
subbed = o2_typo.sub(r'o2.co.uk', target)
subbed = port_typo.sub(r'\1:\2', subbed)
subbed = leading_zeros.sub(r'\1\2', subbed)
return subbed
try:
connection = sqlite3.connect(args.output)
cursor = connection.cursor()
cursor.execute('SELECT SQLITE_VERSION()')
version = cursor.fetchone()
if not args.quiet:
print("SQLite version: %s" % version)
print("Opening %s" % args.input)
cursor.execute("PRAGMA legacy_file_format=ON")
cursor.execute("PRAGMA journal_mode=DELETE")
cursor.execute("PRAGMA page_size=32768")
cursor.execute("VACUUM")
cursor.execute("DROP TABLE IF EXISTS apns")
cursor.execute("""CREATE TABLE apns(_id INTEGER PRIMARY KEY, mccmnc TEXT, mcc TEXT, mnc TEXT, carrier TEXT,
apn TEXT, mmsc TEXT, port INTEGER, type TEXT, protocol TEXT, bearer TEXT, roaming_protocol TEXT,
carrier_enabled INTEGER, mmsproxy TEXT, mmsport INTEGER, proxy TEXT, mvno_match_data TEXT,
mvno_type TEXT, authtype INTEGER, user TEXT, password TEXT, server TEXT)""")
apns = etree.parse(args.input)
root = apns.getroot()
pbar = None
if not args.quiet:
pbar = ProgressBar(widgets=['Processed: ', Counter(), ' apns (', Timer(), ')'], maxval=len(list(root))).start()
count = 0
for apn in root.iter("apn"):
if apn.get("mmsc") is None:
continue
sqlvars = ["?" for x in apn.attrib.keys()] + ["?"]
mccmnc = "%s%s" % (apn.get("mcc"), apn.get("mnc"))
normalized_mmsc = normalized(apn.get("mmsc"))
if normalized_mmsc != apn.get("mmsc"):
print("normalize MMSC: %s => %s" % (apn.get("mmsc"), normalized_mmsc))
apn.set("mmsc", normalized_mmsc)
if not apn.get("mmsproxy") is None:
normalized_mmsproxy = normalized(apn.get("mmsproxy"))
if normalized_mmsproxy != apn.get("mmsproxy"):
print("normalize proxy: %s => %s" % (apn.get("mmsproxy"), normalized_mmsproxy))
apn.set("mmsproxy", normalized_mmsproxy)
values = [apn.get(attrib) for attrib in apn.attrib.keys()] + [mccmnc]
keys = apn.attrib.keys() + ["mccmnc"]
cursor.execute("SELECT 1 FROM apns WHERE mccmnc = ? AND apn = ?", [mccmnc, apn.get("apn")])
if cursor.fetchone() is None:
statement = "INSERT INTO apns (%s) VALUES (%s)" % (", ".join(keys), ", ".join(sqlvars))
cursor.execute(statement, values)
count += 1
if not args.quiet:
pbar.update(count)
if not args.quiet:
pbar.finish()
connection.commit()
print("Successfully written to %s" % args.output)
if not args.no_gzip:
gzipped_file = "%s.gz" % (args.output,)
with open(args.output, 'rb') as orig:
with gzip.open(gzipped_file, 'wb') as gzipped:
gzipped.writelines(orig)
print("Successfully gzipped to %s" % gzipped_file)
if not args.quiet:
print("\nTo include this in the distribution, copy it to the project's assets/databases/ directory.")
print("If you support API 10 or lower, you must use the gzipped version to avoid corruption.")
except sqlite3.Error, e:
if connection:
connection.rollback()
print("Error: %s" % e.args[0])
sys.exit(1)
finally:
if connection:
connection.close()
-3
View File
@@ -1,3 +0,0 @@
argparse>=1.2.1
lxml>=3.3.3
progressbar-latest>=2.4
Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.
+4 -76
View File
@@ -39,9 +39,6 @@ repositories {
maven {
url "https://raw.github.com/signalapp/maven/master/circular-progress-button/releases/"
}
maven {
url "https://raw.github.com/signalapp/maven/master/sqlcipher/release/"
}
maven {
url "https://maven.google.com"
}
@@ -77,31 +74,21 @@ dependencies {
compile 'com.google.android.exoplayer:exoplayer:r2.3.1'
compile('org.whispersystems:libpastelog:1.1.2') {
exclude group: 'com.squareup.okhttp3', module: 'okhttp'
}
compile 'org.whispersystems:signal-service-android:2.7.6'
compile 'org.whispersystems:webrtc-android:M68'
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.5'
compile 'com.journeyapps:zxing-android-embedded:3.4.0'
compile "me.leolin:ShortcutBadger:1.1.16"
compile 'se.emilsjolander:stickylistheaders:2.7.0'
compile 'com.jpardogo.materialtabstrip:library:1.0.9'
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
compile 'com.github.chrisbanes:PhotoView:2.1.3'
compile 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'
compile 'com.makeramen:roundedimageview:2.1.0'
compile 'com.pnikosis:materialish-progress:1.5'
compile 'org.greenrobot:eventbus:3.0.0'
compile 'pl.tajchert:waitingdots:0.1.0'
compile 'com.soundcloud.android:android-crop:0.9.10@aar'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.squareup.dagger:dagger:1.2.2'
annotationProcessor 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'mobi.upod:time-duration-picker:1.1.3'
provided 'com.squareup.dagger:dagger-compiler:1.2.2'
compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
compile 'com.google.zxing:core:3.2.1'
compile ('com.davemorrissey.labs:subsampling-scale-image-view:3.6.0') {
@@ -110,13 +97,6 @@ dependencies {
compile ('cn.carbswang.android:NumberPickerView:1.0.9') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
compile ('com.tomergoldst.android:tooltips:1.0.6') {
exclude group: 'com.android.support', module: 'appcompat-v7'
}
compile ('com.klinkerapps:android-smsmms:4.0.1') {
exclude group: 'com.squareup.okhttp', module: 'okhttp'
exclude group: 'com.squareup.okhttp', module: 'okhttp-urlconnection'
}
compile 'com.annimon:stream:1.1.8'
compile ('com.takisoft.fix:colorpicker:0.9.1') {
exclude group: 'com.android.support', module: 'appcompat-v7'
@@ -124,11 +104,6 @@ dependencies {
}
compile 'com.codewaves.stickyheadergrid:stickyheadergrid:0.9.4'
compile 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3-S2'
compile 'org.signal:android-database-sqlcipher:3.5.9-S3'
compile ('com.googlecode.ez-vcard:ez-vcard:0.9.11') {
exclude group: 'com.fasterxml.jackson.core'
exclude group: 'org.freemarker'
}
testCompile 'junit:junit:4.12'
testCompile 'org.assertj:assertj-core:1.7.1'
@@ -145,10 +120,6 @@ dependencies {
androidTestCompile ('org.assertj:assertj-core:1.7.1') {
exclude group: 'org.hamcrest', module: 'hamcrest-core'
}
androidTestCompile ('com.squareup.assertj:assertj-android:1.1.1') {
exclude group: 'org.hamcrest', module: 'hamcrest-core'
exclude group: 'com.android.support', module: 'support-annotations'
}
}
dependencyVerification {
@@ -157,7 +128,6 @@ dependencyVerification {
'com.android.support:preference-v14:1fcf40bd560dc21ce55b6a292d1326d28f52dc5e4f2a64eef2f38dd95777b645',
'com.android.support:preference-v7:d9f32ddc92f8d6a0bd86a18f4fcaff805fa021245e395b6e7dd382907443ee53',
'com.pnikosis:materialish-progress:d71d80e00717a096784482aee21001a9d299fec3833e4ebd87739ed36cf77c54',
'pl.tajchert:waitingdots:2835d49e0787dbcb606c5a60021ced66578503b1e9fddcd7a5ef0cd5f095ba2c',
'mobi.upod:time-duration-picker:db469ce0f48dd96b892eac424ed76870e54bf00fe0a28cdcddfbe5f2a226a0e1',
'com.codewaves.stickyheadergrid:stickyheadergrid:5b4aa6a52a957cfd55f60f4220c11c0c371385a3cb9786cae03c260dcdef5794',
'com.android.support:appcompat-v7:b2825e8b47f665d3362d8481c8d147d1af9230d16f23a2b94f6ccbc53c68cec1',
@@ -174,30 +144,20 @@ dependencyVerification {
'com.google.android.gms:play-services-places:abf3a4a3b146ec7e6e753be62775e512868cf37d6f88ffe2d81167b33b57132b',
'com.google.android.gms:play-services-maps:45e8021e7ddac4a44a82a0e9698991389ded3023d35c58f38dbd86d54211ec0e',
'com.google.android.exoplayer:exoplayer:955085aa611a8f7cf6c61b88ae03d1a392f4ad94c9bfbc153f3dedb9ffb14718',
'org.whispersystems:libpastelog:fe56b4db9ec743c8b565e3e4caa9228fafe132dc0bf82000d6e359b97a81177c',
'org.whispersystems:signal-service-android:823eed29e64fb0aa30d2078cb5ec0245e2a0713a4028121329c5c28788ef27f8',
'org.whispersystems:webrtc-android:66cb312eb024eaf6aa93e662d37d0c46632e049d47a2dcc9c291207589ee7a43',
'me.leolin:ShortcutBadger:e3cb3e7625892129b0c92dd5e4bc649faffdd526d5af26d9c45ee31ff8851774',
'se.emilsjolander:stickylistheaders:a08ca948aa6b220f09d82f16bbbac395f6b78897e9eeac6a9f0b0ba755928eeb',
'com.jpardogo.materialtabstrip:library:c6ef812fba4f74be7dc4a905faa4c2908cba261a94c13d4f96d5e67e4aad4aaa',
'org.apache.httpcomponents:httpclient-android:6f56466a9bd0d42934b90bfbfe9977a8b654c058bf44a12bdc2877c4e1f033f1',
'com.github.chrisbanes:PhotoView:ed06775308da260e1fd86d1d3288988fcd3d80db24ce0d7c9fcfedc39e622292',
'com.github.bumptech.glide:glide:997de7ac95be6c944d3b8cbe13de11307736ea45451c1b09a6cec7c328ead59f',
'com.makeramen:roundedimageview:1f5a1865796b308c6cdd114acc6e78408b110f0a62fc63553278fbeacd489cd1',
'org.greenrobot:eventbus:180d4212467df06f2fbc9c8d8a2984533ac79c87769ad883bc421612f0b4e17c',
'com.soundcloud.android:android-crop:ffd4b973cf6e97f7d64118a0dc088df50e9066fd5634fe6911dd0c0c5d346177',
'com.squareup.dagger:dagger:789aca24537022e49f91fc6444078d9de8f1dd99e1bfb090f18491b186967883',
'com.amulyakhare:com.amulyakhare.textdrawable:54c92b5fba38cfd316a07e5a30528068f45ce8515a6890f1297df4c401af5dcb',
'com.google.zxing:core:b4d82452e7a6bf6ec2698904b332431717ed8f9a850224f295aec89de80f2259',
'com.davemorrissey.labs:subsampling-scale-image-view:550c5baa07e0bb4ff0a18b705e96d34436d22619248bd8c08c08c730b1f55cfe',
'cn.carbswang.android:NumberPickerView:18b3c316d62c7c277978a8d4ed57a5b8f4e943762264960f579a8a549c756729',
'com.tomergoldst.android:tooltips:4c56697dd1ad64b8066535c61f961a6d901e7ae5d97ae27084ba40ad620349b6',
'com.klinkerapps:android-smsmms:e7c3328a0f3a8dd44daa8129de4e99996f3057a4546e47891b036b81e0ebf1d1',
'com.annimon:stream:5da6e2e3e0551d61a3ea7014f04312276549e3dd739cf637996e4cf43c5535b9',
'com.takisoft.fix:colorpicker:f5d0dbabe406a1800498ca9c1faf34db36e021d8488bf10360f29961fe3ab0d1',
'com.github.dmytrodanylyk.circular-progress-button:library:8dc6a29a5a8db7b2ad5a9a7fda1dc9ae0893f4c8f0545732b2c63854ea693e8e',
'org.signal:android-database-sqlcipher:33d4063336893af00b9d68b418e7b290cace74c20ce8aacffddc0911010d3d73',
'com.googlecode.ez-vcard:ez-vcard:7e24ad50b222d2f70ac91bdccfa3c0f6200b078d797cb784837f75e77bb4210f',
'com.google.android.gms:play-services-iid:54e919f9957b8b7820da7ee9b83471d00d0cac1cf08ddea8b5b41aea80bb1a70',
'com.google.android.gms:play-services-base:0ca636a8fc9a5af45e607cdcd61783bf5d561cbbb0f862021ce69606eee5ad49',
'com.google.android.gms:play-services-tasks:69ec265168e601d0203d04cd42e34bb019b2f029aa1e16fabd38a5153eea2086',
@@ -220,27 +180,10 @@ dependencyVerification {
'android.arch.lifecycle:viewmodel:7de29cfaba77d6b5d5be234c57f6812d0150d087e63941af22ba1d1f8e2bc96a',
'com.github.bumptech.glide:gifdecoder:59ccf3bb0cec11dab4b857382cbe0b171111b6fc62bf141adce4e1180889af15',
'com.android.support:support-annotations:af05330d997eb92a066534dbe0a3ea24347d26d7001221092113ae02a8f233da',
'org.whispersystems:signal-protocol-android:5b8acded7f2a40178eb90ab8e8cbfec89d170d91b3ff5e78487d1098df6185a1',
'org.whispersystems:signal-service-java:6169643c65dcba8c784744006fc3afd9b6f309041b310a33a624121e3577433a',
'com.github.bumptech.glide:disklrucache:c1b1b6f5bbd01e2fcdc9d7f60913c8d338bdb65ed4a93bfa02b56f19daaade4b',
'com.github.bumptech.glide:annotations:bede99ef9f71517a4274bac18fd3e483e9f2b6108d7d6fe8f4949be4aa4d9512',
'com.nineoldandroids:library:68025a14e3e7673d6ad2f95e4b46d78d7d068343aa99256b686fe59de1b3163a',
'javax.inject:javax.inject:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
'com.klinkerapps:logger:177e325259a8b111ad6745ec10db5861723c99f402222b80629f576f49408541',
'com.google.android:flexbox:a9989fd13ae2ee42765dfc515fe362edf4f326e74925d02a10369df8092a4935',
'org.jsoup:jsoup:abeaf34795a4de70f72aed6de5966d2955ec7eb348eeb813324f23c999575473',
'org.whispersystems:curve25519-android:82595394422b957d4a5b5f1b27b75ba25cf6dc4db4d312418ca38cd6fff279ca',
'org.whispersystems:signal-protocol-java:5152c2b01a25147967d6bf82e540f947901bdfa79260be3eb3e96b03f787d6b5',
'com.google.protobuf:protobuf-java:e0c1c64575c005601725e7c6a02cebf9e1285e888f756b2a1d73ffa8d725cc74',
'com.googlecode.libphonenumber:libphonenumber:183392c0565be16d3f6f86680b4106bbde6fe31a402ad21bf9823d938c0c8706',
'com.fasterxml.jackson.core:jackson-databind:835097bcdd11f5bc8a08378c70d4c8054dfa4b911691cc2752063c75534d198d',
'com.squareup.okhttp3:okhttp:7265adbd6f028aade307f58569d814835cd02bc9beffb70c25f72c9de50d61c4',
'com.madgag.spongycastle:prov:b8c3fec3a59aac1aa04ccf4dad7179351e54ef7672f53f508151b614c131398a',
'org.whispersystems:curve25519-java:7dd659d8822c06c3aea1a47f18fac9e5761e29cab8100030b877db445005f03e',
'com.fasterxml.jackson.core:jackson-annotations:0ca408c24202a7626ec8b861e99d85eca5e38b73311dd6dd12e3e9deecc3fe94',
'com.fasterxml.jackson.core:jackson-core:cbf4604784b4de226262845447a1ad3bb38a6728cebe86562e2c5afada8be2c0',
'com.squareup.okio:okio:734269c3ebc5090e3b23566db558f421f0b4027277c79ad5d176b8ec168bb850',
'com.madgag.spongycastle:core:8d6240b974b0aca4d3da9c7dd44d42339d8a374358aca5fc98e50a995764511f',
]
}
@@ -255,8 +198,8 @@ android {
}
defaultConfig {
versionCode 398
versionName "0.0.8"
versionCode 402
versionName "0.90.0"
applicationId "chat.delta.androidii"
minSdkVersion 14
@@ -264,14 +207,12 @@ android {
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
project.ext.set("archivesBaseName", "Signal");
project.ext.set("archivesBaseName", "Deltachat");
buildConfigField "long", "BUILD_TIMESTAMP", getLastCommitTimestamp() + "L"
buildConfigField "String", "SIGNAL_URL", "\"https://textsecure-service.whispersystems.org\""
buildConfigField "String", "SIGNAL_CDN_URL", "\"https://cdn.signal.org\""
buildConfigField "String", "SIGNAL_SERVICE_STATUS_URL", "\"uptime.signal.org\""
buildConfigField "String", "GIPHY_PROXY_HOST", "\"giphy-proxy-production.whispersystems.org\""
buildConfigField "int", "GIPHY_PROXY_PORT", "80"
buildConfigField "String", "USER_AGENT", "\"OWA\""
buildConfigField "boolean", "DEV_BUILD", "false"
@@ -305,22 +246,13 @@ android {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-google-play-services.pro',
'proguard-dagger.pro',
'proguard-jackson.pro',
'proguard-sqlite.pro',
'proguard-appcompat-v7.pro',
'proguard-square-okhttp.pro',
'proguard-square-okio.pro',
'proguard-spongycastle.pro',
'proguard-rounded-image-view.pro',
'proguard-glide.pro',
'proguard-shortcutbadger.pro',
'proguard-retrofit.pro',
'proguard-webrtc.pro',
'proguard-klinker.pro',
'proguard-retrolambda.pro',
'proguard-okhttp.pro',
'proguard-ez-vcard.pro',
'proguard.cfg'
testProguardFiles 'proguard-automation.pro',
'proguard.cfg'
@@ -335,16 +267,12 @@ android {
productFlavors {
play {
dimension "none"
ext.websiteUpdateUrl = "null"
buildConfigField "boolean", "PLAY_STORE_DISABLED", "false"
buildConfigField "String", "NOPLAY_UPDATE_URL", "$ext.websiteUpdateUrl"
}
website {
dimension "none"
ext.websiteUpdateUrl = "https://updates.signal.org/android"
buildConfigField "boolean", "PLAY_STORE_DISABLED", "true"
buildConfigField "String", "NOPLAY_UPDATE_URL", "\"$ext.websiteUpdateUrl\""
}
}
+45 -33
View File
@@ -238,27 +238,27 @@ JNIEXPORT jint Java_com_b44t_messenger_DcContext_isConfigured(JNIEnv *env, jobje
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_performJobs(JNIEnv *env, jobject obj)
JNIEXPORT void Java_com_b44t_messenger_DcContext_performImapJobs(JNIEnv *env, jobject obj)
{
dc_perform_imap_jobs(get_dc_context(env, obj));
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_idle(JNIEnv *env, jobject obj)
JNIEXPORT void Java_com_b44t_messenger_DcContext_performImapIdle(JNIEnv *env, jobject obj)
{
dc_perform_imap_idle(get_dc_context(env, obj));
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_interruptIdle(JNIEnv *env, jobject obj)
JNIEXPORT void Java_com_b44t_messenger_DcContext_performImapFetch(JNIEnv *env, jobject obj)
{
dc_interrupt_imap_idle(get_dc_context(env, obj));
dc_perform_imap_fetch(get_dc_context(env, obj));
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_fetch(JNIEnv *env, jobject obj)
JNIEXPORT void Java_com_b44t_messenger_DcContext_interruptImapIdle(JNIEnv *env, jobject obj)
{
dc_perform_imap_fetch(get_dc_context(env, obj));
dc_interrupt_imap_idle(get_dc_context(env, obj));
}
@@ -274,9 +274,9 @@ JNIEXPORT void Java_com_b44t_messenger_DcContext_performSmtpIdle(JNIEnv *env, jo
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_interruptSmtpIdle(JNIEnv *env, jobject obj)
JNIEXPORT void Java_com_b44t_messenger_DcContext_maybeNetwork(JNIEnv *env, jobject obj)
{
dc_interrupt_smtp_idle(get_dc_context(env, obj));
dc_maybe_network(get_dc_context(env, obj));
}
@@ -452,11 +452,15 @@ JNIEXPORT jint Java_com_b44t_messenger_DcContext_removeContactFromChat(JNIEnv *e
}
JNIEXPORT void Java_com_b44t_messenger_DcContext_setDraft(JNIEnv *env, jobject obj, jint chat_id, jstring draft /* NULL=delete */)
JNIEXPORT void Java_com_b44t_messenger_DcContext_setDraft(JNIEnv *env, jobject obj, jint chat_id, jobject msg /* NULL=delete */)
{
CHAR_REF(draft);
dc_set_text_draft(get_dc_context(env, obj), chat_id, draftPtr /* NULL=delete */);
CHAR_UNREF(draft);
dc_set_draft(get_dc_context(env, obj), chat_id, get_dc_msg(env, msg));
}
JNIEXPORT jlong Java_com_b44t_messenger_DcContext_getDraftCPtr(JNIEnv *env, jobject obj, jint chat_id)
{
return (jlong)dc_get_draft(get_dc_context(env, obj), chat_id);
}
@@ -816,6 +820,12 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcChat_getProfileImage(JNIEnv *env, jo
}
JNIEXPORT jint Java_com_b44t_messenger_DcChat_getColor(JNIEnv *env, jobject obj)
{
return dc_chat_get_color(get_dc_chat(env, obj));
}
JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isUnpromoted(JNIEnv *env, jobject obj)
{
return dc_chat_is_unpromoted(get_dc_chat(env, obj))!=0;
@@ -834,21 +844,6 @@ JNIEXPORT jboolean Java_com_b44t_messenger_DcChat_isVerified(JNIEnv *env, jobjec
}
JNIEXPORT jstring Java_com_b44t_messenger_DcChat_getDraft(JNIEnv *env, jobject obj) /* returns NULL for "no draft" */
{
const char* temp = dc_chat_get_text_draft(get_dc_chat(env, obj));
jstring ret = temp? JSTRING_NEW(temp) : NULL;
free(temp);
return ret;
}
JNIEXPORT jlong Java_com_b44t_messenger_DcChat_getDraftTimestamp(JNIEnv *env, jobject obj)
{
return JTIMESTAMP(dc_chat_get_draft_timestamp(get_dc_chat(env, obj)));
}
JNIEXPORT jintArray Java_com_b44t_messenger_DcContext_getChatMedia(JNIEnv *env, jobject obj, jint chat_id, jint msg_type, jint or_msg_type)
{
dc_array_t* ca = dc_get_chat_media(get_dc_context(env, obj), chat_id, msg_type, or_msg_type);
@@ -900,12 +895,14 @@ JNIEXPORT jintArray Java_com_b44t_messenger_DcContext_getChatContacts(JNIEnv *en
static dc_msg_t* get_dc_msg(JNIEnv *env, jobject obj)
{
static jfieldID fid = 0;
if (fid==0) {
jclass cls = (*env)->GetObjectClass(env, obj);
fid = (*env)->GetFieldID(env, cls, "msgCPtr", "J" /*Signature, J=long*/);
}
if (fid) {
return (dc_msg_t*)(*env)->GetLongField(env, obj, fid);
if (env && obj) {
if (fid==0) {
jclass cls = (*env)->GetObjectClass(env, obj);
fid = (*env)->GetFieldID(env, cls, "msgCPtr", "J" /*Signature, J=long*/);
}
if (fid) {
return (dc_msg_t*)(*env)->GetLongField(env, obj, fid);
}
}
return NULL;
}
@@ -1181,6 +1178,21 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcContact_getNameNAddr(JNIEnv *env, jo
}
JNIEXPORT jstring Java_com_b44t_messenger_DcContact_getProfileImage(JNIEnv *env, jobject obj)
{
const char* temp = dc_contact_get_profile_image(get_dc_contact(env, obj));
jstring ret = JSTRING_NEW(temp);
free(temp);
return ret;
}
JNIEXPORT jint Java_com_b44t_messenger_DcContact_getColor(JNIEnv *env, jobject obj)
{
return dc_contact_get_color(get_dc_contact(env, obj));
}
JNIEXPORT jboolean Java_com_b44t_messenger_DcContact_isBlocked(JNIEnv *env, jobject obj)
{
return (jboolean)(dc_contact_is_blocked(get_dc_contact(env, obj))!=0);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-907
View File
@@ -1,907 +0,0 @@
From e6d913938a67f8ef3174722a7ce38be8be92305f Mon Sep 17 00:00:00 2001
Message-Id: <e6d913938a67f8ef3174722a7ce38be8be92305f.1534410135.git.daniel.boehrs@open-xchange.com>
In-Reply-To: <371694c11a8b1192ef5230b98af3a5719add98ef.1534410134.git.daniel.boehrs@open-xchange.com>
References: <371694c11a8b1192ef5230b98af3a5719add98ef.1534410134.git.daniel.boehrs@open-xchange.com>
From: "B. Petersen" <r10s@b44t.com>
Date: Fri, 27 Jul 2018 17:12:43 +0200
Subject: [PATCH 5/6] add java-binding-classes
---
src/com/b44t/messenger/MrChat.java | 87 ++++++
src/com/b44t/messenger/MrChatlist.java | 64 +++++
src/com/b44t/messenger/MrContact.java | 57 ++++
src/com/b44t/messenger/MrLot.java | 56 ++++
src/com/b44t/messenger/MrMailbox.java | 485 +++++++++++++++++++++++++++++++++
src/com/b44t/messenger/MrMsg.java | 102 +++++++
6 files changed, 851 insertions(+)
diff --git a/src/com/b44t/messenger/MrChat.java b/src/com/b44t/messenger/MrChat.java
new file mode 100644
index 0000000..2165182
--- /dev/null
+++ b/src/com/b44t/messenger/MrChat.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrChat.java
+ * Purpose: Wrap around mrchat_t
+ *
+ ******************************************************************************/
+
+package com.b44t.messenger;
+
+import android.text.TextUtils;
+
+public class MrChat {
+
+ public final static int MR_CHAT_ID_DEADDROP = 1;
+ public final static int MR_CHAT_ID_STARRED = 5;
+ public final static int MR_CHAT_ID_ARCHIVED_LINK = 6;
+ public final static int MR_CHAT_ID_LAST_SPECIAL = 9;
+
+ public MrChat(long hChat) {
+ m_hChat = hChat;
+ }
+
+ @Override protected void finalize() throws Throwable {
+ super.finalize();
+ MrChatUnref(m_hChat);
+ m_hChat = 0;
+ }
+
+ public native int getId();
+ public native boolean isGroup();
+ public native int getArchived();
+ public native String getName();
+ public native String getSubtitle();
+
+ public native String getProfileImage();
+ public native boolean isUnpromoted();
+ public native boolean isSelfTalk();
+ public native boolean isVerified();
+ public native String getDraft();
+ public native long getDraftTimestamp();
+
+ private long m_hChat; // must not be renamed as referenced by JNI under the name "m_hChat"
+ private native static void MrChatUnref (long hChat);
+
+
+ /* additional functions that are not 1:1 available in the backend
+ **********************************************************************************************/
+
+ public long getCPtr() {
+ return m_hChat;
+ }
+
+ public String getNameNAddr()
+ {
+ // returns name of group chats or name+email-address for normal chats
+ String name = "ErrGrpNameNAddr";
+ if( isGroup() ) {
+ name = getName();
+ }
+ else {
+ int contacts[] = MrMailbox.getChatContacts(getId());
+ if( contacts.length==1 ) {
+ name = MrMailbox.getContact(contacts[0]).getNameNAddr();
+ }
+ }
+ return name;
+ }
+}
diff --git a/src/com/b44t/messenger/MrChatlist.java b/src/com/b44t/messenger/MrChatlist.java
new file mode 100644
index 0000000..c9194e7
--- /dev/null
+++ b/src/com/b44t/messenger/MrChatlist.java
@@ -0,0 +1,64 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrChatlist.java
+ * Purpose: Wrap around mrchatlist_t
+ *
+ ******************************************************************************/
+
+
+package com.b44t.messenger;
+
+
+public class MrChatlist {
+ public MrChatlist(long hChatlist) {
+ m_hChatlist = hChatlist;
+ }
+
+ @Override protected void finalize() throws Throwable {
+ super.finalize();
+ MrChatlistUnref(m_hChatlist);
+ m_hChatlist = 0;
+ }
+
+ public int getCnt() {
+ return MrChatlistGetCnt(m_hChatlist);
+ }
+
+ public MrChat getChatByIndex(int index) {
+ return new MrChat(MrChatlistGetChatByIndex(m_hChatlist, index));
+ }
+
+ public MrMsg getMsgByIndex(int index) {
+ return new MrMsg(MrChatlistGetMsgByIndex(m_hChatlist, index));
+ }
+
+ public MrLot getSummaryByIndex(int index, MrChat chat) {
+ return new MrLot(MrChatlistGetSummaryByIndex(m_hChatlist, index, chat.getCPtr()));
+ }
+
+ private long m_hChatlist;
+ private native static void MrChatlistUnref (long hChatlist);
+ private native static int MrChatlistGetCnt (long hChatlist);
+ private native static long MrChatlistGetChatByIndex (long hChatlist, int index); // returns hChat which must be unref'd after usage
+ private native static long MrChatlistGetMsgByIndex (long hChatlist, int index); // returns hMsg which must be unref'd after usage
+ private native static long MrChatlistGetSummaryByIndex(long hChatlist, int index, long hChat);
+}
diff --git a/src/com/b44t/messenger/MrContact.java b/src/com/b44t/messenger/MrContact.java
new file mode 100644
index 0000000..9ad568b
--- /dev/null
+++ b/src/com/b44t/messenger/MrContact.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrContact.java
+ * Purpose: Wrap around mrcontact_t
+ *
+ ******************************************************************************/
+
+
+package com.b44t.messenger;
+
+
+public class MrContact {
+
+ public final static int MR_CONTACT_ID_SELF = 1;
+ public final static int MR_CONTACT_ID_DEVICE = 2;
+ public final static int MR_CONTACT_ID_LAST_SPECIAL = 9;
+
+ public MrContact(long hContact) {
+ m_hContact = hContact;
+ }
+
+ @Override protected void finalize() throws Throwable {
+ super.finalize();
+ MrContactUnref(m_hContact);
+ m_hContact = 0;
+ }
+
+ public native String getName();
+ public native String getDisplayName();
+ public native String getFirstName();
+ public native String getAddr();
+ public native String getNameNAddr();
+ public native boolean isBlocked();
+ public native boolean isVerified();
+
+ private long m_hContact;
+ private native static void MrContactUnref (long hContact);
+}
diff --git a/src/com/b44t/messenger/MrLot.java b/src/com/b44t/messenger/MrLot.java
new file mode 100644
index 0000000..1e61f75
--- /dev/null
+++ b/src/com/b44t/messenger/MrLot.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrLot.java
+ * Purpose: Wrap around mrpoortext_t
+ *
+ ******************************************************************************/
+
+
+package com.b44t.messenger;
+
+
+public class MrLot {
+
+ public final static int MR_TEXT1_DRAFT = 1;
+ public final static int MR_TEXT1_USERNAME = 2;
+ public final static int MR_TEXT1_SELF = 3;
+
+ public MrLot(long hLot) {
+ m_hLot = hLot;
+ }
+
+ @Override protected void finalize() throws Throwable {
+ super.finalize();
+ MrLotUnref(m_hLot);
+ m_hLot = 0;
+ }
+
+ public native String getText1();
+ public native int getText1Meaning();
+ public native String getText2();
+ public native long getTimestamp();
+ public native int getState();
+ public native int getId();
+
+ private long m_hLot;
+ private native static void MrLotUnref(long hLot);
+}
diff --git a/src/com/b44t/messenger/MrMailbox.java b/src/com/b44t/messenger/MrMailbox.java
new file mode 100644
index 0000000..be11d67
--- /dev/null
+++ b/src/com/b44t/messenger/MrMailbox.java
@@ -0,0 +1,485 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrMailbox.java
+ * Purpose: Wrap around mrmailbox_t
+ *
+ ******************************************************************************/
+
+
+package com.b44t.messenger;
+
+
+import android.app.Activity;
+import android.content.SharedPreferences;
+import android.util.Log;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+public class MrMailbox {
+
+ public static void init () {
+ m_hMailbox = MrMailboxNew();
+ }
+
+ public native static int open(String dbfile);
+ public native static void close();
+ public native static String getBlobdir();
+
+ public native static void configure();
+ public native static void stopOngoingProcess();
+
+ public native static int isConfigured();
+
+ public native static void performJobs();
+ public native static void fetch();
+ public native static void idle();
+ public native static void interruptIdle();
+
+ public native static void performSmtpJobs();
+ public native static void performSmtpIdle();
+ public native static void interruptSmtpIdle();
+
+ public native static void setConfig(String key, String value);
+ public native static void setConfigInt(String key, int value);
+ public native static String getConfig(String key, String def);
+ public native static int getConfigInt(String key, int def);
+
+ public native static String getInfo();
+ public native static String cmdline(String cmd);
+
+ public native static String initiateKeyTransfer();
+ public native static boolean continueKeyTransfer(int msg_id, String setup_code);
+ public final static int MR_IMEX_EXPORT_SELF_KEYS = 1;
+ public final static int MR_IMEX_IMPORT_SELF_KEYS = 2;
+ public final static int MR_IMEX_EXPORT_BACKUP = 11;
+ public final static int MR_IMEX_IMPORT_BACKUP = 12;
+ public native static void imex(int what, String dir);
+ public native static String imexHasBackup(String dir);
+ public native static int checkPassword(String pw);
+
+ private static long m_hMailbox = 0; // do not rename this, is used in C-part
+ private native static long MrMailboxNew(); // returns hMailbox which must be unref'd after usage (Names as mrmailbox_new don't work due to the additional underscore)
+
+ // contacts
+ public final static int MR_GCL_VERIFIED_ONLY = 1;
+ public final static int MR_GCL_ADD_SELF = 2;
+ public native static int[] getContacts(int flags, String query);
+ public native static int getBlockedCount();
+ public native static int[] getBlockedContacts();
+
+ public static MrContact getContact(int contact_id) {
+ return new MrContact(MrMailboxGetContact(m_hMailbox, contact_id));
+ }
+
+ public static int createContact(String name, String addr) {
+ return MrMailboxCreateContact(m_hMailbox, name, addr);
+ }
+
+ public static void blockContact(int id, int block) {
+ MrMailboxBlockContact(m_hMailbox, id, block);
+ }
+
+ public native static String getContactEncrInfo(int contact_id);
+
+ public static int deleteContact(int id) {
+ return MrMailboxDeleteContact(m_hMailbox, id);
+ }
+
+ public static int addAddressBook(String adrbook) {
+ return MrMailboxAddAddressBook(m_hMailbox, adrbook);
+ }
+
+ private native static long MrMailboxGetContact (long hMailbox, int id);// returns hContact which must be unref'd after usage
+ private native static int MrMailboxCreateContact (long hMailbox, String name, String addr);
+ private native static void MrMailboxBlockContact (long hMailbox, int id, int block);
+ private native static int MrMailboxDeleteContact (long hMailbox, int id); // returns 0 if the contact could not be deleted (eg. it is in use, maybe by deaddrop)
+ private native static int MrMailboxAddAddressBook (long hMailbox, String adrbook);
+
+
+ // chats
+ public final static int MR_GCL_ARCHIVED_ONLY = 0x01;
+ public final static int MR_GCL_NO_SPECIALS = 0x02;
+ public static MrChatlist getChatlist(int listflags, String query, int queryId) {
+ return new MrChatlist(MrMailboxGetChatlist(m_hMailbox, listflags, query, queryId));
+ }
+
+ public static MrChat getChat(int chat_id) {
+ return new MrChat(MrMailboxGetChat(m_hMailbox, chat_id));
+ }
+
+ public native static void markseenMsgs (int msg_ids[]);
+ public native static void marknoticedChat (int chat_id);
+ public native static void marknoticedContact (int contact_id);
+ public native static void archiveChat (int chat_id, int archive);
+
+ public native static int getChatIdByContactId (int contact_id);
+ public native static int createChatByContactId(int contact_id);
+ public native static int createChatByMsgId (int msg_id);
+
+ public native static int createGroupChat (boolean verified, String name);
+ public native static int isContactInChat (int chat_id, int contact_id);
+ public native static int addContactToChat (int chat_id, int contact_id);
+ public native static int removeContactFromChat (int chat_id, int contact_id);
+ public native static void setDraft (int chat_id, String draft/*NULL=delete*/);
+ public native static int setChatName (int chat_id, String name);
+ public native static int setChatProfileImage (int chat_id, String name);
+
+ public final static int MR_GCM_ADDDAYMARKER = 0x01;
+ public native static int[] getChatMsgs(int chat_id, int flags, int marker1before);
+
+ public native static int[] searchMsgs(int chat_id, String query);
+
+ public native static int[] getFreshMsgs();
+
+ public native static int[] getChatMedia(int chat_id, int msg_type, int or_msg_type);
+ public native static int getNextMedia(int msg_id, int dir);
+ public native static int[] getChatContacts(int chat_id);
+ public native static void deleteChat(int chat_id);
+
+ private native static long MrMailboxGetChatlist (long hMailbox, int listflags, String query, int queryId); // returns hChatlist which must be unref'd after usage
+ private native static long MrMailboxGetChat (long hMailbox, int chat_id); // return hChat which must be unref'd after usage
+
+
+ // msgs
+ public static MrMsg getMsg(int msg_id) {
+ return new MrMsg(MrMailboxGetMsg(m_hMailbox, msg_id));
+ }
+
+ public static String getMsgInfo(int id) {
+ return MrMailboxGetMsgInfo(m_hMailbox, id);
+ }
+
+ public static native int getFreshMsgCount(int chat_id);
+
+ public native static void deleteMsgs(int msg_ids[]);
+ public native static void forwardMsgs(int msg_ids[], int chat_ids);
+
+ public native static int sendTextMsg(int chat_id, String text);
+ public native static int sendVcardMsg(int chat_id, int contact_id);
+ public native static int sendMediaMsg(int chat_id, int type, String file, String mime, int w, int h, int time_ms, String author, String trackname);
+
+ private native static long MrMailboxGetMsg (long hMailbox, int id); // return hMsg which must be unref'd after usage
+ private native static String MrMailboxGetMsgInfo (long hMailbox, int id);
+
+ // out-of-band verification
+ public final static int MR_QR_ASK_VERIFYCONTACT = 200;
+ public final static int MR_QR_ASK_VERIFYGROUP = 202;
+ public final static int MR_QR_FPR_OK = 210;
+ public final static int MR_QR_FPR_MISMATCH = 220;
+ public final static int MR_QR_FPR_WITHOUT_ADDR = 230;
+ public final static int MR_QR_ADDR = 320;
+ public final static int MR_QR_TEXT = 330;
+ public final static int MR_QR_URL = 332;
+ public final static int MR_QR_ERROR = 400;
+ public native static int checkQrCPtr(String qr);
+ public static MrLot checkQr(String qr) { return new MrLot(checkQrCPtr(qr)); }
+
+ public native static String getSecurejoinQr(int chat_id);
+ public native static int joinSecurejoin(String qr);
+
+ // static
+ public native static String MrGetVersionStr ();
+ public native static String CPtr2String (long hString); // get strings eg. from data1 from the callback
+ public native static long String2CPtr (String str);
+
+ /* receive events
+ **********************************************************************************************/
+
+ public final static int MR_EVENT_INFO = 100;
+ public final static int MR_EVENT_WARNING = 300;
+ public final static int MR_EVENT_ERROR = 400; // INFO and WARNING are blocked in the mrwrapper.c
+
+ public final static int MR_EVENT_MSGS_CHANGED = 2000;
+ public final static int MR_EVENT_INCOMING_MSG = 2005;
+ public final static int MR_EVENT_MSG_DELIVERED = 2010;
+ public final static int DC_EVENT_MSG_FAILED = 2012;
+ public final static int MR_EVENT_MSG_READ = 2015;
+
+ public final static int MR_EVENT_CHAT_MODIFIED = 2020;
+
+ public final static int MR_EVENT_CONTACTS_CHANGED = 2030;
+
+ public final static int MR_EVENT_CONFIGURE_PROGRESS = 2041;
+
+ public final static int MR_EVENT_IMEX_PROGRESS = 2051;
+ public final static int MR_EVENT_IMEX_FILE_WRITTEN = 2052;
+
+ public final static int MR_EVENT_SECUREJOIN_INVITER_PROGRESS = 2060;
+ public final static int MR_EVENT_SECUREJOIN_JOINER_PROGRESS = 2061;
+
+ public final static int MR_EVENT_IS_OFFLINE = 2081;
+ public final static int MR_EVENT_GET_STRING = 2091;
+ public final static int MR_EVENT_GET_QUANTITIY_STRING = 2092;
+ public final static int MR_EVENT_HTTP_GET = 2100;
+
+ public static final Object m_lastErrorLock = new Object();
+ public static int m_lastErrorCode = 0;
+ public static String m_lastErrorString = "";
+ public static boolean m_showNextErrorAsToast = true;
+
+ public static long MrCallback(final int event, final long data1, final long data2) // this function is called from within the C-wrapper
+ {
+ switch(event) {
+ case MR_EVENT_CONFIGURE_PROGRESS:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ if( data1 == 0 || data1 == 1000 ) {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureEnded, (int)data1);
+ }
+ else {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.configureProgress, (int)data1);
+ }
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_IMEX_PROGRESS:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ if (data1==0 || data1==1000) {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexEnded, (int) data1);
+ }
+ else {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexProgress, (int) data1);
+ }
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_IMEX_FILE_WRITTEN: {
+ /*final String fileName = CPtr2String(data1);
+ AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.imexFileWritten, fileName);
+ }
+ });*/
+ }
+ return 0;
+
+ case MR_EVENT_SECUREJOIN_INVITER_PROGRESS:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.secureJoinInviterProgress, (int)data1, (int)data2);
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_SECUREJOIN_JOINER_PROGRESS:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.secureJoinJoinerProgress, (int)data1, (int)data2);
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_MSGS_CHANGED:
+ case MR_EVENT_INCOMING_MSG:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload, event, (int)data1, (int)data2);
+ if( event == MR_EVENT_INCOMING_MSG ) {
+ NotificationsController.getInstance().processNewMessages((int)data1, (int)data2);
+ }
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_MSG_DELIVERED:
+ case MR_EVENT_MSG_READ:
+ case DC_EVENT_MSG_FAILED:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.messagesSentOrRead, event, (int)data1, (int)data2);
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_CONTACTS_CHANGED:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.contactsDidLoaded, (int)data1);
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.blockedUsersDidLoaded);
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_CHAT_MODIFIED:
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.dialogsNeedReload);
+ NotificationCenter.getInstance().postNotificationName(NotificationCenter.updateInterfaces,
+ UPDATE_MASK_NAME|UPDATE_MASK_CHAT_NAME|
+ UPDATE_MASK_CHAT_MEMBERS|UPDATE_MASK_AVATAR);
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_INFO:
+ Log.i("DeltaChat", CPtr2String(data2));
+ break;
+
+ case MR_EVENT_WARNING:
+ Log.w("DeltaChat", CPtr2String(data2));
+ break;
+
+ case MR_EVENT_ERROR:
+ Log.e("DeltaChat", CPtr2String(data2));
+ synchronized (m_lastErrorLock) {
+ m_lastErrorCode = (int)data1;
+ m_lastErrorString = CPtr2String(data2);
+ }
+ /*AndroidUtilities.runOnUIThread(new Runnable() {
+ @Override
+ public void run() {
+ synchronized (m_lastErrorLock) {
+ if( m_showNextErrorAsToast ) {
+ if(ForegroundDetector.getInstance().isForeground()) {
+ AndroidUtilities.showHint(ApplicationLoader.applicationContext, m_lastErrorString);
+ }
+ }
+ m_showNextErrorAsToast = true;
+ }
+ }
+ });*/
+ return 0;
+
+ case MR_EVENT_GET_STRING:
+ /*String s;
+ switch( (int)data1 ) {
+ // the string-IDs are defined in the backend; as this is the only place where they're used, there is no benefit in creating an enum or sth. like that.
+ case 1: s = ApplicationLoader.applicationContext.getString(R.string.NoMessages); break;
+ case 2: s = ApplicationLoader.applicationContext.getString(R.string.FromSelf); break;
+ case 3: s = ApplicationLoader.applicationContext.getString(R.string.Draft); break;
+ case 7: s = ApplicationLoader.applicationContext.getString(R.string.AttachVoiceMessage); break;
+ case 8: s = ApplicationLoader.applicationContext.getString(R.string.Deaddrop); break;
+ case 9: s = ApplicationLoader.applicationContext.getString(R.string.AttachPhoto); break;
+ case 10: s = ApplicationLoader.applicationContext.getString(R.string.AttachVideo); break;
+ case 11: s = ApplicationLoader.applicationContext.getString(R.string.Audio); break;
+ case 12: s = ApplicationLoader.applicationContext.getString(R.string.AttachDocument); break;
+ case 13: s = ApplicationLoader.applicationContext.getString(R.string.DefaultStatusText); break;
+ case 14: s = ApplicationLoader.applicationContext.getString(R.string.MsgNewGroupDraft); break;
+ case 15: s = ApplicationLoader.applicationContext.getString(R.string.MsgGroupNameChanged); break;
+ case 16: s = ApplicationLoader.applicationContext.getString(R.string.MsgGroupImageChanged); break;
+ case 17: s = ApplicationLoader.applicationContext.getString(R.string.MsgMemberAddedToGroup); break;
+ case 18: s = ApplicationLoader.applicationContext.getString(R.string.MsgMemberRemovedFromToGroup); break;
+ case 19: s = ApplicationLoader.applicationContext.getString(R.string.MsgGroupLeft); break;
+ case 20: s = ApplicationLoader.applicationContext.getString(R.string.Error); break;
+ case 21: s = ApplicationLoader.applicationContext.getString(R.string.ErrSelfNotInGroup); break;
+ case 22: s = ApplicationLoader.applicationContext.getString(R.string.NoNetwork); break;
+ case 23: s = ApplicationLoader.applicationContext.getString(R.string.AttachGif); break;
+ case 24: s = ApplicationLoader.applicationContext.getString(R.string.EncryptedMessage); break;
+ case 25: s = ApplicationLoader.applicationContext.getString(R.string.EncrinfoE2EAvailable); break;
+ case 27: s = ApplicationLoader.applicationContext.getString(R.string.EncrinfoTransport); break;
+ case 28: s = ApplicationLoader.applicationContext.getString(R.string.EncrinfoNone); break;
+ case 29: s = ApplicationLoader.applicationContext.getString(R.string.CannotDecryptBody); break;
+ case 30: s = ApplicationLoader.applicationContext.getString(R.string.EncrinfoFingerprints); break;
+ case 31: s = ApplicationLoader.applicationContext.getString(R.string.ReadReceipt); break;
+ case 32: s = ApplicationLoader.applicationContext.getString(R.string.ReadReceiptMailBody); break;
+ case 33: s = ApplicationLoader.applicationContext.getString(R.string.MsgGroupImageDeleted); break;
+ case 34: s = ApplicationLoader.applicationContext.getString(R.string.E2EEncryptionPreferred); break;
+ case 40: s = ApplicationLoader.applicationContext.getString(R.string.ArchivedChats); break;
+ case 42: s = ApplicationLoader.applicationContext.getString(R.string.AutocryptSetupMessageSubject); break;
+ case 43: s = ApplicationLoader.applicationContext.getString(R.string.AutocryptSetupMessageGeneralBody); break;
+ case 50: s = ApplicationLoader.applicationContext.getString(R.string.SelfTalkSubtitle); break;
+ case 60: s = ApplicationLoader.applicationContext.getString(R.string.ErrCannotLogin); break;
+ case 61: s = "<c#808080>" + ApplicationLoader.applicationContext.getString(R.string.ErrSeverResponse) + "</c>"; break;
+ default: s = null; break;
+ }
+ return String2CPtr(s);
+ */
+ return 0;
+
+ case MR_EVENT_GET_QUANTITIY_STRING:
+ /*String sp = "ErrQtyStrBadId";
+ switch( (int)data1 ) {
+ // the string-IDs are defined in the backend; as this is the only place where they're used, there is no benefit in creating an enum or sth. like that.
+ case 4: sp = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Members, (int)data2, (int)data2); break;
+ case 6: sp = ApplicationLoader.applicationContext.getResources().getQuantityString(R.plurals.Contacts, (int)data2, (int)data2); break;
+ }
+ return String2CPtr(sp);
+ */
+ return 0;
+
+ case MR_EVENT_IS_OFFLINE:
+ //return ApplicationLoader.isNetworkOnline()? 0 : 1;
+ return 0;
+
+ case MR_EVENT_HTTP_GET:
+ String httpContent = null;
+ try {
+ URL url = new URL(CPtr2String(data1));
+ HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
+ try {
+ urlConnection.setConnectTimeout(10*1000);
+ InputStream inputStream = new BufferedInputStream(urlConnection.getInputStream());
+
+ BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
+
+ StringBuilder total = new StringBuilder();
+ String line;
+ while ((line = r.readLine()) != null) {
+ total.append(line).append('\n');
+ }
+ httpContent = total.toString();
+ } finally {
+ urlConnection.disconnect();
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ }
+ return String2CPtr(httpContent);
+ }
+ return 0;
+ }
+
+
+ /* additional functions that are not 1:1 available in the backend
+ **********************************************************************************************/
+
+ public static void log_i(String tag, String msg)
+ {
+ Log.i(tag, msg);
+ }
+
+ public native static int getCurrentTime ();
+
+
+
+
+}
diff --git a/src/com/b44t/messenger/MrMsg.java b/src/com/b44t/messenger/MrMsg.java
new file mode 100644
index 0000000..52a8ed2
--- /dev/null
+++ b/src/com/b44t/messenger/MrMsg.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ *
+ * Delta Chat Android
+ * (C) 2017 Björn Petersen
+ * Contact: r10s@b44t.com, http://b44t.com
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see http://www.gnu.org/licenses/ .
+ *
+ *******************************************************************************
+ *
+ * File: MrMsg.java
+ * Purpose: Wrap around mrmsg_t
+ *
+ ******************************************************************************/
+
+
+package com.b44t.messenger;
+
+import android.graphics.Bitmap;
+import android.media.ThumbnailUtils;
+import android.provider.MediaStore;
+
+import java.io.File;
+
+public class MrMsg {
+
+ private static final String TAG = "MrMsg";
+
+ public final static int MR_MSG_UNDEFINED = 0;
+ public final static int MR_MSG_TEXT = 10;
+ public final static int MR_MSG_IMAGE = 20;
+ public final static int MR_MSG_GIF = 21;
+ public final static int MR_MSG_AUDIO = 40;
+ public final static int MR_MSG_VOICE = 41;
+ public final static int MR_MSG_VIDEO = 50;
+ public final static int MR_MSG_FILE = 60;
+
+ public final static int MR_STATE_UNDEFINED = 0;
+ public final static int MR_IN_FRESH = 10;
+ public final static int MR_IN_NOTICED = 13;
+ public final static int MR_OUT_PENDING = 20;
+ public final static int MR_OUT_ERROR = 24;
+ public final static int MR_OUT_DELIVERED = 26;
+ public final static int MR_OUT_MDN_RCVD = 28;
+
+ public final static int MR_MSG_ID_MARKER1 = 1;
+ public final static int MR_MSG_ID_DAYMARKER = 9;
+
+ public MrMsg(long hMsg) {
+ m_hMsg = hMsg;
+ }
+
+ @Override protected void finalize() throws Throwable {
+ super.finalize();
+ MrMsgUnref(m_hMsg);
+ m_hMsg = 0;
+ }
+
+ public native int getId();
+ public native String getText();
+ public native long getTimestamp();
+ public native int getType();
+ public native int getState();
+ public native int getChatId();
+ public native int getFromId();
+
+ public native int getWidth(int def);
+ public native int getHeight(int def);
+ public native int getDuration();
+ public native void lateFilingMediaSize(int width, int height, int duration);
+
+ public native int getBytes();
+ public MrLot getSummary(MrChat chat) { return new MrLot(getSummaryCPtr(chat.getCPtr())); }
+ private native long getSummaryCPtr(long hChat);
+ public native String getSummarytext(int approx_characters);
+ public native int showPadlock();
+ public MrLot getMediainfo() { return new MrLot(getMediainfoCPtr()); }
+ private native long getMediainfoCPtr();
+ public native String getFile();
+ public native String getFilemime();
+ public native String getFilename();
+ public native boolean isForwarded();
+ public native boolean isInfo();
+ public native boolean isSetupMessage();
+ public native String getSetupCodeBegin();
+ public native boolean isIncreation();
+
+ private long m_hMsg; // must not be renamed as referenced by JNI under the name "m_hMsg"
+ private native static void MrMsgUnref (long hMsg);
+
+};
--
2.8.2
@@ -1,56 +0,0 @@
From 60d175313bdadedeb331923dde3b5c10bbf582ae Mon Sep 17 00:00:00 2001
Message-Id: <60d175313bdadedeb331923dde3b5c10bbf582ae.1534410135.git.daniel.boehrs@open-xchange.com>
In-Reply-To: <371694c11a8b1192ef5230b98af3a5719add98ef.1534410134.git.daniel.boehrs@open-xchange.com>
References: <371694c11a8b1192ef5230b98af3a5719add98ef.1534410134.git.daniel.boehrs@open-xchange.com>
From: "B. Petersen" <r10s@b44t.com>
Date: Fri, 27 Jul 2018 17:13:16 +0200
Subject: [PATCH 6/6] initialize the java-bindings, all functions should be
callable now :)
---
src/org/thoughtcrime/securesms/ApplicationContext.java | 6 ++++++
src/org/thoughtcrime/securesms/util/FileUtils.java | 4 ----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/org/thoughtcrime/securesms/ApplicationContext.java b/src/org/thoughtcrime/securesms/ApplicationContext.java
index f49cba5..fa22338 100644
--- a/src/org/thoughtcrime/securesms/ApplicationContext.java
+++ b/src/org/thoughtcrime/securesms/ApplicationContext.java
@@ -27,6 +27,7 @@ import android.support.annotation.NonNull;
import android.support.multidex.MultiDexApplication;
import android.util.Log;
+import com.b44t.messenger.MrMailbox;
import com.google.android.gms.security.ProviderInstaller;
import org.thoughtcrime.securesms.crypto.PRNGFixes;
@@ -88,6 +89,11 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
@Override
public void onCreate() {
super.onCreate();
+
+ System.loadLibrary("native-utils");
+ MrMailbox.MrCallback(0, 0, 0); // do not remove this call; this makes sure, the function is not removed from build or warnings are printed!
+ MrMailbox.init();
+
initializeRandomNumberFix();
initializeLogging();
initializeDependencyInjection();
diff --git a/src/org/thoughtcrime/securesms/util/FileUtils.java b/src/org/thoughtcrime/securesms/util/FileUtils.java
index e437edd..8927af6 100644
--- a/src/org/thoughtcrime/securesms/util/FileUtils.java
+++ b/src/org/thoughtcrime/securesms/util/FileUtils.java
@@ -9,10 +9,6 @@ import java.security.NoSuchAlgorithmException;
public class FileUtils {
- static {
- System.loadLibrary("native-utils");
- }
-
public static native int getFileDescriptorOwner(FileDescriptor fileDescriptor);
public static byte[] getFileDigest(FileInputStream fin) throws IOException {
--
2.8.2
-20
View File
@@ -1,20 +0,0 @@
-keepattributes *Annotation*,EnclosingMethod
-keep @interface dagger.*,javax.inject.*
-keep @dagger.Module class *
-keepclassmembers class * {
@javax.inject.* *;
@dagger.* *;
<init>();
}
-keepclasseswithmembernames class * {
@javax.inject.* <fields>;
}
-keep class javax.inject.** { *; }
-keep class **$$ModuleAdapter
-keep class **$$InjectAdapter
-keep class **$$StaticInjection
-keep class dagger.** { *; }
-keep class * extends dagger.** { *; }
-keep interface dagger.** {*;}
-dontwarn dagger.internal.codegen.**
-1
View File
@@ -1 +0,0 @@
-dontwarn ezvcard.io.html.HCardPage
-3
View File
@@ -1,3 +0,0 @@
-dontwarn android.net.ConnectivityManager
-dontwarn android.net.ConnectivityManager$NetworkCallback
-dontwarn org.webrtc.NetworkMonitorAutoDetect$ConnectivityManagerDelegate
-3
View File
@@ -1,3 +0,0 @@
-dontwarn okio.**
-dontwarn javax.annotation.Nullable
-dontwarn javax.annotation.ParametersAreNonnullByDefault
-26
View File
@@ -1,26 +0,0 @@
-keep class org.spongycastle.crypto.* {*;}
-keep class org.spongycastle.crypto.agreement.** {*;}
-keep class org.spongycastle.crypto.digests.* {*;}
-keep class org.spongycastle.crypto.ec.* {*;}
-keep class org.spongycastle.crypto.encodings.* {*;}
-keep class org.spongycastle.crypto.engines.* {*;}
-keep class org.spongycastle.crypto.macs.* {*;}
-keep class org.spongycastle.crypto.modes.* {*;}
-keep class org.spongycastle.crypto.paddings.* {*;}
-keep class org.spongycastle.crypto.params.* {*;}
-keep class org.spongycastle.crypto.prng.* {*;}
-keep class org.spongycastle.crypto.signers.* {*;}
-keep class org.spongycastle.jcajce.provider.asymmetric.* {*;}
-keep class org.spongycastle.jcajce.provider.asymmetric.util.* {*;}
-keep class org.spongycastle.jcajce.provider.asymmetric.dh.* {*;}
-keep class org.spongycastle.jcajce.provider.asymmetric.ec.* {*;}
-keep class org.spongycastle.jcajce.provider.digest.** {*;}
-keep class org.spongycastle.jcajce.provider.keystore.** {*;}
-keep class org.spongycastle.jcajce.provider.symmetric.** {*;}
-keep class org.spongycastle.jcajce.spec.* {*;}
-keep class org.spongycastle.jce.** {*;}
-dontwarn javax.naming.**
-5
View File
@@ -1,5 +0,0 @@
-keep class org.sqlite.** { *; }
-keep class org.sqlite.database.** { *; }
-keep class net.sqlcipher.** { *; }
-dontwarn net.sqlcipher.**
-6
View File
@@ -1,6 +0,0 @@
# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**
-5
View File
@@ -1,5 +0,0 @@
# Okio
-keep class sun.misc.Unsafe { *; }
-dontwarn java.nio.file.*
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn okio.**
-3
View File
@@ -1,3 +0,0 @@
-dontwarn org.webrtc.NetworkMonitorAutoDetect
-dontwarn android.net.Network
-keep class org.webrtc.** { *; }
Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 513 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 876 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 188 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 457 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 571 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 265 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 555 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 472 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

Some files were not shown because too many files have changed in this diff Show More