Example of using RxJava to listen to connectivity status in Android
You could use the same approach to listen to any status, but this example includes network connectivity specifics too (ConnectionChangeReceiver
and AndroidUtils.isConnected
).
> Task :app:kaptGenerateStubsDebugKotlin FAILED | |
e: java.lang.IllegalAccessError: class org.jetbrains.kotlin.kapt3.base.KaptContext (in unnamed module @0x6a6abeee) cannot access class com.sun.tools.javac.util.Context (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x6a6abeee | |
at org.jetbrains.kotlin.kapt3.base.KaptContext.<init>(KaptContext.kt:28) | |
at org.jetbrains.kotlin.kapt3.KaptContextForStubGeneration.<init>(KaptContextForStubGeneration.kt:40) | |
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.contextForStubGeneration(Kapt3Extension.kt:287) | |
at org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.analysisCompleted(Kapt3Extension.kt:171) | |
at org.jetbrains.kotlin.kapt3.ClasspathBasedKapt3Extension.analysisCompleted(Kapt3Extension.kt:102) | |
at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$invokeExtensionsOnAnalysisComplete(TopDownAnalyzerFacadeForJVM.kt:112) | |
at org.jetbrains.kotlin.cli.jvm.com |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<title>Bad request</title> | |
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAlFJREFUeNqUU8tOFEEUPVVdNV3dPe8xYRBnjGhmBgKjKzCIiQvBoIaNbly5Z+PSv3Aj7DSiP2B0rwkLGVdGgxITSCRIJGSMEQWZR3eVt5sEFBgTb/dN1yvnnHtPNTPG4PqdHgCMXnPRSZrpSuH8vUJu4DE4rYHDGAZDX62BZttHqTiIayM3gGiXQsgYLEvATaqxU+dy1U13YXapXptpNHY8iwn8KyIAzm1KBdtRZWErpI5lEWTXp5Z/vHpZ3/wyKKwYGGOdAYwR0EZwoezTYApBEIObyELl/aE1/83cp40Pt5mxqCKrE4Ck+mVWKKcI5tA8BLEhRBKJLjez6a7MLq7XZtp+yyOawwCBtkiBVZDKzRk4NN7NQBMYPHiZDFhXY+p9ff7F961vVcnl4R5I2ykJ5XFN7Ab7Gc61VoipNBKF+PDyztu5lfrSLT/wIwCxq0CAGtXHZTzqR2jtwQiXONma6hHpj9sLT7YaPxfTXuZdBGA02Wi7FS48YiTfj+i2NhqtdhP5RC8mh2/Op7y0v6eAcWVLFT8D7kWX5S9mepp+C450MV6aWL1cGnvkxbwHtLW2B9AOkLeUd9KEDuh9fl/7CEj7YH5g+3r/lWfF9In7tPz6T4IIwBJOr1SJyIGQMZQbsh5P9uBq5VJtqHh2mo49pdw5WFoEwKWqWHacaWOjQXWGcifKo6vj5RGS6zykI587XeUIQDqJSmAp+lE4qt19W5P9o8+Lma5DcjsC8JiT607lMVkdqQ0Vyh3lHhmh52tfNy78ajXv0rgYzv8 |
// Fixes to compilation errors in "Define the onItemClick() method" section | |
// Doesn't compile | |
Cursor cursor = parent.getAdapter().getCursor(); | |
// Fixed (not sure if this is the cleanest way though) | |
Cursor cursor = ((SimpleCursorAdapter) parent.getAdapter()).getCursor(); | |
// Doesn't compile | |
mContactId = getLong(CONTACT_ID_INDEX); | |
// Fixed |
You could use the same approach to listen to any status, but this example includes network connectivity specifics too (ConnectionChangeReceiver
and AndroidUtils.isConnected
).
Testing started at 22:28 ... | |
services.ReportServiceSpec$ | |
java.lang.ClassNotFoundException: services.ReportServiceSpec$ | |
STACKTRACE | |
java.net.URLClassLoader.findClass(URLClassLoader.java:381) | |
java.lang.ClassLoader.loadClass(ClassLoader.java:424) | |
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) |
package com.company.project.components; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.context.MessageSource; | |
import org.springframework.context.support.MessageSourceAccessor; | |
import org.springframework.stereotype.Component; | |
import javax.annotation.PostConstruct; | |
import java.util.Locale; |
package com.company.project.controllers; | |
import org.springframework.http.HttpHeaders; | |
import org.springframework.http.HttpStatus; | |
import org.springframework.http.MediaType; | |
import org.springframework.http.ResponseEntity; | |
import org.springframework.web.bind.annotation.*; | |
import java.util.Random; |
/** | |
* @author Joni Karppinen | |
* Licence: WTFPL, http://www.wtfpl.net/txt/copying/ | |
*/ | |
public class StringUtils { | |
public static String encodeUrlParameters(Map<String, String> parameters) { | |
if (parameters == null || parameters.isEmpty()) { | |
return ""; | |
} |
import com.fasterxml.jackson.annotation.JsonInclude; | |
import com.fasterxml.jackson.databind.DeserializationFeature; | |
import com.fasterxml.jackson.databind.ObjectMapper; | |
import com.fasterxml.jackson.databind.SerializationFeature; | |
/** | |
* ObjectMapper customised for my tastes and most typical needs | |
* | |
* @author Joni Karppinen | |
*/ |
package com.company.project.controllers; | |
import com.company.project.model.api.ErrorJson; | |
import org.springframework.beans.factory.annotation.Autowired; | |
import org.springframework.beans.factory.annotation.Value; | |
import org.springframework.boot.autoconfigure.web.ErrorAttributes; | |
import org.springframework.boot.autoconfigure.web.ErrorController; | |
import org.springframework.web.bind.annotation.RequestMapping; | |
import org.springframework.web.bind.annotation.RestController; | |
import org.springframework.web.context.request.RequestAttributes; |