diff --git a/app/src/main/java/melody/offline/music/activity/MoLikedSongsActivity.kt b/app/src/main/java/melody/offline/music/activity/MoLikedSongsActivity.kt index 1566640..1ea835b 100644 --- a/app/src/main/java/melody/offline/music/activity/MoLikedSongsActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/MoLikedSongsActivity.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.isActive import kotlinx.coroutines.selects.select import melody.offline.music.App +import melody.offline.music.R import melody.offline.music.adapter.LikedSongsAdapter import melody.offline.music.ads.AdPlacement import melody.offline.music.ads.LolAdWrapper @@ -94,6 +95,14 @@ class MoLikedSongsActivity : MoBaseActivity(), LikedSongsAdapter.OnItemFavorites if (adapter != null) { adapter?.notifyDataSetChanged() } + + LolAdWrapper.shared.loadAdShowNativeAd( + this, + AdPlacement.NATIVE_ME_PAGE_LIST, + binding.frameAd, + R.layout.ad_layout_admob_banner, + R.layout.ad_layout_max_banner + ) } private fun initView() { diff --git a/app/src/main/java/melody/offline/music/activity/MoOfflineSongsActivity.kt b/app/src/main/java/melody/offline/music/activity/MoOfflineSongsActivity.kt index ef0d920..65d1c0a 100644 --- a/app/src/main/java/melody/offline/music/activity/MoOfflineSongsActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/MoOfflineSongsActivity.kt @@ -8,6 +8,7 @@ import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.isActive import kotlinx.coroutines.selects.select import melody.offline.music.App +import melody.offline.music.R import melody.offline.music.adapter.OfflineSongsAdapter import melody.offline.music.ads.AdPlacement import melody.offline.music.ads.LolAdWrapper @@ -81,6 +82,14 @@ class MoOfflineSongsActivity : MoBaseActivity() { if (adapter != null) { adapter?.notifyDataSetChanged() } + + LolAdWrapper.shared.loadAdShowNativeAd( + this, + AdPlacement.NATIVE_ME_PAGE_LIST, + binding.frameAd, + R.layout.ad_layout_admob_banner, + R.layout.ad_layout_max_banner + ) } private fun initView() { diff --git a/app/src/main/java/melody/offline/music/ads/LolAdWrapper.kt b/app/src/main/java/melody/offline/music/ads/LolAdWrapper.kt index 7108435..221cdd6 100644 --- a/app/src/main/java/melody/offline/music/ads/LolAdWrapper.kt +++ b/app/src/main/java/melody/offline/music/ads/LolAdWrapper.kt @@ -17,6 +17,7 @@ import melody.offline.music.App import melody.offline.music.R import melody.offline.music.sp.AppStore import melody.offline.music.util.AnalysisUtil +import melody.offline.music.util.LogTag class LolAdWrapper { @@ -107,9 +108,9 @@ class LolAdWrapper { App.app.isAdShowing.set(true) listener?.shown() AnalysisUtil.placeToLogEvent(placement, AnalysisAdState.AD_SHOWN) - - - App.app.lastAdDisplayTime.set(System.currentTimeMillis()) + if (placement != AdPlacement.INST_SPLASH) { + App.app.lastAdDisplayTime.set(System.currentTimeMillis()) + } } override fun onAfterClickClosed() {} diff --git a/app/src/main/java/melody/offline/music/firebase/Constants.kt b/app/src/main/java/melody/offline/music/firebase/Constants.kt index 374a95c..a3be490 100644 --- a/app/src/main/java/melody/offline/music/firebase/Constants.kt +++ b/app/src/main/java/melody/offline/music/firebase/Constants.kt @@ -55,7 +55,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/2206084561": 100 } ] ], @@ -98,7 +98,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/4400663750": 100 } ] ], @@ -117,7 +117,7 @@ object Constants { [ "admob_native", { - "ca-app-pub-3940256099942544/2247696110": 100 + "ca-app-pub-1371732277241593/8583451341": 100 } ] ], @@ -187,7 +187,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/3422963317": 100 } ] ], @@ -230,7 +230,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/5437934325": 100 } ] ], @@ -273,7 +273,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/2884402102": 100 } ] ], @@ -316,7 +316,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/6695175673": 100 } ] ], @@ -335,7 +335,7 @@ object Constants { [ "admob_native", { - "ca-app-pub-3940256099942544/2247696110": 100 + "ca-app-pub-1371732277241593/7952895953": 100 } ] ], @@ -405,7 +405,7 @@ object Constants { [ "admob_inst", { - "ca-app-pub-3940256099942544/1033173712": 100 + "ca-app-pub-1371732277241593/7860901770": 100 } ] ], diff --git a/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt b/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt index 1a5ba5c..19a04da 100644 --- a/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt +++ b/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt @@ -12,6 +12,7 @@ import com.google.firebase.remoteconfig.FirebaseRemoteConfig import com.google.firebase.remoteconfig.FirebaseRemoteConfigException import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue +import com.lol.apex.ok.google.adlibrary.LoLAds import melody.offline.music.App import melody.offline.music.BuildConfig import melody.offline.music.sp.AppStore @@ -20,7 +21,7 @@ import java.lang.ref.WeakReference class RemoteConfig { - private val TAG = LogTag.VO_TEST_ONLY + private val TAG = LogTag.VO_REMOTE_ONLY private var ctx: Context? = null private var mFirebaseRemoteConfig: FirebaseRemoteConfig? = null @@ -54,8 +55,7 @@ class RemoteConfig { mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance() val configSettings = FirebaseRemoteConfigSettings.Builder() //默认值12小时的最短提取间隔,如果在间隔内取值,则优先取上次的结果 - .setMinimumFetchIntervalInSeconds(intervalTime) - .build() + .setMinimumFetchIntervalInSeconds(intervalTime).build() mFirebaseRemoteConfig!!.setConfigSettingsAsync(configSettings) } @@ -71,7 +71,7 @@ class RemoteConfig { } } } - }catch (ignore: Exception) { + } catch (ignore: Exception) { } } @@ -93,8 +93,7 @@ class RemoteConfig { //24小时后,重新再去获取 handler.removeMessages(MSG_REFRESH_CONFIG) handler.sendEmptyMessageDelayed( - MSG_REFRESH_CONFIG, - (1000 * 60 * 60 * 24).toLong() + MSG_REFRESH_CONFIG, (1000 * 60 * 60 * 24).toLong() ) } else { //这里需要重新再去获取 @@ -111,13 +110,21 @@ class RemoteConfig { for ((key, value) in all) { try { LogTag.LogD( - TAG, - "from = " + from + "Key = " + key + " Value = " + value.asString() + TAG, "from = " + from + "Key = " + key + " Value = " + value.asString() ) if (TextUtils.equals(Constants.KEY_SHOULD_ENTER_MUSIC_JSON, key)) { val shouldJson = value.asString() appStore.shouldEnterMusicPageJson = shouldJson } + if (TextUtils.equals(Constants.KEY_SHOW_AD_INTERVAL_TIME, key)) { + val t = value.asLong() + appStore.showAdIntervalTime = t + } + if (TextUtils.equals(Constants.KEY_AD_JSON, key)) { + val ad = value.asString() + appStore.adJson = ad + LoLAds.setAdConfig(ad) + } } catch (ignore: Exception) { } diff --git a/app/src/main/java/melody/offline/music/fragment/MoMeFragment.kt b/app/src/main/java/melody/offline/music/fragment/MoMeFragment.kt index e764ed1..b39b86f 100644 --- a/app/src/main/java/melody/offline/music/fragment/MoMeFragment.kt +++ b/app/src/main/java/melody/offline/music/fragment/MoMeFragment.kt @@ -102,6 +102,11 @@ class MoMeFragment : MoBaseFragment() { val favoriteBeans = App.appFavoriteDBManager.getAllFavoriteBeans() val favorites = favoriteBeans.count { it.isFavorite } binding.likedSongsTv.text = "$favorites" + } + + override fun onResume() { + super.onResume() + initImmersionBar() LolAdWrapper.shared.loadAdShowNativeAd( requireActivity(), @@ -112,11 +117,6 @@ class MoMeFragment : MoBaseFragment() { ) } - override fun onResume() { - super.onResume() - initImmersionBar() - } - override fun onHiddenChanged(hidden: Boolean) { super.onHiddenChanged(hidden) if (!hidden) { diff --git a/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt b/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt index b05aee4..6ed9f27 100644 --- a/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt +++ b/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt @@ -34,6 +34,7 @@ import melody.offline.music.view.SearchResultOtherView import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.isActive import kotlinx.coroutines.selects.select +import melody.offline.music.R import melody.offline.music.ads.AdPlacement import melody.offline.music.ads.LolAdWrapper import org.json.JSONObject @@ -77,6 +78,17 @@ class SearchFragment : MoBaseFragment(), TextWatcher, onReceive() } + override fun onResume() { + super.onResume() + LolAdWrapper.shared.loadAdShowNativeAd( + requireActivity(), + AdPlacement.NATIVE_SEARCH, + binding.frameAd, + R.layout.ad_layout_admob_banner, + R.layout.ad_layout_max_banner + ) + } + private fun initView() { binding.cancelBtn.setOnClickListener { buttonClickListener?.onFragmentClick() diff --git a/app/src/main/java/melody/offline/music/util/LogTag.kt b/app/src/main/java/melody/offline/music/util/LogTag.kt index b9e0f0b..e3d39b0 100644 --- a/app/src/main/java/melody/offline/music/util/LogTag.kt +++ b/app/src/main/java/melody/offline/music/util/LogTag.kt @@ -8,7 +8,7 @@ object LogTag { const val VO_FRAGMENT_LOG = "vo-fragment-log" const val VO_API_LOG = "vo-api—log" const val VO_SERVICE_LOG = "vo-service—log" - + const val VO_REMOTE_ONLY = "vo-remote—log" const val VO_TEST_ONLY = "vo-only—log" fun LogD(tag: String, message: String) { diff --git a/app/src/main/res/drawable/drw_ad_btn_bg.xml b/app/src/main/res/drawable/drw_ad_btn_bg.xml new file mode 100644 index 0000000..012fde9 --- /dev/null +++ b/app/src/main/res/drawable/drw_ad_btn_bg.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/drw_ad_tag_bg.xml b/app/src/main/res/drawable/drw_ad_tag_bg.xml new file mode 100644 index 0000000..82da549 --- /dev/null +++ b/app/src/main/res/drawable/drw_ad_tag_bg.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/drw_admob_bg.xml b/app/src/main/res/drawable/drw_admob_bg.xml new file mode 100644 index 0000000..9b5548f --- /dev/null +++ b/app/src/main/res/drawable/drw_admob_bg.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_liked_songs.xml b/app/src/main/res/layout/activity_liked_songs.xml index 1d4a0ea..7a5b372 100644 --- a/app/src/main/res/layout/activity_liked_songs.xml +++ b/app/src/main/res/layout/activity_liked_songs.xml @@ -25,7 +25,10 @@ android:id="@+id/title_layout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:layout_marginBottom="8dp" android:orientation="horizontal"> + + + android:layout_height="match_parent" + android:layout_marginTop="8dp"> + + + android:layout_height="match_parent" + android:layout_marginTop="8dp"> - + + + + + + + @@ -60,11 +82,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" - android:gravity="left" + android:gravity="start" android:lineSpacingExtra="0dp" android:maxLines="2" android:minHeight="28dp" - android:textColor="@color/text_gray" + android:textColor="@color/white_60" android:textSize="12dp" tools:text="xxxxx xxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" /> @@ -72,12 +94,11 @@ android:id="@+id/tv_event_bt" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginTop="8dp" - android:layout_marginBottom="6dp" - android:background="@drawable/bg_btn_ad" + android:layout_marginTop="4dp" + android:background="@drawable/drw_btn_bg" android:gravity="center" - android:minHeight="36dp" - android:textColor="@color/white" + android:minHeight="32dp" + android:textColor="@color/black" android:textSize="14dp" android:textStyle="bold" tools:text="action now " /> diff --git a/app/src/main/res/layout/ad_layout_admob_result.xml b/app/src/main/res/layout/ad_layout_admob_result.xml index f76742e..12edb84 100644 --- a/app/src/main/res/layout/ad_layout_admob_result.xml +++ b/app/src/main/res/layout/ad_layout_admob_result.xml @@ -7,7 +7,7 @@ - + android:orientation="horizontal" + android:paddingBottom="4dp"> + + + + + + @@ -65,14 +81,14 @@ + android:layout_height="wrap_content" + android:layout_marginHorizontal="12dp"> + android:layout_height="152dp" + tools:background="@color/black_60" /> diff --git a/app/src/main/res/layout/ad_layout_max_banner.xml b/app/src/main/res/layout/ad_layout_max_banner.xml index e29f97d..d8d7df0 100644 --- a/app/src/main/res/layout/ad_layout_max_banner.xml +++ b/app/src/main/res/layout/ad_layout_max_banner.xml @@ -7,7 +7,7 @@ @@ -15,7 +15,7 @@ + @@ -75,10 +83,10 @@ android:layout_height="wrap_content" android:minHeight="28dp" android:layout_marginTop="4dp" - android:gravity="left" + android:gravity="start" android:lineSpacingExtra="0dp" android:maxLines="2" - android:textColor="@color/text_gray" + android:textColor="@color/white_60" android:textSize="12dp" tools:text="xxxxx xxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" /> @@ -89,7 +97,7 @@ android:ellipsize="end" android:fontFamily="@string/Roboto_Regular" android:layout_marginHorizontal="12dp" - android:textColor="@color/theme_black" + android:textColor="@color/white_60" android:textSize="12dp" android:visibility="gone" tools:text="xxxxxxxxxxxxxxxxxxxxx" /> @@ -102,8 +110,8 @@ android:layout_marginTop="8dp" android:layout_marginBottom="6dp" android:gravity="center" - android:background="@drawable/bg_btn_ad" - android:textColor="@color/white" + android:background="@drawable/drw_btn_bg" + android:textColor="@color/black" android:textSize="14dp" android:textStyle="bold" tools:text="action now " /> diff --git a/app/src/main/res/layout/fragment_mo_me.xml b/app/src/main/res/layout/fragment_mo_me.xml index 27f8154..a19b66a 100644 --- a/app/src/main/res/layout/fragment_mo_me.xml +++ b/app/src/main/res/layout/fragment_mo_me.xml @@ -189,7 +189,9 @@ + android:layout_height="wrap_content" + android:layout_marginStart="14dp" + android:layout_marginEnd="14dp" /> diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index d2f2ada..21fe0bb 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -20,14 +20,16 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/view" - android:orientation="vertical"> + android:orientation="vertical" + android:paddingTop="16dp"> @@ -86,6 +88,13 @@ android:textSize="14dp" /> + + + android:layout_height="match_parent" + android:visibility="gone"> @@ -156,10 +165,10 @@ @@ -168,9 +177,8 @@ android:id="@+id/historyLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="18dp" - android:layout_marginTop="16dp" - android:layout_marginEnd="18dp" + android:layout_marginStart="12dp" + android:layout_marginEnd="12dp" android:orientation="vertical" android:visibility="visible"> @@ -206,9 +214,9 @@ + android:scrollbars="none" />