Skip to content

Commit bd9ac1f

Browse files
authored
Merge pull request #83 from infinum/develop
Develop
2 parents 9c4c3d3 + 8df4855 commit bd9ac1f

39 files changed

+320
-120
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
Changelog
22
=========
33

4+
## Version 5.2.8
5+
6+
_2021-03-11_
7+
8+
* Add tablet support on databases list.
9+
* Update dependencies to more stable releases.
10+
* Fix Lint issues.
11+
* Enable Proguard for release builds.
12+
413
## Version 5.2.7
514

615
_2021-02-24_

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ Then add the following dependencies in your app `build.gradle` or `build.gradle.
4343

4444
**Groovy**
4545
```groovy
46-
debugImplementation "com.infinum.dbinspector:dbinspector:5.2.7"
47-
releaseImplementation "com.infinum.dbinspector:dbinspector-no-op:5.2.7"
46+
debugImplementation "com.infinum.dbinspector:dbinspector:5.2.8"
47+
releaseImplementation "com.infinum.dbinspector:dbinspector-no-op:5.2.8"
4848
```
4949
**KotlinDSL**
5050
```kotlin
51-
debugImplementation("com.infinum.dbinspector:dbinspector:5.2.7")
52-
releaseImplementation("com.infinum.dbinspector:dbinspector-no-op:5.2.7")
51+
debugImplementation("com.infinum.dbinspector:dbinspector:5.2.8")
52+
releaseImplementation("com.infinum.dbinspector:dbinspector-no-op:5.2.8")
5353
```
5454

5555
### Usage

config.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ext {
77
]
88
releaseConfig = [
99
"group" : "com.infinum.dbinspector",
10-
"version" : "5.2.7",
11-
"versionCode": 5 * 100 * 100 + 2 * 100 + 7
10+
"version" : "5.2.8",
11+
"versionCode": 5 * 100 * 100 + 2 * 100 + 8
1212
]
1313
}

dbinspector-no-op/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ android {
3939
freeCompilerArgs += [
4040
'-Xexplicit-api=strict'
4141
]
42+
useIR = true
4243
}
4344

4445
sourceSets.each {

dbinspector/build.gradle

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,17 @@ android {
2424
}
2525
release {
2626
debuggable false
27-
minifyEnabled false // TODO: Enable once R8/D8 works with Protobuf
27+
minifyEnabled true
2828
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.txt"
2929
}
3030
}
3131

3232
resourcePrefix "dbinspector_"
3333

34+
lintOptions {
35+
disable 'InvalidFragmentVersionForActivityResult', 'VectorPath', 'IconLocation'
36+
}
37+
3438
compileOptions {
3539
sourceCompatibility JavaVersion.VERSION_1_8
3640
targetCompatibility JavaVersion.VERSION_1_8
@@ -42,6 +46,7 @@ android {
4246
'-Xopt-in=org.koin.core.component.KoinApiExtension',
4347
'-Xexplicit-api=strict'
4448
]
49+
useIR = true
4550
}
4651

4752
sourceSets.each {
@@ -57,13 +62,15 @@ dependencies {
5762
implementation packages.kotlin.core
5863
implementation packages.androidx.core
5964
implementation packages.androidx.appcompat
65+
implementation packages.androidx.activity
6066
implementation packages.androidx.fragment
6167
implementation packages.androidx.recyclerview
6268
implementation packages.androidx.viewpager
6369
implementation packages.androidx.paging
6470
implementation packages.androidx.startup
6571
implementation packages.androidx.swiperefreshlayout
6672
implementation packages.androidx.datastore
73+
implementation packages.androidx.dynamicanimation
6774
implementation packages.google.protobuf.javalite
6875
implementation packages.google.design
6976
implementation packages.kotlinx.coroutines

dbinspector/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xmlns:tools="http://schemas.android.com/tools"
44
package="com.infinum.dbinspector">
55

6-
<application>
6+
<application android:supportsRtl="false">
77

88
<activity-alias
99
android:name="com.infinum.dbinspector.DbInspectorActivity"

dbinspector/src/main/kotlin/com/infinum/dbinspector/data/Data.kt

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.infinum.dbinspector.data
22

33
import android.content.Context
4+
import androidx.datastore.core.DataStoreFactory
45
import androidx.datastore.core.Serializer
5-
import androidx.datastore.createDataStore
66
import com.infinum.dbinspector.data.Data.Constants.Name.PROTO_FILENAME_HISTORY
77
import com.infinum.dbinspector.data.Data.Constants.Name.PROTO_FILENAME_SETTINGS
88
import com.infinum.dbinspector.data.models.local.proto.output.HistoryEntity
@@ -18,6 +18,7 @@ import com.infinum.dbinspector.data.source.memory.connection.AndroidConnectionSo
1818
import com.infinum.dbinspector.data.source.memory.pagination.CursorPaginator
1919
import com.infinum.dbinspector.data.source.memory.pagination.Paginator
2020
import com.infinum.dbinspector.data.source.raw.AndroidDatabasesSource
21+
import com.infinum.dbinspector.extensions.dataStoreFile
2122
import org.koin.core.module.Module
2223
import org.koin.core.qualifier.StringQualifier
2324
import org.koin.dsl.module
@@ -114,19 +115,22 @@ internal object Data {
114115
single<Sources.Local.Settings> {
115116
val context: Context = get()
116117
SettingsDataStore(
117-
context.createDataStore(
118-
fileName = get(qualifier = Qualifiers.Name.DATASTORE_SETTINGS),
119-
serializer = get(qualifier = Qualifiers.Name.DATASTORE_SETTINGS)
120-
)
118+
DataStoreFactory.create(
119+
get(qualifier = Qualifiers.Name.DATASTORE_SETTINGS)
120+
) {
121+
context.dataStoreFile(get(qualifier = Qualifiers.Name.DATASTORE_SETTINGS))
122+
}
121123
)
122124
}
123125
single<Sources.Local.History> {
124126
val context: Context = get()
127+
125128
HistoryDataStore(
126-
context.createDataStore(
127-
fileName = get(qualifier = Qualifiers.Name.DATASTORE_HISTORY),
128-
serializer = get(qualifier = Qualifiers.Name.DATASTORE_HISTORY)
129-
)
129+
DataStoreFactory.create(
130+
get(qualifier = Qualifiers.Name.DATASTORE_HISTORY)
131+
) {
132+
context.dataStoreFile(get(qualifier = Qualifiers.Name.DATASTORE_HISTORY))
133+
}
130134
)
131135
}
132136

dbinspector/src/main/kotlin/com/infinum/dbinspector/data/source/local/proto/history/HistorySerializer.kt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,27 @@ import com.google.protobuf.InvalidProtocolBufferException
66
import com.infinum.dbinspector.data.models.local.proto.output.HistoryEntity
77
import java.io.InputStream
88
import java.io.OutputStream
9+
import kotlin.coroutines.resume
10+
import kotlin.coroutines.resumeWithException
11+
import kotlinx.coroutines.suspendCancellableCoroutine
912

1013
internal class HistorySerializer : Serializer<HistoryEntity> {
1114

1215
override val defaultValue: HistoryEntity =
1316
HistoryEntity.getDefaultInstance()
1417

15-
override fun readFrom(input: InputStream): HistoryEntity {
16-
try {
17-
return HistoryEntity.parseFrom(input)
18-
} catch (exception: InvalidProtocolBufferException) {
19-
throw CorruptionException("Cannot read proto.", exception)
18+
override suspend fun readFrom(input: InputStream): HistoryEntity =
19+
suspendCancellableCoroutine { continuation ->
20+
try {
21+
continuation.resume(HistoryEntity.parseFrom(input))
22+
} catch (exception: InvalidProtocolBufferException) {
23+
continuation.resumeWithException(CorruptionException("Cannot read proto.", exception))
24+
}
2025
}
21-
}
2226

23-
override fun writeTo(t: HistoryEntity, output: OutputStream) =
24-
t.writeTo(output)
27+
override suspend fun writeTo(t: HistoryEntity, output: OutputStream): Unit =
28+
suspendCancellableCoroutine { continuation ->
29+
t.writeTo(output)
30+
continuation.resume(Unit)
31+
}
2532
}

dbinspector/src/main/kotlin/com/infinum/dbinspector/data/source/local/proto/settings/SettingsSerializer.kt

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,27 @@ import com.google.protobuf.InvalidProtocolBufferException
66
import com.infinum.dbinspector.data.models.local.proto.output.SettingsEntity
77
import java.io.InputStream
88
import java.io.OutputStream
9+
import kotlin.coroutines.resume
10+
import kotlin.coroutines.resumeWithException
11+
import kotlinx.coroutines.suspendCancellableCoroutine
912

1013
internal class SettingsSerializer : Serializer<SettingsEntity> {
1114

1215
override val defaultValue: SettingsEntity =
1316
SettingsEntity.getDefaultInstance()
1417

15-
override fun readFrom(input: InputStream): SettingsEntity {
16-
try {
17-
return SettingsEntity.parseFrom(input)
18-
} catch (exception: InvalidProtocolBufferException) {
19-
throw CorruptionException("Cannot read proto.", exception)
18+
override suspend fun readFrom(input: InputStream): SettingsEntity =
19+
suspendCancellableCoroutine { continuation ->
20+
try {
21+
continuation.resume(SettingsEntity.parseFrom(input))
22+
} catch (exception: InvalidProtocolBufferException) {
23+
continuation.resumeWithException(CorruptionException("Cannot read proto.", exception))
24+
}
2025
}
21-
}
2226

23-
override fun writeTo(t: SettingsEntity, output: OutputStream) =
24-
t.writeTo(output)
27+
override suspend fun writeTo(t: SettingsEntity, output: OutputStream): Unit =
28+
suspendCancellableCoroutine { continuation ->
29+
t.writeTo(output)
30+
continuation.resume(Unit)
31+
}
2532
}

dbinspector/src/main/kotlin/com/infinum/dbinspector/extensions/Context.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ import android.util.TypedValue
77
import androidx.annotation.AttrRes
88
import androidx.annotation.ColorInt
99
import androidx.core.content.ContextCompat
10+
import java.io.File
11+
12+
internal fun Context.dataStoreFile(fileName: String): File =
13+
File(filesDir, "datastore/$fileName")
1014

1115
internal val Context.databaseDir: String
1216
get() = "${filesDir.path.substring(0, filesDir.path.lastIndexOf("/"))}/databases"

0 commit comments

Comments
 (0)