1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-09-20 07:31:40 +02:00

Remove unused dependencies and remove reactivex from username fetcher

This commit is contained in:
Allan Wang 2019-01-04 23:59:30 -05:00
parent a1cf58e0ee
commit 5d2722b220
No known key found for this signature in database
GPG Key ID: C93E3F9C679D7A56
5 changed files with 16 additions and 58 deletions

View File

@ -253,8 +253,8 @@ dependencies {
//Reactive Libs
implementation "io.reactivex.rxjava2:rxjava:${RX_JAVA}"
implementation "io.reactivex.rxjava2:rxkotlin:${RX_KOTLIN}"
implementation "io.reactivex.rxjava2:rxandroid:${RX_ANDROID}"
// implementation "io.reactivex.rxjava2:rxkotlin:${RX_KOTLIN}"
// implementation "io.reactivex.rxjava2:rxandroid:${RX_ANDROID}"
implementation "com.github.pwittchen:reactivenetwork-rx2:${RX_NETWORK}"
}

View File

@ -17,7 +17,7 @@
package com.pitchedapps.frost.dbflow
import android.os.Parcelable
import com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork
import com.pitchedapps.frost.dbflow.CookieModel_Table.cookie
import com.pitchedapps.frost.facebook.FbItem
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.frostJsoup
@ -34,11 +34,10 @@ import com.raizlabs.android.dbflow.kotlinextensions.save
import com.raizlabs.android.dbflow.kotlinextensions.select
import com.raizlabs.android.dbflow.kotlinextensions.where
import com.raizlabs.android.dbflow.structure.BaseModel
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import kotlinx.android.parcel.Parcelize
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlinx.coroutines.withTimeoutOrNull
import java.net.UnknownHostException
/**
@ -98,25 +97,20 @@ fun removeCookie(id: Long) {
}
}
inline fun CookieModel.fetchUsername(crossinline callback: (String) -> Unit): Disposable =
ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()).subscribe { yes, _ ->
if (!yes) return@subscribe callback("")
var result = ""
suspend fun CookieModel.fetchUsername(): String? = withContext(Dispatchers.IO) {
withTimeoutOrNull(5000) {
var result: String? = null
try {
result = frostJsoup(cookie, FbItem.PROFILE.url).title()
L.d { "Fetch username found" }
} catch (e: Exception) {
if (e !is UnknownHostException)
e.logFrostEvent("Fetch username failed")
} finally {
if (result.isBlank() && (name?.isNotBlank() == true)) {
callback(name!!)
return@subscribe
}
if (name != result) {
name = result
saveFbCookie(this@fetchUsername)
}
callback(result)
}
if (name?.isNotBlank() == false && result != null && result != name) {
name = result
saveFbCookie(this@fetchUsername)
}
result
}
}

View File

@ -84,7 +84,7 @@ class FbRequestTest {
val data = AUTH.getMenuData().invoke()
assertNotNull(data)
println(ObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(data))
assertTrue(data!!.data.isNotEmpty())
assertTrue(data.data.isNotEmpty())
assertTrue(data.footer.hasContent, "Footer may be badly parsed")
val items = data.flatMapValid()
assertTrue(items.size > 15, "Something may be badly parsed")

View File

@ -22,13 +22,10 @@ import com.pitchedapps.frost.facebook.get
import com.pitchedapps.frost.facebook.requests.RequestAuth
import com.pitchedapps.frost.facebook.requests.getAuth
import com.pitchedapps.frost.utils.frostJsoup
import io.reactivex.Completable
import org.junit.Assume
import org.junit.Test
import java.io.File
import java.io.FileInputStream
import java.util.Properties
import java.util.concurrent.TimeUnit
import kotlin.reflect.full.starProjectedType
import kotlin.test.assertEquals
import kotlin.test.assertTrue
@ -97,34 +94,3 @@ fun Any.assertComponentsNotEmpty() {
fun <T : Comparable<T>> List<T>.assertDescending(tag: String) {
assertEquals(sortedDescending(), this, "$tag not sorted in descending order")
}
interface CompletableCallback {
fun onComplete()
fun onError(message: String)
}
inline fun concurrentTest(crossinline caller: (callback: CompletableCallback) -> Unit) {
val result = Completable.create { emitter ->
caller(object : CompletableCallback {
override fun onComplete() = emitter.onComplete()
override fun onError(message: String) = emitter.onError(Throwable(message))
})
}.blockingGet(5, TimeUnit.SECONDS)
if (result != null)
throw RuntimeException("Concurrent fail: ${result.message}")
}
class InternalTest {
@Test
fun concurrentTest() = try {
concurrentTest { result ->
Thread().run {
Thread.sleep(100)
result.onError("Intentional fail")
}
}
fail("Did not throw exception")
} catch (e: Exception) {
// pass
}
}

View File

@ -14,7 +14,7 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryErro
APP_ID=Frost
APP_GROUP=com.pitchedapps
KAU=af43e82
KAU=72d6461
KOTLIN=1.3.11
# https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google
@ -28,7 +28,7 @@ BUGSNAG=4.9.3
# https://github.com/bugsnag/bugsnag-android-gradle-plugin/releases
BUGSNAG_PLUGIN=3.6.0
# https://github.com/KeepSafe/dexcount-gradle-plugin/releases
DEX_PLUGIN=0.8.4
DEX_PLUGIN=0.8.5
# https://github.com/gladed/gradle-android-git-version/releases
GIT_PLUGIN=0.4.7
# https://mvnrepository.com/artifact/org.apache.commons/commons-text
@ -59,8 +59,6 @@ OKHTTP=3.12.1
ROBOELECTRIC=4.1
# https://github.com/ReactiveX/RxAndroid/releases
RX_ANDROID=2.1.0
# https://github.com/JakeWharton/RxBinding/releases
RX_BINDING=2.2.0
# https://github.com/ReactiveX/RxJava/releases
RX_JAVA=2.2.4
# https://github.com/ReactiveX/RxKotlin/releases