diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3cd553d..8bbd6e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,8 +16,8 @@ android { applicationId = "com.hi.melody.music.noise" minSdk = 24 targetSdk = 34 - versionCode = 8 - versionName = "1.0.8" + versionCode = 9 + versionName = "1.0.9" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" @@ -35,13 +35,13 @@ android { "proguard-rules.pro" ) } -// debug { -// isMinifyEnabled = true -// proguardFiles( -// getDefaultProguardFile("proguard-android-optimize.txt"), -// "proguard-rules.pro" -// ) -// } + debug { + isMinifyEnabled = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 diff --git a/app/src/main/java/melody/offline/music/activity/MoPlayDetailsActivity.kt b/app/src/main/java/melody/offline/music/activity/MoPlayDetailsActivity.kt index 9923148..2cc753c 100644 --- a/app/src/main/java/melody/offline/music/activity/MoPlayDetailsActivity.kt +++ b/app/src/main/java/melody/offline/music/activity/MoPlayDetailsActivity.kt @@ -379,6 +379,12 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener { // updateFavoriteUi(currentFavoriteBean.isFavorite) // } // } + + if (appStore.hideDownloadBtn) { + binding.downloadBtn.visibility = View.GONE + } else { + binding.downloadBtn.visibility = View.VISIBLE + } } private fun initDownloadFlow() { 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 636e2c1..6ca8b56 100644 --- a/app/src/main/java/melody/offline/music/firebase/Constants.kt +++ b/app/src/main/java/melody/offline/music/firebase/Constants.kt @@ -2,6 +2,21 @@ package melody.offline.music.firebase object Constants { + const val KEY_HIDE_DOWNLOAD_BTN = "key_hide_download_btn" + const val DEFAULT_HIDE_DOWNLOAD_BTN = false + + const val KEY_HIDE_SINGER_OR_SONG_JSON = "key_hide_singer_or_song_json" + const val DEFAULT_HIDE_SINGER_OR_SONG_JSON = """ +{ + "search_input": [ + "张三", + "李四", + "王五", + "赵六" + ] +} +""" + const val KEY_SHOULD_ENTER_MUSIC_JSON = "key_should_enter_music_json" const val DEFAULT_SHOULD_ENTER_MUSIC_JSON = """ { 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 04cc9e1..de4ef41 100644 --- a/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt +++ b/app/src/main/java/melody/offline/music/firebase/RemoteConfig.kt @@ -128,6 +128,14 @@ class RemoteConfig { appStore.adJson = ad LoLAds.setAdConfig(ad) } + if (TextUtils.equals(Constants.KEY_HIDE_DOWNLOAD_BTN, key)) { + val hideDownload = value.asBoolean() + appStore.hideDownloadBtn = hideDownload + } + if (TextUtils.equals(Constants.KEY_HIDE_SINGER_OR_SONG_JSON, key)) { + val hideJson = value.asString() + appStore.hideSingerOrSongJson = hideJson + } } catch (ignore: Exception) { } 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 7ca236e..9c500ff 100644 --- a/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt +++ b/app/src/main/java/melody/offline/music/fragment/SearchFragment.kt @@ -197,6 +197,16 @@ class SearchFragment : MoBaseFragment(), TextWatcher, if (isAdded) { val input = it.input if (input.isNotEmpty()) { + val localData = JSONObject(appStore.hideSingerOrSongJson) + val namesArray = localData.getJSONArray("search_input") + for (i in 0 until namesArray.length()) { + if (input.contains(namesArray.getString(i))) { + binding.searchEdit.clearFocus() + showNoContentLayout() + return@onReceive + } + } + AnalysisUtil.logEvent(AnalysisUtil.SEARCH_TRIGGER) LolAdWrapper.shared.showAdTiming( requireActivity(), AdPlacement.INST_SEARCH diff --git a/app/src/main/java/melody/offline/music/sp/AppStore.kt b/app/src/main/java/melody/offline/music/sp/AppStore.kt index 6ada955..66c4678 100644 --- a/app/src/main/java/melody/offline/music/sp/AppStore.kt +++ b/app/src/main/java/melody/offline/music/sp/AppStore.kt @@ -61,8 +61,17 @@ class AppStore(context: Context) { //记录弹出dialog的时间 var showRateDialogTime: Long by store.long( - key = SHOW_RATE_DIALOG_TIME, - defaultValue = 0L + key = SHOW_RATE_DIALOG_TIME, defaultValue = 0L + ) + + //根据配置,判断是否隐藏下载按钮 + var hideDownloadBtn: Boolean by store.boolean( + key = Constants.KEY_HIDE_DOWNLOAD_BTN, defaultValue = Constants.DEFAULT_HIDE_DOWNLOAD_BTN + ) + + var hideSingerOrSongJson: String by store.string( + key = Constants.KEY_HIDE_SINGER_OR_SONG_JSON, + defaultValue = Constants.DEFAULT_HIDE_SINGER_OR_SONG_JSON ) companion object { diff --git a/app/src/main/java/melody/offline/music/view/ListMoreBottomSheetDialog.kt b/app/src/main/java/melody/offline/music/view/ListMoreBottomSheetDialog.kt index 7db02c7..ceb390c 100644 --- a/app/src/main/java/melody/offline/music/view/ListMoreBottomSheetDialog.kt +++ b/app/src/main/java/melody/offline/music/view/ListMoreBottomSheetDialog.kt @@ -19,6 +19,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialog import melody.offline.music.R import melody.offline.music.bean.PlaylistItem import melody.offline.music.service.ViewModelMain +import melody.offline.music.sp.AppStore import melody.offline.music.util.AnalysisUtil import melody.offline.music.util.DownloadUtil import melody.offline.music.util.LogTag @@ -73,6 +74,13 @@ class ListMoreBottomSheetDialog( bottomDialogDownloadTv = findViewById(R.id.bottomDialogDownloadTv) bottomDialogMoreAddPlaylistBtn = findViewById(R.id.bottomDialogMoreAddPlaylistBtn) bottomDialogAddPlaylistTv = findViewById(R.id.bottomDialogAddPlaylistTv) + + + if (AppStore(context).hideDownloadBtn) { + bottomDialogMoreDownloadBtn?.visibility = View.GONE + } else { + bottomDialogMoreDownloadBtn?.visibility = View.VISIBLE + } } private fun initInfoUi() {