Commit 9afd741c authored by wanglei's avatar wanglei

Merge remote-tracking branch 'origin/free-master' into free-master

parents 07eb036d 32da71dd
......@@ -44,18 +44,9 @@ data class ConfigBean(
const val ID_APP_MANAGER = 11011//应用管理
const val ID_SIMILAR_IMAGE = 11015//清理相似图片
const val ID_SCREENSHOT_CLEAN = 12000//截图清理
const val ID_BATTERY = 11004//截图清理
const val ID_WHATSAPP = 12001//截图清理
fun ConfigBean.getActionPushInterval(actionId: Int): Int {
val interval = when (actionId) {
ID_JUNK_CLEAN_PUSH -> push_interval_11001
ID_PHOTO_COMPRESS -> push_interval_11010
ID_APP_MANAGER -> push_interval_11011
ID_SIMILAR_IMAGE -> push_interval_11015
ID_SCREENSHOT_CLEAN -> push_interval_12000
else -> 0
}
return interval
}
}
}
\ No newline at end of file
......@@ -141,6 +141,22 @@ public class NotificationUtil {
icon = R.drawable.similar;
desc = "Check similar photos to release more space";
btn = "Clean up";
} else if(actionId ==ConfigBean.ID_APP_MANAGER){
icon = R.drawable.appmanager;
desc = "Manage apps that are not frequently used, free up storage space on your phone, and keep it running smoothly!";
btn = "View";
} else if(actionId ==ConfigBean.ID_BATTERY){
icon = R.drawable.battery;
desc = "View phone battery consumption recently!";
btn = "View";
} else if(actionId == ConfigBean.ID_SCREENSHOT_CLEAN){
icon = R.drawable.similar;
desc = "Too many screenshots? Free up your phone storage!";
btn = "View";
} else if(actionId == ConfigBean.ID_WHATSAPP){
icon = R.drawable.similar;
desc = "Running out of storage space on your phone? Clean up WhatsApp to free up space";
btn = "View";
} else {
return;
}
......@@ -192,6 +208,9 @@ public class NotificationUtil {
ConfigBean.ID_PHOTO_COMPRESS,
ConfigBean.ID_APP_MANAGER,
ConfigBean.ID_SIMILAR_IMAGE,
ConfigBean.ID_SCREENSHOT_CLEAN
ConfigBean.ID_SCREENSHOT_CLEAN,
ConfigBean.ID_BATTERY,
ConfigBean.ID_WHATSAPP
};
}
......@@ -16,7 +16,6 @@ import com.test.easy.easycleanerjunk.activity.photocompress.photo.StartCompressi
import com.test.easy.easycleanerjunk.databinding.FragmentLayoutHomeBinding
import com.test.easy.easycleanerjunk.helps.BaseFragment
import com.test.easy.easycleanerjunk.helps.KotlinExt.setOnClickListener
import com.test.easy.easycleanerjunk.helps.ads.AdmobUtils
import com.test.easy.easycleanerjunk.utils.BarUtils
class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
......@@ -53,7 +52,6 @@ class HomeFragment : BaseFragment<FragmentLayoutHomeBinding>() {
override fun onResume() {
super.onResume()
AdmobUtils.showNativeAd(requireActivity(),binding.idFlAd)
if (animPaused) {
startAnimation()
animPaused = false
......
package com.test.easy.easycleanerjunk.helps.ads;
import android.content.Context;
import android.content.SharedPreferences;
import com.test.easy.easycleanerjunk.MyApplication;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import android.content.SharedPreferences;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
public class AdDisplayUtils {
private static final int MAX_AD_DISPLAY_COUNT = 5; // 总广告展示次数限制
private static final int MAX_AD_CLICK_COUNT = 2; // 单个广告点击次数限制
private static final String AD_PREFS_NAME = "ad_prefs"; // SharedPreferences 名称
private static final String AD_DISPLAY_COUNT_KEY = "ad_display_count"; // 广告展示次数的键
private static final String AD_CLICK_COUNT_KEY = "ad_click_count"; // 广告点击次数的键
private static AdDisplayUtils instance; // 单例对象
private int adDisplayCount = 0; // 当前广告展示次数
private int adClickCount = 0; // 当前广告点击次数
private String currentDate; // 当前日期
private AdDisplayUtils() {
currentDate = getCurrentDate();
SharedPreferences prefs = MyApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
adDisplayCount = prefs.getInt(getAdDisplayCountKey(), 0);
adClickCount = prefs.getInt(getAdClickCountKey(), 0);
}
public static synchronized AdDisplayUtils getInstance() {
if (instance == null) {
instance = new AdDisplayUtils();
}
return instance;
}
public boolean shouldDisplayAd() {
return adDisplayCount < MAX_AD_DISPLAY_COUNT;
}
public boolean shouldIncrementClickCount() {
return adClickCount < MAX_AD_CLICK_COUNT;
}
public void incrementAdDisplayCount() {
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adDisplayCount = 0;
}
adDisplayCount++;
saveAdDisplayCount();
}
public void incrementAdClickCount() {
if (!currentDate.equals(getCurrentDate())) {
currentDate = getCurrentDate();
adClickCount = 0;
}
adClickCount++;
saveAdClickCount();
}
private String getCurrentDate() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Date currentDate = Calendar.getInstance().getTime();
return dateFormat.format(currentDate);
}
private String getAdDisplayCountKey() {
return AD_DISPLAY_COUNT_KEY + "_" + currentDate;
}
private String getAdClickCountKey() {
return AD_CLICK_COUNT_KEY + "_" + currentDate;
}
private void saveAdDisplayCount() {
SharedPreferences prefs = MyApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdDisplayCountKey(), adDisplayCount);
editor.apply();
}
private void saveAdClickCount() {
SharedPreferences prefs = MyApplication.context.getSharedPreferences(AD_PREFS_NAME, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt(getAdClickCountKey(), adClickCount);
editor.apply();
}
}
......@@ -268,36 +268,64 @@ object AdmobUtils {
})
}
fun showInterstitialAd(
activity: Activity,
skip: Boolean = false,
isASkip: Boolean = true,
isFirst: Boolean = true,
onHidden: (() -> Unit)? = null
) {
private fun isAdExpired():Boolean{
return System.currentTimeMillis() - interLoadTime > 1000 * 60 * 60
}
fun showInterstitialAd(activity: Activity, isLoadAdNow: Boolean = false, onHidden: (() -> Unit)? = null) {
if (activity.isFinishing || activity.isDestroyed) {
return
}
val obj = JSONObject()
obj.put("ad_unit", "interAd")
if (skip) {
if (isAdExpired()) {
interAd = null
loadInterstitialAd(activity)
onHidden?.invoke()
return
}
if (System.currentTimeMillis() - interLoadTime > 1000 * 60 * 60) {
interAd = null
val obj = JSONObject()
obj.put("ad_unit", "interAd")
loadInterstitialAd(activity)
if(!AdDisplayUtils.getInstance().shouldDisplayAd()){
onHidden?.invoke()
return
}
if(!AdDisplayUtils.getInstance().shouldIncrementClickCount()){
onHidden?.invoke()
return
}
if (interAd != null) {
displayInterstitialAd(activity,onHidden)
} else {
showAdDialogAndLoadInterstitial(activity,isLoadAdNow, onHidden)
}
}
private fun showAdDialogAndLoadInterstitial(activity: Activity,isLoadAdNow: Boolean,onHidden: (() -> Unit)?){
var mDialog: Dialog? = null
mDialog = CustomDialog(activity, R.layout.dialog_ad_loading)
mDialog.show()
loadInterstitialAd(activity) {
mDialog?.dismiss()
if (!isLoadAdNow) {
showInterstitialAd(activity, true) {
onHidden?.invoke()
}
}
}
if (isLoadAdNow) {
mDialog?.dismiss()
onHidden?.invoke()
}
}
private fun displayInterstitialAd(activity: Activity,onHidden: (() -> Unit)? = null){
val thisInterAd = interAd
interAd = null
thisInterAd?.fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdClicked() {
click(thisInterAd?.responseInfo, "interAd")
AdDisplayUtils.getInstance().incrementAdClickCount()
}
override fun onAdDismissedFullScreenContent() {
......@@ -310,41 +338,14 @@ object AdmobUtils {
interAd = null
onHidden?.invoke()
loadInterstitialAd(activity)
val obj = JSONObject()
obj.put("reason", p0.message)
obj.put("ad_unit", "interAd")
}
override fun onAdShowedFullScreenContent() {
show(thisInterAd?.responseInfo, "interAd", activity)
AdDisplayUtils.getInstance().incrementAdDisplayCount()
}
}
thisInterAd?.show(activity)
} else {
var mDialog: Dialog? = null
mDialog = CustomDialog(activity, R.layout.dialog_ad_loading)
mDialog.show()
loadInterstitialAd(activity) {
if (isFirst) {
}
mDialog?.dismiss()
if (isASkip) {
showInterstitialAd(activity, false, false) {
onHidden?.invoke()
}
}
}
val obj = JSONObject()
obj.put("reason", "no_ad")
obj.put("ad_unit", "interAd")
if (!isASkip) {
mDialog?.dismiss()
onHidden?.invoke()
}
}
}
private fun pull(
......
......@@ -108,7 +108,6 @@
android:src="@mipmap/xiala" />
<com.noober.background.view.BLLinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -166,12 +165,13 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_large_file"
android:id="@+id/id_whatapp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
android:orientation="vertical"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
......@@ -185,27 +185,25 @@
android:layout_marginTop="10dp"
android:minWidth="27dp"
android:minHeight="27dp"
android:src="@mipmap/h_large"
android:src="@mipmap/h_whatsapp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_2"
android:id="@+id/dian_05"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
app:bl_solid_color="#EB423B" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Large File Clean"
android:text="WhatsApp Clean"
android:textColor="#000000"
android:textSize="12sp"
android:textStyle="bold"
......@@ -213,12 +211,13 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_photo_compress"
android:id="@+id/id_battery_info"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="visible"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
......@@ -233,12 +232,13 @@
android:layout_marginTop="10dp"
android:minWidth="27dp"
android:minHeight="27dp"
android:src="@mipmap/h_photo"
android:src="@mipmap/h_battery"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_03"
android:id="@+id/dian_06"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
......@@ -251,13 +251,14 @@
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Photo Compress"
android:text="Battery Info"
android:textColor="#000000"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
......@@ -266,13 +267,12 @@
android:layout_marginTop="6dp">
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_similar_photos"
android:id="@+id/id_large_file"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
tools:ignore="RtlSymmetry">
android:orientation="vertical">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
......@@ -286,13 +286,13 @@
android:layout_marginTop="10dp"
android:minWidth="27dp"
android:minHeight="27dp"
android:src="@mipmap/h_similar"
android:src="@mipmap/h_large"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_04"
android:id="@+id/dian_2"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
......@@ -303,9 +303,10 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Similar Photo"
android:text="Large File Clean"
android:textColor="#000000"
android:textSize="12sp"
android:textStyle="bold"
......@@ -313,9 +314,9 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_screenshot_clean"
android:id="@+id/id_photo_compress"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
......@@ -333,13 +334,12 @@
android:layout_marginTop="10dp"
android:minWidth="27dp"
android:minHeight="27dp"
android:src="@mipmap/h_screenshot"
android:src="@mipmap/h_photo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
app:layout_constraintTop_toTopOf="parent" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_05"
android:id="@+id/dian_03"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
......@@ -349,9 +349,10 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Screenshot Clean"
android:text="Photo Compress"
android:textColor="#000000"
android:textSize="12sp"
android:textStyle="bold"
......@@ -359,13 +360,12 @@
</com.noober.background.view.BLLinearLayout>
<com.noober.background.view.BLLinearLayout
android:id="@+id/id_battery_info"
android:id="@+id/id_app_manager"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical"
android:visibility="visible"
tools:ignore="RtlSymmetry">
<androidx.appcompat.widget.LinearLayoutCompat
......@@ -380,38 +380,118 @@
android:layout_marginTop="10dp"
android:minWidth="27dp"
android:minHeight="27dp"
android:src="@mipmap/h_battery"
android:src="@mipmap/h_appmanager"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<com.noober.background.view.BLTextView
android:id="@+id/dian_06"
android:id="@+id/dian_04"
android:layout_width="6dp"
android:layout_height="6dp"
app:bl_shape="oval"
app:bl_solid_color="#EB423B" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:ellipsize="end"
android:singleLine="true"
android:text="Battery Info"
android:text="App Manager"
android:textColor="#000000"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</com.noober.background.view.BLLinearLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</com.noober.background.view.BLLinearLayout>
<FrameLayout
android:id="@+id/id_fl_ad"
<View
android:layout_width="match_parent"
android:layout_height="10dp"
android:background="#F8F8F8" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="14dp"
android:layout_marginVertical="16dp"
android:text="More"
android:textColor="#000000"
android:textSize="19sp"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_similar_photos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:gravity="center_vertical">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:src="@mipmap/h_similar" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:layout_weight="1"
android:text="Similar Photos" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/h_jiantou" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/id_screenshot_clean"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:gravity="center_vertical">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="13dp"
android:src="@mipmap/h_screenshot" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="6dp"
android:layout_weight="1"
android:text="Screenshot Clean" />
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/h_jiantou" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
......
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