Commit 0c598e9b authored by jyx's avatar jyx

更新页面样式

parent 0db7d983
......@@ -235,6 +235,18 @@ dependencies {
// umeng 接入
// 穿山甲聚合 接入【穿山甲、快手】
// 穿山甲
implementation ("com.pangle.cn:pangrowth-sdk:3.7.0.1") {
exclude group: 'com.pangle.cn', module: 'pangrowth-game-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-novel-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-luckycat-sdk'
exclude group: 'com.pangle.cn', module: 'partner-luckycat-api-sdk'
exclude group: 'com.pangle.cn', module: 'pangrowth-reward-sdk'
exclude group: 'com.pangle.cn', module: 'partner-live-sdk'
exclude group: 'com.tencent.mm.opensdk', module: 'wechat-sdk-android'
}
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
......
......@@ -7,6 +7,12 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 穿山甲 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:name=".MintsApplication"
android:allowBackup="false"
......@@ -122,6 +128,10 @@
android:name=".video.VideoActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".video.DramaApiDetailActivity"
android:exported="false"
android:screenOrientation="portrait" />
<service
android:name=".ui.service.UpdateService"
......@@ -140,6 +150,13 @@
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- 短剧SDK -->
<provider
android:name="com.bytedance.sdk.dp.act.DPProvider"
android:authorities="${applicationId}.BDDPProvider"
android:exported="false" />
<!-- 自有下载 -->
<provider
android:name="androidx.core.content.FileProvider"
......
{
"init": {
"site_id": "5175152",
"app_id": "193842",
"partner": "pangle_193842",
"secure_key": "11146c60bf023251701462c31a44a28b"
},
"feed": {
"news_list_ad_code_id": "946175237",
"news_first_ad_code_id": "946175238",
"news_second_ad_code_id": "946175242",
"video_first_ad_code_id": "",
"video_second_ad_code_id": "946175251",
"related_ad_code_id": "946175239",
"news_draw_ad_code_id": "946175243",
"news_draw_native_ad_code_id": "946175244",
"news_interstitial_code_id": "947027583"
},
"small_video": {
"draw_ad_code_id": "946175245",
"draw_native_ad_code_id": "946175248",
"grid_ad_code_id": "946175241",
"grid_draw_ad_code_id": "946175246",
"grid_draw_native_ad_code_id": "946175250",
"video_card_ad_code_id": "946175247",
"video_card_draw_ad_code_id": "946175240",
"video_card_draw_native_ad_code_id": "946175249",
"interstitial_note_ad_code_id": "946506704",
"draw_fullscreen_interstitial_ad_code_id":"947490273",
"draw_interstitial_ad_code_id":"947490116",
"staggered_grid_ad_code_id": "946506705",
"staggered_grid_draw_ad_code_id": "946175245",
"staggered_grid_draw_native_ad_code_id": "946175248",
"draw_banner_code_id": "947490413",
"drama_rewarded_ad_code_id": "951008975",
"drama_rewarded_ad_code_id_02": "951011822",
"drama_draw_ad_code_id": "952225157"
},
"novel": {
"banner_ad_code_id": "946508521",
"exciting_ad_code_id": "946176105",
"interstitial_code_id": "946508522",
"mid_ad_code_id": "946176107",
"pre_ad_code_id": "946176106",
"status": 1
},
"live": {
"live_card_ad_code_id": "946192110",
"live_preview_draw_ad_code_id": "947474066",
"live_preview_draw_native_ad_code_id": "947474068"
}
}
......@@ -18,6 +18,7 @@ import com.lzf.easyfloat.anim.AppFloatDefaultAnimator
import com.lzf.easyfloat.anim.DefaultAnimator
import com.lzf.easyfloat.enums.SidePattern
import com.mints.wisdomclean.R
import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.common.AppConfig
import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.ui.activitys.base.BaseActivity
......@@ -26,6 +27,7 @@ import com.mints.wisdomclean.ui.fragment.MyFragment
import com.mints.wisdomclean.ui.fragment.RecommendFragment
import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.PhoneDialog
import kotlinx.android.synthetic.main.activity_main.*
/**
* 描述:首页
......@@ -79,6 +81,9 @@ class MainActivity : BaseActivity(), View.OnClickListener {
tabIvLoan!!.isSelected = true
}
AdManager.instance.preLoadAd(this)
initEditView()
// initEasyFloat()
}
......@@ -267,4 +272,25 @@ class MainActivity : BaseActivity(), View.OnClickListener {
})
phoneDialog!!.show()
}
private fun initEditView() {
tv_full.setOnClickListener {
recommendFragment?.apply {
(this as RecommendFragment).fullChoice()
}
}
tv_delete.setOnClickListener {
recommendFragment?.apply {
(this as RecommendFragment).delete()
}
}
}
fun showEdit(isEdit: Boolean) {
if (isEdit) {
ll_edit.visibility = View.VISIBLE
} else {
ll_edit.visibility = View.GONE
}
}
}
\ No newline at end of file
package com.mints.wisdomclean.ui.adapter
import android.app.Activity
import android.view.View
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.mints.wisdomclean.R
......@@ -13,7 +14,21 @@ import com.mints.wisdomclean.R
class FollowAdapter(var activity: Activity) :
BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_follow) {
private var showEdit = false
override fun convert(holder: BaseViewHolder, item: String) {
holder.getView<View>(R.id.fm_mask).visibility = if (showEdit) View.VISIBLE else View.GONE
}
// 设置编辑状态
fun setEditStyle(showEdit: Boolean) {
this.showEdit = showEdit
notifyDataSetChanged()
}
// 全选
fun fullChoice() {
}
}
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.mints.wisdomclean.ui.adapter
import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.mints.wisdomclean.ui.fragment.FollowVideoFragment
/**
* @author Assen
......
......@@ -50,4 +50,8 @@ class FollowVideoFragment : BaseFragment() {
rv_follow.adapter = followAdapter
}
fun getAdapter(): FollowAdapter {
return followAdapter
}
}
\ No newline at end of file
package com.mints.wisdomclean.ui.fragment
import android.app.Dialog
import android.content.Intent
import android.os.Bundle
import android.text.TextUtils
import android.util.Log
import android.view.View
import android.widget.Toast
import androidx.core.content.ContextCompat
import com.bytedance.sdk.dp.DPDrama
import com.bytedance.sdk.dp.DPDramaDetailConfig
import com.bytedance.sdk.dp.DPSdk
import com.bytedance.sdk.dp.IDPWidgetFactory
import com.daimajia.androidanimations.library.YoYo
import com.mints.wisdomclean.R
import com.mints.wisdomclean.common.AppConfig
......@@ -17,10 +24,23 @@ import com.mints.wisdomclean.ui.activitys.*
import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import com.mints.wisdomclean.utils.TimeRender
import com.mints.library.utils.nodoubleclick.AntiShake
import com.mints.wisdomclean.ad.AdManager
import com.mints.wisdomclean.ad.AdStatusListener
import com.mints.wisdomclean.ui.widgets.DialogListener
import com.mints.wisdomclean.ui.widgets.DialogUtils
import com.mints.wisdomclean.utils.LogUtil
import com.mints.wisdomclean.utils.SpanUtils
import com.mints.wisdomclean.utils.UcropUtils
import com.mints.wisdomclean.video.DPHolderManager
import com.mints.wisdomclean.video.DramaApiDetailActivity
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_CURRENT_DURATION
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_CUSTOM_REPORT_ENABLED
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_FREE_SET
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_HIDE_LEFT_TOP_TIPS
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_INFINITE_SCROLL_ENABLED
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_LOCK_SET
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_MODE
import com.mints.wisdomclean.video.DramaApiDetailActivity.Companion.KEY_DRAMA_UNLOCK_INDEX
import kotlinx.android.synthetic.main.fragment_main_my.*
/**
......@@ -49,6 +69,8 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener {
.create()
initListener()
DPHolderManager.initDpSdk(requireContext())
}
override fun onHiddenChanged(hidden: Boolean) {
......@@ -90,12 +112,67 @@ class MyFragment : BaseFragment(), MyView, View.OnClickListener {
override fun onClick(v: View?) {
when (v?.id) {
R.id.ll_my_vip, R.id.fl_my_vip, R.id.iv_my_hint -> {
if (!userManager.vipFlag) {
readyGo(VipActivity::class.java)
// if (!userManager.vipFlag) {
// readyGo(VipActivity::class.java)
// }
AdManager.instance.showAd(requireActivity(), "", object : AdStatusListener {
override fun adSuccess() {
}
override fun adFail() {
}
override fun adClose() {
}
})
}
R.id.iv_my_set -> {
readyGo(SettingsActivity::class.java)
val idList = mutableListOf<Long>()
idList.add(6L)
DPSdk.factory().requestDrama(idList, object : IDPWidgetFactory.DramaCallback {
override fun onError(code: Int, msg: String?) {
showToast("请求失败")
LogUtil.d("request failed, code = $code, msg = $msg")
}
override fun onSuccess(
dataList: MutableList<out DPDrama>?,
info: MutableMap<String, Any>?
) {
showToast("请求成功")
dataList?.takeIf { it.isNotEmpty() }?.first()?.let {
LogUtil.d("request success, $it")
// 短剧集数
it.index = 1
val intent =
Intent(requireActivity(), DramaApiDetailActivity::class.java)
DramaApiDetailActivity.outerDrama = it
// 免费观看集数
intent.putExtra(KEY_DRAMA_UNLOCK_INDEX, 10)
// 封装或者非封装模式
intent.putExtra(KEY_DRAMA_MODE, DPDramaDetailConfig.SPECIFIC_DETAIL)
// 免费集数
intent.putExtra(KEY_DRAMA_FREE_SET, 0)
// 解锁集数
intent.putExtra(KEY_DRAMA_LOCK_SET, 0)
// 启播时间点
intent.putExtra(KEY_DRAMA_CURRENT_DURATION, 0)
// 无限下滑
intent.putExtra(KEY_DRAMA_INFINITE_SCROLL_ENABLED, true)
// 举报页面
intent.putExtra(KEY_DRAMA_CUSTOM_REPORT_ENABLED, false)
intent.putExtra(KEY_DRAMA_HIDE_LEFT_TOP_TIPS, false)
startActivity(intent)
}
}
})
// AdManager.instance.preLoadAd(requireActivity(), true)
// readyGo(SettingsActivity::class.java)
}
R.id.ll_feedback, R.id.ll_contactus2, R.id.ll_contactus -> {
// 联系客服
......
......@@ -10,6 +10,7 @@ import com.google.android.material.tabs.TabLayoutMediator
import com.mints.wisdomclean.R
import com.mints.wisdomclean.common.AppConfig
import com.mints.wisdomclean.common.Constant
import com.mints.wisdomclean.ui.activitys.MainActivity
import com.mints.wisdomclean.ui.adapter.RecommendPageAdapter
import com.mints.wisdomclean.ui.fragment.base.BaseFragment
import kotlinx.android.synthetic.main.fragment_recommend.*
......@@ -19,7 +20,9 @@ import kotlinx.android.synthetic.main.fragment_recommend.*
* @date 2023/7/5
* @desc 主页 -> 推荐
*/
class RecommendFragment : BaseFragment() {
class RecommendFragment : BaseFragment(), View.OnClickListener {
private var isEdit = false
private var mSelectTabIndex = -1
private val tabsData = mutableListOf<String>()
......@@ -27,6 +30,15 @@ class RecommendFragment : BaseFragment() {
private var vpAdapter: RecommendPageAdapter? = null
override fun initViewsAndEvents() {
iv_edit.setOnClickListener(this)
iv_edit_close.setOnClickListener(this)
initVp2()
}
override fun getContentViewLayoutID() = R.layout.fragment_recommend
private fun initVp2() {
tabsData.add("追剧")
tabsData.add("推荐")
......@@ -58,8 +70,6 @@ class RecommendFragment : BaseFragment() {
vp2_recommend.offscreenPageLimit = 2
}
override fun getContentViewLayoutID() = R.layout.fragment_recommend
private fun getTabView(position: Int): View {
val view = LayoutInflater.from(requireContext()).inflate(R.layout.item_recommend_tab, null)
view.findViewById<TextView>(R.id.item_tv).text = tabsData[position]
......@@ -79,7 +89,12 @@ class RecommendFragment : BaseFragment() {
if (isSelected) {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.black))
} else {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.my_color_gray))
text.setTextColor(
ContextCompat.getColor(
requireContext(),
R.color.my_color_gray
)
)
}
line.background =
ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_red)
......@@ -87,7 +102,12 @@ class RecommendFragment : BaseFragment() {
if (isSelected) {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.white))
} else {
text.setTextColor(ContextCompat.getColor(requireContext(), R.color.color_8D8F90))
text.setTextColor(
ContextCompat.getColor(
requireContext(),
R.color.color_8D8F90
)
)
}
line.background =
ContextCompat.getDrawable(requireContext(), R.drawable.shape_line_corner_white)
......@@ -102,4 +122,44 @@ class RecommendFragment : BaseFragment() {
}
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.iv_edit -> {
handleEditStyle(true)
}
R.id.iv_edit_close -> {
handleEditStyle(false)
}
else -> {}
}
}
private fun handleEditStyle(isEdit: Boolean) {
if (isEdit) {
// 禁止滑动
vp2_recommend.isUserInputEnabled = false
iv_edit.visibility = View.GONE
iv_edit_close.visibility = View.VISIBLE
tab_recommend.visibility = View.GONE
tv_edit_text.visibility = View.VISIBLE
} else {
// 允许滑动
vp2_recommend.isUserInputEnabled = true
iv_edit.visibility = View.VISIBLE
iv_edit_close.visibility = View.GONE
tab_recommend.visibility = View.VISIBLE
tv_edit_text.visibility = View.GONE
}
(requireActivity() as MainActivity).showEdit(isEdit)
(fragments[0] as FollowVideoFragment).getAdapter().setEditStyle(isEdit)
}
fun fullChoice() {
(fragments[0] as FollowVideoFragment).getAdapter().fullChoice()
}
fun delete() {
}
}
\ No newline at end of file
package com.mints.wisdomclean.video
import android.content.Context
import android.util.Log
import com.bytedance.sdk.dp.DPSdk
import com.bytedance.sdk.dp.DPSdkConfig
/**
* @author Assen
* @date 2023/6/21
* @desc
*/
object DPHolderManager {
const val TAG = "DPHolderManager"
var isDPStarted = false
fun initDpSdk(context: Context) {
//1. 初始化,最好放到application.onCreate()执行
val configBuilder = DPSdkConfig.Builder().debug(true)
DPSdk.init(context, "SDK_Setting_5175152.json", configBuilder.build())
startDpSdk()
}
fun startDpSdk() {
DPSdk.start { isSuccess, message ->
//请确保使用Sdk时Sdk已经成功启动
//isSuccess=true表示启动成功
//启动失败,可以再次调用启动接口(建议最多不要超过3次)
isDPStarted = isSuccess
Log.e(TAG, "start result=$isSuccess, msg=$message")
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="6dp" />
<solid android:color="@color/half_transparent" />
</shape>
\ No newline at end of file
......@@ -76,5 +76,36 @@
android:src="@drawable/home_tab_my_selector" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_edit"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_alignParentBottom="true"
android:background="@color/white"
android:elevation="2dp"
android:orientation="horizontal"
android:visibility="gone">
<TextView
android:id="@+id/tv_full"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="全选"
android:textColor="@color/black" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="删除"
android:textColor="@color/red" />
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:textColor="#FFFFFFFF"
android:textSize="16sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="bottom"
android:orientation="horizontal">
<EditText
android:id="@+id/et_drama_index"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:text="10"
android:textColor="#f00"
android:textSize="14sp" />
<Button
android:id="@+id/btn_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="跳转到指定集数"
android:textSize="13sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/block_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99000000"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="解锁" />
<Button
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="离开" />
</LinearLayout>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/draw_drama_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
\ No newline at end of file
......@@ -10,15 +10,48 @@
android:layout_height="match_parent"
android:overScrollMode="never" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="20dp">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_recommend"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
app:tabBackground="@null"
app:tabIndicatorHeight="0dp"
app:tabMode="fixed"
app:tabRippleColor="@null" />
<TextView
android:id="@+id/tv_edit_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="追剧"
android:textColor="@color/black"
android:textSize="16sp"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_arrow_back" />
<ImageView
android:id="@+id/iv_edit_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_close"
android:visibility="gone" />
</FrameLayout>
</FrameLayout>
\ No newline at end of file
......@@ -2,7 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="180dp">
<ImageView
android:id="@+id/image_iv"
......@@ -44,4 +44,26 @@
app:layout_constraintStart_toStartOf="@id/image_iv"
app:layout_constraintTop_toBottomOf="@id/title_tv" />
<FrameLayout
android:id="@+id/fm_mask"
android:layout_width="100dp"
android:layout_height="180dp"
android:background="@drawable/shape_half_trans2"
app:layout_constraintEnd_toEndOf="@id/image_iv"
app:layout_constraintStart_toStartOf="@id/image_iv"
app:layout_constraintTop_toTopOf="@id/image_iv">
<CheckBox
android:id="@+id/cb"
style="@style/Widget.AppCompat.CompoundButton.RadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="4dp"
android:layout_marginEnd="4dp"
android:visibility="visible" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -44,4 +44,4 @@ RELEASE_UMENG_KEY=63c0fd97d64e68613917170f
GROMORE_APP_ID="5404192"
GROMORE_SPLASH_CODE="102371299"
GROMORE_VIDEO_CODE="1"
\ No newline at end of file
GROMORE_VIDEO_CODE="102385608"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment