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.kt33
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt50
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/VideoActivity.kt33
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt20
4 files changed, 50 insertions, 86 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 ddb42d72..ab08981f 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
@@ -1,10 +1,12 @@
package com.pitchedapps.frost.activities
+import android.content.res.Configuration
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.contracts.VideoViewerContract
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.materialDialogThemed
@@ -18,7 +20,10 @@ import io.reactivex.schedulers.Schedulers
*/
abstract class BaseActivity : KauBaseActivity() {
override fun onBackPressed() {
- if (isTaskRoot && Prefs.exitConfirmation) {
+ if (this is MainActivity && searchView?.onBackPressed() == true) return
+ if (this is VideoViewerContract && videoOnBackPress()) return
+ if (this is MainActivity && currentFragment.onBackPressed()) return
+ if (this !is WebOverlayActivityBase && isTaskRoot && Prefs.exitConfirmation) {
materialDialogThemed {
title(R.string.kau_exit)
content(R.string.kau_exit_confirmation)
@@ -27,12 +32,14 @@ abstract class BaseActivity : KauBaseActivity() {
onPositive { _, _ -> super.onBackPressed() }
checkBoxPromptRes(R.string.kau_do_not_show_again, false, { _, b -> Prefs.exitConfirmation = !b })
}
- } else super.onBackPressed()
+ return
+ }
+ super.onBackPressed()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setFrostTheme()
+ if (this !is WebOverlayActivityBase) setFrostTheme()
}
private var networkDisposable: Disposable? = null
@@ -47,8 +54,7 @@ abstract class BaseActivity : KauBaseActivity() {
networkDisposable = ReactiveNetwork.observeNetworkConnectivity(applicationContext)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
- .subscribe {
- connectivity: Connectivity ->
+ .subscribe { connectivity: Connectivity ->
connectivity.apply {
L.d("Network connectivity changed: isAvailable: $isAvailable isRoaming: $isRoaming")
consumer(connectivity)
@@ -64,12 +70,23 @@ abstract class BaseActivity : KauBaseActivity() {
override fun onResume() {
super.onResume()
- disposeNetworkConnectivity()
- observeNetworkConnectivity()
+// disposeNetworkConnectivity()
+// observeNetworkConnectivity()
}
override fun onPause() {
super.onPause()
- disposeNetworkConnectivity()
+// disposeNetworkConnectivity()
+ }
+
+
+ override fun onStop() {
+ if (this is VideoViewerContract) videoOnStop()
+ super.onStop()
+ }
+
+ override fun onConfigurationChanged(newConfig: Configuration) {
+ super.onConfigurationChanged(newConfig)
+ if (this is VideoViewerContract) videoViewer?.updateLocation()
}
} \ No newline at end of file
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 2f4bd2e1..d4c30547 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
@@ -5,7 +5,6 @@ import android.app.AlarmManager
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
-import android.content.res.Configuration
import android.graphics.PointF
import android.graphics.drawable.ColorDrawable
import android.net.Uri
@@ -48,6 +47,7 @@ import com.pitchedapps.frost.R
import com.pitchedapps.frost.contracts.ActivityWebContract
import com.pitchedapps.frost.contracts.FileChooserContract
import com.pitchedapps.frost.contracts.FileChooserDelegate
+import com.pitchedapps.frost.contracts.VideoViewerContract
import com.pitchedapps.frost.dbflow.loadFbCookie
import com.pitchedapps.frost.dbflow.loadFbTabs
import com.pitchedapps.frost.enums.MainActivityLayout
@@ -63,7 +63,6 @@ import com.pitchedapps.frost.utils.iab.FrostBilling
import com.pitchedapps.frost.utils.iab.IS_FROST_PRO
import com.pitchedapps.frost.utils.iab.IabMain
import com.pitchedapps.frost.views.BadgedIcon
-import com.pitchedapps.frost.views.FrostVideoContainerContract
import com.pitchedapps.frost.views.FrostVideoViewer
import com.pitchedapps.frost.views.FrostViewPager
import io.reactivex.android.schedulers.AndroidSchedulers
@@ -77,18 +76,18 @@ import java.util.concurrent.TimeUnit
class MainActivity : BaseActivity(),
ActivityWebContract, FileChooserContract by FileChooserDelegate(),
- FrostVideoContainerContract,
+ VideoViewerContract,
FrostBilling by IabMain() {
lateinit var adapter: SectionsPagerAdapter
- val frameWrapper: FrameLayout by bindView(R.id.frame_wrapper)
+ override val frameWrapper: FrameLayout by bindView(R.id.frame_wrapper)
val toolbar: Toolbar by bindView(R.id.toolbar)
val viewPager: FrostViewPager by bindView(R.id.container)
val fab: FloatingActionButton by bindView(R.id.fab)
val tabs: TabLayout by bindView(R.id.tabs)
val appBar: AppBarLayout by bindView(R.id.appbar)
val coordinator: CoordinatorLayout by bindView(R.id.main_content)
- var videoViewer: FrostVideoViewer? = null
+ override var videoViewer: FrostVideoViewer? = null
lateinit var drawer: Drawer
lateinit var drawerHeader: AccountHeader
var webFragmentObservable = PublishSubject.create<Int>()!!
@@ -130,8 +129,7 @@ class MainActivity : BaseActivity(),
"Frost id" to Prefs.frostId)
}
}
- setContentView(R.layout.activity_frame_wrapper)
- frameWrapper.inflate(Prefs.mainActivityLayout.layoutRes, true)
+ setFrameContentView(Prefs.mainActivityLayout.layoutRes)
setSupportActionBar(toolbar)
adapter = SectionsPagerAdapter(supportFragmentManager, loadFbTabs())
viewPager.adapter = adapter
@@ -147,7 +145,7 @@ class MainActivity : BaseActivity(),
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
super.onPageScrolled(position, positionOffset, positionOffsetPixels)
- val delta: Float by lazy { positionOffset * (255 - 128).toFloat() }
+ val delta = positionOffset * (255 - 128).toFloat()
tabsForEachView { tabPosition, view ->
view.setAllAlpha(when (tabPosition) {
position -> 255.0f - delta
@@ -169,14 +167,6 @@ class MainActivity : BaseActivity(),
onCreateBilling()
}
- fun showVideo(url: String) {
- if (videoViewer != null) {
- videoViewer?.setVideo(url)
- } else {
- videoViewer = FrostVideoViewer.showVideo(url, this)
- }
- }
-
fun tabsForEachView(action: (position: Int, view: BadgedIcon) -> Unit) {
(0 until tabs.tabCount).asSequence().forEach { i ->
action(i, tabs.getTabAt(i)!!.customView as BadgedIcon)
@@ -312,7 +302,7 @@ class MainActivity : BaseActivity(),
}
}
- fun Builder.primaryFrostItem(item: FbItem) = this.primaryItem(item.titleId) {
+ private fun Builder.primaryFrostItem(item: FbItem) = this.primaryItem(item.titleId) {
iicon = item.icon
iconColor = Prefs.textColor.toLong()
textColor = Prefs.textColor.toLong()
@@ -331,7 +321,7 @@ class MainActivity : BaseActivity(),
}
}
- fun Builder.secondaryFrostItem(@StringRes title: Int, onClick: () -> Unit) = this.secondaryItem(title) {
+ private fun Builder.secondaryFrostItem(@StringRes title: Int, onClick: () -> Unit) = this.secondaryItem(title) {
textColor = Prefs.textColor.toLong()
selectedIconColor = Prefs.textColor.toLong()
selectedTextColor = Prefs.textColor.toLong()
@@ -436,23 +426,11 @@ class MainActivity : BaseActivity(),
super.onStart()
}
- override fun onStop() {
- videoViewer?.pause()
- super.onStop()
- }
-
override fun onDestroy() {
onDestroyBilling()
super.onDestroy()
}
- override fun onBackPressed() {
- if (videoViewer?.onBackPressed() == true) return
- if (searchView?.onBackPressed() == true) return
- if (currentFragment.onBackPressed()) return
- super.onBackPressed()
- }
-
inline val currentFragment
get() = supportFragmentManager.findFragmentByTag("android:switcher:${R.id.container}:${viewPager.currentItem}") as WebFragment
@@ -489,16 +467,4 @@ class MainActivity : BaseActivity(),
else
PointF(0f, 0f)
- override val videoContainer: FrameLayout
- get() = frameWrapper
-
- override fun onVideoFinished() {
- L.d("Video view released")
- videoViewer = null
- }
-
- override fun onConfigurationChanged(newConfig: Configuration) {
- super.onConfigurationChanged(newConfig)
- videoViewer?.updateLocation()
- }
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/VideoActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/VideoActivity.kt
deleted file mode 100644
index 5943c73c..00000000
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/VideoActivity.kt
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.pitchedapps.frost.activities
-
-import android.os.Bundle
-import android.view.ViewGroup
-import ca.allanwang.kau.internal.KauBaseActivity
-import ca.allanwang.kau.utils.bindView
-import com.pitchedapps.frost.R
-import com.pitchedapps.frost.utils.L
-import com.pitchedapps.frost.views.FrostVideoView
-
-/**
- * Created by Allan Wang on 2017-06-01.
- */
-class VideoActivity : KauBaseActivity() {
-
- val container: ViewGroup by bindView(R.id.video_container)
- val video: FrostVideoView by bindView(R.id.video)
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.view_video)
- container.setOnTouchListener { _, event ->
- val y = video.shouldParentAcceptTouch(event)
- L.d("Video SPAT $y")
- y
- }
- }
-
- override fun onStop() {
- video.pause()
- super.onStop()
- }
-} \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
index c2556563..e20cfbf2 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
@@ -1,6 +1,7 @@
package com.pitchedapps.frost.activities
import android.content.Intent
+import android.graphics.PointF
import android.net.Uri
import android.os.Bundle
import android.support.design.widget.CoordinatorLayout
@@ -10,6 +11,7 @@ import android.view.Menu
import android.view.MenuItem
import android.webkit.ValueCallback
import android.webkit.WebChromeClient
+import android.widget.FrameLayout
import ca.allanwang.kau.internal.KauBaseActivity
import ca.allanwang.kau.swipe.kauSwipeOnCreate
import ca.allanwang.kau.swipe.kauSwipeOnDestroy
@@ -20,9 +22,11 @@ import com.pitchedapps.frost.R
import com.pitchedapps.frost.contracts.ActivityWebContract
import com.pitchedapps.frost.contracts.FileChooserContract
import com.pitchedapps.frost.contracts.FileChooserDelegate
+import com.pitchedapps.frost.contracts.VideoViewerContract
import com.pitchedapps.frost.enums.OverlayContext
import com.pitchedapps.frost.facebook.*
import com.pitchedapps.frost.utils.*
+import com.pitchedapps.frost.views.FrostVideoViewer
import com.pitchedapps.frost.web.FrostWebView
import io.reactivex.disposables.Disposable
import okhttp3.HttpUrl
@@ -95,9 +99,10 @@ class WebOverlayBasicActivity : WebOverlayActivityBase(true)
*/
class WebOverlayActivity : WebOverlayActivityBase(false)
-open class WebOverlayActivityBase(private val forceBasicAgent: Boolean) : KauBaseActivity(),
- ActivityWebContract, FileChooserContract by FileChooserDelegate() {
+open class WebOverlayActivityBase(private val forceBasicAgent: Boolean) : BaseActivity(),
+ ActivityWebContract, VideoViewerContract, FileChooserContract by FileChooserDelegate() {
+ override val frameWrapper: FrameLayout by bindView(R.id.frame_wrapper)
val toolbar: Toolbar by bindView(R.id.overlay_toolbar)
val frostWeb: FrostWebView by bindView(R.id.overlay_frost_webview)
val coordinator: CoordinatorLayout by bindView(R.id.overlay_main_content)
@@ -122,7 +127,7 @@ open class WebOverlayActivityBase(private val forceBasicAgent: Boolean) : KauBas
finish()
return
}
- setContentView(R.layout.activity_web_overlay)
+ setFrameContentView(R.layout.activity_web_overlay)
setSupportActionBar(toolbar)
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
@@ -219,4 +224,13 @@ open class WebOverlayActivityBase(private val forceBasicAgent: Boolean) : KauBas
}
return true
}
+
+ /*
+ * ----------------------------------------------------
+ * Video Contract
+ * ----------------------------------------------------
+ */
+ override var videoViewer: FrostVideoViewer? = null
+ override val lowerVideoPadding: PointF = PointF(0f, 0f)
+
} \ No newline at end of file