diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt index bb7cf0f..b71d827 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/TasksFragment.kt @@ -11,6 +11,7 @@ import com.ama.core.architecture.appBase.AppViewsFragment import com.ama.core.architecture.appBase.OnFragmentBackgroundListener import com.ama.core.architecture.util.setOnClickBatch import com.ama.core.architecture.util.setStatusBarDarkFont +import com.gamedog.vididin.R import com.gamedog.vididin.main.WatchVideoDialog import com.gamedog.vididin.main.fragments.task.DailySignDialog import com.gamedog.vididin.main.fragments.task.TaskBean @@ -76,32 +77,48 @@ class TasksFragment : AppViewsFragment(), OnTab } + + beginnerTaskWithdraw.initUI(R.mipmap.icon_cash_s, R.string.beginner_withdraw_title, R.string.beginner_withdraw_desc,R.string.resgatar) + beginnerTaskWithdraw.setRewardIcon(R.mipmap.icon_cash_s) + beginnerTaskWithdraw.setRewardTextStyle(21, R.color.green_39) beginnerTaskWithdraw.setActionFun { gotoWithDraw() } + + beginnerTaskDiscord.initUI(R.mipmap.icon_dicord, R.string.beginner_discord_title, R.string.beginner_discord_desc,R.string.resgatar) beginnerTaskDiscord.setActionFun { gotoDiscord() } + + beginnerTaskEnableNotify.initUI(R.mipmap.icon_notify, R.string.beginner_notify_title, R.string.beginner_notify_desc,R.string.Resgatado) beginnerTaskEnableNotify.setActionFun { gotoNotification() } + + dailyTaskWatch1.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 1, R.string.resgatar) dailyTaskWatch1.setActionFun { gotoWithVideo() } + + dailyTaskWatch5.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 5, R.string.resgatar) dailyTaskWatch5.setActionFun { gotoWithVideo() } + + dailyTaskWatch10.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 10, R.string.resgatar) dailyTaskWatch10.setActionFun { gotoWithVideo() } + + dailyTaskWatch20.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 20, R.string.resgatar) dailyTaskWatch20.setActionFun { gotoWithVideo() } + + dailyTaskWatch30.initUI(R.mipmap.icon_video_task, R.string.daily_video_task_title, 30, R.string.resgatar) dailyTaskWatch30.setActionFun { gotoWithVideo() } - - } lifecycleScope.launch { diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt index b954461..8e8b016 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/BeginnerTaskItemView.kt @@ -31,21 +31,31 @@ class BeginnerTaskItemView @JvmOverloads constructor( } - fun initUI(titleIconRes: Int, titleRes: Int, actionRes: Int) { + fun initUI(titleIconRes: Int, titleRes: Int, desRes: Int, actionRes: Int) { mBinding.ivItemIcon.setImageResource(titleIconRes) mBinding.tvItemTitle.setText(titleRes) mBinding.tvAction.setText(actionRes) + mBinding.tvItemDescrible.setText(desRes) } - fun setRewardInfo(rewardIconRes: Int, rewardNum: Int) { - mBinding.tvRewardNum.text = "" + rewardNum - mBinding.ivRewardIcon.setImageResource(rewardIconRes) + fun setRewardNum(rewardNum: String) { + mBinding.tvRewardNum.text = rewardNum } + fun setRewardIcon(iconRes: Int) { + mBinding.ivRewardIcon.setImageResource(iconRes) + } + + fun setActionFun(action: ()->Unit) { mAction = action } + fun setRewardTextStyle(textSize: Int, color: Int) { + mBinding.tvRewardNum.textSize = textSize.toFloat() + mBinding.tvRewardNum.setTextColor(color) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt index 35201d2..c1a8a56 100644 --- a/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt +++ b/app/src/main/java/com/gamedog/vididin/main/fragments/task/widget/DailyTaskItemView.kt @@ -4,6 +4,7 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout +import com.ama.core.architecture.util.ResUtil import com.ama.core.architecture.util.setOnClickBatch import com.gamedog.vididin.databinding.DailyTaskItemViewBinding @@ -32,9 +33,9 @@ class DailyTaskItemView @JvmOverloads constructor( - fun initUI(titleIconRes: Int, titleRes: Int, actionRes: Int) { + fun initUI(titleIconRes: Int, titleRes: Int, videosNum: Int, actionRes: Int) { mBinding.ivItemIcon.setImageResource(titleIconRes) - mBinding.tvItemTitle.setText(titleRes) + mBinding.tvItemTitle.text = String.format(ResUtil.getString(titleRes), videosNum) mBinding.tvAction.setText(actionRes) } diff --git a/app/src/main/res/layout/beginner_task_item_view.xml b/app/src/main/res/layout/beginner_task_item_view.xml index fc5a490..2823c3e 100644 --- a/app/src/main/res/layout/beginner_task_item_view.xml +++ b/app/src/main/res/layout/beginner_task_item_view.xml @@ -67,17 +67,17 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" - android:src="@mipmap/temp"/> + android:src="@mipmap/task_gold"/> diff --git a/app/src/main/res/layout/daily_task_item_view.xml b/app/src/main/res/layout/daily_task_item_view.xml index 7e431f1..24c2b9e 100644 --- a/app/src/main/res/layout/daily_task_item_view.xml +++ b/app/src/main/res/layout/daily_task_item_view.xml @@ -45,7 +45,6 @@ + android:src="@mipmap/task_gold"/> diff --git a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml index 0de9647..8bc1d9b 100644 --- a/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml +++ b/app/src/main/res/layout/vididinapp_feature_message_fragment_message.xml @@ -391,7 +391,7 @@ android:layout_height="wrap_content" android:gravity="center" android:layout_marginHorizontal="14dp" - android:layout_marginTop="15dp" + android:layout_marginTop="5dp" android:background="@drawable/vididinapp_feature_message_bg_task_fazer" android:text="Fazer Login Agora" android:paddingVertical="9dp" diff --git a/app/src/main/res/mipmap-xxhdpi/icon_calendar.webp b/app/src/main/res/mipmap-xxhdpi/icon_calendar.webp new file mode 100644 index 0000000..2bf3d86 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_calendar.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_cash_s.webp b/app/src/main/res/mipmap-xxhdpi/icon_cash_s.webp new file mode 100644 index 0000000..f789aaa Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_cash_s.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_dicord.webp b/app/src/main/res/mipmap-xxhdpi/icon_dicord.webp new file mode 100644 index 0000000..02dad78 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_dicord.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_glod_small.png b/app/src/main/res/mipmap-xxhdpi/icon_glod_small.png new file mode 100644 index 0000000..9551e4c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_glod_small.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_notify.webp b/app/src/main/res/mipmap-xxhdpi/icon_notify.webp new file mode 100644 index 0000000..1c90633 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_notify.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_task_finish_indicator.webp b/app/src/main/res/mipmap-xxhdpi/icon_task_finish_indicator.webp new file mode 100644 index 0000000..3dded83 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_task_finish_indicator.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_video_task.webp b/app/src/main/res/mipmap-xxhdpi/icon_video_task.webp new file mode 100644 index 0000000..9d85335 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_video_task.webp differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6031fec..cb809a4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,5 +23,14 @@ Parabéns! Você recebeu um presente de boas-vindas R$ 0.1 + Saque para Novatos + Assistir a %d vídeo + Notificações push + Ative as notificações e ganhe 200 moedas! + Comunidade Discord + Junte-se à nossa comunidade e ganhe 150 moedas! + Um benefício exclusivo. Saque R$0,1 AGORA! + Resgatado + \ No newline at end of file diff --git a/core/architecture/src/main/java/com/ama/core/architecture/util/ResUtil.kt b/core/architecture/src/main/java/com/ama/core/architecture/util/ResUtil.kt index 4a42587..b7a15b0 100644 --- a/core/architecture/src/main/java/com/ama/core/architecture/util/ResUtil.kt +++ b/core/architecture/src/main/java/com/ama/core/architecture/util/ResUtil.kt @@ -1,11 +1,147 @@ package com.ama.core.architecture.util -class ResUtil private constructor() { - companion object { - - +import android.graphics.Color +import android.util.TypedValue +import androidx.annotation.AttrRes +import androidx.annotation.ColorRes +import androidx.annotation.DimenRes +import androidx.annotation.StringRes +import androidx.core.content.ContextCompat +import com.ama.core.architecture.BaseApp + +object ResUtil { + + private val appContext = BaseApp.appContext() + // ==================== Dimen相关 ==================== + /** + * 获取dp值对应的像素值 + */ + fun dp(dpValue: Float): Float { + return dpValue * appContext.resources.displayMetrics.density } + + fun dp(dpValue: Int): Float { + return dp(dpValue.toFloat()) + } + + /** + * 获取dp值对应的像素值(取整) + */ + fun dpToPx(dpValue: Float): Int { + return (dp(dpValue) + 0.5f).toInt() + } + + fun dpToPx(dpValue: Int): Int { + return dpToPx(dpValue.toFloat()) + } + + /** + * 获取sp值对应的像素值 + */ + fun sp(spValue: Float): Float { + return spValue * appContext.resources.displayMetrics.scaledDensity + } + + fun sp(spValue: Int): Float { + return sp(spValue.toFloat()) + } + + /** + * 从dimen资源获取像素值 + */ + fun getPixelSize(@DimenRes dimenRes: Int): Int { + return appContext.resources.getDimensionPixelSize(dimenRes) + } + + fun getDimension(@DimenRes dimenRes: Int): Float { + return appContext.resources.getDimension(dimenRes) + } + + + + // ==================== 颜色相关 ==================== + fun getString(@StringRes strRes: Int): String { + return ContextCompat.getString(appContext, strRes) + } + + // ==================== 颜色相关 ==================== + + /** + * 从颜色资源获取颜色值 + */ + fun getColor(@ColorRes colorRes: Int): Int { + return ContextCompat.getColor(appContext, colorRes) + } + + /** + * 从颜色资源获取颜色值(带透明度) + */ + fun getColor(@ColorRes colorRes: Int, alpha: Float): Int { + val color = getColor(colorRes) + return applyAlphaToColor(color, alpha) + } + + /** + * 解析颜色字符串 + */ + fun parseColor(colorString: String): Int { + return try { + Color.parseColor(colorString) + } catch (e: IllegalArgumentException) { + Color.BLACK // 默认颜色 + } + } + + /** + * 给颜色应用透明度 + */ + fun applyAlphaToColor(color: Int, alpha: Float): Int { + val alphaValue = (alpha.coerceIn(0f, 1f) * 255).toInt() + return color and 0x00FFFFFF or (alphaValue shl 24) + } + + /** + * 获取主题颜色属性 + */ + fun getColorAttr(@AttrRes attrRes: Int): Int { + val typedValue = TypedValue() + appContext.theme.resolveAttribute(attrRes, typedValue, true) + return typedValue.data + } + + + + //==================== 扩展函数 ==================== + /** + * Float的扩展函数:转换为dp像素值 + */ + val Float.dp: Float + get() = ResUtil.dp(this) + + val Float.dpToPx: Int + get() = ResUtil.dpToPx(this) + + /** + * Int的扩展函数:转换为dp像素值 + */ + val Int.dp: Float + get() = ResUtil.dp(this) + + val Int.dpToPx: Int + get() = ResUtil.dpToPx(this) + + /** + * Float的扩展函数:转换为sp像素值 + */ + val Float.sp: Float + get() = ResUtil.sp(this) + + /** + * 字符串的扩展函数:解析颜色 + */ + val String.colorInt: Int + get() = ResUtil.parseColor(this) }