Skip to content
Snippets Groups Projects
Commit dbdc270a authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixed a bug in a unit test, added config for Redex and ProGuard.

parent 76325b65
Branches
Tags
No related merge requests found
import com.android.build.gradle.AppExtension import com.android.build.gradle.AppExtension
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.*
import org.jetbrains.kotlin.gradle.plugin.KaptAnnotationProcessorOptions
import org.jetbrains.kotlin.gradle.plugin.KaptExtension import org.jetbrains.kotlin.gradle.plugin.KaptExtension
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
...@@ -15,12 +14,12 @@ apply { ...@@ -15,12 +14,12 @@ apply {
android { android {
compileSdkVersion(26) compileSdkVersion(26)
buildToolsVersion("26.0.0") buildToolsVersion("26.0.1")
signingConfigs { signingConfigs {
val signing = project.rootProject.properties("signing.properties") val signing = project.rootProject.properties("signing.properties")
if (signing != null) { if (signing != null) {
create("release") { create("default") {
storeFile = file(signing.getProperty("storeFile")) storeFile = file(signing.getProperty("storeFile"))
storePassword = signing.getProperty("storePassword") storePassword = signing.getProperty("storePassword")
keyAlias = signing.getProperty("keyAlias") keyAlias = signing.getProperty("keyAlias")
...@@ -40,7 +39,7 @@ android { ...@@ -40,7 +39,7 @@ android {
buildConfigField("String", "GIT_HEAD", "\"${cmd("git", "rev-parse", "HEAD") ?: ""}\"") buildConfigField("String", "GIT_HEAD", "\"${cmd("git", "rev-parse", "HEAD") ?: ""}\"")
buildConfigField("long", "GIT_COMMIT_DATE", "${cmd("git", "show", "-s", "--format=%ct") ?: 0}L") buildConfigField("long", "GIT_COMMIT_DATE", "${cmd("git", "show", "-s", "--format=%ct") ?: 0}L")
signingConfig = signingConfigs.getByName("release") signingConfig = signingConfigs.getByName("default")
setProperty("archivesBaseName", "QuasselDroidNG-$versionName") setProperty("archivesBaseName", "QuasselDroidNG-$versionName")
...@@ -53,15 +52,33 @@ android { ...@@ -53,15 +52,33 @@ android {
} }
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
resConfigs("en")
} }
buildTypes { buildTypes {
getByName("release") { getByName("release") {
//proguardFiles("proguard-rules.pro") isZipAlignEnabled = true
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
} }
getByName("debug") { getByName("debug") {
applicationIdSuffix = "debug" applicationIdSuffix = "debug"
isZipAlignEnabled = true
isMinifyEnabled = true
isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
} }
} }
} }
...@@ -71,9 +88,7 @@ val appArchVersion = "1.0.0-alpha9-1" ...@@ -71,9 +88,7 @@ val appArchVersion = "1.0.0-alpha9-1"
dependencies { dependencies {
implementation(kotlin("stdlib")) implementation(kotlin("stdlib"))
implementation(appCompat("design")) { implementation(appCompat("design"))
exclude(group = "com.android.support", module = "support-media-compat")
}
implementation(appCompat("customtabs")) implementation(appCompat("customtabs"))
implementation(appCompat("cardview-v7")) implementation(appCompat("cardview-v7"))
implementation(appCompat("recyclerview-v7")) implementation(appCompat("recyclerview-v7"))
...@@ -100,9 +115,6 @@ dependencies { ...@@ -100,9 +115,6 @@ dependencies {
implementation("com.jakewharton:butterknife:8.7.0") implementation("com.jakewharton:butterknife:8.7.0")
kapt("com.jakewharton:butterknife-compiler:8.7.0") kapt("com.jakewharton:butterknife-compiler:8.7.0")
implementation("com.faendir:acra:4.10.0") {
exclude(group = "com.android.support", module = "support-media-compat")
}
implementation(project(":lib")) implementation(project(":lib"))
implementation(project(":invokerannotations")) implementation(project(":invokerannotations"))
......
...@@ -26,3 +26,7 @@ ...@@ -26,3 +26,7 @@
# The project is GPL anyway, obfuscation is useless. # The project is GPL anyway, obfuscation is useless.
-dontobfuscate -dontobfuscate
-keep class * implements de.kuschku.libquassel.quassel.syncables.interfaces.invokers.Invoker {
static ** INSTANCE;
}
{
"redex" : {
"passes" : [
"ReBindRefsPass",
"SynthPass",
"FinalInlinePass",
"PeepholePass",
"ConstantPropagationPassV3",
"RedundantMoveEliminationPass",
"LocalDcePass",
"RemoveGotosPass",
"DelSuperPass",
"SingleImplPass",
"StaticReloPass",
"ReorderInterfacesPass",
"RemoveEmptyClassesPass",
"ShortenSrcStringsPass",
"InstructionSelectionPass"
]
},
"SimpleInlinePass": {
"use_liveness" : true,
"throws": true,
"multiple_callers": true
},
"FinalInlinePass" : {
"propagate_static_finals": true,
"replace_encodable_clinits": true,
"inline_string_fields": true,
"inline_wide_fields": true
},
"RedundantMoveEliminationPass" : {
"eliminate_const_literals": false,
"full_method_analysis": true
}
}
...@@ -10,27 +10,15 @@ import de.kuschku.quasseldroid_ng.util.compatibility.AndroidCompatibilityUtils ...@@ -10,27 +10,15 @@ import de.kuschku.quasseldroid_ng.util.compatibility.AndroidCompatibilityUtils
import de.kuschku.quasseldroid_ng.util.compatibility.AndroidLoggingHandler import de.kuschku.quasseldroid_ng.util.compatibility.AndroidLoggingHandler
import de.kuschku.quasseldroid_ng.util.compatibility.AndroidStreamChannelFactory import de.kuschku.quasseldroid_ng.util.compatibility.AndroidStreamChannelFactory
import de.kuschku.quasseldroid_ng.util.helper.systemService import de.kuschku.quasseldroid_ng.util.helper.systemService
import org.acra.ACRA
import org.acra.ReportingInteractionMode
import org.acra.config.ConfigurationBuilder
class QuasseldroidNG : Application() { class QuasseldroidNG : Application() {
override fun attachBaseContext(base: Context?) { override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base) super.attachBaseContext(base)
val config = ConfigurationBuilder(this)
.setMailTo("support@kuschku.de")
.setReportingInteractionMode(ReportingInteractionMode.DIALOG)
.setResDialogText(R.string.crash_text)
.build()
//ACRA.init(this, config)
} }
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
if (!ACRA.isACRASenderServiceProcess()) {
// Init compatibility utils // Init compatibility utils
AndroidCompatibilityUtils.inject() AndroidCompatibilityUtils.inject()
AndroidLoggingHandler.inject() AndroidLoggingHandler.inject()
...@@ -62,4 +50,3 @@ class QuasseldroidNG : Application() { ...@@ -62,4 +50,3 @@ class QuasseldroidNG : Application() {
} }
} }
} }
}
...@@ -5,7 +5,6 @@ import android.graphics.Canvas ...@@ -5,7 +5,6 @@ import android.graphics.Canvas
import android.graphics.Rect import android.graphics.Rect
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.support.v4.view.ViewCompat import android.support.v4.view.ViewCompat
import android.support.v4.view.WindowInsetsCompat
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
import android.util.AttributeSet import android.util.AttributeSet
import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.R
...@@ -28,7 +27,7 @@ class DrawerRecyclerView @JvmOverloads constructor( ...@@ -28,7 +27,7 @@ class DrawerRecyclerView @JvmOverloads constructor(
a.recycle() a.recycle()
setWillNotDraw(true) // No need to draw until the insets are adjusted setWillNotDraw(true) // No need to draw until the insets are adjusted
ViewCompat.setOnApplyWindowInsetsListener(this ViewCompat.setOnApplyWindowInsetsListener(this
) { v, insets -> ) { _, insets ->
if (null == mInsets) { if (null == mInsets) {
mInsets = Rect() mInsets = Rect()
} }
...@@ -40,7 +39,6 @@ class DrawerRecyclerView @JvmOverloads constructor( ...@@ -40,7 +39,6 @@ class DrawerRecyclerView @JvmOverloads constructor(
insets.systemWindowInsetTop, insets.systemWindowInsetTop,
insets.systemWindowInsetRight, insets.systemWindowInsetRight,
insets.systemWindowInsetBottom) insets.systemWindowInsetBottom)
onInsetsChanged(insets)
setWillNotDraw(!insets.hasSystemWindowInsets() || mInsetForeground == null) setWillNotDraw(!insets.hasSystemWindowInsets() || mInsetForeground == null)
ViewCompat.postInvalidateOnAnimation(this@DrawerRecyclerView) ViewCompat.postInvalidateOnAnimation(this@DrawerRecyclerView)
insets.consumeSystemWindowInsets() insets.consumeSystemWindowInsets()
...@@ -99,6 +97,4 @@ class DrawerRecyclerView @JvmOverloads constructor( ...@@ -99,6 +97,4 @@ class DrawerRecyclerView @JvmOverloads constructor(
mInsetForeground!!.callback = null mInsetForeground!!.callback = null
} }
} }
protected open fun onInsetsChanged(insets: WindowInsetsCompat) {}
} }
...@@ -20,7 +20,6 @@ import android.graphics.Canvas ...@@ -20,7 +20,6 @@ import android.graphics.Canvas
import android.graphics.Rect import android.graphics.Rect
import android.graphics.drawable.Drawable import android.graphics.drawable.Drawable
import android.support.v4.view.ViewCompat import android.support.v4.view.ViewCompat
import android.support.v4.view.WindowInsetsCompat
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.FrameLayout import android.widget.FrameLayout
import de.kuschku.quasseldroid_ng.R import de.kuschku.quasseldroid_ng.R
...@@ -43,7 +42,7 @@ class NavigationDrawerLayout @JvmOverloads constructor( ...@@ -43,7 +42,7 @@ class NavigationDrawerLayout @JvmOverloads constructor(
a.recycle() a.recycle()
setWillNotDraw(true) // No need to draw until the insets are adjusted setWillNotDraw(true) // No need to draw until the insets are adjusted
ViewCompat.setOnApplyWindowInsetsListener(this ViewCompat.setOnApplyWindowInsetsListener(this
) { v, insets -> ) { _, insets ->
if (null == mInsets) { if (null == mInsets) {
mInsets = Rect() mInsets = Rect()
} }
...@@ -55,7 +54,6 @@ class NavigationDrawerLayout @JvmOverloads constructor( ...@@ -55,7 +54,6 @@ class NavigationDrawerLayout @JvmOverloads constructor(
insets.systemWindowInsetTop, insets.systemWindowInsetTop,
insets.systemWindowInsetRight, insets.systemWindowInsetRight,
insets.systemWindowInsetBottom) insets.systemWindowInsetBottom)
onInsetsChanged(insets)
setWillNotDraw(!insets.hasSystemWindowInsets() || mInsetForeground == null) setWillNotDraw(!insets.hasSystemWindowInsets() || mInsetForeground == null)
ViewCompat.postInvalidateOnAnimation(this@NavigationDrawerLayout) ViewCompat.postInvalidateOnAnimation(this@NavigationDrawerLayout)
insets.consumeSystemWindowInsets() insets.consumeSystemWindowInsets()
...@@ -114,6 +112,4 @@ class NavigationDrawerLayout @JvmOverloads constructor( ...@@ -114,6 +112,4 @@ class NavigationDrawerLayout @JvmOverloads constructor(
mInsetForeground!!.callback = null mInsetForeground!!.callback = null
} }
} }
protected open fun onInsetsChanged(insets: WindowInsetsCompat) {}
} }
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:discard=""
tools:keep="@mipmap/ic_launcher,@drawable/ic_shortcut_channel,@drawable/ic_shortcut_query" />
package de.kuschku.libquassel package de.kuschku.libquassel
import de.kuschku.libquassel.protocol.ClientData import de.kuschku.libquassel.protocol.*
import de.kuschku.libquassel.protocol.Protocol_Feature
import de.kuschku.libquassel.protocol.Quassel_Feature
import de.kuschku.libquassel.protocol.UShort
import de.kuschku.libquassel.quassel.ProtocolFeature import de.kuschku.libquassel.quassel.ProtocolFeature
import de.kuschku.libquassel.quassel.QuasselFeature import de.kuschku.libquassel.quassel.QuasselFeature
import de.kuschku.libquassel.session.Session import de.kuschku.libquassel.session.Session
...@@ -37,7 +34,7 @@ class ConnectionUnitTest { ...@@ -37,7 +34,7 @@ class ConnectionUnitTest {
buildDate = Instant.EPOCH, buildDate = Instant.EPOCH,
clientFeatures = Quassel_Feature.of(*QuasselFeature.validValues), clientFeatures = Quassel_Feature.of(*QuasselFeature.validValues),
protocolFeatures = Protocol_Feature.of(ProtocolFeature.TLS, ProtocolFeature.Compression), protocolFeatures = Protocol_Feature.of(ProtocolFeature.TLS, ProtocolFeature.Compression),
supportedProtocols = byteArrayOf(0x02) supportedProtocols = listOf(Protocol.Datastream)
), object : X509TrustManager { ), object : X509TrustManager {
override fun checkClientTrusted(p0: Array<out X509Certificate>?, p1: String?) { override fun checkClientTrusted(p0: Array<out X509Certificate>?, p1: String?) {
} }
......
...@@ -48,9 +48,11 @@ class SerializerUnitTest { ...@@ -48,9 +48,11 @@ class SerializerUnitTest {
assertEquals(now, roundTrip(DateTimeSerializer, now)) assertEquals(now, roundTrip(DateTimeSerializer, now))
val value1 = Instant.EPOCH.atOffset(ZoneOffset.ofTotalSeconds(1234)) val value1 = Instant.EPOCH.atOffset(ZoneOffset.ofTotalSeconds(1234))
assertEquals(value1.toInstant(), roundTrip(DateTimeSerializer, value1)) assertEquals(value1.atZoneSimilarLocal(ZoneOffset.UTC).toInstant(),
roundTrip(DateTimeSerializer, value1))
val value2 = Instant.now().atOffset(ZoneOffset.ofTotalSeconds(1234)) val value2 = Instant.now().atOffset(ZoneOffset.ofTotalSeconds(1234))
assertEquals(value2.toInstant(), roundTrip(DateTimeSerializer, value2)) assertEquals(value2.atZoneSimilarLocal(ZoneOffset.UTC).toInstant(),
roundTrip(DateTimeSerializer, value2))
val value3 = LocalDateTime.of(1970, 1, 1, 0, 0) val value3 = LocalDateTime.of(1970, 1, 1, 0, 0)
.atZone(ZoneOffset.systemDefault()).toInstant() .atZone(ZoneOffset.systemDefault()).toInstant()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment