aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/AboutActivity.kt5
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt39
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt8
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewSearch.kt11
4 files changed, 45 insertions, 18 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/AboutActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/AboutActivity.kt
index cb95a855..552339ba 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/AboutActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/AboutActivity.kt
@@ -31,7 +31,8 @@ class AboutActivity : AboutActivityBase(R.string::class.java, configBuilder = {
val exclude = arrayOf(
"GoogleMaterialDesignIcons",
"intellijannotations",
-// "MaterialDesignIconicIcons",
+ "MaterialDesignIconicIcons",
+ "MaterialDesignIcons",
"materialize",
"appcompat_v7",
"design",
@@ -39,7 +40,7 @@ class AboutActivity : AboutActivityBase(R.string::class.java, configBuilder = {
"support_v4"
)
val l = libs.prepareLibraries(this, null, exclude, true, true)
- l.forEach { KL.d("Lib ${it.definedName}") }
+// l.forEach { KL.d("Lib ${it.definedName}") }
return l
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
index 5fceec19..02191730 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/MainActivity.kt
@@ -14,6 +14,7 @@ import android.support.v7.widget.Toolbar
import android.view.Menu
import android.view.MenuItem
import ca.allanwang.kau.changelog.showChangelog
+import ca.allanwang.kau.logging.KL
import ca.allanwang.kau.searchview.SearchItem
import ca.allanwang.kau.searchview.SearchView
import ca.allanwang.kau.searchview.bindSearchView
@@ -83,6 +84,7 @@ class MainActivity : BaseActivity(), FrostWebViewSearch.SearchContract {
const val REQUEST_RESTART = 90909
const val REQUEST_REFRESH = 80808
const val REQUEST_NAV = 10101
+ const val REQUEST_SEARCH = 70707
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -303,8 +305,10 @@ class MainActivity : BaseActivity(), FrostWebViewSearch.SearchContract {
* Something happened where the normal search function won't work
* Fallback to overlay style
*/
- override fun searchOverlayError() {
+ override fun searchOverlayDispose() {
+ hiddenSearchView?.dispose()
hiddenSearchView = null
+ searchView = null
//todo remove true searchview and add contract
}
@@ -320,21 +324,29 @@ class MainActivity : BaseActivity(), FrostWebViewSearch.SearchContract {
menuInflater.inflate(R.menu.menu_main, menu)
toolbar.tint(Prefs.iconColor)
setMenuIcons(menu, Prefs.iconColor,
- R.id.action_settings to GoogleMaterial.Icon.gmd_settings)
- searchView = bindSearchView(menu, R.id.action_search) {
- textObserver = {
- observable, _ ->
- observable.observeOn(AndroidSchedulers.mainThread()).subscribe {
- L.d("Input $it")
- hiddenSearchView?.query(it)
+ R.id.action_settings to GoogleMaterial.Icon.gmd_settings,
+ R.id.action_search to GoogleMaterial.Icon.gmd_search)
+ if (Prefs.searchBar) {
+ if (firstLoadFinished && hiddenSearchView == null) hiddenSearchView = FrostWebViewSearch(this, this)
+ if (searchView == null) searchView = bindSearchView(menu, R.id.action_search, Prefs.iconColor) {
+ textObserver = {
+ observable, _ ->
+ observable.observeOn(AndroidSchedulers.mainThread()).subscribe {
+ L.d("Input $it")
+ hiddenSearchView?.query(it)
+ }
}
+ foregroundColor = Prefs.textColor
+ backgroundColor = Prefs.bgColor
+ openListener = { hiddenSearchView?.pauseLoad = false }
+ closeListener = { hiddenSearchView?.pauseLoad = true }
+ onItemClick = { _, key, _, _ -> launchWebOverlay(key) }
}
- foregroundColor = Prefs.textColor
- backgroundColor = Prefs.bgColor
- openListener = { hiddenSearchView?.pauseLoad = false }
- closeListener = { hiddenSearchView?.pauseLoad = true }
- onItemClick = { _, key, _, _ -> launchWebOverlay(key) }
+ } else {
+ searchOverlayDispose()
+ menu.findItem(R.id.action_search).setOnMenuItemClickListener { _ -> launchWebOverlay(FbTab.SEARCH.url); true }
}
+ KL.e("SearchView ${searchView == null} HID ${hiddenSearchView == null}")
return true
}
@@ -357,6 +369,7 @@ class MainActivity : BaseActivity(), FrostWebViewSearch.SearchContract {
REQUEST_RESTART -> restart()
REQUEST_REFRESH -> webFragmentObservable.onNext(FRAGMENT_REFRESH)
REQUEST_NAV -> frostNavigationBar()
+ REQUEST_SEARCH -> invalidateOptionsMenu()
}
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
index 2184a111..679eef36 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
@@ -1,6 +1,7 @@
package com.pitchedapps.frost.settings
import ca.allanwang.kau.kpref.KPrefAdapterBuilder
+import com.pitchedapps.frost.MainActivity
import com.pitchedapps.frost.R
import com.pitchedapps.frost.SettingsActivity
import com.pitchedapps.frost.utils.Prefs
@@ -9,7 +10,12 @@ import com.pitchedapps.frost.utils.Prefs
* Created by Allan Wang on 2017-06-29.
*/
fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = {
- checkbox(R.string.search, { Prefs.searchBar }, { Prefs.searchBar = it }) {
+
+ plainText(R.string.experimental_disclaimer) {
+ descRes = R.string.experimental_disclaimer_info
+ }
+
+ checkbox(R.string.search, { Prefs.searchBar }, { Prefs.searchBar = it; setResult(MainActivity.REQUEST_SEARCH) }) {
descRes = R.string.search_desc
}
} \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewSearch.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewSearch.kt
index 71bb51ef..f83fd63b 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewSearch.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewSearch.kt
@@ -132,14 +132,21 @@ class FrostWebViewSearch(context: Context, val contract: SearchContract) : WebVi
1 -> { //something is not found in the search view; this is effectively useless
L.d("Search subject error; reverting to full overlay")
searchSubject.onComplete()
- contract.searchOverlayError()
+ contract.searchOverlayDispose()
}
}
}
}
+ /**
+ * Clear up some components
+ */
+ fun dispose() {
+ searchSubject.onComplete()
+ }
+
interface SearchContract {
- fun searchOverlayError()
+ fun searchOverlayDispose()
fun emitSearchResponse(items: List<SearchItem>)
}
}