2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-09-01 14:45:08 +00:00

Compare commits

..

118 Commits

Author SHA1 Message Date
Albert Vaca Cintora
ad49e500fa Fix discovering myself and too many registrations 2020-07-19 01:22:04 +02:00
Albert Vaca Cintora
826c0a854e Revert "Failed mega refactor"
This reverts commit 8201b8cbdf028cc8946f4e6a8127a316b8cf1339.
2020-07-19 00:11:07 +02:00
Albert Vaca Cintora
cf32416243 Failed mega refactor 2020-07-18 23:59:03 +02:00
Albert Vaca Cintora
d8749d8f85 Bump deps 2020-07-18 23:58:36 +02:00
Simon Redman
75e08345f7 Make sure that mDNS discovery always writes before reading 2020-07-18 23:58:36 +02:00
Simon Redman
8168ff53e6 Fix mDNS broadcasting 2020-07-18 23:58:36 +02:00
Simon Redman
d939c18dd5 Send identity packet to other party discovered by mDNS 2020-07-18 23:58:36 +02:00
Simon Redman
ec638fdbec Starkly reduce crashing 2020-07-18 23:58:36 +02:00
Simon Redman
e77978d1d5 Move further along with mDNS -- Now able to resolve hostnames and ports 2020-07-18 23:58:36 +02:00
Simon Redman
a63100e5d4 Improve logging 2020-07-18 23:58:36 +02:00
Simon Redman
c817fe1012 Remove UDP broadcasting and replace with mDNS sending 2020-07-18 23:58:36 +02:00
Simon Redman
58de1aa868 Duplicate LanBackend as MulticastBackend 2020-07-18 23:58:36 +02:00
Albert Vaca Cintora
0cea53540e incomingCapabilities can be null 2020-07-18 23:55:43 +02:00
Albert Vaca Cintora
bc7d3ebf3c Protocol version in devicehelper 2020-07-18 23:55:43 +02:00
Simon Redman
96fd6d1e7f Make TelephonyHelper.getPreferredApn not require KitKat 2020-07-18 11:16:16 -07:00
l10n daemon script
d18d83bfac GIT_SILENT made messages (after extraction) 2020-07-18 02:11:39 +02:00
Simon Redman
2c325ad0d9 [SMS App] Add getPreferredApn method to TelephonyHelper 2020-07-17 15:16:22 -07:00
Anjani Kumar
8e09936692 Set user preferred theme when activities are created
BUG: 422473
2020-07-16 06:28:33 +00:00
l10n daemon script
791c82b91a GIT_SILENT made messages (after extraction) 2020-07-16 02:10:36 +02:00
l10n daemon script
4cf7b65e70 GIT_SILENT made messages (after extraction) 2020-07-15 02:15:26 +02:00
l10n daemon script
6c95455fa0 GIT_SILENT made messages (after extraction) 2020-07-14 02:14:31 +02:00
l10n daemon script
c4e11cca81 GIT_SILENT made messages (after extraction) 2020-07-13 02:17:20 +02:00
l10n daemon script
412a45bb1d GIT_SILENT made messages (after extraction) 2020-07-12 02:12:19 +02:00
Isira Seneviratne
06aac453ea Use IOUtils.close(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
1c416852e2 Use IOUtils.copy(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
6e747e2166 Use IOUtils' readLines() and toString(). 2020-07-11 21:36:24 +00:00
Isira Seneviratne
268d01bb71 Add Apache Commons IO. 2020-07-11 21:36:24 +00:00
Anjani Kumar
2b136fac4f Remove string.xml's version(v28) qualifier 2020-07-12 00:57:45 +05:30
Isira Seneviratne
b427627148 Add JVM memory argument. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
7c25fa64a1 Rewrite AlbumArtCache to make use of coroutines instead of AsyncTask. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
e4774b5d17 Add Kotlin dependencies. 2020-07-11 02:10:37 +00:00
Isira Seneviratne
771dab54c3 Remove 'vectorDrawables.useSupportLibrary' flag. 2020-07-10 20:21:06 +05:30
Isira Seneviratne
c4dcecb8d8 Use Comparator.reverseOrder() and Map.computeIfAbsent() in SMSHelper. 2020-07-10 18:31:12 +05:30
Isira Seneviratne
ca7f691b93 Use the Streams API and Comparator.comparing() to sort CommandEntry objects. 2020-07-10 18:22:43 +05:30
Isira Seneviratne
847a949ace Use the Streams API in DevicePacketQueue. 2020-07-10 18:22:42 +05:30
Isira Seneviratne
87c1c44e68 Use SetUtils in PluginFactory. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
144d5d431d Use MultiValuedMap in NotificationsPlugin and Device. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
8f342ed239 Add Apache Commons Collections. 2020-07-10 11:15:00 +00:00
Isira Seneviratne
37baad615f Use ConnectivityManagerCompat.isActiveNetworkMetered(). 2020-07-10 04:23:34 +05:30
Isira Seneviratne
0ed8d5e62e Replace accept and reject PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
6026388dac Replace refresh PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
a3d62c39b9 Replace error PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
10e0d51774 Replace touch PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
f4fbdbc03e Replace file PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
0c50310d54 Replace run command PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
a13f140b90 Replace play PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
b2bf2dca0f Replace presenter PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
4d1cc5b174 Replace phone link PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
355d6a4190 Replace keyboard hide PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
b631060a0e Replace edit PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
46070aa6bf Replace the device PNGs with vector drawables. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
acd96b86e5 Replace add circle PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
8622c6c5f9 Replace keyboard PNGs with a vector drawable. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
45b2ac263f Enable vector drawable support and override some layouts for higher API levels. 2020-07-09 14:35:10 +00:00
Isira Seneviratne
80121a7951 Use TextUtils' isEmpty() and equals(). 2020-07-09 14:24:17 +00:00
l10n daemon script
0f589fd821 GIT_SILENT made messages (after extraction) 2020-07-09 02:13:04 +02:00
l10n daemon script
17f682df46 GIT_SILENT made messages (after extraction) 2020-07-08 02:10:34 +02:00
Isira Seneviratne
2b25d26a7c Use ContextCompat.getColor(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
58be146c29 Use ContextCompat.getDrawable(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
39b8c571e3 Use ContextCompat.startForegroundService(). 2020-07-07 13:31:03 +00:00
Isira Seneviratne
fe3cbeb65b Mock ContextCompat.getSystemService() using PowerMockito. 2020-07-07 17:52:54 +05:30
Isira Seneviratne
52aafe6b8c Use ContextCompat.getSystemService() to retrieve system services without casting. 2020-07-07 16:47:39 +05:30
l10n daemon script
f4ff5c3c89 GIT_SILENT made messages (after extraction) 2020-07-07 02:12:20 +02:00
Aniket Kumar
b119de8e76 Added MMS support to the SMSPlugin using Klinker library. 2020-07-05 13:32:44 +05:30
Isira Seneviratne
edbf3ccaab Make use of the Java 8 Streams API in MprisPlugin. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
6cfe45abfd Replace Comparator implementations with lambda expressions. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
03b61f7d1d Use Java 8 Date/Time API instead of the legacy API. 2020-07-02 13:31:07 +05:30
Isira Seneviratne
2a4ac97880 Add Java 8 API desugaring support. 2020-07-02 13:31:04 +05:30
l10n daemon script
bf06e91636 GIT_SILENT made messages (after extraction) 2020-07-02 02:10:36 +02:00
l10n daemon script
5d0abd93a9 GIT_SILENT made messages (after extraction) 2020-06-27 02:09:29 +02:00
Nicolas Fella
d7fc002609 Bump gradle stuff 2020-06-23 12:38:40 +02:00
Ash Holland
7992820d36 Use appropriate notification channel for file transfer notifications
This fixes bug 421108 (https://bugs.kde.org/show_bug.cgi?id=421108)
2020-06-23 10:35:56 +00:00
l10n daemon script
43b90cd8f9 GIT_SILENT Add new file (after extraction) 2020-06-20 02:08:09 +02:00
l10n daemon script
6d28839c45 GIT_SILENT made messages (after extraction) 2020-06-19 02:10:35 +02:00
l10n daemon script
9bbfb1752b GIT_SILENT made messages (after extraction) 2020-06-18 02:18:29 +02:00
l10n daemon script
f4e000d046 GIT_SILENT Add new file (after extraction) 2020-06-17 02:05:33 +02:00
l10n daemon script
a7475a04d0 GIT_SILENT made messages (after extraction) 2020-06-17 02:05:31 +02:00
l10n daemon script
decfc2f261 GIT_SILENT made messages (after extraction) 2020-06-15 02:13:12 +02:00
Weixuan XIAO
0caa30e1d7 Fix telephony plugin while no SIM card inserted
On my Nokia 8, no SIM card means that there is no subscription
info, which will lead subscription info list a null pointer.
2020-06-14 13:44:53 +00:00
l10n daemon script
f1d8ae2f7d GIT_SILENT made messages (after extraction) 2020-06-14 02:12:14 +02:00
l10n daemon script
1ddb8c6d49 GIT_SILENT made messages (after extraction) 2020-06-13 02:11:11 +02:00
Simon Redman
876d1fa3db [SMS Helper] Use simple=true parameter for fetching the list of all conversations
## Summary

Use `content://mms-sms/conversations?simple=true` instead of just `content://mms-sms/conversations` which should work for more devices (and is reported to work on Samsung devices)

For some reason, this misses exactly one conversation on my phone and throws back one invalid thread ID -- I suspect this indicates that my message database is corrupt 🤷

BUG: 401677

## Test Plan

### Before:
Lots of devices were not able to retrieve conversations. See [bug 401677](https://bugs.kde.org/show_bug.cgi?id=401677)

### After:
Hopefully all devices are able to retrieve conversations. At minimum, hopefully there are no regressions :)
2020-06-10 03:58:34 +00:00
l10n daemon script
5db24b0038 GIT_SILENT made messages (after extraction) 2020-06-10 02:16:11 +02:00
l10n daemon script
bc7789ddc2 GIT_SILENT made messages (after extraction) 2020-06-09 02:09:30 +02:00
l10n daemon script
95c14e922f GIT_SILENT made messages (after extraction) 2020-06-08 02:10:39 +02:00
Simon Redman
3c5f91d9a6 [SMS Helper] Also handle IllegalArgumentException when constructing a MessageAccessException 2020-06-07 13:59:31 -07:00
Simon Redman
460bcba9d5 [SMS Helper] Catch more exception types which indicate that "sub_id" is not supported in the given URI 2020-06-07 13:52:31 -07:00
l10n daemon script
3e6c836c29 GIT_SILENT made messages (after extraction) 2020-06-07 02:09:31 +02:00
Aditya Mehra
ee5c75e10a Add support for Bigscreen STT using android's inbuilt speech engine 2020-06-06 21:39:41 +00:00
l10n daemon script
d5946faf3d GIT_SILENT made messages (after extraction) 2020-06-05 02:08:19 +02:00
Philip Cohn-Cort
615f2c1d20 Fix crash on Plugin Settings screen 2020-06-04 07:56:22 +00:00
l10n daemon script
4d10532a73 GIT_SILENT made messages (after extraction) 2020-06-03 02:08:55 +02:00
l10n daemon script
734e7e3097 GIT_SILENT made messages (after extraction) 2020-06-02 02:06:29 +02:00
l10n daemon script
f5e3687c54 GIT_SILENT made messages (after extraction) 2020-05-31 18:06:31 +02:00
Tobias Fella
df55a51aa3 Delete .reviewboardrc 2020-05-17 14:00:10 +02:00
l10n daemon script
ea2e121e98 GIT_SILENT made messages (after extraction) 2020-05-15 02:57:21 +02:00
l10n daemon script
b80235fec0 GIT_SILENT made messages (after extraction) 2020-05-14 02:52:13 +02:00
Abdel-Rahman Abdel-Rahman
787b07b522 Bump gradle wrapper version.
Satisfies minimum version of Android gradle plugin. See
https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
2020-05-13 04:35:02 +00:00
l10n daemon script
bd1d7ca677 GIT_SILENT made messages (after extraction) 2020-05-13 02:52:16 +02:00
Anjani Kumar
74532f0cd2 Use an already defined string to improve readability 2020-05-12 04:48:45 +05:30
Anjani Kumar
c318d60916 New way to support dark theme to improve integration with system 2020-05-11 23:07:25 +00:00
Nicolas Fella
e315cbd9ef Update some dependency versions 2020-05-12 00:06:14 +02:00
Daniel Tang
31271ec4f9 Make plugin settings use material design 2020-05-10 08:39:52 -04:00
l10n daemon script
a75fe69554 GIT_SILENT made messages (after extraction) 2020-05-10 02:57:04 +02:00
l10n daemon script
f5281be132 GIT_SILENT made messages (after extraction) 2020-05-09 02:51:19 +02:00
l10n daemon script
e4465b5cd5 GIT_SILENT made messages (after extraction) 2020-04-30 02:44:09 +02:00
Philip Cohn-Cort
09a20e8b8e Include git commit in APK filename 2020-04-29 18:59:00 +00:00
Abdel-Rahman Abdel-Rahman
decb179bad Fix typo 2020-04-29 00:35:57 +02:00
Daniel Tang
4291473106 Use material design settings icon 2020-04-27 22:37:16 -04:00
l10n daemon script
b03cfa56ec GIT_SILENT made messages (after extraction) 2020-04-28 02:53:02 +02:00
l10n daemon script
528d13af10 GIT_SILENT made messages (after extraction) 2020-04-27 02:47:52 +02:00
l10n daemon script
548d78aff8 GIT_SILENT made messages (after extraction) 2020-04-25 02:55:47 +02:00
Nicolas Fella
8bcf699074 Show bigscreen plugin if other device is a TV 2020-04-24 16:18:41 +02:00
Nicolas Fella
96f00d4604 Hide plugins if onCreate fails 2020-04-24 16:18:02 +02:00
l10n daemon script
2fe787661c GIT_SILENT made messages (after extraction) 2020-04-24 02:59:33 +02:00
l10n daemon script
f8e6d84757 GIT_SILENT made messages (after extraction) 2020-04-23 02:54:43 +02:00
l10n daemon script
5278fa9036 GIT_SILENT made messages (after extraction) 2020-04-22 02:53:33 +02:00
Albert Vaca
1a247eacc9 Fix trusted networks on Android 10 2020-04-21 20:47:35 +02:00
264 changed files with 5406 additions and 1233 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.bat text eol=crlf

View File

@@ -1,3 +0,0 @@
REVIEWBOARD_URL = "https://git.reviewboard.kde.org"
REPOSITORY = 'git://anongit.kde.org/kdeconnect-android'
TARGET_GROUPS = 'kdeconnect'

View File

@@ -22,6 +22,8 @@
<!-- <uses-permission android:name="android.permission.BLUETOOTH" /> -->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -31,12 +33,19 @@
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.provider.Telephony.SMS_RECEIVED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT" />
<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" />
<application
android:icon="@drawable/icon"
@@ -46,6 +55,67 @@
android:networkSecurityConfig="@xml/network_security_config"
android:theme="@style/KdeConnectTheme"
android:name="org.kde.kdeconnect.MyApplication">
<receiver
android:name="org.kde.kdeconnect.Plugins.SMSPlugin.SmsReceiver"
android:exported="true"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<receiver
android:name="org.kde.kdeconnect.Plugins.SMSPlugin.SmsSentReceiver"
android:exported="true"
android:taskAffinity="${applicationId}.SMS_SENT" />
<receiver
android:name="com.android.mms.transaction.PushReceiver"
android:exported="true"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<receiver
android:name="org.kde.kdeconnect.Plugins.SMSPlugin.DelegatingMmsReceivedReceiver"
android:enabled="true"
android:exported="true"
android:taskAffinity="com.klinker.android.messaging.MMS_RECEIVED" />
<receiver
android:name="org.kde.kdeconnect.Plugins.SMSPlugin.MmsSentReceiver"
android:exported="true"
android:enabled="true"
android:taskAffinity="com.klinker.android.messaging.MMS_SENT" />
<service
android:name="org.kde.kdeconnect.Plugins.SMSPlugin.HeadlessSmsSendService"
android:exported="true"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
<service
android:name="com.android.mms.transaction.TransactionService"
android:enabled="true"
android:exported="true" />
<service
android:name="org.kde.kdeconnect.BackgroundService"
android:enabled="true" />
@@ -66,10 +136,29 @@
android:name="org.kde.kdeconnect.UserInterface.MainActivity"
android:label="KDE Connect"
android:theme="@style/KdeConnectTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.app.role.SMS"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
<activity
@@ -311,4 +400,4 @@
</application>
</manifest>
</manifest>

View File

@@ -1,21 +1,30 @@
import com.android.build.gradle.AppExtension
import com.android.build.gradle.api.ApkVariantOutput
import com.android.build.gradle.api.ApplicationVariant
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
buildscript {
ext.kotlin_version = '1.3.72'
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.1'
classpath 'com.android.tools.build:gradle:4.0.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
android {
compileSdkVersion 29
defaultConfig {
minSdkVersion 14
minSdkVersion 21
targetSdkVersion 29
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "2g"
@@ -23,6 +32,12 @@ android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
// Flag to enable support for the new language APIs
coreLibraryDesugaringEnabled true
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main {
@@ -66,6 +81,58 @@ android {
}
}
/**
* This is a special on-demand Gradle object.
*
* Its value will not be determined until someone calls one of the gitHashProvider.getXXX() methods.
*
* If it does not encounter an explicit 'return' statement, getHashProvider.isPresent() will return false.
*/
Provider<String> gitHashProvider = project.provider {
Process gitCommand = null
try {
// This invokes 'git' immediately, but does not wait for it to finish
gitCommand = 'git rev-parse --short HEAD'.execute([], project.rootDir)
} catch (IOException ignored) {
}
if (gitCommand == null) {
logger.log(LogLevel.WARN, "Could not make use of the 'git' command-line tool. Output filenames will not be customized.")
} else if (gitCommand.waitFor() == 0) {
// This call to '::getText' (using the 'text' Groovy accessor syntax) collects the
// output stream
return '-' + gitCommand.text.trim()
} else {
logger.log(
LogLevel.WARN,
"Could not determine which commit is currently checked out -" +
" did you download this code without the .git directory?"
)
}
}
// We know we can safely cast the 'android' type to the 'AppExtension' class because
// we used the 'com.android.application' plugin at the top of the file.
//
// Note the use of the '::all' extension method; unlike '::each', it can detect every
// object added to the collection, no matter in which build phase that happens.
(android as AppExtension).applicationVariants.all { ApplicationVariant v ->
logger.log(LogLevel.INFO, "Found a variant called '${v.name}'.")
if (v.buildType.debuggable) {
// We're looking at variants made from android.buildTypes.debug! This one
// might have multiple outputs, but only one output will be an APK file.
v.outputs.matching { it instanceof ApkVariantOutput }.all {
// Default output filename is "${project.name}-${v.name}.apk". We want
// the Git commit short-hash to be added onto that default filename.
(it as ApkVariantOutput).outputFileName = "${project.name}-${v.name}${gitHashProvider.getOrElse("")}.apk"
}
}
}
ext {
coroutines_version = '1.3.6'
}
dependencies {
repositories {
@@ -78,9 +145,13 @@ dependencies {
*/
}
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.0.9'
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.media:media:1.1.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.core:core-ktx:1.3.0'
implementation 'androidx.preference:preference:1.1.1'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.0.0'
implementation 'androidx.documentfile:documentfile:1.0.1'
@@ -105,6 +176,16 @@ dependencies {
implementation 'org.atteo.classindex:classindex:3.6'
annotationProcessor 'org.atteo.classindex:classindex:3.6'
implementation 'com.klinkerapps:android-smsmms:5.2.6' //For SMS and MMS purposes
implementation 'commons-io:commons-io:2.7'
implementation 'org.apache.commons:commons-collections4:4.4'
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
// Testing
testImplementation 'junit:junit:4.12'
testImplementation 'org.powermock:powermock-core:2.0.0'
@@ -116,4 +197,5 @@ dependencies {
repositories {
google()
mavenCentral()
}

View File

@@ -1,11 +1,3 @@
android.enableJetifier=true
android.useAndroidX=true
###
# This 'android.enableR8' property only matters when the current
# build variant has 'minifyEnabled true'.
#
# Set this to false to use ProGuard.
# Set this to true to use R8.
#
# Default: true
android.enableR8=false
org.gradle.jvmargs=-Xmx4096m

Binary file not shown.

View File

@@ -1,6 +1,6 @@
#Fri Mar 27 09:59:30 CET 2020
#Tue Jun 23 12:30:12 CEST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip

35
gradlew vendored
View File

@@ -7,7 +7,7 @@
# 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
# https://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,
@@ -125,8 +125,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
# For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -154,19 +154,19 @@ if $cygwin ; then
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
i=`expr $i + 1`
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -175,14 +175,9 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
APP_ARGS=`save "$@"`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

5
gradlew.bat vendored
View File

@@ -5,7 +5,7 @@
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem http://www.apache.org/licenses/LICENSE-2.0
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"

4
proguard-rules.pro vendored
View File

@@ -44,3 +44,7 @@
-dontwarn android.test.**
-dontwarn java.lang.management.**
-dontwarn javax.**
-dontwarn android.net.ConnectivityManager
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
-dontwarn android.net.LinkProperties

Binary file not shown.

Before

Width:  |  Height:  |  Size: 418 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 474 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 553 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 462 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 841 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/primary" android:state_checked="true" />
<item android:drawable="@color/darkStatusBarBackground" android:state_checked="false" />
</selector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 611 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 843 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 578 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 894 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: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 753 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

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