Commit 0cd8cbbd authored by mengcuiguang's avatar mengcuiguang

代码合并

parents 354e22b7 df3a259a
...@@ -15,4 +15,4 @@ ...@@ -15,4 +15,4 @@
.externalNativeBuild .externalNativeBuild
.cxx .cxx
/library_ad/build/ /library_ad/build/
/shareSdkLib/build/ /animlibrary/build/
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.jaredrummler.android.animatedsvgview;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String LIBRARY_PACKAGE_NAME = "com.jaredrummler.android.animatedsvgview";
public static final String BUILD_TYPE = "debug";
public static final int VERSION_CODE = -1;
public static final String VERSION_NAME = "";
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jaredrummler.android.animatedsvgview" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="28" />
</manifest>
\ No newline at end of file
{
"version": 1,
"applicationId": "com.jaredrummler.android.animatedsvgview",
"variantType": "LIBRARY",
"elements": [
{
"outputType": {
"type": "AAPT_FRIENDLY_MERGED_MANIFESTS"
},
"apkData": {
"type": "MAIN",
"splits": [],
"versionCode": -1,
"outputFile": "animlibrary-debug.aar",
"fullName": "debug",
"baseName": "debug",
"dirName": ""
},
"path": "AndroidManifest.xml",
"properties": {
"packageId": "com.jaredrummler.android.animatedsvgview",
"split": ""
}
}
]
}
\ No newline at end of file
int attr alpha 0x0
int attr animatedSvgFillColors 0x0
int attr animatedSvgFillStart 0x0
int attr animatedSvgFillTime 0x0
int attr animatedSvgGlyphStrings 0x0
int attr animatedSvgImageSizeX 0x0
int attr animatedSvgImageSizeY 0x0
int attr animatedSvgTraceColors 0x0
int attr animatedSvgTraceMarkerLength 0x0
int attr animatedSvgTraceResidueColors 0x0
int attr animatedSvgTraceTime 0x0
int attr animatedSvgTraceTimePerGlyph 0x0
int attr font 0x0
int attr fontProviderAuthority 0x0
int attr fontProviderCerts 0x0
int attr fontProviderFetchStrategy 0x0
int attr fontProviderFetchTimeout 0x0
int attr fontProviderPackage 0x0
int attr fontProviderQuery 0x0
int attr fontStyle 0x0
int attr fontVariationSettings 0x0
int attr fontWeight 0x0
int attr ttcIndex 0x0
int color notification_action_color_filter 0x0
int color notification_icon_bg_color 0x0
int color ripple_material_light 0x0
int color secondary_text_default_material_light 0x0
int dimen compat_button_inset_horizontal_material 0x0
int dimen compat_button_inset_vertical_material 0x0
int dimen compat_button_padding_horizontal_material 0x0
int dimen compat_button_padding_vertical_material 0x0
int dimen compat_control_corner_material 0x0
int dimen compat_notification_large_icon_max_height 0x0
int dimen compat_notification_large_icon_max_width 0x0
int dimen notification_action_icon_size 0x0
int dimen notification_action_text_size 0x0
int dimen notification_big_circle_margin 0x0
int dimen notification_content_margin_start 0x0
int dimen notification_large_icon_height 0x0
int dimen notification_large_icon_width 0x0
int dimen notification_main_column_padding_top 0x0
int dimen notification_media_narrow_margin 0x0
int dimen notification_right_icon_size 0x0
int dimen notification_right_side_padding_top 0x0
int dimen notification_small_icon_background_padding 0x0
int dimen notification_small_icon_size_as_large 0x0
int dimen notification_subtext_size 0x0
int dimen notification_top_pad 0x0
int dimen notification_top_pad_large_text 0x0
int drawable notification_action_background 0x0
int drawable notification_bg 0x0
int drawable notification_bg_low 0x0
int drawable notification_bg_low_normal 0x0
int drawable notification_bg_low_pressed 0x0
int drawable notification_bg_normal 0x0
int drawable notification_bg_normal_pressed 0x0
int drawable notification_icon_background 0x0
int drawable notification_template_icon_bg 0x0
int drawable notification_template_icon_low_bg 0x0
int drawable notification_tile_bg 0x0
int drawable notify_panel_notification_icon_bg 0x0
int id action_container 0x0
int id action_divider 0x0
int id action_image 0x0
int id action_text 0x0
int id actions 0x0
int id async 0x0
int id blocking 0x0
int id chronometer 0x0
int id forever 0x0
int id icon 0x0
int id icon_group 0x0
int id info 0x0
int id italic 0x0
int id line1 0x0
int id line3 0x0
int id normal 0x0
int id notification_background 0x0
int id notification_main_column 0x0
int id notification_main_column_container 0x0
int id right_icon 0x0
int id right_side 0x0
int id tag_transition_group 0x0
int id tag_unhandled_key_event_manager 0x0
int id tag_unhandled_key_listeners 0x0
int id text 0x0
int id text2 0x0
int id time 0x0
int id title 0x0
int integer status_bar_notification_info_maxnum 0x0
int layout notification_action 0x0
int layout notification_action_tombstone 0x0
int layout notification_template_custom_big 0x0
int layout notification_template_icon_group 0x0
int layout notification_template_part_chronometer 0x0
int layout notification_template_part_time 0x0
int string status_bar_notification_info_overflow 0x0
int style TextAppearance_Compat_Notification 0x0
int style TextAppearance_Compat_Notification_Info 0x0
int style TextAppearance_Compat_Notification_Line2 0x0
int style TextAppearance_Compat_Notification_Time 0x0
int style TextAppearance_Compat_Notification_Title 0x0
int style Widget_Compat_NotificationActionContainer 0x0
int style Widget_Compat_NotificationActionText 0x0
int[] styleable AnimatedSvgView { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable AnimatedSvgView_animatedSvgFillColors 0
int styleable AnimatedSvgView_animatedSvgFillStart 1
int styleable AnimatedSvgView_animatedSvgFillTime 2
int styleable AnimatedSvgView_animatedSvgGlyphStrings 3
int styleable AnimatedSvgView_animatedSvgImageSizeX 4
int styleable AnimatedSvgView_animatedSvgImageSizeY 5
int styleable AnimatedSvgView_animatedSvgTraceColors 6
int styleable AnimatedSvgView_animatedSvgTraceMarkerLength 7
int styleable AnimatedSvgView_animatedSvgTraceResidueColors 8
int styleable AnimatedSvgView_animatedSvgTraceTime 9
int styleable AnimatedSvgView_animatedSvgTraceTimePerGlyph 10
int[] styleable ColorStateListItem { 0x0, 0x101031f, 0x10101a5 }
int styleable ColorStateListItem_alpha 0
int styleable ColorStateListItem_android_alpha 1
int styleable ColorStateListItem_android_color 2
int[] styleable FontFamily { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable FontFamily_fontProviderAuthority 0
int styleable FontFamily_fontProviderCerts 1
int styleable FontFamily_fontProviderFetchStrategy 2
int styleable FontFamily_fontProviderFetchTimeout 3
int styleable FontFamily_fontProviderPackage 4
int styleable FontFamily_fontProviderQuery 5
int[] styleable FontFamilyFont { 0x1010532, 0x101053f, 0x1010570, 0x1010533, 0x101056f, 0x0, 0x0, 0x0, 0x0, 0x0 }
int styleable FontFamilyFont_android_font 0
int styleable FontFamilyFont_android_fontStyle 1
int styleable FontFamilyFont_android_fontVariationSettings 2
int styleable FontFamilyFont_android_fontWeight 3
int styleable FontFamilyFont_android_ttcIndex 4
int styleable FontFamilyFont_font 5
int styleable FontFamilyFont_fontStyle 6
int styleable FontFamilyFont_fontVariationSettings 7
int styleable FontFamilyFont_fontWeight 8
int styleable FontFamilyFont_ttcIndex 9
int[] styleable GradientColor { 0x101020b, 0x10101a2, 0x10101a3, 0x101019e, 0x1010512, 0x1010513, 0x10101a4, 0x101019d, 0x1010510, 0x1010511, 0x1010201, 0x10101a1 }
int styleable GradientColor_android_centerColor 0
int styleable GradientColor_android_centerX 1
int styleable GradientColor_android_centerY 2
int styleable GradientColor_android_endColor 3
int styleable GradientColor_android_endX 4
int styleable GradientColor_android_endY 5
int styleable GradientColor_android_gradientRadius 6
int styleable GradientColor_android_startColor 7
int styleable GradientColor_android_startX 8
int styleable GradientColor_android_startY 9
int styleable GradientColor_android_tileMode 10
int styleable GradientColor_android_type 11
int[] styleable GradientColorItem { 0x10101a5, 0x1010514 }
int styleable GradientColorItem_android_color 0
int styleable GradientColorItem_android_offset 1
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="AnimatedSvgView">
<attr format="integer" name="animatedSvgImageSizeX"/>
<attr format="integer" name="animatedSvgImageSizeY"/>
<attr format="string" name="animatedSvgTraceTime"/>
<attr format="string" name="animatedSvgTraceTimePerGlyph"/>
<attr format="string" name="animatedSvgFillStart"/>
<attr format="string" name="animatedSvgFillTime"/>
<attr format="reference" name="animatedSvgGlyphStrings"/>
<attr format="reference" name="animatedSvgTraceColors"/>
<attr format="reference" name="animatedSvgTraceResidueColors"/>
<attr format="integer" name="animatedSvgTraceMarkerLength"/>
<attr format="reference" name="animatedSvgFillColors"/>
</declare-styleable>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jaredrummler.android.animatedsvgview" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="28" />
</manifest>
\ No newline at end of file
R_DEF: Internal format may change without notice
local
attr? animatedSvgFillColors
attr? animatedSvgFillStart
attr? animatedSvgFillTime
attr? animatedSvgGlyphStrings
attr? animatedSvgImageSizeX
attr? animatedSvgImageSizeY
attr? animatedSvgTraceColors
attr? animatedSvgTraceMarkerLength
attr? animatedSvgTraceResidueColors
attr? animatedSvgTraceTime
attr? animatedSvgTraceTimePerGlyph
styleable AnimatedSvgView animatedSvgImageSizeX animatedSvgImageSizeY animatedSvgTraceTime animatedSvgTraceTimePerGlyph animatedSvgFillStart animatedSvgFillTime animatedSvgGlyphStrings animatedSvgTraceColors animatedSvgTraceResidueColors animatedSvgTraceMarkerLength animatedSvgFillColors
{
"version": 1,
"applicationId": "com.jaredrummler.android.animatedsvgview",
"variantType": "LIBRARY",
"elements": [
{
"outputType": {
"type": "MERGED_MANIFESTS"
},
"apkData": {
"type": "MAIN",
"splits": [],
"versionCode": -1,
"outputFile": "animlibrary-debug.aar",
"fullName": "debug",
"baseName": "debug",
"dirName": ""
},
"path": "../../library_manifest/debug/AndroidManifest.xml",
"properties": {
"packageId": "com.jaredrummler.android.animatedsvgview",
"split": ""
}
}
]
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="AnimatedSvgView">
<attr format="integer" name="animatedSvgImageSizeX"/>
<attr format="integer" name="animatedSvgImageSizeY"/>
<attr format="string" name="animatedSvgTraceTime"/>
<attr format="string" name="animatedSvgTraceTimePerGlyph"/>
<attr format="string" name="animatedSvgFillStart"/>
<attr format="string" name="animatedSvgFillTime"/>
<attr format="reference" name="animatedSvgGlyphStrings"/>
<attr format="reference" name="animatedSvgTraceColors"/>
<attr format="reference" name="animatedSvgTraceResidueColors"/>
<attr format="integer" name="animatedSvgTraceMarkerLength"/>
<attr format="reference" name="animatedSvgFillColors"/>
</declare-styleable>
</resources>
\ No newline at end of file
com.jaredrummler.android.animatedsvgview
attr alpha
attr animatedSvgFillColors
attr animatedSvgFillStart
attr animatedSvgFillTime
attr animatedSvgGlyphStrings
attr animatedSvgImageSizeX
attr animatedSvgImageSizeY
attr animatedSvgTraceColors
attr animatedSvgTraceMarkerLength
attr animatedSvgTraceResidueColors
attr animatedSvgTraceTime
attr animatedSvgTraceTimePerGlyph
attr font
attr fontProviderAuthority
attr fontProviderCerts
attr fontProviderFetchStrategy
attr fontProviderFetchTimeout
attr fontProviderPackage
attr fontProviderQuery
attr fontStyle
attr fontVariationSettings
attr fontWeight
attr ttcIndex
color notification_action_color_filter
color notification_icon_bg_color
color ripple_material_light
color secondary_text_default_material_light
dimen compat_button_inset_horizontal_material
dimen compat_button_inset_vertical_material
dimen compat_button_padding_horizontal_material
dimen compat_button_padding_vertical_material
dimen compat_control_corner_material
dimen compat_notification_large_icon_max_height
dimen compat_notification_large_icon_max_width
dimen notification_action_icon_size
dimen notification_action_text_size
dimen notification_big_circle_margin
dimen notification_content_margin_start
dimen notification_large_icon_height
dimen notification_large_icon_width
dimen notification_main_column_padding_top
dimen notification_media_narrow_margin
dimen notification_right_icon_size
dimen notification_right_side_padding_top
dimen notification_small_icon_background_padding
dimen notification_small_icon_size_as_large
dimen notification_subtext_size
dimen notification_top_pad
dimen notification_top_pad_large_text
drawable notification_action_background
drawable notification_bg
drawable notification_bg_low
drawable notification_bg_low_normal
drawable notification_bg_low_pressed
drawable notification_bg_normal
drawable notification_bg_normal_pressed
drawable notification_icon_background
drawable notification_template_icon_bg
drawable notification_template_icon_low_bg
drawable notification_tile_bg
drawable notify_panel_notification_icon_bg
id action_container
id action_divider
id action_image
id action_text
id actions
id async
id blocking
id chronometer
id forever
id icon
id icon_group
id info
id italic
id line1
id line3
id normal
id notification_background
id notification_main_column
id notification_main_column_container
id right_icon
id right_side
id tag_transition_group
id tag_unhandled_key_event_manager
id tag_unhandled_key_listeners
id text
id text2
id time
id title
integer status_bar_notification_info_maxnum
layout notification_action
layout notification_action_tombstone
layout notification_template_custom_big
layout notification_template_icon_group
layout notification_template_part_chronometer
layout notification_template_part_time
string status_bar_notification_info_overflow
style TextAppearance_Compat_Notification
style TextAppearance_Compat_Notification_Info
style TextAppearance_Compat_Notification_Line2
style TextAppearance_Compat_Notification_Time
style TextAppearance_Compat_Notification_Title
style Widget_Compat_NotificationActionContainer
style Widget_Compat_NotificationActionText
styleable AnimatedSvgView animatedSvgFillColors animatedSvgFillStart animatedSvgFillTime animatedSvgGlyphStrings animatedSvgImageSizeX animatedSvgImageSizeY animatedSvgTraceColors animatedSvgTraceMarkerLength animatedSvgTraceResidueColors animatedSvgTraceTime animatedSvgTraceTimePerGlyph
styleable ColorStateListItem alpha android_alpha android_color
styleable FontFamily fontProviderAuthority fontProviderCerts fontProviderFetchStrategy fontProviderFetchTimeout fontProviderPackage fontProviderQuery
styleable FontFamilyFont android_font android_fontStyle android_fontVariationSettings android_fontWeight android_ttcIndex font fontStyle fontVariationSettings fontWeight ttcIndex
styleable GradientColor android_centerColor android_centerX android_centerY android_endColor android_endX android_endY android_gradientRadius android_startColor android_startX android_startY android_tileMode android_type
styleable GradientColorItem android_color android_offset
com/jaredrummler/android/widget/PathParser.java
com.jaredrummler.android.widget.PathParser
com.jaredrummler.android.widget.PathParser$ExtractFloatResult
com.jaredrummler.android.widget.PathParser$PathDataNode
com/jaredrummler/android/widget/AnimatedSvgView.java
com.jaredrummler.android.widget.AnimatedSvgView
com.jaredrummler.android.widget.AnimatedSvgView$GlyphData
com.jaredrummler.android.widget.AnimatedSvgView$OnStateChangeListener
com.jaredrummler.android.widget.AnimatedSvgView$State
com/jaredrummler/android/animatedsvgview/BuildConfig.java
com.jaredrummler.android.animatedsvgview.BuildConfig
...@@ -124,12 +124,10 @@ android { ...@@ -124,12 +124,10 @@ android {
productFlavors { productFlavors {
fiveworld {} fiveworld {}
toutiao {} toutiao {}
ks_cs {} store360 {}
oppo {} oppo {}
vivo {} vivo {}
huawei {} huawei {}
xiaomi {}
meizu {}
} }
productFlavors.all { productFlavors.all {
......
...@@ -208,7 +208,7 @@ ...@@ -208,7 +208,7 @@
android:theme="@style/OutTransparentTheme" /> android:theme="@style/OutTransparentTheme" />
<activity <activity
android:name="com.mints.screen.locker.ScreenLockerActivity" android:name="com.mints.mingce.world.widget.WorldActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc" android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:immersive="true" android:immersive="true"
...@@ -219,7 +219,7 @@ ...@@ -219,7 +219,7 @@
android:theme="@style/AppTheme.LockScreen" /> android:theme="@style/AppTheme.LockScreen" />
<activity <activity
android:name="com.mints.screen.locker.ScreenLockerActivity2" android:name="com.mints.mingce.world.widget.WorldActivity2"
android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc" android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:immersive="true" android:immersive="true"
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
android:theme="@style/AppTheme.LockScreen" /> android:theme="@style/AppTheme.LockScreen" />
<activity <activity
android:name="com.mints.screen.locker.ScreenLockerActivity3" android:name="com.mints.mingce.world.widget.WorldActivity3"
android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc" android:configChanges="keyboardHidden|orientation|screenSize|locale|density|fontScale|layoutDirection|navigation|uiMode|screenLayout|mcc|mnc"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:immersive="true" android:immersive="true"
......
...@@ -65,7 +65,7 @@ import kotlin.jvm.functions.Function1; ...@@ -65,7 +65,7 @@ import kotlin.jvm.functions.Function1;
import rx.Scheduler; import rx.Scheduler;
import rx.schedulers.Schedulers; import rx.schedulers.Schedulers;
import com.mints.screen.locker.core.ScreenLockerObserver; import com.mints.mingce.world.content.WorldObserver;
/** /**
* 描述:Application * 描述:Application
...@@ -223,7 +223,7 @@ public class MintsApplication extends BaseApp { ...@@ -223,7 +223,7 @@ public class MintsApplication extends BaseApp {
thirdConfig(); thirdConfig();
// 锁屏模块初始化 // 锁屏模块初始化
new ScreenLockerObserver(this).start(this); new WorldObserver(this).start(this);
CoreAdContext.Companion.setLockerResumeCallback(new Function1<Activity, Boolean>() { CoreAdContext.Companion.setLockerResumeCallback(new Function1<Activity, Boolean>() {
@Override @Override
......
...@@ -17,7 +17,7 @@ object Constant { ...@@ -17,7 +17,7 @@ object Constant {
/** /**
* app名称 * app名称
*/ */
const val MINTS_APP_NAME = "5G世界" const val MINTS_APP_NAME = "5G世界清理"
/** /**
* 应用包名 * 应用包名
......
...@@ -30,7 +30,7 @@ import com.mints.fiveworld.utils.SystemUtils; ...@@ -30,7 +30,7 @@ import com.mints.fiveworld.utils.SystemUtils;
import com.mints.fiveworld.utils.Utils; import com.mints.fiveworld.utils.Utils;
import com.mints.fiveworld.utils.WifiUtils; import com.mints.fiveworld.utils.WifiUtils;
import com.mints.fiveworld.utils.IntentUtils; import com.mints.fiveworld.utils.IntentUtils;
import com.mints.screen.locker.utils.ScreenLockerUtils; import com.mints.mingce.world.utils.WorldUtils;
import com.utils.BaseUtils; import com.utils.BaseUtils;
import net.app.AbsActivityLifecycleCallbacks; import net.app.AbsActivityLifecycleCallbacks;
...@@ -372,7 +372,7 @@ public class AlarmManager implements Handler.Callback { ...@@ -372,7 +372,7 @@ public class AlarmManager implements Handler.Callback {
long userTime = mSettings.readLong(KEY_COOL_USER_ACTION_TIME, 0L); long userTime = mSettings.readLong(KEY_COOL_USER_ACTION_TIME, 0L);
if (userTime == 0) { if (userTime == 0) {
// 记录第一次横屏的时间 // 记录第一次横屏的时间
if (ScreenLockerUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) { if (WorldUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) {
userTime = System.currentTimeMillis(); userTime = System.currentTimeMillis();
mSettings.writeLong(KEY_COOL_USER_ACTION_TIME, userTime); mSettings.writeLong(KEY_COOL_USER_ACTION_TIME, userTime);
// LogUtil.d(TAG, "***横屏场景*** -> 第一次触发横屏,记录当前触发时间戳:" + userTime); // LogUtil.d(TAG, "***横屏场景*** -> 第一次触发横屏,记录当前触发时间戳:" + userTime);
...@@ -398,7 +398,7 @@ public class AlarmManager implements Handler.Callback { ...@@ -398,7 +398,7 @@ public class AlarmManager implements Handler.Callback {
} }
} else { } else {
// 20分钟之内有切换过竖屏,重置时间 // 20分钟之内有切换过竖屏,重置时间
if (!ScreenLockerUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) { if (!WorldUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) {
// LogUtil.d(TAG, "***横屏场景*** -> " + APP_OUT_COOL_MINTER + "分钟之内有切到竖屏,重置时间"); // LogUtil.d(TAG, "***横屏场景*** -> " + APP_OUT_COOL_MINTER + "分钟之内有切到竖屏,重置时间");
mSettings.writeLong(KEY_COOL_USER_ACTION_TIME, 0L); mSettings.writeLong(KEY_COOL_USER_ACTION_TIME, 0L);
} else { } else {
...@@ -470,7 +470,7 @@ public class AlarmManager implements Handler.Callback { ...@@ -470,7 +470,7 @@ public class AlarmManager implements Handler.Callback {
if (WifiDataManager.INSTANCE.getTiming()) { if (WifiDataManager.INSTANCE.getTiming()) {
// 锁屏在前台时,不弹出应用外广告 // 锁屏在前台时,不弹出应用外广告
if (!ScreenLockerUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) // 息屏 if (!WorldUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) // 息屏
|| ForegroundOrBackground.isScreenForeground() // 是否在锁屏页上方 || ForegroundOrBackground.isScreenForeground() // 是否在锁屏页上方
) { ) {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_LOCK.name()); UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_LOCK.name());
...@@ -478,11 +478,11 @@ public class AlarmManager implements Handler.Callback { ...@@ -478,11 +478,11 @@ public class AlarmManager implements Handler.Callback {
AdReportManager.INSTANCE.eventScene(ForegroundOrBackground.isForeground2() ? AdReportManager.INNER_IN : AdReportManager.INNER_OUT, AdReportManager.INSTANCE.eventScene(ForegroundOrBackground.isForeground2() ? AdReportManager.INNER_IN : AdReportManager.INNER_OUT,
System.currentTimeMillis(), System.currentTimeMillis(),
Constant.CARRIER_OUT_TEN_TIME, Constant.CARRIER_OUT_TEN_TIME,
" 是否息屏=" + ScreenLockerUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) + " 是否息屏=" + WorldUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) +
" 是否在锁屏页上方=" + ForegroundOrBackground.isScreenForeground() " 是否在锁屏页上方=" + ForegroundOrBackground.isScreenForeground()
, AdReportManager.EVENT_TYPE_SCENCE_CLOSE, AdReportManager.ERROR_CODE_FOREGROUND, "应用锁屏时,不弹出应用外广告"); , AdReportManager.EVENT_TYPE_SCENCE_CLOSE, AdReportManager.ERROR_CODE_FOREGROUND, "应用锁屏时,不弹出应用外广告");
LogUtil.d(TAG, "应用在锁屏时 isScreenOn=" + ScreenLockerUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) + LogUtil.d(TAG, "应用在锁屏时 isScreenOn=" + WorldUtils.INSTANCE.isScreenOn(MintsApplication.getContext()) +
" isScreenActivityResume=" + ForegroundOrBackground.isScreenForeground()); " isScreenActivityResume=" + ForegroundOrBackground.isScreenForeground());
return false; return false;
} }
...@@ -565,7 +565,7 @@ public class AlarmManager implements Handler.Callback { ...@@ -565,7 +565,7 @@ public class AlarmManager implements Handler.Callback {
} }
// 横屏 // 横屏
if (ScreenLockerUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) { if (WorldUtils.INSTANCE.isHorizontalScreen(MintsApplication.getContext())) {
UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_HORIZONTALSCREEN.name()); UmengManager.INSTANCE.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_OUT_TIME10_HORIZONTALSCREEN.name());
AdReportManager.INSTANCE.eventScene( AdReportManager.INSTANCE.eventScene(
......
...@@ -17,7 +17,7 @@ import com.mints.fiveworld.utils.ForegroundOrBackground ...@@ -17,7 +17,7 @@ import com.mints.fiveworld.utils.ForegroundOrBackground
import com.mints.fiveworld.utils.LogUtil import com.mints.fiveworld.utils.LogUtil
import com.mints.fiveworld.utils.Utils import com.mints.fiveworld.utils.Utils
import com.mints.fiveworld.utils.IntentUtils import com.mints.fiveworld.utils.IntentUtils
import com.mints.screen.locker.utils.ScreenLockerUtils import com.mints.mingce.world.utils.WorldUtils
/** /**
* *
...@@ -205,7 +205,7 @@ object OutAppRouter { ...@@ -205,7 +205,7 @@ object OutAppRouter {
fun canPopActivity(carrier: String, remark: String): Boolean { fun canPopActivity(carrier: String, remark: String): Boolean {
// 锁屏在前台时,不弹出应用外广告 // 锁屏在前台时,不弹出应用外广告
if (!ScreenLockerUtils.isScreenOn(MintsApplication.getContext()) // 息屏 if (!WorldUtils.isScreenOn(MintsApplication.getContext()) // 息屏
|| ForegroundOrBackground.isScreenForeground() // 是否在锁屏页上方 || ForegroundOrBackground.isScreenForeground() // 是否在锁屏页上方
) { ) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_LOCK.name) UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_LOCK.name)
...@@ -213,7 +213,7 @@ object OutAppRouter { ...@@ -213,7 +213,7 @@ object OutAppRouter {
if (ForegroundOrBackground.isForeground2()) AdReportManager.INNER_IN else AdReportManager.INNER_OUT, if (ForegroundOrBackground.isForeground2()) AdReportManager.INNER_IN else AdReportManager.INNER_OUT,
System.currentTimeMillis(), System.currentTimeMillis(),
carrier, carrier,
" 是否息屏=" + ScreenLockerUtils.isScreenOn(MintsApplication.getContext()) + " 是否息屏=" + WorldUtils.isScreenOn(MintsApplication.getContext()) +
" 是否是否在锁屏页上方=" + ForegroundOrBackground.isScreenForeground(), " 是否是否在锁屏页上方=" + ForegroundOrBackground.isScreenForeground(),
AdReportManager.EVENT_TYPE_SCENCE_CLOSE, AdReportManager.EVENT_TYPE_SCENCE_CLOSE,
AdReportManager.ERROR_CODE_FOREGROUND, AdReportManager.ERROR_CODE_FOREGROUND,
...@@ -221,7 +221,7 @@ object OutAppRouter { ...@@ -221,7 +221,7 @@ object OutAppRouter {
) )
LogUtil.d( LogUtil.d(
TAG, TAG,
"应用在锁屏时 isScreenOn=" + ScreenLockerUtils.isScreenOn(MintsApplication.getContext()) + "应用在锁屏时 isScreenOn=" + WorldUtils.isScreenOn(MintsApplication.getContext()) +
" isScreenActivityResume=" + ForegroundOrBackground.isScreenForeground() " isScreenActivityResume=" + ForegroundOrBackground.isScreenForeground()
) )
return false return false
...@@ -296,7 +296,7 @@ object OutAppRouter { ...@@ -296,7 +296,7 @@ object OutAppRouter {
} }
// 横屏 // 横屏
if (ScreenLockerUtils.isHorizontalScreen(MintsApplication.getContext())) { if (WorldUtils.isHorizontalScreen(MintsApplication.getContext())) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_HORIZONTALSCREEN.name) UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_SCENCE_HORIZONTALSCREEN.name)
AdReportManager.eventScene( AdReportManager.eventScene(
if (ForegroundOrBackground.isForeground2()) AdReportManager.INNER_IN else AdReportManager.INNER_OUT, if (ForegroundOrBackground.isForeground2()) AdReportManager.INNER_IN else AdReportManager.INNER_OUT,
......
...@@ -29,10 +29,11 @@ class AntiAuditManager private constructor() { ...@@ -29,10 +29,11 @@ class AntiAuditManager private constructor() {
const val TODAY_INSTALL_APK_COUNT = "TODAY_INSTALL_APK_COUNT"// 安装个数 const val TODAY_INSTALL_APK_COUNT = "TODAY_INSTALL_APK_COUNT"// 安装个数
const val TODAY_INSTALL_SUM_COUNT = "TODAY_INSTALL_SUM_COUNT"// 安装总个数(阈值) const val TODAY_INSTALL_SUM_COUNT = "TODAY_INSTALL_SUM_COUNT"// 安装总个数(阈值)
// senceType 0-vpn,1-反策略,2-协议 // senceType 0-vpn,1-反策略,2-协议 3-意见反馈
const val SENCE_VPN = "0"// vpn const val SENCE_VPN = "0"// vpn
const val SENCE_FAZHI = "1"// 阈值 const val SENCE_FAZHI = "1"// 阈值
const val SENCE_AGREEMENT = "2"// 协议 const val SENCE_AGREEMENT = "2"// 协议
const val SENCE_CALLAPP = "3"// 意见反馈
val instance: AntiAuditManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { val instance: AntiAuditManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
AntiAuditManager() AntiAuditManager()
......
...@@ -44,6 +44,12 @@ public class TrackManager { ...@@ -44,6 +44,12 @@ public class TrackManager {
} }
} }
public void saveTerminalInfo() {
if (trackPresenter != null) {
trackPresenter.saveTerminalInfo();
}
}
public void cmtGroMoreInfo(HashMap<String, Object> vo) { public void cmtGroMoreInfo(HashMap<String, Object> vo) {
if (trackPresenter != null && !TextUtils.isEmpty(UserManager.getInstance().getUserID())) { if (trackPresenter != null && !TextUtils.isEmpty(UserManager.getInstance().getUserID())) {
trackPresenter.cmtGroMoreInfo(vo); trackPresenter.cmtGroMoreInfo(vo);
......
...@@ -66,26 +66,26 @@ object UmengManager { ...@@ -66,26 +66,26 @@ object UmengManager {
* 友盟埋点 * 友盟埋点
*/ */
fun onEvent(name: String) { fun onEvent(name: String) {
if(BuildConfig.DEBUG){ // if(BuildConfig.DEBUG){
LogUtil.d(TAG, "name=${name} remark=${AdReportManager.EventType.valueOf(name).value}") // LogUtil.d(TAG, "name=${name} remark=${AdReportManager.EventType.valueOf(name).value}")
//
//
TrackManager.getInstance().tempaddCallImp( // TrackManager.getInstance().tempaddCallImp(
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
System.currentTimeMillis(), // System.currentTimeMillis(),
name, // name,
AdReportManager.EventType.valueOf(name).value // AdReportManager.EventType.valueOf(name).value
) // )
} // }
// 上送umeng // 上送umeng
MobclickAgent.onEvent(MintsApplication.getContext(), name) MobclickAgent.onEvent(MintsApplication.getContext(), name)
...@@ -95,25 +95,25 @@ object UmengManager { ...@@ -95,25 +95,25 @@ object UmengManager {
* 友盟埋点 * 友盟埋点
*/ */
fun onEventArgs(name: String, arg: String) { fun onEventArgs(name: String, arg: String) {
if(BuildConfig.DEBUG){ // if(BuildConfig.DEBUG){
LogUtil.d(TAG, "name=${name} remark=${AdReportManager.EventType.valueOf(name).value}") // LogUtil.d(TAG, "name=${name} remark=${AdReportManager.EventType.valueOf(name).value}")
//
TrackManager.getInstance().tempaddCallImp( // TrackManager.getInstance().tempaddCallImp(
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
"", // "",
System.currentTimeMillis(), // System.currentTimeMillis(),
name, // name,
AdReportManager.EventType.valueOf(name).value // AdReportManager.EventType.valueOf(name).value
) // )
} // }
val map = mutableMapOf<String, String>() val map = mutableMapOf<String, String>()
map["scene"] = arg map["scene"] = arg
......
...@@ -72,6 +72,7 @@ class MainPresenter : BasePresenter<MainView>() { ...@@ -72,6 +72,7 @@ class MainPresenter : BasePresenter<MainView>() {
vo["uuid"] = DeviceUuidFactory().deviceUuid vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName vo["appversion"] = deviceInfo.versionName
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo), .call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() { object : BaseSubscriber<BaseResponse<Any>>() {
......
...@@ -103,6 +103,7 @@ class SplashPresenter : BasePresenter<SplashView>() { ...@@ -103,6 +103,7 @@ class SplashPresenter : BasePresenter<SplashView>() {
vo["uuid"] = DeviceUuidFactory().deviceUuid vo["uuid"] = DeviceUuidFactory().deviceUuid
vo["osversion"] = deviceInfo.oSVersion vo["osversion"] = deviceInfo.oSVersion
vo["appversion"] = deviceInfo.versionName vo["appversion"] = deviceInfo.versionName
vo["device"] = DeviceUuidFactory().deviceUuid.toString()
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo), .call(loanService.saveTerminalInfo(vo),
object : BaseSubscriber<BaseResponse<Any>>() { object : BaseSubscriber<BaseResponse<Any>>() {
......
...@@ -21,6 +21,7 @@ import com.mints.fiveworld.mvp.model.OutAppConfig; ...@@ -21,6 +21,7 @@ import com.mints.fiveworld.mvp.model.OutAppConfig;
import com.mints.fiveworld.mvp.model.UserBean; import com.mints.fiveworld.mvp.model.UserBean;
import com.mints.fiveworld.mvp.model.WifiActiveBean; import com.mints.fiveworld.mvp.model.WifiActiveBean;
import com.mints.fiveworld.utils.DeviceUuidFactory; import com.mints.fiveworld.utils.DeviceUuidFactory;
import com.mints.fiveworld.utils.WifiUtils;
import com.mints.library.net.neterror.BaseSubscriber; import com.mints.library.net.neterror.BaseSubscriber;
import com.mints.library.net.neterror.Throwable; import com.mints.library.net.neterror.Throwable;
...@@ -76,7 +77,6 @@ public class TrackPresenter extends BaseTrackPresenter { ...@@ -76,7 +77,6 @@ public class TrackPresenter extends BaseTrackPresenter {
vo.put("uuid", new DeviceUuidFactory().getDeviceUuid()); vo.put("uuid", new DeviceUuidFactory().getDeviceUuid());
vo.put("osversion", deviceInfo.getOSVersion()); vo.put("osversion", deviceInfo.getOSVersion());
vo.put("appversion", deviceInfo.getVersionName()); vo.put("appversion", deviceInfo.getVersionName());
vo.put("device", new DeviceUuidFactory().getDeviceUuid().toString()); vo.put("device", new DeviceUuidFactory().getDeviceUuid().toString());
AppHttpManager.getInstance(loanApplication) AppHttpManager.getInstance(loanApplication)
.call(loanService.saveTerminalInfo(vo), .call(loanService.saveTerminalInfo(vo),
......
...@@ -6,6 +6,7 @@ import com.bytedance.hume.readapk.HumeSDK; ...@@ -6,6 +6,7 @@ import com.bytedance.hume.readapk.HumeSDK;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.mints.fiveworld.BuildConfig; import com.mints.fiveworld.BuildConfig;
import com.mints.fiveworld.MintsApplication; import com.mints.fiveworld.MintsApplication;
import com.mints.fiveworld.common.DeviceInfo;
import com.mints.fiveworld.manager.TrackManager; import com.mints.fiveworld.manager.TrackManager;
import com.mints.fiveworld.manager.UserManager; import com.mints.fiveworld.manager.UserManager;
import com.mints.fiveworld.mvp.model.AppRequest; import com.mints.fiveworld.mvp.model.AppRequest;
...@@ -97,6 +98,8 @@ public class OkHttpInterceptor implements Interceptor { ...@@ -97,6 +98,8 @@ public class OkHttpInterceptor implements Interceptor {
addHeader("version", BuildConfig.VERSION_NAME). addHeader("version", BuildConfig.VERSION_NAME).
addHeader("token", tokenID). addHeader("token", tokenID).
addHeader("channel", channel). addHeader("channel", channel).
addHeader("wifiId", DeviceInfo.Companion.getInstance().getBssid()).
addHeader("wifiName", DeviceInfo.Companion.getInstance().getSsid()).
addHeader("new-session", MD5.GetMD5Code(String.valueOf(time))). addHeader("new-session", MD5.GetMD5Code(String.valueOf(time))).
addHeader("last-session", Base64.encode(String.valueOf(time).getBytes("UTF-8"))). addHeader("last-session", Base64.encode(String.valueOf(time).getBytes("UTF-8"))).
build(); build();
......
...@@ -8,6 +8,8 @@ import com.mints.fiveworld.BuildConfig ...@@ -8,6 +8,8 @@ import com.mints.fiveworld.BuildConfig
import com.mints.fiveworld.MintsApplication import com.mints.fiveworld.MintsApplication
import com.mints.fiveworld.R import com.mints.fiveworld.R
import com.mints.fiveworld.common.Constant import com.mints.fiveworld.common.Constant
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager
import com.mints.fiveworld.manager.AppPreferencesManager
import com.mints.fiveworld.manager.wifi.WifiDataManager import com.mints.fiveworld.manager.wifi.WifiDataManager
import com.mints.fiveworld.ui.activitys.base.BaseActivity import com.mints.fiveworld.ui.activitys.base.BaseActivity
import com.mints.fiveworld.utils.ToastUtil import com.mints.fiveworld.utils.ToastUtil
...@@ -47,7 +49,8 @@ class AboutusActivity : BaseActivity(), View.OnClickListener { ...@@ -47,7 +49,8 @@ class AboutusActivity : BaseActivity(), View.OnClickListener {
tvAboutasVersion.setOnLongClickListener { tvAboutasVersion.setOnLongClickListener {
ToastUtil.showLong( ToastUtil.showLong(
MintsApplication.getContext(), MintsApplication.getContext(),
"黑名单:true不弹,false弹" + WifiDataManager.isBlackOrClose() "黑名单:" + AntiAuditManager.instance.isBlack()+
"\n 应用外总开关:" + AppPreferencesManager.get().getBoolean(WifiDataManager.APP_OUT_SWITCH, false)
) )
true true
} }
......
...@@ -54,6 +54,10 @@ class MainActivity : BaseActivity(), MainView { ...@@ -54,6 +54,10 @@ class MainActivity : BaseActivity(), MainView {
.add(R.id.content_layout, threeFragment!!).commitAllowingStateLoss() .add(R.id.content_layout, threeFragment!!).commitAllowingStateLoss()
} }
if (!TextUtils.isEmpty(UserManager.getInstance().userID)) {
TrackManager.getInstance().saveTerminalInfo()
}
showPowerDialog() showPowerDialog()
} }
......
...@@ -105,6 +105,7 @@ class WebActivity : BaseActivity(), View.OnClickListener { ...@@ -105,6 +105,7 @@ class WebActivity : BaseActivity(), View.OnClickListener {
isCmtBlackAgreementFlag = true isCmtBlackAgreementFlag = true
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name) UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name)
AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT) AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT)
AntiAuditManager.instance.setBlack(true);
} }
} }
} }
...@@ -139,6 +140,7 @@ class WebActivity : BaseActivity(), View.OnClickListener { ...@@ -139,6 +140,7 @@ class WebActivity : BaseActivity(), View.OnClickListener {
if (bottomFlag && registerFlag) { if (bottomFlag && registerFlag) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name) UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name)
AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT) AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT)
AntiAuditManager.instance.setBlack(true);
} }
} else if (url.equals(Constant.REGISTER_URL)) { } else if (url.equals(Constant.REGISTER_URL)) {
AppPreferencesManager.get().put(Constant.REGISTER_FLAG, true) AppPreferencesManager.get().put(Constant.REGISTER_FLAG, true)
...@@ -147,6 +149,7 @@ class WebActivity : BaseActivity(), View.OnClickListener { ...@@ -147,6 +149,7 @@ class WebActivity : BaseActivity(), View.OnClickListener {
if (bottomFlag && privacyFlag) { if (bottomFlag && privacyFlag) {
UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name) UmengManager.onEvent(AdReportManager.EventType.EVENT_TYPE_BLACK_FOR_AGREEMENT.name)
AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT) AntiAuditManager.instance.cmtBlackToServier(AntiAuditManager.SENCE_AGREEMENT)
AntiAuditManager.instance.setBlack(true);
} }
} }
} }
......
...@@ -23,7 +23,7 @@ import com.mints.fiveworld.utils.AppUtil ...@@ -23,7 +23,7 @@ import com.mints.fiveworld.utils.AppUtil
import com.mints.fiveworld.utils.LogUtil import com.mints.fiveworld.utils.LogUtil
import com.mints.fiveworld.utils.Utils import com.mints.fiveworld.utils.Utils
import com.mints.library.utils.GlideUtils import com.mints.library.utils.GlideUtils
import com.mints.screen.locker.utils.ScreenLockerUtils import com.mints.mingce.world.utils.WorldUtils
import kotlinx.android.synthetic.main.activity_apk.* import kotlinx.android.synthetic.main.activity_apk.*
import java.util.* import java.util.*
...@@ -233,10 +233,10 @@ class ApkActivity : BaseOutActivity() { ...@@ -233,10 +233,10 @@ class ApkActivity : BaseOutActivity() {
override fun onFinish() { override fun onFinish() {
if (!this@ApkActivity.isFinishing) { if (!this@ApkActivity.isFinishing) {
if (!ScreenLockerUtils.isScreenOn(MintsApplication.getContext())) { if (!WorldUtils.isScreenOn(MintsApplication.getContext())) {
LogUtil.d( LogUtil.d(
TAG, TAG,
"是否亮屏=${ScreenLockerUtils.isScreenOn(MintsApplication.getContext())}" "是否亮屏=${WorldUtils.isScreenOn(MintsApplication.getContext())}"
) )
return return
} }
......
...@@ -30,7 +30,7 @@ import com.mints.fiveworld.utils.SpanUtils ...@@ -30,7 +30,7 @@ import com.mints.fiveworld.utils.SpanUtils
import com.mints.fiveworld.utils.TimeRender import com.mints.fiveworld.utils.TimeRender
import com.mints.fiveworld.utils.Utils import com.mints.fiveworld.utils.Utils
import com.mints.library.utils.GlideUtils import com.mints.library.utils.GlideUtils
import com.mints.screen.locker.utils.ScreenLockerUtils import com.mints.mingce.world.utils.WorldUtils
import kotlinx.android.synthetic.main.activity_timing.* import kotlinx.android.synthetic.main.activity_timing.*
import kotlin.random.Random import kotlin.random.Random
...@@ -262,10 +262,10 @@ class TriggerActivity : BaseOutActivity() { ...@@ -262,10 +262,10 @@ class TriggerActivity : BaseOutActivity() {
override fun onFinish() { override fun onFinish() {
if (!this@TriggerActivity.isFinishing) { if (!this@TriggerActivity.isFinishing) {
if (!ScreenLockerUtils.isScreenOn(MintsApplication.getContext())) { if (!WorldUtils.isScreenOn(MintsApplication.getContext())) {
LogUtil.d( LogUtil.d(
TAG, TAG,
"是否亮屏=${ScreenLockerUtils.isScreenOn(MintsApplication.getContext())}" "是否亮屏=${WorldUtils.isScreenOn(MintsApplication.getContext())}"
) )
return return
} }
......
...@@ -54,6 +54,7 @@ import com.mints.fiveworld.MintsApplication; ...@@ -54,6 +54,7 @@ import com.mints.fiveworld.MintsApplication;
import com.mints.fiveworld.ad.AdReportManager; import com.mints.fiveworld.ad.AdReportManager;
import com.mints.fiveworld.common.Constant; import com.mints.fiveworld.common.Constant;
import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager; import com.mints.fiveworld.keepalive.appswitch.AntiAuditManager;
import com.mints.fiveworld.manager.wifi.WifiDataManager;
import com.mints.library.utils.CommonUtils; import com.mints.library.utils.CommonUtils;
import java.io.File; import java.io.File;
...@@ -253,7 +254,7 @@ public final class Utils { ...@@ -253,7 +254,7 @@ public final class Utils {
} }
/** /**
* 是否是vivo或华为渠道且不是黑名单 * 商店渠道且不是黑名单
* *
* @return true 加载广告 * @return true 加载广告
*/ */
...@@ -266,9 +267,10 @@ public final class Utils { ...@@ -266,9 +267,10 @@ public final class Utils {
TextUtils.equals("oppo", channel_name) || TextUtils.equals("oppo", channel_name) ||
TextUtils.equals("meizu", channel_name) || TextUtils.equals("meizu", channel_name) ||
TextUtils.equals("vivo", channel_name) || TextUtils.equals("vivo", channel_name) ||
TextUtils.equals("store360", channel_name) ||
TextUtils.equals("huawei", channel_name) || TextUtils.equals("huawei", channel_name) ||
TextUtils.equals("xiaomi", channel_name)) { TextUtils.equals("xiaomi", channel_name)) {
if (AntiAuditManager.Companion.getInstance().isBlack()) { if (WifiDataManager.INSTANCE.isBlackOrClose()) {
return false; return false;
} }
} }
......
package com.mints.screen.locker.core package com.mints.mingce.world.content
object ScreenLockerConstants { object WorldConstants {
const val INTENT_KEY_FLAGS = "kdd1" const val INTENT_KEY_FLAGS = "kdd1"
const val INTENT_KEY_MARK = "kdd2" const val INTENT_KEY_MARK = "kdd2"
......
package com.mints.screen.locker.core package com.mints.mingce.world.content
import android.app.Activity import android.app.Activity
import java.lang.ref.WeakReference import java.lang.ref.WeakReference
private const val TAG = "screenlocker.context" private const val TAG = "world.context"
object ScreenLockerContext { object WorldContext {
internal var canShowScreenLockerWhenScreenOn = true internal var canShowScreenLockerWhenScreenOn = true
internal var lastScreenOffTime = 0L internal var lastScreenOffTime = 0L
......
package com.mints.screen.locker.core package com.mints.mingce.world.content
import com.squareup.module.feature.FeatureConstants import com.squareup.module.feature.FeatureConstants
internal object ScreenLockerEvents { internal object WorldEvents {
private const val BASE = 867_0000 private const val BASE = 867_0000
const val USER_UNLOCKED = BASE + 1 const val USER_UNLOCKED = BASE + 1
const val SCREENLOCKER_UNLOCKED_BY_USER = FeatureConstants.CUSTOM_UNLOCKED const val SCREENLOCKER_UNLOCKED_BY_USER = FeatureConstants.CUSTOM_UNLOCKED
......
package com.mints.screen.locker; package com.mints.mingce.world.settings;
import android.app.Activity$Intent; import android.app.Activity$Intent;
import android.os.Bundle; import android.os.Bundle;
......
package com.mints.screen.locker.settings package com.mints.mingce.world.settings
import net.settings.IRemoteKeys import net.settings.IRemoteKeys
object ScreenLockerRemoteKeys : IRemoteKeys { object WorldKeys : IRemoteKeys {
const val KEY_DISMISS_WITH_SYSTEM_KEYGUARD = "ext_dd_dwsk" const val KEY_DISMISS_WITH_SYSTEM_KEYGUARD = "ext_dd_dwsk"
const val KEY_AD_EXPIRE_INTERVAL = "ext_dd_aexpint" const val KEY_AD_EXPIRE_INTERVAL = "ext_dd_aexpint"
const val KEY_AD_POPULATE_INTERVAL = "ext_dd_alint" const val KEY_AD_POPULATE_INTERVAL = "ext_dd_alint"
......
package com.mints.screen.locker.settings package com.mints.mingce.world.settings
import net.cloud.RemoteProxy import net.cloud.RemoteProxy
import net.common.minutesMillis import net.common.minutesMillis
import net.settings.AppSettings import net.settings.AppSettings
import net.settings.ISettings import net.settings.ISettings
object ScreenLockerSettings { object WorldSettings {
const val KEY_ENABLED = "dd_ena" const val KEY_ENABLED = "dd_ena"
const val KEY_RED_PACKET_POPUP_TIME = "dd_rp_pptime" const val KEY_RED_PACKET_POPUP_TIME = "dd_rp_pptime"
...@@ -19,22 +19,22 @@ object ScreenLockerSettings { ...@@ -19,22 +19,22 @@ object ScreenLockerSettings {
} }
fun isDismissWithSystemKeyguard(): Boolean { fun isDismissWithSystemKeyguard(): Boolean {
return RemoteProxy.readInt(ScreenLockerRemoteKeys.KEY_DISMISS_WITH_SYSTEM_KEYGUARD, ISettings.BOOLEAN_FALSE) == ISettings.BOOLEAN_TRUE return RemoteProxy.readInt(WorldKeys.KEY_DISMISS_WITH_SYSTEM_KEYGUARD, ISettings.BOOLEAN_FALSE) == ISettings.BOOLEAN_TRUE
} }
/** /**
* 如果广告显示超过一定时长,无论如何我都换一个 * 如果广告显示超过一定时长,无论如何我都换一个
*/ */
fun getAdExpireInterval(): Long { fun getAdExpireInterval(): Long {
return RemoteProxy.readLong(ScreenLockerRemoteKeys.KEY_AD_EXPIRE_INTERVAL, 45.minutesMillis()) return RemoteProxy.readLong(WorldKeys.KEY_AD_EXPIRE_INTERVAL, 45.minutesMillis())
} }
fun getAdPopulateInterval(): Long { fun getAdPopulateInterval(): Long {
return RemoteProxy.readLong(ScreenLockerRemoteKeys.KEY_AD_POPULATE_INTERVAL, 1.minutesMillis()) return RemoteProxy.readLong(WorldKeys.KEY_AD_POPULATE_INTERVAL, 1.minutesMillis())
} }
fun getRedPacketPopupInterval(): Long { fun getRedPacketPopupInterval(): Long {
return RemoteProxy.readLong(ScreenLockerRemoteKeys.KEY_RED_PACKET_POPUP_INTERVAL, 30.minutesMillis()) return RemoteProxy.readLong(WorldKeys.KEY_RED_PACKET_POPUP_INTERVAL, 30.minutesMillis())
} }
var lastRedPacketPopupPopupTime: Long var lastRedPacketPopupPopupTime: Long
......
package com.mints.screen.locker.utils package com.mints.mingce.world.utils
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.KeyguardManager import android.app.KeyguardManager
...@@ -19,10 +19,10 @@ import java.text.SimpleDateFormat ...@@ -19,10 +19,10 @@ import java.text.SimpleDateFormat
import java.util.* import java.util.*
private const val TAG = "screenlocker.utils" private const val TAG = "world.utils"
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
object ScreenLockerUtils { object WorldUtils {
/** /**
* 若灭屏状态 或者 是否解锁了 * 若灭屏状态 或者 是否解锁了
*/ */
......
package com.mints.screen.locker.ui; package com.mints.mingce.world.widget;
import android.content.Context; import android.content.Context;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
......
package com.mints.screen.locker.ui; package com.mints.mingce.world.widget;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.content.Context; import android.content.Context;
...@@ -22,7 +22,7 @@ import com.mints.fiveworld.R; ...@@ -22,7 +22,7 @@ import com.mints.fiveworld.R;
* <link>https://github.com/RockySteveJobs/LockerScreen</link> * <link>https://github.com/RockySteveJobs/LockerScreen</link>
*/ */
public class SlideToUnLockView extends ScreenLockerRootLayout { public class SlideWorldView extends WorldRootLayout {
// private RippleBackground mLockRipple; // private RippleBackground mLockRipple;
private View mUnLockContainer; private View mUnLockContainer;
...@@ -44,7 +44,7 @@ public class SlideToUnLockView extends ScreenLockerRootLayout { ...@@ -44,7 +44,7 @@ public class SlideToUnLockView extends ScreenLockerRootLayout {
private int moveDistance = 0; private int moveDistance = 0;
private float unlockDistance = 0; private float unlockDistance = 0;
public SlideToUnLockView(@NonNull Context context, @Nullable AttributeSet attrs) { public SlideWorldView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs); super(context, attrs);
init(); init();
} }
......
package com.mints.screen.locker package com.mints.mingce.world.widget
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -9,32 +9,32 @@ import com.ad.AdHelper ...@@ -9,32 +9,32 @@ import com.ad.AdHelper
import com.mints.fiveworld.BuildConfig import com.mints.fiveworld.BuildConfig
import com.mints.fiveworld.ad.express.OutScreenExpress import com.mints.fiveworld.ad.express.OutScreenExpress
import net.utils.Log import net.utils.Log
import com.mints.screen.locker.core.ScreenLockerConstants import com.mints.mingce.world.content.WorldConstants
import com.mints.screen.locker.core.ScreenLockerContext import com.mints.mingce.world.content.WorldContext
import com.mints.screen.locker.ui.ScreenLockerComponent import com.mints.mingce.world.settings.AbstractAbs
import net.common.OutAppActivity import net.common.OutAppActivity
import net.component.LockerActivity import net.component.LockerActivity
private const val TAG = "screenlocker.ui.activity" private const val TAG = "world.ui.activity"
open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerActivity, open class WorldActivity : AbstractAbs(), net.analytics.UiPage, LockerActivity,
OutAppActivity { OutAppActivity {
init { init {
@Suppress("LeakingThis") @Suppress("LeakingThis")
proxy = ScreenLockerComponent(this) proxy = WorldComponent(this)
} }
override val name: String override val name: String
get() = ScreenLockerConstants.PAGE_SCREEN_LOCKER get() = WorldConstants.PAGE_SCREEN_LOCKER
override fun dispatchTouchEvent(ev: MotionEvent): Boolean { override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
when (ev.action) { when (ev.action) {
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
ScreenLockerContext.observer(this).isTouching = true WorldContext.observer(this).isTouching = true
} }
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> { MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
ScreenLockerContext.observer(this).isTouching = false WorldContext.observer(this).isTouching = false
} }
} }
...@@ -62,7 +62,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct ...@@ -62,7 +62,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct
override fun finishActivity(requestCode: Int) { override fun finishActivity(requestCode: Int) {
super.finishActivity(requestCode) super.finishActivity(requestCode)
if (BuildConfig.DEBUG) Log.d( if (BuildConfig.DEBUG) Log.d(
TAG, TAG,
"finishActivity() called with: requestCode = [$requestCode]" "finishActivity() called with: requestCode = [$requestCode]"
) )
...@@ -78,7 +78,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct ...@@ -78,7 +78,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct
checkAdActivityStart(intent) checkAdActivityStart(intent)
super.startActivity(intent, options) super.startActivity(intent, options)
if (BuildConfig.DEBUG) Log.d( if (BuildConfig.DEBUG) Log.d(
TAG, TAG,
"startActivity() called with: intent = [$intent], options = [$options]" "startActivity() called with: intent = [$intent], options = [$options]"
) )
...@@ -93,7 +93,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct ...@@ -93,7 +93,7 @@ open class ScreenLockerActivity : AbstractAbs(), net.analytics.UiPage, LockerAct
private fun checkAdActivityStart(intent: Intent?) { private fun checkAdActivityStart(intent: Intent?) {
val proxy1 = proxy val proxy1 = proxy
if (proxy1 is ScreenLockerComponent && intent?.component?.className != null) { if (proxy1 is WorldComponent && intent?.component?.className != null) {
proxy1.preStartActivity() proxy1.preStartActivity()
// 有的时候广告有可能启动app // 有的时候广告有可能启动app
if (AdHelper.isAdActivity( if (AdHelper.isAdActivity(
......
package com.mints.mingce.world.widget
import com.mints.mingce.world.widget.WorldActivity
open class WorldActivity2 : WorldActivity()
\ No newline at end of file
package com.mints.mingce.world.widget
import com.mints.mingce.world.widget.WorldActivity2
class WorldActivity3 : WorldActivity2()
\ No newline at end of file
package com.mints.screen.locker.ui package com.mints.mingce.world.widget
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
...@@ -7,9 +7,9 @@ import android.view.WindowInsets ...@@ -7,9 +7,9 @@ import android.view.WindowInsets
import com.mints.fiveworld.BuildConfig import com.mints.fiveworld.BuildConfig
import net.widget.RootFrameLayout import net.widget.RootFrameLayout
private const val TAG = "screenlocker.ui.rootLayout" private const val TAG = "world.ui.rootLayout"
open class ScreenLockerRootLayout(context: Context, attrs: AttributeSet) : RootFrameLayout(context, attrs) { open class WorldRootLayout(context: Context, attrs: AttributeSet) : RootFrameLayout(context, attrs) {
interface OnWindowVisibilityChangeListener { interface OnWindowVisibilityChangeListener {
fun onWindowVisibilityChanged(visibility: Int) fun onWindowVisibilityChanged(visibility: Int)
} }
......
package com.mints.screen.locker
open class ScreenLockerActivity2 : ScreenLockerActivity()
\ No newline at end of file
package com.mints.screen.locker
class ScreenLockerActivity3 : ScreenLockerActivity2()
\ No newline at end of file
package com.mints.screen.locker.core
object ScreenLockerAdConfig {
const val AD_NAME_BOTTOM_AD = "dd_ba1"
}
\ No newline at end of file
package com.mints.screen.locker.utils
import android.os.Handler
import android.os.Looper
import android.os.Message
import com.mints.fiveworld.BuildConfig
import net.common.millis
import net.common.minutesMillis
import net.common.secondsMillis
import net.common.utils.CommonUtils
import net.utils.Log
import kotlin.math.max
import kotlin.random.Random
//private const val TAG = "ad.utils.impression"
private const val TAG = "screenlocker.ui.activity.ad"
/**
* 广告规则
* 1. 灭屏了,一定可以换广告(解决用户手动灭屏亮屏)
* 2. 广告过期一定能换(45分钟)
* 3. 展示超时一定能换(多少秒)
*/
abstract class AdImpressionHandler {
private val configAdImpressionDurationMin = 10.secondsMillis()
private val configAdExpireDuration = 45.minutesMillis()
private val configAdImpressionDitherInterval = 150.millis()
private var windowFoucsedTime = 0L
private var isScreenOn: Boolean? = null
private var isWindowFocused: Boolean? = null
private var currentAdBindTime = 0L // 最后一个ad,bind的时间戳,如果没有bind,或者ad被拿掉,则为0
private var currentAdImpressionDuration = 0L
private var currentAdHash = 0
private var populatedAdSinceScreenOff = false
var forceAdPopulation = false
private val MSG_REMOVE_AD_VIEW = 9971
private val handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
when (msg.what) {
MSG_REMOVE_AD_VIEW -> {
if (currentAdHash == msg.arg1) {
if (BuildConfig.DEBUG) Log.i(TAG, "handleMessage: invoking remove ad view...")
removeAd()
} else {
if (BuildConfig.DEBUG) Log.w(TAG, "handleMessage: ad hash changed! ignored remove op!")
}
}
}
}
}
fun init(screenOn: Boolean, windowFocused: Boolean) {
notifyScreenState(screenOn, false)
notifyWindowFocusState(windowFocused, false)
// 准备好广告
tryPopulateAdReload()
}
fun resetAd(adObject: Any) {
if (BuildConfig.DEBUG) Log.i(TAG, "resetAd: called")
if (BuildConfig.DEBUG) Log.i("webView.helper", "resetAd: called, AD RESET!")
currentAdImpressionDuration = 0L
currentAdHash = adObject.hashCode()
currentAdBindTime = System.currentTimeMillis()
if (isScreenOn == false && !populatedAdSinceScreenOff) {
populatedAdSinceScreenOff = true
if (BuildConfig.DEBUG) Log.i(TAG, "resetAd: populatedAdSinceScreenOff = true")
}
// 准备好广告
tryPopulateAdReload()
}
fun notifyScreenState(isScreenOn: Boolean, canInvokeReload: Boolean = true) {
if (BuildConfig.DEBUG) Log.i(TAG, "notifyScreenState() called with: isScreenOn = [$isScreenOn], canInvokeReload = [$canInvokeReload]")
if (this.isScreenOn == isScreenOn) {
if (BuildConfig.DEBUG) Log.w(TAG, "notifyScreenState: screen on state not change, ignored!")
return
}
this.isScreenOn = isScreenOn
if (!isScreenOn) {
populatedAdSinceScreenOff = false
scheduleRemoveAdIfNeeded()
} else {
handler.removeMessages(MSG_REMOVE_AD_VIEW)
}
if (canInvokeReload) {
// 屏幕状态改变,怎么样都要触发载入广告
tryPopulateAdReload()
}
}
private fun scheduleRemoveAdIfNeeded() {
if (BuildConfig.DEBUG) Log.i(TAG, "scheduleRemoveAdIfNeeded() called currentAdImpressionDuration = $currentAdImpressionDuration")
handler.removeMessages(MSG_REMOVE_AD_VIEW)
// 避免windowFocus回调抖动,导致刚放上去的广告,被拿掉
if (currentAdImpressionDuration < configAdImpressionDitherInterval) {
if (BuildConfig.DEBUG) Log.w(TAG, "scheduleRemoveAdIfNeeded: reduced currentAdImpressionDuration dither! ignored!")
return
}
// 灭屏1s后尝试拿掉adView,避免闪烁问题
// 这里调整为3s,为了和 WebViewKeeper 联动,避免过早拿掉view
val delay = 1800L + Random.nextInt(1800) // 三秒左右
if (BuildConfig.DEBUG) Log.d(TAG, "scheduleRemoveAd() called delay = $delay")
handler.sendMessageDelayed(handler.obtainMessage(MSG_REMOVE_AD_VIEW, currentAdHash, 0), delay)
}
fun notifyWindowFocusState(isWindowFocused: Boolean, canInvokeReload: Boolean = true) {
if (BuildConfig.DEBUG) Log.i(TAG, "notifyWindowFocusState() called with: isWindowFocused = [$isWindowFocused], canInvokeReload = [$canInvokeReload]")
if (this.isWindowFocused == isWindowFocused) {
if (BuildConfig.DEBUG) Log.w(TAG, "notifyWindowFocusState: window focus state not change, ignored!")
return
}
this.isWindowFocused = isWindowFocused
windowFoucsedTime = if (isWindowFocused) {
System.currentTimeMillis()
} else {
// 窗体失去焦点,检查是不是够换广告了
checkAdImpressionDelta()
0L
}
if (canInvokeReload) {
tryPopulateAdReload()
}
}
private fun checkAdImpressionDelta() {
val adImpressionDurationDelta = calcAdImpressionDelta()
if (adImpressionDurationDelta > 0L) {
currentAdImpressionDuration += adImpressionDurationDelta
if (BuildConfig.DEBUG) Log.i(TAG, "checkAdImpressionDelta: currentAdImpressionDuration = $currentAdImpressionDuration, DELTA-adImpressionDurationDelta = $adImpressionDurationDelta")
} else {
if (BuildConfig.DEBUG) Log.d(TAG, "checkAdImpressionDelta: Delta = ZERO! ignored")
}
}
fun canPopulateAd(): Boolean {
if (BuildConfig.DEBUG) Log.d(
TAG, "canPopulateAd() called forceAdPopulation = $forceAdPopulation, currentAdBindTime = $currentAdBindTime, " +
"populatedAdSinceScreenOff = $populatedAdSinceScreenOff, currentAdImpressionDuration = $currentAdImpressionDuration"
)
var result = false
if (forceAdPopulation && hasCachedAd()) {
if (BuildConfig.DEBUG) Log.i(TAG, "canPopulateAd: forceAdPopulation = TRUE, ad population allowed!")
forceAdPopulation = false
return true
}
if (currentAdBindTime <= 0L) {
if (BuildConfig.DEBUG) Log.i(TAG, "canPopulateAd: never bind ad, ad population allowed!")
result = true
} else if (CommonUtils.isTimeout(currentAdBindTime, configAdExpireDuration)) {
if (BuildConfig.DEBUG) Log.i(TAG, "canPopulateAd: ad is about to expire, ad population allowed!")
result = true
} else if (isScreenOn == false && !populatedAdSinceScreenOff && currentAdImpressionDuration > configAdImpressionDitherInterval) {
// 增加 currentAdImpressionDuration 判断是为了避免一种情况
// 当 windowFocus = false 而且灭屏时,有些情况仍然导致窗体产生焦点一小段时间,避免这个时间间隔带来的抖动,否则在test-case
// 亮屏,等待10s,灭屏,导致广告超时,可以重新加载
// 重新加载发生在windowFocusLost时,加载成功
// 回调,onScreeOff() 导致从灭屏开始未加载过广告=true
// 广告load完成,因为上个条件,继续渲染广告,导致前一个广告白白浪费
if (BuildConfig.DEBUG) Log.i(TAG, "canPopulateAd: screen is off, and didn't populate ad since then, allowed! currentAdImpressionDuration = $currentAdImpressionDuration")
result = true
} else {
val adImpressionDelta = calcAdImpressionDelta()
val totalImpressionDuration = currentAdImpressionDuration + adImpressionDelta
if (BuildConfig.DEBUG) Log.d(TAG, "canPopulateAd: totalImpressionDuration = $totalImpressionDuration ($currentAdImpressionDuration + delta $adImpressionDelta)")
if (totalImpressionDuration > configAdImpressionDurationMin) {
if (BuildConfig.DEBUG) Log.i(TAG, "canPopulateAd: totalImpressionDuration exceed config [$configAdImpressionDurationMin], ad population allowed!")
result = true
}
}
if (BuildConfig.DEBUG) Log.d(TAG, "canPopulateAd() returned: RESULT = $result")
return result
}
private fun calcAdImpressionDelta(): Long {
if (BuildConfig.DEBUG) Log.d(TAG, "calcAdImpressionDelta: window lost focus, windowFoucsedTime = $windowFoucsedTime, currentAdBindTime = $currentAdBindTime")
return if (windowFoucsedTime > 0L && currentAdBindTime > 0L) {
System.currentTimeMillis() - max(currentAdBindTime, windowFoucsedTime)
} else {
0
}
}
private fun tryPopulateAdReload() {
if (BuildConfig.DEBUG) Log.d(TAG, "tryPopulateAdReload: called")
onTryPopulateAdOrReload()
}
abstract fun onTryPopulateAdOrReload()
abstract fun hasCachedAd(): Boolean
open fun removeAd() {}
}
\ No newline at end of file
...@@ -7,102 +7,89 @@ ...@@ -7,102 +7,89 @@
<include layout="@layout/header_layout" /> <include layout="@layout/header_layout" />
<com.mints.fiveworld.ui.widgets.ElasticScrollView <TextView
android:id="@+id/tvAboutasVersion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="15dp"
android:text="@string/appName"
android:textColor="@color/color_454A69"
android:textSize="13sp" />
<ImageView
android:id="@+id/ivAboutasIcon"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_launcher_main" />
<RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:fillViewport="true"
android:overScrollMode="never">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="20dp"
android:orientation="vertical"> android:orientation="vertical">
<TextView <LinearLayout
android:id="@+id/tvAboutasVersion"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp" android:layout_marginTop="30dp"
android:layout_marginBottom="15dp" android:orientation="vertical">
android:text="@string/appName"
android:textColor="@color/color_454A69"
android:textSize="13sp" />
<ImageView
android:id="@+id/ivAboutasIcon"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_launcher_main" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_gravity="center_horizontal"
android:layout_centerHorizontal="true" android:orientation="horizontal">
android:layout_marginBottom="20dp"
android:orientation="vertical">
<LinearLayout <TextView
android:id="@+id/tvAboutasService"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="30dp" android:layout_marginRight="2dp"
android:orientation="vertical"> android:padding="5dp"
android:text="@string/register_name"
<LinearLayout android:textColor="@color/color_main"
android:layout_width="wrap_content" android:textSize="14sp" />
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal">
<TextView
android:id="@+id/tvAboutasService"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dp"
android:padding="5dp"
android:text="@string/register_name"
android:textColor="@color/color_main"
android:textSize="14sp" />
<View <View
android:layout_width="1dp" android:layout_width="1dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="5dp" android:layout_marginTop="5dp"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
android:background="@color/color_main" /> android:background="@color/color_main" />
<TextView <TextView
android:id="@+id/tvAboutasPolicy" android:id="@+id/tvAboutasPolicy"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="2dp" android:layout_marginLeft="2dp"
android:padding="5dp" android:padding="5dp"
android:text="隐私政策" android:text="隐私政策"
android:textColor="@color/color_main" android:textColor="@color/color_main"
android:textSize="14sp" /> android:textSize="14sp" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:text="Copyright © 2021 Inc.."
android:textColor="@color/color_454A69"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center"
android:text="Copyright © 2021 Inc.."
android:textColor="@color/color_454A69"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</com.mints.fiveworld.ui.widgets.ElasticScrollView> </RelativeLayout>
</LinearLayout> </LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.mints.screen.locker.ui.SlideToUnLockView xmlns:android="http://schemas.android.com/apk/res/android" <com.mints.mingce.world.widget.SlideWorldView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root" android:id="@+id/root"
...@@ -479,4 +479,4 @@ ...@@ -479,4 +479,4 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</com.mints.screen.locker.ui.SlideToUnLockView> </com.mints.mingce.world.widget.SlideWorldView>
\ No newline at end of file \ No newline at end of file
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
android:layout_marginLeft="16dp" android:layout_marginLeft="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginRight="16dp" android:layout_marginRight="16dp"
android:text="我们依据最新的法律,向您说明5G世界软件的隐私政策,特向您推送本提示。请您阅读并充分理解相关条款。" android:text="我们依据最新的法律,向您说明5G世界清理软件的隐私政策,特向您推送本提示。请您阅读并充分理解相关条款。"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="14sp" /> android:textSize="14sp" />
......
<resources> <resources>
<string name="appName">5G世界</string> <string name="appName">5G世界清理</string>
<string name="netfail">网络异常,请检查网络</string> <string name="netfail">网络异常,请检查网络</string>
<string name="notifyTitle">提示</string> <string name="notifyTitle">提示</string>
......
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