作者 刘纪龙

Loong:全屏播放 班级任务练习题

... ... @@ -4,7 +4,7 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="testRunner" value="GRADLE" />
<option name="disableWrapperSourceDistributionNotification" value="true" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
... ... @@ -12,7 +12,6 @@
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/Library" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="../../../../../Applications/Android Studio.app/Contents/caches/transforms-2/files-2.1/054febce6621ffe68244bdc38929a80b/jetified-gsyVideoPlayer-java-v8.3.3-release-jitpack/res/drawable/video_seek_progress.xml" value="0.1361111111111111" />
<entry key="../../../Library/Android/sdk/platforms/android-30/data/res/layout/auto_complete_list.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_answer_record_details.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_answer_sheet.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_class_duty.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_database_detail.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_offline_exercise.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_practice.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_splash.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/activity_video_detail.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/adapter_content_practice_item.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/dialog_check_id.xml" value="0.33" />
<entry key="app/src/main/res/layout/fragment_bank.xml" value="0.33" />
<entry key="app/src/main/res/layout/fragment_class_duty_course.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/item_course.xml" value="0.22552083333333334" />
<entry key="app/src/main/res/layout/item_mock_examnation.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/item_special_exercises.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/layout_loading.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/layout_tool_bar.xml" value="0.2671875" />
<entry key="app/src/main/res/layout/layout_video_player.xml" value="0.13645833333333332" />
<entry key="app/src/main/res/layout/pop_classify.xml" value="0.3609375" />
</map>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
... ...
... ... @@ -5,13 +5,13 @@ plugins {
}
android {
compileSdkVersion 30
compileSdkVersion 31
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.br_technology.securitytrain_master"
minSdkVersion 21
targetSdkVersion 30
targetSdkVersion 31
versionCode 1
versionName "1.0"
... ... @@ -20,7 +20,12 @@ android {
multiDexEnabled true
}
aaptOptions {
// // aapt 附加参数
// additionalParameters '--rename-manifest-package', 'com.example.classloader_demo2'
// 是否开启 png 图片优化检查
cruncherEnabled false
}
buildTypes {
release {
minifyEnabled false
... ... @@ -59,7 +64,7 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation project(path: ':Library')
// implementation project(path: ':Library')
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
... ... @@ -111,7 +116,8 @@ dependencies {
implementation 'io.github.youth5201314:banner:2.2.2'
//完整版引入
implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer:v8.1.5-jitpack'
// implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer:v8.1.5-jitpack'
implementation 'com.github.CarGuo.GSYVideoPlayer:GSYVideoPlayer:v8.3.3-release-jitpack'
//是否需要 ExoPlayer 模式
// implementation 'com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-exo_player2:v8.1.5-jitpack'
//更多 ijk 的编码支持
... ...
... ... @@ -166,8 +166,11 @@
<activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.MyCredentialsDetailActivity" />
<activity
android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.OfflineExerciseActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="portrait" />
android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout"
android:supportsPictureInPicture="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.LearningReportActivity" />
<activity android:name="com.br_technology.securitytrain_master.ui.view.mine.activity.LearningReportDetailActivity" />
... ... @@ -184,8 +187,12 @@
<activity android:name="com.br_technology.securitytrain_master.ui.view.login.activity.AccountLoginActivity" />
<activity
android:name=".ui.view.home.activity.course.VideoDetailActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize|uiMode"
android:screenOrientation="portrait" />
android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout"
android:supportsPictureInPicture="true"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan">
</activity>
<activity android:name=".ui.view.bank.activity.QuestionsActivity" />
<activity android:name=".ui.view.bank.activity.PracticeListActivity" />
... ...
... ... @@ -89,7 +89,7 @@ interface TrainApi : ApiService {
@FormUrlEncoded
@POST("/api/train/start_exam")
fun startExam(
@Field("train_exam_id") train_exam_id: Int
@Field("train_exam_id") train_exam_id: String
): Observable<BaseResponse<SubjectData>>
/**
... ...
... ... @@ -78,7 +78,7 @@ class TrainRepository(val loadState: MutableLiveData<State>) : ApiRepository(loa
train_exam_id: String,
liveData: MutableLiveData<BaseResponse<SubjectData>>
) {
addRequest(trainService.startExamExp(train_exam_id), liveData)
addRequest(trainService.startExam(train_exam_id), liveData)
}
fun trainChatList(
... ...
package com.wjx.android.wanandroidmvvm.base.view
package com.br_technology.securitytrain_master.base.view
import android.app.Activity
... ... @@ -18,7 +18,6 @@ import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.base.common.CommonUtil
import com.br_technology.securitytrain_master.base.common.State
import com.br_technology.securitytrain_master.base.common.StateType
import com.br_technology.securitytrain_master.base.view.BaseViewModel
import com.br_technology.securitytrain_master.expand.statusBarHeight
import com.br_technology.securitytrain_master.util.AppManager
import com.br_technology.securitytrain_master.util.RevealUtil.setReveal
... ...
... ... @@ -13,6 +13,7 @@ import com.br_technology.securitytrain_master.ui.view.common.FileReadActivity
import com.br_technology.securitytrain_master.ui.view.home.adapter.PdfAdapter
import com.br_technology.securitytrain_master.ui.view.home.viewmodel.DatabaseDetailViewModel
import com.br_technology.securitytrain_master.view.listener.OnItemClickListener
import com.gyf.immersionbar.ImmersionBar
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
... ... @@ -25,6 +26,8 @@ class DatabaseDetailActivity :
BaseLifeCycleActivity<DatabaseDetailViewModel, ActivityDatabaseDetailBinding>(
ActivityDatabaseDetailBinding::inflate
) {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
... ... @@ -32,6 +35,17 @@ class DatabaseDetailActivity :
back.setOnClickListener {
finish()
}
videoPlayer.apply {
setFullOnClick{
if(!it) {
binding.toolBar.visibility = View.GONE
binding.inTitle.root.visibility = View.GONE
}else{
binding.toolBar.visibility= View.VISIBLE
binding.inTitle.root.visibility= View.VISIBLE
ImmersionBar.with(this@DatabaseDetailActivity).transparentStatusBar().statusBarDarkFont(true).init()
}}
}
videoPlayer.titleTextView.visibility = View.GONE
videoPlayer.backButton.visibility = View.GONE
start.setOnClickListener {
... ... @@ -101,6 +115,6 @@ class DatabaseDetailActivity :
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
//如果旋转了就全屏
binding.videoPlayer.onConfigurationChanged(newConfig, this)
// binding.videoPlayer.onConfigurationChanged(newConfig, this)
}
}
\ No newline at end of file
... ...
... ... @@ -7,6 +7,7 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import com.br_technology.securitytrain_master.R
import com.br_technology.securitytrain_master.base.common.ConstantParamKey
import com.br_technology.securitytrain_master.base.common.StateType
import com.br_technology.securitytrain_master.databinding.ActivityPracticeBinding
import com.br_technology.securitytrain_master.ui.bean.CourseParam
import com.br_technology.securitytrain_master.ui.view.bank.activity.AnswerSheetActivity
... ... @@ -195,6 +196,12 @@ class CoursePractiseActivity :
override fun initDataObserver() {
mViewModel.loadState.observe(this){
if( it.code== StateType.ERROR){
finish()
}
}
mViewModel.exam.observe(this) {
if (it.code == 1) {
userItemId = it.data.user_item_id
... ... @@ -202,6 +209,8 @@ class CoursePractiseActivity :
binding.practicePager.adapter = mPagerAdapter
} else {
ToastUtils.s(baseContext, it.msg)
this@CoursePractiseActivity.finish()
// ToastUtils.s(baseContext, it.msg)
}
// countDown(it.data.over_second)
}
... ...
package com.br_technology.securitytrain_master.ui.view.home.activity.course
import android.content.res.Configuration
import android.text.TextUtils
import android.view.View
import com.br_technology.securitytrain_master.base.common.ConstantParamKey
import com.br_technology.securitytrain_master.databinding.ActivityVideoDetailBinding
import com.br_technology.securitytrain_master.ui.bean.CourseParam
import com.br_technology.securitytrain_master.ui.view.home.event.VideoClassChange
import com.br_technology.securitytrain_master.ui.view.home.viewmodel.VideoDetailViewModel
import com.br_technology.securitytrain_master.view.MyVideoPlayer
import com.gyf.immersionbar.ImmersionBar
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
import org.greenrobot.eventbus.EventBus
... ... @@ -54,6 +57,7 @@ class VideoDetailActivity : BaseLifeCycleActivity<VideoDetailViewModel, Activity
mViewModel.courseParam.value = courseBean
// mViewModel.videoDetail(detailId)
binding.videoPlayer.apply {
setCantTouch(bool)
initVideoBuilderMode(
"it.data.detail.image",
url,
... ... @@ -61,7 +65,15 @@ class VideoDetailActivity : BaseLifeCycleActivity<VideoDetailViewModel, Activity
true,
lifecycle
)
setCantTouch(bool)
setFullOnClick{
if(!it) {
binding.toolBar.visibility = View.GONE
binding.inTitle.root.visibility = View.GONE
}else{
binding.toolBar.visibility= View.VISIBLE
binding.inTitle.root.visibility= View.VISIBLE
ImmersionBar.with(this@VideoDetailActivity).transparentStatusBar().statusBarDarkFont(true).init()
}}
}
}
... ... @@ -80,4 +92,9 @@ class VideoDetailActivity : BaseLifeCycleActivity<VideoDetailViewModel, Activity
}
super.onBackPressed()
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
//如果旋转了就全屏
// binding.videoPlayer.onConfigurationChanged(newConfig, this)
}
}
\ No newline at end of file
... ...
... ... @@ -8,6 +8,7 @@ import com.br_technology.securitytrain_master.databinding.ActivityOfflineExercis
import com.br_technology.securitytrain_master.ui.view.home.fragment.OffLineCourseListFragment
import com.br_technology.securitytrain_master.ui.view.mine.fragment.OfflineDetailFragment
import com.br_technology.securitytrain_master.ui.view.mine.viewmodel.OfflineExerciseViewModel
import com.gyf.immersionbar.ImmersionBar
import com.shuyu.gsyvideoplayer.GSYVideoManager
import com.wjx.android.wanandroidmvvm.base.view.BaseLifeCycleActivity
... ... @@ -28,13 +29,25 @@ class OfflineExerciseActivity :
override fun initData() {
super.initData()
binding.apply {
videoPlayer.initVideoBuilderMode(
"",
"http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4",
this@OfflineExerciseActivity,
false,
lifecycle
)
videoPlayer.apply {
initVideoBuilderMode(
"",
"http://9890.vod.myqcloud.com/9890_4e292f9a3dd011e6b4078980237cc3d3.f20.mp4",
this@OfflineExerciseActivity,
false,
lifecycle
)
setFullOnClick{
if(!it) {
binding.toolBar.visibility = View.GONE
binding.inTitle.root.visibility = View.GONE
}else{
binding.toolBar.visibility= View.VISIBLE
binding.inTitle.root.visibility= View.VISIBLE
ImmersionBar.with(this@OfflineExerciseActivity).transparentStatusBar().statusBarDarkFont(true).init()
}}
}
videoPlayer.titleTextView.visibility = View.GONE
videoPlayer.backButton.visibility = View.GONE
... ... @@ -64,7 +77,7 @@ class OfflineExerciseActivity :
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
//如果旋转了就全屏
binding.videoPlayer.onConfigurationChanged(newConfig, this)
// binding.videoPlayer.onConfigurationChanged(newConfig, this)
}
}
\ No newline at end of file
... ...
... ... @@ -164,15 +164,22 @@ class ClassDutyCourseFragment(val type: Int) :
fun paramBean(data: TrainTestData): CourseParam {
val course = CourseParam()
course.isTrainClass = true
course.mTrainClassId = "${
if (data.isTest) {
data.practice?.id
course.isFinished = data.practice?.is_complete == 1
} else {
data.exam?.id
course.isFinished = data.exam?.is_complete == 1
}
}"
if (data.isTest) {
course.mTrainClassId = data.practice?.id.toString()
course.isFinished = data.practice?.is_complete == 1
} else {
course.mTrainClassId = data.exam?.id.toString()
course.isFinished = data.exam?.is_complete == 1
}
// course.mTrainClassId = "${
// if (data.isTest) {
// data.practice?.id
// course.isFinished = data.practice?.is_complete == 1
// } else {
// data.exam?.id
// course.isFinished = data.exam?.is_complete == 1
// }
// }"
course.type = data.itemType
return course
}
... ... @@ -297,14 +304,19 @@ class ClassDutyCourseFragment(val type: Int) :
}
fun startNext(item: TrainTestData) {
// if(!item.isTest){
// Toast.makeText(activity, "学员未完成培训课程,无法考试", Toast.LENGTH_SHORT).show()
// return
// }
if (item.isTest && item.exam?.count!! <= 0) {
Toast.makeText(activity, "该考试暂无题目", Toast.LENGTH_SHORT).show()
return
}
if (item.isTest && item.practice?.count!! <= 0) {
if (item.isTest && (item.practice?.count!! <= 0)) {
Toast.makeText(activity, "该练习暂无题目", Toast.LENGTH_SHORT).show()
return
}
this@ClassDutyCourseFragment.startActivity(
Intent(
requireActivity(),
... ...
... ... @@ -21,7 +21,7 @@ import java.io.File
* PS: Not easy to write code, please indicate.
*/
class FaceUtil {
companion object{
companion object {
const val FRONT_CAPTURE_CODE = 998
}
... ... @@ -33,7 +33,7 @@ class FaceUtil {
fun capture(file: File)
}
interface ICompress{
interface ICompress {
fun compress(file: File)
}
... ... @@ -96,7 +96,7 @@ class FaceUtil {
iCapture.capture(fileUploadTemp!!)
}
fun compressFile(activity: Activity,file: File,iCompress: ICompress) {
fun compressFile(activity: Activity, file: File, iCompress: ICompress) {
if (compressImageUtil == null) {
val compressConfig: CompressConfig = CompressConfig.builder()
.setUnCompressMinPixel(1000) // 最小像素不压缩,默认值:1000
... ...
... ... @@ -2,9 +2,14 @@ package com.br_technology.securitytrain_master.view
import android.app.Activity
import android.content.Context
import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.os.Build
import android.text.TextUtils
import android.util.AttributeSet
import android.util.TypedValue
import android.view.ViewGroup
import android.view.WindowManager
import android.widget.ImageView
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
... ... @@ -29,8 +34,13 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
private var isPause = false
private var canTouchProgress = false
private var isFull = false
private var orientationUtils: OrientationUtils? = null
//全屏点击事件
private var fullOnClickListener: ((t: Boolean) -> Unit?)? = null
constructor(context: Context) : super(context)
constructor(context: Context, fullFlag: Boolean) : super(context, fullFlag)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
... ... @@ -67,11 +77,19 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
// }
if (this.fullscreenButton != null) {
this.fullscreenButton.setOnClickListener {
showFull()
showFull(activity)
}
}
if (this.mBackButton != null) {
this.mBackButton.setOnClickListener {
if(isFull){
showFull(activity)
}else{
activity.finish()
}
}
}
initPlayer()
mProgressBar.isEnabled = canTouchProgress
}
private fun initPlayer() {
... ... @@ -88,24 +106,101 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
}
}
/**
* 禁止拖动
*/
fun setCantTouch(bool: Boolean) {
canTouchProgress = bool
mProgressBar.isEnabled = canTouchProgress
}
private fun showFull() {
if (orientationUtils!!.isLand != 1) {
//直接横屏
orientationUtils!!.resolveByClick()
}
private fun showFull(activity: Activity) {
//第一个true是否需要隐藏actionbar,第二个true是否需要隐藏statusbar
this.startWindowFullscreen(
context,
true,
true
// this.startWindowFullscreen(
// context,
// true,
// true
// )
fullOnClickListener?.invoke(isFull)
changeWindow(activity)
}
fun setFullOnClick(listener: (t: Boolean) -> Unit) {
fullOnClickListener = listener
}
fun changeWindow(activity: Activity) {
if (!isFull) {
changeToFull(activity)
} else {
changeToPort(activity)
}
isFull = !isFull
}
/**
* 全屏
*/
fun changeToFull(activity: Activity) {
// if (orientationUtils!!.isLand != 1) {
//直接横屏
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE
// orientationUtils!!.resolveByClick()
// }
hideNavigationBar(activity)
hideStatusBar(activity)
val vlp: ViewGroup.LayoutParams = this.layoutParams
vlp.width = ViewGroup.LayoutParams.MATCH_PARENT
vlp.height = ViewGroup.LayoutParams.MATCH_PARENT
}
/**
* 竖屏
*/
fun changeToPort(activity: Activity) {
activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
val vlp: ViewGroup.LayoutParams = this.getLayoutParams()
vlp.width = ViewGroup.LayoutParams.MATCH_PARENT
vlp.height = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
200F,
getResources().getDisplayMetrics()
).toInt()
}
/**
*
*/
fun hideNavigationBar(activity: Activity) {
val uiOptions = activity.window.decorView.systemUiVisibility
activity.window.decorView.systemUiVisibility = uiOptions or SYSTEM_UI_FLAG_HIDE_NAVIGATION
}
/**
* 隐藏状态栏
*/
fun hideStatusBar(activity: Activity) {
activity.window.setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN
)
activity.window.setFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
val decorView = activity.window.decorView
val uiOptions = (SYSTEM_UI_FLAG_FULLSCREEN
or SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or SYSTEM_UI_FLAG_IMMERSIVE
or SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
decorView.systemUiVisibility = uiOptions
}
}
/**
* 选择builder模式
*/
... ... @@ -123,7 +218,7 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
override fun onPrepared(url: String?, vararg objects: Any?) {
super.onPrepared(url, *objects)
//开始播放了才能旋转和全屏
orientationUtils!!.isEnable = true
// orientationUtils!!.isEnable = true
isPlay = true
}
... ... @@ -160,7 +255,7 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
.setUrl(mp4)
.setCacheWithPlay(true)
.setVideoTitle("")
.setIsTouchWiget(true)
.setIsTouchWiget(false)
.setRotateViewAuto(false)
.setLockLand(false)
.setShowFullAnimation(false)//打开动画
... ... @@ -216,17 +311,36 @@ class MyVideoPlayer : StandardGSYVideoPlayer, LifecycleObserver {
}
}
/**
* 全屏
*/
fun onConfigurationChanged(newConfig: Configuration, activity: Activity) {
//如果旋转了就全屏
if (isPlay && !isPause) {
this.onConfigurationChanged(
activity,
newConfig,
orientationUtils,
true,
true
)
}
// val orientation= newConfig.orientation
// if (orientation > 340 || orientation < 20) {
// //0
// changeToPort(activity)
// } else if (orientation in 71..109) {
// //90
// changeToFull(activity)
// } else if (orientation in 161..199) {
// //180
// changeToPort(activity)
// } else if (orientation in 251..289) {
// changeToFull(activity)
//
// //270
// }
// if (isPlay && !isPause) {
// this.onConfigurationChanged(
// activity,
// newConfig,
// orientationUtils,
// true,
// true
// )
// }
// changeWindow(activity)
}
}
... ...
... ... @@ -5,9 +5,12 @@
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<include
android:id="@+id/in_title"
layout="@layout/layout_tool_bar" />
<LinearLayout
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_vertical"
... ...
... ... @@ -5,7 +5,9 @@
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/layout_tool_bar" />
<include
android:id="@+id/in_title"
layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
... ...
... ... @@ -5,11 +5,14 @@
android:orientation="vertical"
android:layout_height="match_parent">
<include layout="@layout/layout_tool_bar" />
<include
android:id="@+id/in_title"
layout="@layout/layout_tool_bar" />
<com.br_technology.securitytrain_master.view.ViewToolBar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_below="@id/title"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:visibility="visible"
... ... @@ -18,7 +21,6 @@
<com.br_technology.securitytrain_master.view.MyVideoPlayer
android:id="@+id/video_player"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@id/tool_bar" />
android:layout_height="200dp" />
</LinearLayout>
\ No newline at end of file
... ...
不能预览此文件类型
include ':app'
rootProject.name = "SecurityTrain-Master"
include ':Library'
//include ':Library'
... ...