diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ee6b35e..4737347 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -73,4 +73,8 @@ dependencies { implementation("androidx.media3:media3-session:1.4.1") implementation("androidx.media3:media3-ui:1.4.1") //----------media3 + + + implementation ("com.geyifeng.immersionbar:immersionbar:3.2.2") + implementation ("com.geyifeng.immersionbar:immersionbar-components:3.2.2") } \ No newline at end of file diff --git a/app/src/main/java/com/hi/music/player/adapter/AdapterCategoryList.java b/app/src/main/java/com/hi/music/player/adapter/AdapterCategoryList.java index 683411f..e5700b3 100644 --- a/app/src/main/java/com/hi/music/player/adapter/AdapterCategoryList.java +++ b/app/src/main/java/com/hi/music/player/adapter/AdapterCategoryList.java @@ -59,7 +59,7 @@ public class AdapterCategoryList extends BaseAdapter{ + public AdapterResult(Context mContext) { + super(mContext); + } + @Override protected ItemResultBinding getViewBinding(ViewGroup parent) { return ItemResultBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false); } + + @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { ResponseResultList resultList = data.get(position); VHolder itemHolder = (VHolder) holder; ItemResultBinding vb = itemHolder.getVb(); + String headerTitle = resultList.getHeaderTitle(); + vb.tvHeaderTitle.setText(headerTitle); - vb.tvHeaderTitle.setText(resultList.getHeaderTitle()); - + CommonUtils.LogMsg("---------headerTitle="+headerTitle); ItemDecoration itemDecoration ; @@ -38,7 +47,7 @@ public class AdapterResult extends BaseAdapter extends RecyclerView protected List data = new ArrayList<>(); + protected Context mContext; + protected static final int TYPE_ITEM = 0; protected static final int TYPE_FOOTER = 1; protected boolean isLoadingAdded = false; + public BaseAdapter() { + } + public BaseAdapter(Context mContext) { + this.mContext = mContext; + } protected HomeItemClickListener homeItemClickListener; diff --git a/app/src/main/java/com/hi/music/player/network/JsonHelper.java b/app/src/main/java/com/hi/music/player/network/JsonHelper.java index 6ad3009..e6607fb 100644 --- a/app/src/main/java/com/hi/music/player/network/JsonHelper.java +++ b/app/src/main/java/com/hi/music/player/network/JsonHelper.java @@ -526,13 +526,12 @@ public class JsonHelper { /** - * 搜索结果返回的browserId 进行请求返回的数据列表 + * 根据搜索结果返回的browserId 进行请求返回的数据列表 * * @return */ public static ResponseResult ResolveSearchResultList(JSONObject jsonObject) { try { - ResponseResult responseResult = new ResponseResult(); JSONObject contents = jsonObject.getJSONObject("contents"); @@ -566,7 +565,7 @@ public class JsonHelper { if (musicShelfRenderer != null) { String headerTitle = getJsonTitle(musicShelfRenderer.getJSONObject("title"), 0); resultList.setHeaderTitle(headerTitle); - + CommonUtils.LogMsg("----------结果子页面111--------------------headerTitle"+headerTitle); JSONArray contents1 = musicShelfRenderer.getJSONArray("contents"); for (int f = 0; f < contents1.length(); f++) { ResponseResultListChild responseResultListChild = new ResponseResultListChild(); @@ -611,6 +610,7 @@ public class JsonHelper { responseResultListChild.setVideoId(videoId); responseResultListChild.setPlayListId(playLIstId); + CommonUtils.LogMsg("----------结果子页面111 songName="+songName+"---videoId="+videoId+"--playLIstId="+playLIstId); childList.add(responseResultListChild); } } else if (musicCarouselShelfRenderer != null) { @@ -618,7 +618,7 @@ public class JsonHelper { .getJSONObject("musicCarouselShelfBasicHeaderRenderer") .getJSONObject("title"),0); resultList.setHeaderTitle(headerTitle); - + CommonUtils.LogMsg("----------结果子页面222--------------------headerTitle"+headerTitle); JSONArray contents1 = musicCarouselShelfRenderer.getJSONArray("contents"); for (int f = 0; f < contents1.length(); f++) { ResponseResultListChild responseResultListChild = new ResponseResultListChild(); @@ -637,20 +637,32 @@ public class JsonHelper { if(browser!= null){ String browserId = browser[0]; responseResultListChild.setBrowserId(browserId); + responseResultListChild.setPageType(browser[1]); + } + String[] watchEndPoint = getWatchEndPoint(musicTwoRowItemRenderer); + if(watchEndPoint!=null){ + responseResultListChild.setVideoId(watchEndPoint[0]); + responseResultListChild.setPlayListId(watchEndPoint[1]); } responseResultListChild.setThumbnail(thumbnail1); responseResultListChild.setSongName(albumName); responseResultListChild.setSubTitle(subtitle); + + CommonUtils.LogMsg("----------结果子页面222 songName="+albumName+"---videoId="+responseResultListChild.getVideoId()+"--playLIstId="+responseResultListChild.getPlayListId() + +"---BrowserId="+responseResultListChild.getBrowserId()+"---PageType="+responseResultListChild.getPageType()); childList.add(responseResultListChild); } } + + resultList.setChildList(childList); list.add(resultList); } + + responseResult.setList(list); } - CommonUtils.LogMsg("-- responseResult=" + responseResult); return responseResult; } catch (JSONException e) { diff --git a/app/src/main/java/com/hi/music/player/ui/activity/BaseActivity.java b/app/src/main/java/com/hi/music/player/ui/activity/BaseActivity.java index ec840b1..263a311 100644 --- a/app/src/main/java/com/hi/music/player/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/hi/music/player/ui/activity/BaseActivity.java @@ -15,6 +15,7 @@ import android.widget.MediaController; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.core.view.WindowCompat; import androidx.core.view.WindowInsetsControllerCompat; import androidx.lifecycle.Observer; @@ -25,7 +26,9 @@ import androidx.viewbinding.ViewBinding; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; +import com.gyf.immersionbar.ImmersionBar; import com.hi.music.player.MusicApplication; +import com.hi.music.player.R; import com.hi.music.player.databinding.ActivityBaseBinding; import com.hi.music.player.databinding.LayoutPanelBinding; import com.hi.music.player.helper.CommonUtils; @@ -70,7 +73,8 @@ public abstract class BaseActivity extends AppCompatActiv initPanel(); setStatusBar(); if (isFullScreen()) { - root.setPadding(0, 100, 0, 0); +// ImmersionBar.with(this).init();//设置沉浸式效果 +// ImmersionBar.setStatusBarView(this,0); initFullScreen(); } onCreateInit(); @@ -104,8 +108,10 @@ public abstract class BaseActivity extends AppCompatActiv public void onClick(View v) { panelVb.imPlay.setSelected(!panelVb.imPlay.isSelected()); if (panelVb.imPlay.isSelected()) { +// panelVb.imPlay.setImageResource(R.drawable.panel_icon_pause); mediaControllerManager.play(); } else { +// panelVb.imPlay.setImageResource(R.drawable.panel_icon_play); mediaControllerManager.pause(); } diff --git a/app/src/main/java/com/hi/music/player/ui/activity/ResultListActivity.java b/app/src/main/java/com/hi/music/player/ui/activity/ResultListActivity.java index e8729d9..62f03d2 100644 --- a/app/src/main/java/com/hi/music/player/ui/activity/ResultListActivity.java +++ b/app/src/main/java/com/hi/music/player/ui/activity/ResultListActivity.java @@ -76,7 +76,7 @@ public class ResultListActivity extends BaseActivity }) .into(vb.covert); vb.mainTitle.setText(result.getMainTitle()); - AdapterResult adapterResult = new AdapterResult(); + AdapterResult adapterResult = new AdapterResult(this); adapterResult.setHomeItemClickListener(this); adapterResult.setData(result.getList()); vb.listRecycler.setAdapter(adapterResult); @@ -85,7 +85,7 @@ public class ResultListActivity extends BaseActivity @Override protected void onInitClick() { - + vb.imBack.setOnClickListener(this); } @Override @@ -105,21 +105,61 @@ public class ResultListActivity extends BaseActivity @Override public void onClick(View v) { + if(v.equals(vb.imBack)){ + finish(); + } } @Override public void onClickResultSong(ResponseResultListChild child,int index) { - ResponseSingle responseSingle = new ResponseSingle(); - responseSingle.setSongTitle(child.getSongName()); - responseSingle.setSingerHead(child.getThumbnail()); - responseSingle.setVideoId(child.getVideoId()); - responseSingle.setPlaylistId(child.getPlayListId()); - Intent intent = new Intent(this, PlayActivity.class); - intent.putExtra(MyValue.KEY_PLAY_ACTIVITY_SINGER, responseSingle); - intent.putExtra(MyValue.KEY_PLAY_ACTIVITY_CATEGORY_LIST_INDEX,index); - CommonUtils.LogMsg("-------------index="+index); - startActivity(intent); + String videoId = child.getVideoId(); + String playListId = child.getPlayListId(); + String browserId = child.getBrowserId(); + String pageType = child.getPageType(); + String thumbnail = child.getThumbnail(); + String songName = child.getSongName(); + String subTitle = child.getSubTitle(); + + if(videoId!= null&&!videoId.isEmpty()){ + ResponseSingle responseSingle = new ResponseSingle(); + responseSingle.setSongTitle(songName); + responseSingle.setSingerHead(thumbnail); + responseSingle.setVideoId(videoId); + responseSingle.setPlaylistId(playListId); + Intent intent = new Intent(this, PlayActivity.class); + intent.putExtra(MyValue.KEY_PLAY_ACTIVITY_SINGER, responseSingle); + intent.putExtra(MyValue.KEY_PLAY_ACTIVITY_CATEGORY_LIST_INDEX,index); + CommonUtils.LogMsg("-------------index="+index); + startActivity(intent); + }else { + switch (pageType){ + case "MUSIC_PAGE_TYPE_ALBUM": + //专辑 + + + case "MUSIC_PAGE_TYPE_PLAYLIST": + //精选 + Intent intent1 = new Intent(this, CategoryListActivity.class); + intent1.putExtra(MyValue.KEY_CATEGORY_LIST_TYPE, pageType); + intent1.putExtra(MyValue.KEY_CATEGORY_LIST_SINGER_NAME, subTitle); + intent1.putExtra(MyValue.KEY_CATEGORY_LIST_BROWSER_ID, browserId); + startActivity(intent1); + break; + case "MUSIC_PAGE_TYPE_ARTIST": + //粉丝可能还喜欢 + Intent intent = new Intent(this, ResultListActivity.class); + intent.putExtra("key", browserId); + startActivity(intent); + finish(); + break; + } + + + } + + + } @Override diff --git a/app/src/main/res/drawable/black_gradient.xml b/app/src/main/res/drawable/black_gradient.xml new file mode 100644 index 0000000..4f7d3df --- /dev/null +++ b/app/src/main/res/drawable/black_gradient.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/panel_icon_pause.xml b/app/src/main/res/drawable/panel_icon_pause.xml index ed09ba1..c94bc45 100644 --- a/app/src/main/res/drawable/panel_icon_pause.xml +++ b/app/src/main/res/drawable/panel_icon_pause.xml @@ -1,22 +1,26 @@ - - - - - + android:width="34dp" + android:height="34dp" + android:viewportWidth="34" + android:viewportHeight="34"> + + + diff --git a/app/src/main/res/drawable/panel_icon_play.xml b/app/src/main/res/drawable/panel_icon_play.xml index d3760fe..6de0f12 100644 --- a/app/src/main/res/drawable/panel_icon_play.xml +++ b/app/src/main/res/drawable/panel_icon_play.xml @@ -1,6 +1,6 @@ - - - - - - diff --git a/app/src/main/res/drawable/selector_panel_play.xml b/app/src/main/res/drawable/selector_panel_icon_play.xml similarity index 91% rename from app/src/main/res/drawable/selector_panel_play.xml rename to app/src/main/res/drawable/selector_panel_icon_play.xml index 3dc1e8e..5806676 100644 --- a/app/src/main/res/drawable/selector_panel_play.xml +++ b/app/src/main/res/drawable/selector_panel_icon_play.xml @@ -1,7 +1,6 @@ - - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_play.xml b/app/src/main/res/layout/activity_play.xml index 29eef9c..5b173db 100644 --- a/app/src/main/res/layout/activity_play.xml +++ b/app/src/main/res/layout/activity_play.xml @@ -18,7 +18,7 @@ android:layout_width="42dp" android:layout_height="42dp" android:layout_marginStart="16dp" - android:layout_marginTop="25dp" + android:layout_marginTop="35dp" android:padding="9dp" android:src="@drawable/arrow_bottom" app:layout_constraintLeft_toLeftOf="parent" diff --git a/app/src/main/res/layout/activity_result_list.xml b/app/src/main/res/layout/activity_result_list.xml index c7d17da..1425267 100644 --- a/app/src/main/res/layout/activity_result_list.xml +++ b/app/src/main/res/layout/activity_result_list.xml @@ -1,51 +1,70 @@ - + + + + + android:src="@mipmap/ic_launcher" + android:scaleType="centerCrop" /> + - + - + - \ No newline at end of file + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_play_list.xml b/app/src/main/res/layout/dialog_play_list.xml index 17808ae..62abcab 100644 --- a/app/src/main/res/layout/dialog_play_list.xml +++ b/app/src/main/res/layout/dialog_play_list.xml @@ -2,6 +2,7 @@ diff --git a/app/src/main/res/layout/layout_panel.xml b/app/src/main/res/layout/layout_panel.xml index 90497de..0b547a2 100644 --- a/app/src/main/res/layout/layout_panel.xml +++ b/app/src/main/res/layout/layout_panel.xml @@ -13,7 +13,7 @@ android:layout_width="52dp" android:layout_height="52dp" android:layout_centerVertical="true" - android:layout_marginStart="4dp" + android:layout_marginStart="2dp" android:src="@drawable/placeholder" /> + android:src="@drawable/selector_panel_icon_play" /> #00000000 #FFFFFF #DFD0D0 - + #26000000 #4DFFFFFF #99FFFFFF #59FFFFFF diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 876f5f0..2f94c14 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -3,7 +3,7 @@