From 0e16aa7dd4824442ec9fa64db5b03fe285bb335b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=8E=89=E4=B9=85?= Date: Tue, 8 Nov 2022 15:03:10 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E3=80=90V5.16.0=E3=80=91=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=B9=BF=E5=91=8A=E5=9B=BE=E2=80=94=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF=20https://jira.shanqu.cc/browse/GHZS-16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/FixedRateJobHelper.kt | 15 +- .../java/com/gh/common/constant/Config.java | 2 + .../main/java/com/gh/common/util/AdHelper.kt | 49 +++-- .../java/com/gh/common/util/DirectUtils.kt | 17 +- .../com/gh/common/util/NewFlatLogUtils.kt | 14 ++ .../java/com/gh/gamecenter/MainActivity.java | 187 +++++++++++++----- .../com/gh/gamecenter/SplashScreenActivity.kt | 1 - .../gh/gamecenter/entity/SettingsEntity.kt | 4 + .../gh/gamecenter/entity/StartupAdEntity.kt | 5 +- .../retrofit/service/ApiService.java | 12 +- .../drawable-xxxhdpi/ic_start_ad_logo.webp | Bin 0 -> 11800 bytes .../drawable/button_round_black_alpha_50.xml | 9 + ...n_round_black_alpha_50_stroke_white_20.xml | 13 ++ .../main/res/drawable/ic_startup_ad_arrow.xml | 17 ++ app/src/main/res/layout/activity_main.xml | 67 ++++++- .../gamecenter/common/constant/Constants.java | 2 + 16 files changed, 327 insertions(+), 87 deletions(-) create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_start_ad_logo.webp create mode 100644 app/src/main/res/drawable/button_round_black_alpha_50.xml create mode 100644 app/src/main/res/drawable/button_round_black_alpha_50_stroke_white_20.xml create mode 100644 app/src/main/res/drawable/ic_startup_ad_arrow.xml diff --git a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt index a506787ddb..276e411813 100644 --- a/app/src/main/java/com/gh/common/FixedRateJobHelper.kt +++ b/app/src/main/java/com/gh/common/FixedRateJobHelper.kt @@ -2,14 +2,15 @@ package com.gh.common import com.gh.common.exposure.ExposureManager import com.gh.common.filter.RegionSettingHelper -import com.gh.gamecenter.common.loghub.LoghubUtils -import com.gh.gamecenter.common.utils.doOnMainProcessOnly -import com.gh.gamecenter.common.utils.tryCatchInRelease +import com.gh.common.util.AdHelper import com.gh.common.videolog.VideoRecordUtils import com.gh.download.DownloadDataHelper -import com.gh.gamecenter.entity.TimeEntity +import com.gh.gamecenter.common.loghub.LoghubUtils import com.gh.gamecenter.common.retrofit.Response +import com.gh.gamecenter.common.utils.doOnMainProcessOnly +import com.gh.gamecenter.common.utils.tryCatchInRelease import com.gh.gamecenter.core.runOnUiThread +import com.gh.gamecenter.entity.TimeEntity import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers @@ -25,6 +26,7 @@ object FixedRateJobHelper { private const val DOWNLOAD_HEARTBEAT_PERIOD: Long = 60 * 1000L private const val DOWNLOAD_HEARTBEAT_SHEET_PERIOD: Long = 15 * 1000L + private const val STARTUP_AD: Long = 30 * 60 * 1000L private var mExecuteCount: Int = 0 @@ -82,6 +84,11 @@ object FixedRateJobHelper { VideoRecordUtils.commitVideoRecord() } + // 获取启动广告 + if ((mExecuteCount * CHECKER_PERIOD) % STARTUP_AD == 0L) { + AdHelper.getSettingAdCache() + } + // ExposureUtils.logADownloadCompleteExposureEvent(GameEntity(id = mExecuteCount.toString(), name = "测试曝光上传"), platform = "", trace = null, downloadType = ExposureUtils.DownloadType.DOWNLOAD) mExecuteCount++ } diff --git a/app/src/main/java/com/gh/common/constant/Config.java b/app/src/main/java/com/gh/common/constant/Config.java index e019ae0198..23ba6310e0 100644 --- a/app/src/main/java/com/gh/common/constant/Config.java +++ b/app/src/main/java/com/gh/common/constant/Config.java @@ -8,6 +8,7 @@ import android.text.TextUtils; import androidx.annotation.Nullable; +import com.gh.common.util.AdHelper; import com.gh.gamecenter.common.utils.DarkModeUtils; import com.gh.gamecenter.common.utils.EnvHelper; import com.gh.gamecenter.common.constant.Constants; @@ -195,6 +196,7 @@ public class Config { public static void setSettings(SettingsEntity settingsEntity) { getPreferences().edit().putString(SETTINGS_KEY, GsonUtils.toJson(settingsEntity)).apply(); mSettingsEntity = settingsEntity; + AdHelper.prefetchStartUpAd(settingsEntity); // 更新设置状态 mSettingsEntity.showArticleEntrance(); diff --git a/app/src/main/java/com/gh/common/util/AdHelper.kt b/app/src/main/java/com/gh/common/util/AdHelper.kt index 2c651118d1..883a352dcc 100644 --- a/app/src/main/java/com/gh/common/util/AdHelper.kt +++ b/app/src/main/java/com/gh/common/util/AdHelper.kt @@ -1,15 +1,14 @@ package com.gh.common.util import android.annotation.SuppressLint -import androidx.lifecycle.MutableLiveData import com.gh.common.constant.Config -import com.gh.gamecenter.common.utils.NetworkUtils +import com.gh.gamecenter.common.retrofit.Response +import com.gh.gamecenter.common.utils.ImageUtils +import com.gh.gamecenter.common.utils.observableToMain import com.gh.gamecenter.entity.SettingsEntity import com.gh.gamecenter.entity.StartupAdEntity -import com.gh.gamecenter.common.retrofit.BiResponse import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp -import io.reactivex.schedulers.Schedulers object AdHelper { @@ -19,24 +18,38 @@ object AdHelper { const val LOCATION_SUGGESTION_FUNCTION = "suggestion_function" const val LOCATION_SIMULATOR_GAME = "simulator_game" - @JvmField - var startupAd = MutableLiveData() - @JvmStatic @SuppressLint("CheckResult") - fun getStartUpAd() { - if (!NetworkUtils.isNetworkConnected(HaloApp.getInstance())) { - startupAd.postValue(null) - return + fun getStartUpAd(): StartupAdEntity? { + val startAd = Config.getSettings()?.startAd + if (startAd != null) { + return startAd } + return Config.getSettings()?.startup + } - RetrofitManager.getInstance() - .api - .getSplashAd(HaloApp.getInstance().channel) - .subscribeOn(Schedulers.io()) - .subscribe(object : BiResponse() { - override fun onSuccess(data: StartupAdEntity) { - startupAd.postValue(data) + @JvmStatic + fun prefetchStartUpAd(settingsEntity: SettingsEntity) { + if (settingsEntity.startAd != null && !settingsEntity.startAd?.img.isNullOrEmpty()) { + ImageUtils.prefetchToDiskCache(settingsEntity.startAd?.img!!) + } + } + + fun getSettingAdCache() { + RetrofitManager.getInstance().api + .getSettingAdCache(HaloApp.getInstance().channel) + .compose(observableToMain()) + .subscribe(object : Response() { + override fun onResponse(response: SettingsEntity?) { + super.onResponse(response) + val settings = Config.getSettings() + if (settings != null) { + settings.startAd = response?.startAd + Config.setSettings(settings) + if (response != null) { + prefetchStartUpAd(response) + } + } } }) } diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index 22499a596a..4c8a543399 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -9,31 +9,31 @@ import android.os.Build import android.os.Bundle import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity -import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout -import com.gh.gamecenter.common.base.activity.ToolBarActivity -import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout -import com.gh.gamecenter.core.AppExecutor import com.gh.common.constant.Config -import com.gh.gamecenter.common.constant.Constants import com.gh.common.exposure.ExposureEvent import com.gh.common.exposure.ExposureEvent.Companion.createEvent import com.gh.common.exposure.ExposureManager.log import com.gh.common.exposure.ExposureTraceUtils.appendTrace import com.gh.common.exposure.ExposureType -import com.gh.gamecenter.common.constant.EntranceConsts.* -import com.gh.common.util.EntranceUtils.* +import com.gh.common.util.EntranceUtils.jumpActivity import com.gh.gamecenter.* import com.gh.gamecenter.amway.AmwayActivity import com.gh.gamecenter.catalog.CatalogActivity import com.gh.gamecenter.category.CategoryDirectoryActivity import com.gh.gamecenter.category2.CategoryV2Activity +import com.gh.gamecenter.common.base.activity.BaseActivity +import com.gh.gamecenter.common.base.activity.BaseActivity_TabLayout +import com.gh.gamecenter.common.base.activity.ToolBarActivity +import com.gh.gamecenter.common.base.fragment.BaseFragment_TabLayout +import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.EntranceConsts +import com.gh.gamecenter.common.constant.EntranceConsts.* import com.gh.gamecenter.common.entity.CommunityEntity import com.gh.gamecenter.common.entity.Display import com.gh.gamecenter.common.entity.LinkEntity import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.common.utils.* +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.discovery.DiscoveryActivity import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE @@ -144,6 +144,7 @@ object DirectUtils { directToLinkPage(context, linkEntity, entrance, path, null) } + @JvmStatic fun directToLinkPage( context: Context, linkEntity: LinkEntity, diff --git a/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt index 810efdfb15..7213650469 100644 --- a/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt +++ b/app/src/main/java/com/gh/common/util/NewFlatLogUtils.kt @@ -824,4 +824,18 @@ object NewFlatLogUtils { log(json, "event", false) } + //跳过广告 + @JvmStatic + fun logOpenScreenAdSkip(adId: String, linkText: String, linkType: String, linkId: String) { + val json = json { + "event" to "open_screen_ad_skip" + "ad_id" to adId + "link_text" to linkText + "link_type" to linkType + "link_id" to linkId + parseAndPutMeta().invoke(this) + } + log(json, "event", false) + } + } \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index c832bd5b02..39c62230fd 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -1,7 +1,7 @@ package com.gh.gamecenter; +import static com.gh.gamecenter.common.constant.Constants.LOGIN_TAG; import static com.gh.gamecenter.common.constant.Constants.LOGOUT_TAG; -import static com.gh.gamecenter.login.utils.LoginHelper.WEIBO_SCOPE; import static com.gh.gamecenter.common.constant.EntranceConsts.ENTRANCE_BROWSER; import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_LAUNCH_SIMULATOR_GAME; import static com.gh.gamecenter.common.constant.EntranceConsts.HOST_QQ; @@ -14,7 +14,7 @@ import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TO; import static com.gh.gamecenter.common.constant.EntranceConsts.KEY_TYPE; import static com.gh.gamecenter.common.utils.ExtensionsKt.observableToMain; import static com.gh.gamecenter.fragment.MainWrapperFragment.INDEX_PERSONAL; -import static com.gh.gamecenter.common.constant.Constants.LOGIN_TAG; +import static com.gh.gamecenter.login.utils.LoginHelper.WEIBO_SCOPE; import android.annotation.SuppressLint; import android.app.Activity; @@ -26,6 +26,7 @@ import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.os.Handler; +import android.os.Message; import android.os.SystemClock; import android.preference.PreferenceManager; import android.text.Html; @@ -40,8 +41,13 @@ import androidx.constraintlayout.widget.ConstraintLayout; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProviders; +import com.facebook.drawee.view.SimpleDraweeView; import com.gh.common.DefaultUrlHandler; import com.gh.common.constant.Config; +import com.gh.common.exposure.ExposureEvent; +import com.gh.common.exposure.ExposureManager; +import com.gh.common.exposure.ExposureSource; +import com.gh.common.exposure.ExposureType; import com.gh.common.history.HistoryDatabase; import com.gh.common.history.HistoryHelper; import com.gh.common.repository.ReservationRepository; @@ -58,8 +64,7 @@ import com.gh.common.util.ErrorHelper; import com.gh.common.util.HomePluggableHelper; import com.gh.common.util.LogUtils; import com.gh.common.util.LunchType; -import com.gh.gamecenter.common.eventbus.EBReuse; -import com.gh.gamecenter.common.utils.NotificationHelper; +import com.gh.common.util.NewFlatLogUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; @@ -72,12 +77,17 @@ import com.gh.gamecenter.common.base.fragment.BaseFragment_ViewPager; import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.common.constant.EntranceConsts; +import com.gh.gamecenter.common.entity.LinkEntity; +import com.gh.gamecenter.common.entity.NotificationUgc; +import com.gh.gamecenter.common.eventbus.EBReuse; import com.gh.gamecenter.common.exposure.meta.MetaUtil; import com.gh.gamecenter.common.retrofit.BiResponse; import com.gh.gamecenter.common.retrofit.Response; import com.gh.gamecenter.common.utils.DeviceUtils; import com.gh.gamecenter.common.utils.DialogHelper; import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.ImageUtils; +import com.gh.gamecenter.common.utils.NotificationHelper; import com.gh.gamecenter.common.utils.ShareUtils; import com.gh.gamecenter.core.AppExecutor; import com.gh.gamecenter.core.utils.ClassUtils; @@ -86,21 +96,21 @@ import com.gh.gamecenter.core.utils.GsonUtils; import com.gh.gamecenter.core.utils.MtaHelper; import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.core.utils.SentryHelper; +import com.gh.gamecenter.core.utils.TimeUtils; import com.gh.gamecenter.core.utils.ToastUtils; import com.gh.gamecenter.core.utils.UrlFilterUtils; import com.gh.gamecenter.download.DownloadFragment; import com.gh.gamecenter.entity.GameEntity; import com.gh.gamecenter.entity.InnerMetaInfoEntity; -import com.gh.gamecenter.common.entity.NotificationUgc; import com.gh.gamecenter.entity.StartupAdEntity; import com.gh.gamecenter.eventbus.EBNetworkState; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.fragment.MainWrapperFragment; import com.gh.gamecenter.home.skip.PackageSkipActivity; +import com.gh.gamecenter.login.user.UserManager; import com.gh.gamecenter.login.utils.QuickLoginHelper; import com.gh.gamecenter.manager.DataCollectionManager; import com.gh.gamecenter.manager.UpdateManager; -import com.gh.gamecenter.login.user.UserManager; import com.gh.gamecenter.packagehelper.PackageViewModel; import com.gh.gamecenter.retrofit.RetrofitManager; import com.gh.gamecenter.room.AppDatabase; @@ -136,6 +146,7 @@ import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Timer; import java.util.TimerTask; @@ -159,6 +170,9 @@ public class MainActivity extends BaseActivity { public final static String SWITCH_TO_COMMUNITY = "switch_to_community"; public final static String SWITCH_TO_VIDEO = "switch_to_video"; public final static String SHOW_AD = "show_ad"; + private final static int COUNTDOWN_AD = 100; + private final static int countdownMaxCount = 3; + private int countdownCount = 0; private final static String CURRENT_PAGE = "current_page"; @@ -475,37 +489,75 @@ public class MainActivity extends BaseActivity { } private void observeAd() { - AdHelper.startupAd.observe(this, startupAdEntity -> { - if (showAd) { - if (startupAdEntity == null) { - hideAd(true); - } else { - showAd(startupAdEntity); - AppExecutor.getUiExecutor().execute(() -> { - AppExecutor.getUiExecutor().executeWithDelay(() -> hideAd(true), 2000); - }); - } + final StartupAdEntity startUpAd = AdHelper.getStartUpAd(); + if (showAd) { + if (startUpAd == null) { + hideAd(); + return; } - }); - - AppExecutor.getUiExecutor().executeWithDelay(() -> hideAd(false), 950); + if (!startUpAd.getImg().isEmpty()) { + final String showedTodayTimestamp = SPUtils.getString(Constants.SP_STARTUP_AD_TIMESTAMP, ""); + final String rule = startUpAd.getRule(); + switch (rule) { + case "each": + showAd(startUpAd); + break; + case "once": + if (TextUtils.isEmpty(showedTodayTimestamp)) { + showAd(startUpAd); + } + break; + case "everyday": + final String today = TimeUtils.getToday(); + if (!TextUtils.equals(today, showedTodayTimestamp)) { + showAd(startUpAd); + } + break; + default: + // Do nothing + break; + } + SPUtils.setString(Constants.SP_STARTUP_AD_TIMESTAMP, TimeUtils.getToday()); + } else { + showAd(startUpAd); + AppExecutor.getUiExecutor().executeWithDelay(() -> hideAd(), 2000); + } + } } - private void hideAd(boolean forceToHide) { - if (forceToHide || AdHelper.startupAd.getValue() == null) { - showAd = false; - getIntent().putExtra(SHOW_AD, false); - View view = findViewById(R.id.maskContainer); - - if (view != null) { - view.setVisibility(View.GONE); - ExtensionsKt.removeFromParent(view); + @Override + protected void handleMessage(Message msg) { + super.handleMessage(msg); + if (msg.what == COUNTDOWN_AD) { + countdownCount++; + TextView jumpBtn = findViewById(R.id.jumpBtn); + jumpBtn.setText(String.format(Locale.CHINA, "跳过 %d", countdownMaxCount - countdownCount)); + if (countdownMaxCount <= countdownCount) { + hideAd(); + } else { + mBaseHandler.sendEmptyMessageDelayed(COUNTDOWN_AD, 1000); } - - checkDialog(); } } + private void hideAd() { + showAd = false; + getIntent().putExtra(SHOW_AD, false); + View maskContainer = findViewById(R.id.maskContainer); + View startAdContainer = findViewById(R.id.startAdContainer); + + if (maskContainer != null) { + maskContainer.setVisibility(View.GONE); + ExtensionsKt.removeFromParent(maskContainer); + } + if (startAdContainer != null) { + startAdContainer.setVisibility(View.GONE); + ExtensionsKt.removeFromParent(startAdContainer); + } + + checkDialog(); + } + private void checkDialog() { // 检查通知权限 checkNotificationPermission(); @@ -518,26 +570,65 @@ public class MainActivity extends BaseActivity { } private void showAd(StartupAdEntity ad) { - TextView adContentTv = findViewById(R.id.adContentTv); - View containerView = findViewById(R.id.maskContainer); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - containerView.setElevation(500F); - } - containerView.setOnClickListener(v -> { - // do nothing 只是为了点击拦截事件,避免传递到下面的页面 - }); - adContentTv.setText(ad.getDesc()); - adContentTv.setVisibility(View.VISIBLE); - if (ad.getButton()) { - View btn = findViewById(R.id.adBtn); - btn.setOnClickListener((v) -> { - DirectUtils.directToLinkPage(this, ad.getJump(), "(启动广告)", ""); - LogUtils.logStartAd("click_watch_start_ads", ad); + if (!ad.getImg().isEmpty()) { + View startAdContainer = findViewById(R.id.startAdContainer); + View jumpBtn = findViewById(R.id.jumpBtn); + TextView jumpDetailBtn = findViewById(R.id.jumpDetailBtn); + SimpleDraweeView adImage = findViewById(R.id.adImage); + startAdContainer.setVisibility(View.VISIBLE); + jumpDetailBtn.setText(ad.getDesc()); + ImageUtils.display(adImage, ad.getImg()); + startAdContainer.setOnClickListener(v -> { + // do nothing 只是为了点击拦截事件,避免传递到下面的页面 }); - btn.setVisibility(View.VISIBLE); - LogUtils.logStartAd("watch_start_ads", ad); + jumpBtn.setOnClickListener(v -> { + mBaseHandler.removeMessages(COUNTDOWN_AD); + hideAd(); + LinkEntity linkEntity = ad.getJump(); + NewFlatLogUtils.logOpenScreenAdSkip( + ad.getId(), + linkEntity.getText() != null ? linkEntity.getText() : "", + linkEntity.getType() != null ? linkEntity.getType() : "", + linkEntity.getLink() != null ? linkEntity.getLink() : "" + ); + }); + List sources = new ArrayList<>(); + sources.add(new ExposureSource("开屏广告", ad.getId())); + final ExposureEvent event = ExposureEvent.createEvent(null, sources, null, ExposureType.EXPOSURE); + ExposureManager.INSTANCE.log(event); + if (ad.getButton()) { + jumpDetailBtn.setOnClickListener(v -> { + DirectUtils.directToLinkPage(this, ad.getJump(), "(启动广告)", "", event); + }); + jumpDetailBtn.setVisibility(View.VISIBLE); + LogUtils.logStartAd("watch_start_ads", ad); + } else { + LogUtils.logStartAd("start_ads", ad); + } + mBaseHandler.sendEmptyMessageDelayed(COUNTDOWN_AD, 1000); } else { - LogUtils.logStartAd("start_ads", ad); + TextView adContentTv = findViewById(R.id.adContentTv); + View containerView = findViewById(R.id.maskContainer); + containerView.setVisibility(View.VISIBLE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + containerView.setElevation(500F); + } + containerView.setOnClickListener(v -> { + // do nothing 只是为了点击拦截事件,避免传递到下面的页面 + }); + adContentTv.setText(ad.getDesc()); + adContentTv.setVisibility(View.VISIBLE); + if (ad.getButton()) { + View adBtn = findViewById(R.id.adBtn); + adBtn.setOnClickListener(v -> { + DirectUtils.directToLinkPage(this, ad.getJump(), "(启动广告)", ""); + LogUtils.logStartAd("click_watch_start_ads", ad); + }); + adBtn.setVisibility(View.VISIBLE); + LogUtils.logStartAd("watch_start_ads", ad); + } else { + LogUtils.logStartAd("start_ads", ad); + } } } diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt index 971b5d4320..7a1af6732d 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt @@ -255,7 +255,6 @@ class SplashScreenActivity : BaseActivity() { SPUtils.setLong(Constants.SP_GH_LAST_UPDATE_TIME, PackageUtils.getHaloLastUpdateTime()) HaloApp.getInstance().postInit(true) TrackerLogger.logAppLaunchSuccessful() - AdHelper.getStartUpAd() if (mShouldPrefetchData) { prefetchData() } diff --git a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt index cf7cc0a520..3cae74c4da 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/SettingsEntity.kt @@ -6,6 +6,7 @@ import com.gh.common.exposure.ExposureEvent import com.gh.gamecenter.common.entity.CommunityEntity import com.gh.gamecenter.common.entity.Display import com.gh.gamecenter.common.entity.LinkEntity +import com.google.android.exoplayer2.offline.Download import com.google.gson.annotations.SerializedName import com.halo.assistant.HaloApp @@ -40,6 +41,9 @@ data class SettingsEntity( var gameSmooth: String = "off", // 畅玩功能,on/off,默认off @SerializedName("webview_download_url") var webviewDownloadUrl: String = "",//webview下载地址 + @SerializedName("start_ad") + var startAd: StartupAdEntity? = null,//开屏图片广告 + var startup: StartupAdEntity? = null//启动文案广告 ) { fun setCommunityEntrance(communityEntrance: String) { diff --git a/app/src/main/java/com/gh/gamecenter/entity/StartupAdEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/StartupAdEntity.kt index 401306d15e..53f3017616 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/StartupAdEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/StartupAdEntity.kt @@ -8,5 +8,8 @@ data class StartupAdEntity( val id: String, val desc: String, val button: Boolean, - val jump: LinkEntity + val jump: LinkEntity, + val img: String = "", + // 显示规则: none无, each每一次打开, everyday每一天一次, once一次 + val rule: String = "" ) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index c45e5026da..fc3bfec100 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -2264,12 +2264,6 @@ public interface ApiService { @GET("./bbses:search") Observable> searchForumContent(@QueryMap HashMap map, @Query("page") int page); - /** - * 启动广告 - */ - @GET("startup") - Single getSplashAd(@Query("channel") String channel); - /** * 获取一级分类数据 */ @@ -2954,4 +2948,10 @@ public interface ApiService { */ @POST("home/explore/games/{game_id}/feedback") Single discorveryFeedback(@Path("game_id") String gameId, @Body RequestBody body); + + /** + * 启动广告缓存信息读取 + */ + @GET("/setting_cache") + Observable getSettingAdCache(@Query("channel") String channel); } \ No newline at end of file diff --git a/app/src/main/res/drawable-xxxhdpi/ic_start_ad_logo.webp b/app/src/main/res/drawable-xxxhdpi/ic_start_ad_logo.webp new file mode 100644 index 0000000000000000000000000000000000000000..e6e845c19f4a015316e51d83b445e95e2c3e6f9b GIT binary patch literal 11800 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 z + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/button_round_black_alpha_50_stroke_white_20.xml b/app/src/main/res/drawable/button_round_black_alpha_50_stroke_white_20.xml new file mode 100644 index 0000000000..86664220a5 --- /dev/null +++ b/app/src/main/res/drawable/button_round_black_alpha_50_stroke_white_20.xml @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_startup_ad_arrow.xml b/app/src/main/res/drawable/ic_startup_ad_arrow.xml new file mode 100644 index 0000000000..0e4c17e4d9 --- /dev/null +++ b/app/src/main/res/drawable/ic_startup_ad_arrow.xml @@ -0,0 +1,17 @@ + + + + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b0f463d5d3..60261c0ce6 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -14,7 +14,8 @@ android:id="@+id/maskContainer" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@drawable/launcher_background"> + android:background="@drawable/launcher_background" + android:visibility="gone"> + + + + + + + + + + + + \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java index ef813e2964..e1514bd4ce 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java @@ -437,4 +437,6 @@ public class Constants { public static final String GIT_LOG_MD5 = "git_log_md5"; public static final String SP_ADDONS_RECOMMEND_HAVE_READ = "addons_recommend_have_read"; + //启动广告 + public static final String SP_STARTUP_AD_TIMESTAMP = "startup_ad_timestamp"; }