Skip to content

Instantly share code, notes, and snippets.

View chelseatroy's full-sized avatar

Chelsea Troy chelseatroy

View GitHub Profile
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
signInButton.setOnClickListener { view ->
if (isNetworkConnected()) {
authenticate() //REPLACE CALL TO startActivity() WITH THIS LINE
} else {
@chelseatroy
chelseatroy / LoginActivity
Last active May 31, 2020 04:51
Interact with API in Activity
class LoginActivity : AppCompatActivity() {
...
fun authenticate() {
val loginJob = Job()
val errorHandler = CoroutineExceptionHandler { _, exception ->
AlertDialog.Builder(this).setTitle("Error")
.setMessage(exception.message)
@chelseatroy
chelseatroy / network_security_config.xml
Created May 31, 2020 04:04
Adding Network Security Config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
@chelseatroy
chelseatroy / AndroidManifest.xml
Created May 31, 2020 04:03
Adding Network Security Config
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chelseatroy.canary">
<application
//ADD THIS LINE
android:networkSecurityConfig="@xml/network_security_config"
...
</application>
@chelseatroy
chelseatroy / MockyAPIImplementation
Last active November 29, 2020 01:13
Implementing the API
package com.chelseatroy.canary.api
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
class MockyAPIImplementation {
private val service: LoginService
companion object {
const val BASE_URL = "http://www.mocky.io/"
@chelseatroy
chelseatroy / CanarySession.kt
Created May 31, 2020 03:55
Setting Up a Data Object
package com.chelseatroy.canary.api
data class CanarySession(
val name: String?,
val token: String?
)
@chelseatroy
chelseatroy / LoginService.kt
Last active May 30, 2020 23:13
Retrofit Interface for Login
package com.chelseatroy.canary.api
import retrofit2.http.GET
interface LoginService {
@GET("/v2/5ed1d35132000070005ca001")
suspend fun authenticate(): CanarySession
}
@chelseatroy
chelseatroy / LoginActivity.kt
Last active June 5, 2020 00:36
Adding Check for Network
class LoginActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
...
signInButton.setOnClickListener { view ->
if (isNetworkConnected()) {
startActivity(Intent(this@LoginActivity, MainActivity::class.java))
} else {
AlertDialog.Builder(this).setTitle("No Internet Connection")
.setMessage("Please check your internet connection and try again")
@chelseatroy
chelseatroy / LoginActivity.kt
Created May 30, 2020 22:17
Ascertaining Network Connectivity
class LoginActivity : AppCompatActivity() {
...
private fun isNetworkConnected(): Boolean {
val connectivityManager =
getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = connectivityManager.activeNetwork
val networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork)
return networkCapabilities != null &&
@chelseatroy
chelseatroy / LoginActivity.kt
Created May 30, 2020 22:15
Fake Logging In
class LoginActivity : AppCompatActivity() {
...
override fun onCreate(savedInstanceState: Bundle?) {
...
signInButton.setOnClickListener { view ->
startActivity(Intent(this@LoginActivity, MainActivity::class.java))
}
}