diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 7903556f64..b6357efc75 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -188,7 +188,7 @@ object DirectUtils { "wechat_bind" -> context.startActivity(WebActivity.getBindWechatIntent(context)) - "video" -> directToVideoDetail(context, + "video","video_stream" -> directToVideoDetail(context, videoId = linkEntity.link!!, fromLocation = VideoDetailContainerViewModel.Location.VIDEO_CHOICENESS.value, entrance = entrance, diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index 51762d5174..9918b4b7fd 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -25,9 +25,6 @@ import android.view.View; import android.view.Window; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.lifecycle.ViewModelProviders; - import com.gh.base.AppUncaughtHandler; import com.gh.base.BaseActivity; import com.gh.base.fragment.BaseFragment_ViewPager; @@ -132,6 +129,8 @@ import java.util.UUID; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import androidx.annotation.NonNull; +import androidx.lifecycle.ViewModelProviders; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import okhttp3.MediaType; @@ -597,7 +596,7 @@ public class MainActivity extends BaseActivity { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { + if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 && !mMainWrapperFragment.onHandleBackPressed()) { DownloadEntity downloadEntity = null; for (DownloadEntity entity : DownloadManager.getInstance(getApplicationContext()).getAll()) { if (entity.getStatus().equals(DownloadStatus.done)) { @@ -631,15 +630,13 @@ public class MainActivity extends BaseActivity { this::finish); return true; } - if (!mMainWrapperFragment.onHandleBackPressed()) { - System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); - mHits[mHits.length - 1] = SystemClock.uptimeMillis(); - if (mHits[0] >= (SystemClock.uptimeMillis() - 1000)) { - finish(); - } else { - toast("再按一次就退出光环助手了哦"); - return true; - } + System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); + mHits[mHits.length - 1] = SystemClock.uptimeMillis(); + if (mHits[0] >= (SystemClock.uptimeMillis() - 1000)) { + finish(); + } else { + toast("再按一次就退出光环助手了哦"); + return true; } } return super.onKeyDown(keyCode, event); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt index 0f31367b92..ad0fe00282 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/video/TopVideoView.kt @@ -202,7 +202,8 @@ class TopVideoView @JvmOverloads constructor(context: Context, attrs: AttributeS }, 100) } - override fun onCompletion() { + + override fun onAutoCompletion() { // 这个方法在内核被释放时也会被回调,所以可以用来统计播放量和播放时长 val playedTime = (gsyVideoManager.currentPosition / 1000).toInt() @@ -221,7 +222,7 @@ class TopVideoView @JvmOverloads constructor(context: Context, attrs: AttributeS } }, 10 * 1000) } - super.onCompletion() + super.onAutoCompletion() } override fun isShowNetConfirm(): Boolean { diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index dec4cb5bc3..6bf264cdeb 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -11,15 +11,6 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.widget.Toolbar; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProviders; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - import com.facebook.drawee.view.SimpleDraweeView; import com.gh.base.fragment.BaseFragment; import com.gh.common.databind.BindingAdapters; @@ -82,6 +73,14 @@ import java.util.ArrayList; import java.util.Locale; import java.util.concurrent.TimeUnit; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import butterknife.BindView; import butterknife.OnClick; import io.reactivex.android.schedulers.AndroidSchedulers; diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt index 77a45653b6..08a76d9a58 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/DetailPlayerView.kt @@ -9,6 +9,7 @@ import android.view.View import android.widget.ImageView import android.widget.SeekBar import androidx.core.content.ContextCompat +import com.gh.common.AppExecutor import com.gh.common.constant.Constants import com.gh.common.runOnIoThread import com.gh.common.util.* @@ -49,6 +50,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib private var byStartedClick = false //第一次进入不显示mBottomContainer private var mContentLength = 0.0 var repeatPlayCount = 0 //重复播放次数 + private var mIsDragSeek = false//是否拖动进度条 override fun init(context: Context) { super.init(context) @@ -154,7 +156,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib DirectUtils.directToHomeActivity(context, videoEntity.user.id ?: "", mEntrance, "视频详情") } - gameNameTv.setOnClickListener { + gameName.setOnClickListener { if (videoEntity.gameActive) { MtaHelper.onEvent("视频详情", "点击游戏名字", mCombinedTitleAndId) uploadVideoStreamingPlaying("点击游戏名字") @@ -298,6 +300,12 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib setViewShowState(mBottomProgressBar, View.VISIBLE) setViewShowState(mBottomContainer, View.GONE) errorContainer.visibility = View.GONE + + AppExecutor.uiExecutor.executeWithDelay(Runnable { + if (mCurrentState == CURRENT_STATE_PREPAREING) { + setViewShowState(mLoadingProgressBar, View.VISIBLE) + } + }, 2000) } override fun changeUiToPlayingShow() { @@ -407,6 +415,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib override fun onStartTrackingTouch(seekBar: SeekBar) { super.onStartTrackingTouch(seekBar) byStartedClick = true + mIsDragSeek = true if (mIfCurrentIsFullscreen) { MtaHelper.onEvent("视频详情", "全屏播放-拖动进度条", "${mVideoEntity!!.title}(${mVideoEntity!!.id})") } @@ -414,22 +423,24 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib } override fun onStopTrackingTouch(seekBar: SeekBar) { - super.onStopTrackingTouch(seekBar) - if (currentPositionWhenPlaying == 0) { - when (mCurrentState) { - CURRENT_STATE_PLAYING, CURRENT_STATE_PREPAREING, CURRENT_STATE_PLAYING_BUFFERING_START -> { - uploadVideoStreamingPlaying("开始播放-拖回0秒") - } - GSYVideoView.CURRENT_STATE_PAUSE -> { - uploadVideoStreamingPlaying("暂停-拖回0秒") + AppExecutor.uiExecutor.executeWithDelay(Runnable{ + super.onStopTrackingTouch(seekBar) + if (currentPositionWhenPlaying == 0) { + when (mCurrentState) { + CURRENT_STATE_PLAYING, CURRENT_STATE_PREPAREING, CURRENT_STATE_PLAYING_BUFFERING_START -> { + uploadVideoStreamingPlaying("开始播放-拖回0秒") + } + GSYVideoView.CURRENT_STATE_PAUSE -> { + uploadVideoStreamingPlaying("暂停-拖回0秒") + } } } - } - uploadVideoStreamingPlaying("结束拖动", (currentPositionWhenPlaying / 1000).toString()) - //拖动进度条松开手指后,直接从当前具体的秒数开始播放 - if (mCurrentState == GSYVideoView.CURRENT_STATE_PAUSE) { - onVideoResume() - } + uploadVideoStreamingPlaying("结束拖动", (currentPositionWhenPlaying / 1000).toString()) + //拖动进度条松开手指后,直接从当前具体的秒数开始播放 + if (mCurrentState == GSYVideoView.CURRENT_STATE_PAUSE) { + onVideoResume() + } + },500) } override fun getEnlargeImageRes(): Int { @@ -492,12 +503,15 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib } }, 10 * 1000) } else { - uploadVideoStreamingPlaying("播放完毕") - if (repeatPlayCount > 0) { - uploadVideoStreamingPlaying("重复播放完毕", "${repeatPlayCount}次") + if (!mIsDragSeek) { + uploadVideoStreamingPlaying("播放完毕") + if (repeatPlayCount > 0) { + uploadVideoStreamingPlaying("重复播放完毕", "${repeatPlayCount}次") + } + repeatPlayCount++ + mIsDragSeek = false + //mBottomProgressBar.progress = 100 } - repeatPlayCount++ - //mBottomProgressBar.progress = 100 } } catch (e: Exception) { e.printStackTrace() @@ -531,7 +545,7 @@ class DetailPlayerView @JvmOverloads constructor(context: Context, attrs: Attrib override fun onClick(v: View) { when (v.id) { - R.id.surface_container -> { + R.id.surface_container,R.id.thumb -> { mStartButton.performClick() } R.id.start -> { diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt index 67662ddc1d..19f2b747da 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/VideoDetailContainerFragment.kt @@ -393,6 +393,10 @@ class VideoDetailContainerFragment : BaseLazyFragment(), OnBackPressedListener { return Pair(itemHeight, iposition - itemTop) } +// override fun onResume() { +// DisplayUtils.setLightStatusBar(requireActivity(), false) +// super.onResume() +// } override fun onFragmentResume() { findFirstCompletelyVisibleVideoViewByPosition()?.uploadVideoStreamingPlaying("恢复页面") diff --git a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java index e8bff158ce..bf0b8de1a3 100644 --- a/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/SettingsFragment.java @@ -198,12 +198,12 @@ public class SettingsFragment extends NormalFragment { } } else { DialogUtils.showAlertDialog(getContext(), - "提示", - "关闭后将无法统计游戏时长,确定要关闭吗?", - "确定关闭", - "暂不关闭", - () -> sp.edit().putBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, false).apply(), - () -> mSettingUsageStatsSb.setCheckedNoEvent(true) + "提示", + "关闭后将无法统计游戏时长,确定要关闭吗?", + "确定关闭", + "暂不关闭", + () -> sp.edit().putBoolean(UsageStatsHelper.USAGE_STATUS_SP_KEY, false).apply(), + () -> mSettingUsageStatsSb.setCheckedNoEvent(true) ); } }); @@ -268,9 +268,13 @@ public class SettingsFragment extends NormalFragment { private long getFolderSize(File folder) { long size = 0; + //忽略视频缓存 + if (folder.getName().equals("video-cache")) return size; size += folder.length(); if (folder.isDirectory()) { - for (File file : folder.listFiles()) { + File[] files = folder.listFiles(); + if (files == null || files.length == 0) return size; + for (File file : files) { if (file.isDirectory()) { size += getFolderSize(file); } else { diff --git a/app/src/main/res/drawable-hdpi/personal_card_bg.9.png b/app/src/main/res/drawable-hdpi/personal_card_bg.9.png index df54658ea8..9a2e05dcff 100644 Binary files a/app/src/main/res/drawable-hdpi/personal_card_bg.9.png and b/app/src/main/res/drawable-hdpi/personal_card_bg.9.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_video_detail_liked.png b/app/src/main/res/drawable-xxhdpi/ic_video_detail_liked.png index a9018f92f6..d62785af2e 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_video_detail_liked.png and b/app/src/main/res/drawable-xxhdpi/ic_video_detail_liked.png differ diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index 25fa993acf..9bc7036ce2 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -166,7 +166,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:text="抖音" + android:text="官方抖音" android:textColor="@color/title" android:textSize="17sp" /> diff --git a/app/src/main/res/layout/item_personal_fun_group.xml b/app/src/main/res/layout/item_personal_fun_group.xml index 386cd6eb4a..ee298db164 100644 --- a/app/src/main/res/layout/item_personal_fun_group.xml +++ b/app/src/main/res/layout/item_personal_fun_group.xml @@ -8,7 +8,7 @@ android:paddingLeft="18dp" android:paddingTop="16dp" android:paddingRight="16dp" - android:paddingBottom="22dp"> + android:paddingBottom="28dp">