aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/activities
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt43
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt19
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt5
4 files changed, 55 insertions, 14 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
index 77a20d04..c7ca5ec7 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
@@ -2,10 +2,16 @@ package com.pitchedapps.frost.activities
import android.os.Bundle
import ca.allanwang.kau.internal.KauBaseActivity
+import com.github.pwittchen.reactivenetwork.library.rx2.Connectivity
+import com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork
import com.pitchedapps.frost.R
+import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.materialDialogThemed
import com.pitchedapps.frost.utils.setFrostTheme
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.disposables.Disposable
+import io.reactivex.schedulers.Schedulers
/**
* Created by Allan Wang on 2017-06-12.
@@ -29,4 +35,41 @@ abstract class BaseActivity : KauBaseActivity() {
setFrostTheme()
}
+ private var networkDisposable: Disposable? = null
+ private var networkConsumer: ((Connectivity) -> Unit)? = null
+
+ fun setNetworkObserver(consumer: (connectivity: Connectivity) -> Unit) {
+ this.networkConsumer = consumer
+ }
+
+ fun observeNetworkConnectivity() {
+ val consumer = networkConsumer ?: return
+ networkDisposable = ReactiveNetwork.observeNetworkConnectivity(applicationContext)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe {
+ connectivity: Connectivity ->
+ connectivity.apply {
+ L.d("Network connectivity changed: isAvailable: $isAvailable isRoaming: $isRoaming")
+ consumer(connectivity)
+ }
+ }
+ }
+
+ fun disposeNetworkConnectivity() {
+ if (!(networkDisposable?.isDisposed ?: true))
+ networkDisposable?.dispose()
+ networkDisposable = null
+ }
+
+ override fun onResume() {
+ super.onResume()
+ disposeNetworkConnectivity()
+ observeNetworkConnectivity()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ disposeNetworkConnectivity()
+ }
} \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
index 47c286fa..eb991599 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
@@ -79,7 +79,7 @@ class LoginActivity : BaseActivity() {
refresh = false
if (!foundImage) {
L.eThrow("Could not get profile photo; Invalid userId?")
- L.i("-\t$cookie")
+ L.i(null, cookie.toString())
}
textview.text = String.format(getString(R.string.welcome), name)
textview.fadeIn()
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
index 58c7b121..af7db2f0 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
@@ -60,6 +60,7 @@ import com.pitchedapps.frost.utils.iab.IS_FROST_PRO
import com.pitchedapps.frost.views.BadgedIcon
import com.pitchedapps.frost.views.FrostViewPager
import com.pitchedapps.frost.web.SearchWebView
+import com.pitchedapps.frost.web.shouldLoadImages
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
@@ -160,14 +161,10 @@ class MainActivity : BaseActivity(), SearchWebView.SearchContract,
// }
setFrostColors(toolbar, themeWindow = false, headers = arrayOf(tabs, appBar), backgrounds = arrayOf(viewPager))
onCreateBilling()
- if (Prefs.installDate < 1501454310304 && Showcase.intro)
- materialDialogThemed {
- title(R.string.intro_title)
- content(R.string.intro_desc)
- positiveText(R.string.kau_yes)
- negativeText(R.string.kau_no)
- onPositive { _, _ -> launchIntroActivity(cookies()) }
- }
+ setNetworkObserver {
+ connectivity ->
+ shouldLoadImages = !connectivity.isRoaming
+ }
}
fun tabsForEachView(action: (position: Int, view: BadgedIcon) -> Unit) {
@@ -370,11 +367,7 @@ class MainActivity : BaseActivity(), SearchWebView.SearchContract,
if (Prefs.searchBar) {
if (firstLoadFinished && hiddenSearchView == null) hiddenSearchView = SearchWebView(this, this)
if (searchView == null) searchView = bindSearchView(menu, R.id.action_search, Prefs.iconColor) {
- textCallback = {
- query, _ ->
- hiddenSearchView?.query(query)
- }
- textDebounceInterval = 200L
+ textCallback = { query, _ -> runOnUiThread { hiddenSearchView?.query(query) } }
foregroundColor = Prefs.textColor
backgroundColor = Prefs.bgColor.withMinAlpha(200)
openListener = { hiddenSearchView?.pauseLoad = false }
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
index 200c5fa4..3fd3e3b5 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/SettingsActivity.kt
@@ -67,6 +67,11 @@ class SettingsActivity : KPrefActivity(), FrostBilling by IABSettings() {
iicon = GoogleMaterial.Icon.gmd_notifications
}
+ subItems(R.string.network, getNetworkPrefs()) {
+ descRes = R.string.network_desc
+ iicon = GoogleMaterial.Icon.gmd_network_cell
+ }
+
subItems(R.string.experimental, getExperimentalPrefs()) {
descRes = R.string.experimental_desc
iicon = CommunityMaterial.Icon.cmd_flask_outline