implemented some ads for promotion reward

This commit is contained in:
Mariotaku Lee 2017-09-18 13:55:41 +08:00
parent 702e3f3cbe
commit d6a8df7b83
No known key found for this signature in database
GPG Key ID: 15C10F89D7C33535
5 changed files with 43 additions and 15 deletions

View File

@ -340,18 +340,10 @@ class MediaViewerActivity : BaseActivity(), IMediaViewerActivity, MediaSwipeClos
args.putBoolean(VideoPageFragment.EXTRA_LOOP, true)
args.putBoolean(VideoPageFragment.EXTRA_DISABLE_CONTROL, true)
args.putBoolean(VideoPageFragment.EXTRA_DEFAULT_MUTE, true)
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
return Fragment.instantiate(this, VideoPageFragment::class.java.name, args) as MediaViewerFragment
} else {
return Fragment.instantiate(this, ExoPlayerPageFragment::class.java.name, args) as MediaViewerFragment
}
return instantiateMediaViewerFragment(args)
}
ParcelableMedia.Type.VIDEO -> {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
return Fragment.instantiate(this, VideoPageFragment::class.java.name, args) as MediaViewerFragment
} else {
return Fragment.instantiate(this, ExoPlayerPageFragment::class.java.name, args) as MediaViewerFragment
}
return instantiateMediaViewerFragment(args)
}
ParcelableMedia.Type.EXTERNAL_PLAYER -> {
return Fragment.instantiate(this, ExternalBrowserPageFragment::class.java.name, args) as MediaViewerFragment
@ -420,6 +412,14 @@ class MediaViewerActivity : BaseActivity(), IMediaViewerActivity, MediaSwipeClos
return result
}
private fun instantiateMediaViewerFragment(args: Bundle): MediaViewerFragment {
return if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
Fragment.instantiate(this, VideoPageFragment::class.java.name, args) as MediaViewerFragment
} else {
Fragment.instantiate(this, ExoPlayerPageFragment::class.java.name, args) as MediaViewerFragment
}
}
private fun processShareIntent(intent: Intent) {
val status = status ?: return
intent.putExtra(Intent.EXTRA_SUBJECT, IntentUtils.getStatusShareSubject(this, status))

View File

@ -50,17 +50,24 @@ import org.mariotaku.twidere.activity.MediaViewerActivity
import org.mariotaku.twidere.activity.iface.IControlBarActivity
import org.mariotaku.twidere.constant.IntentConstants.EXTRA_POSITION
import org.mariotaku.twidere.extension.model.getBestVideoUrlAndType
import org.mariotaku.twidere.extension.setVisible
import org.mariotaku.twidere.fragment.iface.IBaseFragment
import org.mariotaku.twidere.model.ParcelableMedia
import org.mariotaku.twidere.model.UserKey
import org.mariotaku.twidere.util.dagger.GeneralComponent
import org.mariotaku.twidere.util.media.MediaExtra
import org.mariotaku.twidere.util.promotion.PromotionService
import java.util.*
import java.util.concurrent.TimeUnit
import javax.inject.Inject
class VideoPageFragment : CacheDownloadMediaViewerFragment(), IBaseFragment<VideoPageFragment>,
MediaPlayer.OnPreparedListener, MediaPlayer.OnErrorListener, MediaPlayer.OnCompletionListener,
View.OnClickListener, IControlBarActivity.ControlBarOffsetListener {
@Inject
lateinit var promotionService: PromotionService
private var mediaPlayer: MediaPlayer? = null
private var mediaPlayerError: Int = 0
@ -134,6 +141,8 @@ class VideoPageFragment : CacheDownloadMediaViewerFragment(), IBaseFragment<Vide
startLoading(false)
setMediaViewVisible(false)
updateVolume()
promotionService.loadBanner(adContainer)
}
override fun onPause() {
@ -142,8 +151,9 @@ class VideoPageFragment : CacheDownloadMediaViewerFragment(), IBaseFragment<Vide
super.onPause()
}
override fun onAttach(context: Context?) {
override fun onAttach(context: Context) {
super.onAttach(context)
GeneralComponent.get(context).inject(this)
if (context is IControlBarActivity) {
context.registerControlBarOffsetListener(this)
}
@ -169,6 +179,11 @@ class VideoPageFragment : CacheDownloadMediaViewerFragment(), IBaseFragment<Vide
requestApplyInsets()
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
promotionService.setupBanner(adContainer, PromotionService.BannerType.MEDIA_PAUSE)
}
override fun getDownloadExtra(): Any? {
val extra = MediaExtra()
extra.isUseThumbor = false
@ -308,6 +323,7 @@ class VideoPageFragment : CacheDownloadMediaViewerFragment(), IBaseFragment<Vide
val playing = videoView.isPlaying
playPauseButton.contentDescription = getString(if (playing) R.string.pause else R.string.play)
playPauseButton.setImageResource(if (playing) R.drawable.ic_action_pause else R.drawable.ic_action_play_arrow)
adContainer.setVisible(!playing)
}
private fun pauseVideo(): Boolean {

View File

@ -31,6 +31,7 @@ import org.mariotaku.twidere.fragment.BasePreferenceFragment
import org.mariotaku.twidere.fragment.ThemedPreferenceDialogFragmentCompat
import org.mariotaku.twidere.fragment.filter.FilteredUsersFragment
import org.mariotaku.twidere.fragment.media.ExoPlayerPageFragment
import org.mariotaku.twidere.fragment.media.VideoPageFragment
import org.mariotaku.twidere.loader.CacheUserSearchLoader
import org.mariotaku.twidere.loader.DefaultAPIConfigLoader
import org.mariotaku.twidere.loader.ParcelableStatusLoader
@ -149,7 +150,10 @@ interface GeneralComponent {
fun inject(activity: MainActivity)
fun inject(fragment: VideoPageFragment)
companion object {
private var instance: GeneralComponent? = null
fun get(context: Context): GeneralComponent {

View File

@ -37,6 +37,7 @@
android:id="@+id/adContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
android:layout_gravity="center"
android:visibility="gone"/>
</FrameLayout>

View File

@ -29,16 +29,23 @@
android:id="@+id/videoContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true">
android:layout_centerInParent="true"
android:background="@android:color/black">
<com.sprylab.android.widget.TextureVideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@android:color/black"/>
android:layout_gravity="center"/>
</com.commonsware.cwac.layouts.AspectLockedFrameLayout>
<include layout="@layout/layout_media_viewer_video_overlay"/>
<FrameLayout
android:id="@+id/adContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"/>
</RelativeLayout>