diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities')
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 |