A面合并
This commit is contained in:
parent
3aac60e3ca
commit
c62e38eb7e
BIN
app/OfflineMusicPlayer.jks
Normal file
BIN
app/OfflineMusicPlayer.jks
Normal file
Binary file not shown.
@ -13,19 +13,21 @@ plugins {
|
|||||||
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
|
val timestamp = SimpleDateFormat("MM_dd_HH_mm").format(Date())
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.hi.music.player"
|
namespace = "com.offline.music.playermp3"
|
||||||
compileSdk = 34
|
compileSdk = 34
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
//com.hi.music.player
|
//com.hi.music.player
|
||||||
applicationId = "com.hi.music.player.test1"
|
applicationId = "com.offline.music.playermp3"
|
||||||
minSdk = 23
|
minSdk = 23
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 1
|
versionCode = 1
|
||||||
versionName = "1.0.0"
|
versionName = "1.0.0"
|
||||||
|
|
||||||
setProperty("archivesBaseName", "MusicApp_V" + versionName + "(${versionCode})_$timestamp")
|
setProperty(
|
||||||
|
"archivesBaseName",
|
||||||
|
"Offline Music Player" + versionName + "(${versionCode})_$timestamp"
|
||||||
|
)
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:550960818622:android:96fd4141e43410fb24f1ef",
|
"mobilesdk_app_id": "1:550960818622:android:96fd4141e43410fb24f1ef",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.hi.music.player.test1"
|
"package_name": "com.offline.music.playermp3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [],
|
"oauth_client": [],
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
app_name=Music Player
|
app_name=Offline Music Player
|
||||||
package_name=com.hi.music.player.test
|
package_name=com.offline.music.player
|
||||||
keystoreFile=app/MusicPlayer.jks
|
keystoreFile=app/OfflineMusicPlayer.jks
|
||||||
key_alias=MusicPlayerkey0
|
key_alias=OfflineMusicPlayerkey0
|
||||||
key_store_password=MusicPlayer
|
key_store_password=OfflineMusicPlayer
|
||||||
key_password=MusicPlayer
|
key_password=OfflineMusicPlayer
|
||||||
2
app/proguard-rules.pro
vendored
2
app/proguard-rules.pro
vendored
@ -29,7 +29,7 @@
|
|||||||
-dontwarn retrofit2.**
|
-dontwarn retrofit2.**
|
||||||
-dontwarn javax.annotation.Nullable
|
-dontwarn javax.annotation.Nullable
|
||||||
|
|
||||||
-keep class com.hi.music.player.javabean.A_data.AudioItem { *; }
|
-keep class com.offline.music.playermp3.javabean.A_data.AudioItem { *; }
|
||||||
|
|
||||||
# 保持 Context、Intent 和权限相关的公共方法
|
# 保持 Context、Intent 和权限相关的公共方法
|
||||||
-keep class android.content.Context { *; }
|
-keep class android.content.Context { *; }
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player;
|
package com.offline.music.playermp3;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
@ -17,9 +17,9 @@
|
|||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||||
android:fullBackupContent="@xml/backup_rules"
|
android:fullBackupContent="@xml/backup_rules"
|
||||||
android:icon="@mipmap/im_logo"
|
android:icon="@drawable/music_player_launch"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/im_logo"
|
android:roundIcon="@drawable/music_player_launch"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.MusicApp"
|
android:theme="@style/Theme.MusicApp"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
|||||||
BIN
app/src/main/ic_launcher-playstore.png
Normal file
BIN
app/src/main/ic_launcher-playstore.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
@ -1,7 +0,0 @@
|
|||||||
package com.hi.music.player.api;
|
|
||||||
|
|
||||||
import com.hi.music.player.javabean.CustomerDownload;
|
|
||||||
|
|
||||||
public interface onCheckDownload {
|
|
||||||
void onHasDownload(CustomerDownload customerDownload);
|
|
||||||
}
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player;
|
package com.offline.music.playermp3;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -6,16 +6,14 @@ import android.content.Context;
|
|||||||
import androidx.annotation.OptIn;
|
import androidx.annotation.OptIn;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.database.StandaloneDatabaseProvider;
|
import androidx.media3.database.StandaloneDatabaseProvider;
|
||||||
import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor;
|
|
||||||
import androidx.media3.datasource.cache.SimpleCache;
|
|
||||||
|
|
||||||
import com.hi.music.player.api.MediaControllerStatusListener;
|
import com.offline.music.playermp3.api.MediaControllerStatusListener;
|
||||||
import com.hi.music.player.firebase.RemoteConfigJava;
|
import com.offline.music.playermp3.firebase.RemoteConfigJava;
|
||||||
import com.hi.music.player.firebase.Sp;
|
import com.offline.music.playermp3.firebase.Sp;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.media3.MyDownloadService;
|
import com.offline.music.playermp3.media3.MyDownloadService;
|
||||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
import com.offline.music.playermp3.media3.MyMediaControllerManager;
|
||||||
import com.hi.music.player.objectbox.ObjectBoxManager;
|
import com.offline.music.playermp3.objectbox.ObjectBoxManager;
|
||||||
|
|
||||||
public class MusicApplication extends Application {
|
public class MusicApplication extends Application {
|
||||||
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
|
|
||||||
import com.hi.music.player.ui.fragmnt.A_HomeFragment;
|
import com.offline.music.playermp3.ui.fragmnt.A_HomeFragment;
|
||||||
import com.hi.music.player.ui.fragmnt.A_ImportFragment;
|
import com.offline.music.playermp3.ui.fragmnt.A_ImportFragment;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -12,23 +12,24 @@ import android.widget.TextView;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.ui.activity.A_PlayActivity;
|
import com.offline.music.playermp3.ui.activity.A_PlayActivity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragmentAdapter.ViewHolder> {
|
public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragmentAdapter.ViewHolder> {
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private List<AudioItem> audioFiles = new ArrayList<>();
|
private List<AudioItem> audioFiles = new ArrayList<>();
|
||||||
private AudioItem audioItem;
|
private AudioItem audioItem;
|
||||||
private OnOptionClickListener onOptionClickListener;;
|
private OnOptionClickListener onOptionClickListener;
|
||||||
|
private String newName;
|
||||||
|
|
||||||
public A_ImportFragmentAdapter(Context context) {
|
public A_ImportFragmentAdapter(Context context, String newName) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
this.newName = newName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@ -39,21 +40,31 @@ public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
|
||||||
audioItem = audioFiles.get(position);
|
AudioItem audioItem1 = audioFiles.get(position);
|
||||||
|
|
||||||
holder.title.setText(audioItem.getName());
|
holder.title.setText(audioItem1.getName());
|
||||||
holder.time.setText(audioItem.getDuration());
|
holder.time.setText(audioItem1.getDuration());
|
||||||
Log.d("Adapter", "onBindViewHolder: " + audioItem.getDuration());
|
Log.d("Adapter", "onBindViewHolder: " + audioItem1.getDuration());
|
||||||
|
|
||||||
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(context, A_PlayActivity.class);
|
Intent intent = new Intent(context, A_PlayActivity.class);
|
||||||
intent.putExtra("Path", audioItem);
|
intent.putExtra("Path", audioItem1);
|
||||||
|
intent.putExtra("newName",newName);
|
||||||
|
context.startActivity(intent);
|
||||||
|
}
|
||||||
|
});holder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
Intent intent = new Intent(context, A_PlayActivity.class);
|
||||||
|
intent.putExtra("Path", audioItem1);
|
||||||
|
intent.putExtra("newName",newName);
|
||||||
context.startActivity(intent);
|
context.startActivity(intent);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
holder.bind(audioItem1); // 通过 bind 方法将 audioItem1 传递到 ViewHolder
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -66,6 +77,11 @@ public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragme
|
|||||||
notifyDataSetChanged(); // Update UI when the data changes
|
notifyDataSetChanged(); // Update UI when the data changes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 假设你的 adapter 类中有这个方法来返回某个位置的 AudioItem 对象
|
||||||
|
public AudioItem getAudioFile(int position) {
|
||||||
|
return audioFiles.get(position); // 返回位置上的 AudioItem 对象
|
||||||
|
}
|
||||||
|
|
||||||
public void updateTitle(int position, String newTitle) {
|
public void updateTitle(int position, String newTitle) {
|
||||||
if (position >= 0 && position < audioFiles.size()) {
|
if (position >= 0 && position < audioFiles.size()) {
|
||||||
audioFiles.get(position).setName(newTitle); // 假设 AudioItem 有一个 setName 方法
|
audioFiles.get(position).setName(newTitle); // 假设 AudioItem 有一个 setName 方法
|
||||||
@ -86,12 +102,12 @@ public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragme
|
|||||||
void onOptionClick(int position, String filePath, View anchorView);
|
void onOptionClick(int position, String filePath, View anchorView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class ViewHolder extends RecyclerView.ViewHolder {
|
class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
ImageView option;
|
ImageView option;
|
||||||
TextView title;
|
TextView title;
|
||||||
TextView time;
|
TextView time;
|
||||||
|
private AudioItem audioItem; // 定义一个 audioItem 字段
|
||||||
|
|
||||||
public ViewHolder(@NonNull View itemView) {
|
public ViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -101,14 +117,16 @@ public class A_ImportFragmentAdapter extends RecyclerView.Adapter<A_ImportFragme
|
|||||||
time = itemView.findViewById(R.id.time);
|
time = itemView.findViewById(R.id.time);
|
||||||
|
|
||||||
option.setOnClickListener(v -> {
|
option.setOnClickListener(v -> {
|
||||||
int position = getBindingAdapterPosition();
|
int position = getAdapterPosition();
|
||||||
if (position != RecyclerView.NO_POSITION && onOptionClickListener != null) {
|
if (position != RecyclerView.NO_POSITION && onOptionClickListener != null && audioItem != null) {
|
||||||
onOptionClickListener.onOptionClick(position, audioItem.getFile(), option);
|
onOptionClickListener.onOptionClick(position, audioItem.getFile(), option);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 添加 bind 方法,将 audioItem 传递给 ViewHolder
|
||||||
|
public void bind(AudioItem audioItem) {
|
||||||
|
this.audioItem = audioItem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -14,10 +14,10 @@ import androidx.recyclerview.widget.DiffUtil;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.helper.AudioItemDiffCallback;
|
import com.offline.music.playermp3.helper.AudioItemDiffCallback;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.ui.activity.A_PlayActivity;
|
import com.offline.music.playermp3.ui.activity.A_PlayActivity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -13,10 +13,10 @@ import androidx.recyclerview.widget.DiffUtil;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.helper.AudioItemDiffCallback;
|
import com.offline.music.playermp3.helper.AudioItemDiffCallback;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.ui.activity.A_PlayActivity;
|
import com.offline.music.playermp3.ui.activity.A_PlayActivity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -14,10 +14,10 @@ import androidx.recyclerview.widget.DiffUtil;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.helper.AudioItemDiffCallback;
|
import com.offline.music.playermp3.helper.AudioItemDiffCallback;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.ui.activity.A_PlayActivity;
|
import com.offline.music.playermp3.ui.activity.A_PlayActivity;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,27 +1,18 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.DataSource;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.bumptech.glide.load.engine.GlideException;
|
import com.offline.music.playermp3.R;
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
import com.offline.music.playermp3.databinding.ItemCategoryBinding;
|
||||||
import com.bumptech.glide.request.RequestListener;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.offline.music.playermp3.javabean.response.child.ResponseCategory;
|
||||||
import com.bumptech.glide.request.target.Target;
|
|
||||||
import com.hi.music.player.MusicApplication;
|
|
||||||
import com.hi.music.player.R;
|
|
||||||
import com.hi.music.player.databinding.ItemCategoryBinding;
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
|
||||||
import com.hi.music.player.helper.MyValue;
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
|
||||||
|
|
||||||
public class AdapterCategory extends BaseAdapter<ResponseCategory, ItemCategoryBinding>{
|
public class AdapterCategory extends BaseAdapter<ResponseCategory, ItemCategoryBinding>{
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -14,20 +14,15 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.DataSource;
|
import com.bumptech.glide.load.DataSource;
|
||||||
import com.bumptech.glide.load.engine.GlideException;
|
import com.bumptech.glide.load.engine.GlideException;
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|
||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.api.onImageColorListener;
|
import com.offline.music.playermp3.databinding.ItemCategoryListBinding;
|
||||||
import com.hi.music.player.databinding.ItemCategoryListBinding;
|
import com.offline.music.playermp3.databinding.ItemSingerBinding;
|
||||||
import com.hi.music.player.databinding.ItemSingerBinding;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.MyValue;
|
||||||
import com.hi.music.player.helper.MyValue;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategoryListChild;
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
|
||||||
|
|
||||||
public class AdapterCategoryList extends BaseAdapter<ResponsePlayListInfo, ItemCategoryListBinding> {
|
public class AdapterCategoryList extends BaseAdapter<ResponsePlayListInfo, ItemCategoryListBinding> {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -17,12 +17,11 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemLikeSongBinding;
|
import com.offline.music.playermp3.databinding.ItemLikeSongBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.BoxDownloadSong;
|
import com.offline.music.playermp3.javabean.BoxDownloadSong;
|
||||||
import com.hi.music.player.javabean.BoxLikeSong;
|
|
||||||
|
|
||||||
public class AdapterDownloadSong extends BaseAdapter<Download, ItemLikeSongBinding> {
|
public class AdapterDownloadSong extends BaseAdapter<Download, ItemLikeSongBinding> {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -10,13 +10,13 @@ import androidx.recyclerview.widget.GridLayoutManager;
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.databinding.ItemFooterLoadingBinding;
|
import com.offline.music.playermp3.databinding.ItemFooterLoadingBinding;
|
||||||
import com.hi.music.player.databinding.ItemHomeBinding;
|
import com.offline.music.playermp3.databinding.ItemHomeBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
import com.offline.music.playermp3.javabean.response.child.ResponseCategory;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseHomeChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseHomeChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSingle;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
@ -12,9 +12,7 @@ import android.widget.Toast;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.OptIn;
|
import androidx.annotation.OptIn;
|
||||||
import androidx.lifecycle.Observer;
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.exoplayer.offline.Download;
|
|
||||||
import androidx.media3.exoplayer.offline.DownloadRequest;
|
import androidx.media3.exoplayer.offline.DownloadRequest;
|
||||||
import androidx.media3.exoplayer.offline.DownloadService;
|
import androidx.media3.exoplayer.offline.DownloadService;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
@ -27,22 +25,20 @@ import com.bumptech.glide.request.RequestListener;
|
|||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.api.onCheckDownload;
|
import com.offline.music.playermp3.api.onCheckDownload;
|
||||||
import com.hi.music.player.databinding.ItemLikeSongBinding;
|
import com.offline.music.playermp3.databinding.ItemLikeSongBinding;
|
||||||
import com.hi.music.player.databinding.ItemSingerBinding;
|
import com.offline.music.playermp3.databinding.ItemSingerBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.BoxDownloadSong;
|
import com.offline.music.playermp3.javabean.BoxDownloadSong;
|
||||||
import com.hi.music.player.javabean.BoxLikeSong;
|
import com.offline.music.playermp3.javabean.BoxLikeSong;
|
||||||
import com.hi.music.player.javabean.CustomerDownload;
|
import com.offline.music.playermp3.javabean.CustomerDownload;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayUrl;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayUrl;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.offline.music.playermp3.media3.MyDownloadService;
|
||||||
import com.hi.music.player.media3.MyDownloadService;
|
import com.offline.music.playermp3.network.JsonHelper;
|
||||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
import com.offline.music.playermp3.network.RetrofitManager;
|
||||||
import com.hi.music.player.network.JsonHelper;
|
import com.offline.music.playermp3.ui.activity.viewmodel.VMApplication;
|
||||||
import com.hi.music.player.network.RetrofitManager;
|
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMApplication;
|
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
@ -122,7 +118,7 @@ public class AdapterLikeSong extends BaseAdapter<BoxLikeSong, ItemLikeSongBindin
|
|||||||
|
|
||||||
vb.imDownload.setVisibility(View.GONE);
|
vb.imDownload.setVisibility(View.GONE);
|
||||||
vb.downloadPb.setVisibility(View.VISIBLE);
|
vb.downloadPb.setVisibility(View.VISIBLE);
|
||||||
RetrofitManager.getInstance().getPlayUrl(videoId, new com.hi.music.player.api.RequestListener<ResponseBody>() {
|
RetrofitManager.getInstance().getPlayUrl(videoId, new com.offline.music.playermp3.api.RequestListener<ResponseBody>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFail(String errorMsg) {
|
public void onFail(String errorMsg) {
|
||||||
@ -1,6 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import static androidx.media3.session.legacy.MediaControllerCompat.getMediaController;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -11,16 +9,12 @@ import androidx.media3.common.MediaItem;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.databinding.ItemPlayListBinding;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.api.MediaControllerListener;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.databinding.ItemPlayListBinding;
|
import com.offline.music.playermp3.media3.MyMediaControllerManager;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
|
||||||
import com.hi.music.player.helper.MyValue;
|
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
|
||||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
|
||||||
|
|
||||||
public class AdapterPlayList extends BaseAdapter<ResponsePlayListInfo, ItemPlayListBinding> {
|
public class AdapterPlayList extends BaseAdapter<ResponsePlayListInfo, ItemPlayListBinding> {
|
||||||
|
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -10,13 +9,10 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.databinding.ItemResultBinding;
|
||||||
import com.hi.music.player.databinding.ItemResultBinding;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.ItemDecoration;
|
||||||
import com.hi.music.player.helper.ItemDecoration;
|
import com.offline.music.playermp3.javabean.response.ResponseResultList;
|
||||||
import com.hi.music.player.helper.MyValue;
|
|
||||||
import com.hi.music.player.javabean.response.ResponseResultList;
|
|
||||||
import com.hi.music.player.ui.activity.PlayActivity;
|
|
||||||
|
|
||||||
public class AdapterResult extends BaseAdapter<ResponseResultList, ItemResultBinding>{
|
public class AdapterResult extends BaseAdapter<ResponseResultList, ItemResultBinding>{
|
||||||
public AdapterResult(Context mContext) {
|
public AdapterResult(Context mContext) {
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -16,11 +16,11 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemResultListAlbumBinding;
|
import com.offline.music.playermp3.databinding.ItemResultListAlbumBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseResultListChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseResultListChild;
|
||||||
|
|
||||||
public class AdapterResultListAlbum extends BaseAdapter<ResponseResultListChild, ItemResultListAlbumBinding>{
|
public class AdapterResultListAlbum extends BaseAdapter<ResponseResultListChild, ItemResultListAlbumBinding>{
|
||||||
@Override
|
@Override
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -16,11 +16,11 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemResultListSongBinding;
|
import com.offline.music.playermp3.databinding.ItemResultListSongBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseResultListChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseResultListChild;
|
||||||
|
|
||||||
public class AdapterResultListSong extends BaseAdapter<ResponseResultListChild, ItemResultListSongBinding> {
|
public class AdapterResultListSong extends BaseAdapter<ResponseResultListChild, ItemResultListSongBinding> {
|
||||||
@Override
|
@Override
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -11,12 +11,12 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemSearchBinding;
|
import com.offline.music.playermp3.databinding.ItemSearchBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.ResponseSearch;
|
import com.offline.music.playermp3.javabean.response.ResponseSearch;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSearchChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSearchChild;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -16,13 +16,12 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemSearchBinding;
|
import com.offline.music.playermp3.databinding.ItemSearchBinding;
|
||||||
import com.hi.music.player.databinding.ItemSearchChildBinding;
|
import com.offline.music.playermp3.databinding.ItemSearchChildBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.ResponseSearch;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSearchChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSearchChild;
|
|
||||||
|
|
||||||
public class AdapterSearchChild extends BaseAdapter<ResponseSearchChild, ItemSearchChildBinding> {
|
public class AdapterSearchChild extends BaseAdapter<ResponseSearchChild, ItemSearchChildBinding> {
|
||||||
@Override
|
@Override
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -16,11 +16,11 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ItemSingerBinding;
|
import com.offline.music.playermp3.databinding.ItemSingerBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSingle;
|
||||||
|
|
||||||
public class AdapterSinger extends BaseAdapter<ResponseSingle, ItemSingerBinding> {
|
public class AdapterSinger extends BaseAdapter<ResponseSingle, ItemSingerBinding> {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -7,7 +7,7 @@ import android.view.ViewGroup;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ItemSuggestionBinding;
|
import com.offline.music.playermp3.databinding.ItemSuggestionBinding;
|
||||||
|
|
||||||
public class AdapterSuggestion extends BaseAdapter<String, ItemSuggestionBinding> {
|
public class AdapterSuggestion extends BaseAdapter<String, ItemSuggestionBinding> {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
@ -8,10 +8,8 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import androidx.viewbinding.ViewBinding;
|
import androidx.viewbinding.ViewBinding;
|
||||||
|
|
||||||
import com.hi.music.player.api.HomeItemClickListener;
|
import com.offline.music.playermp3.api.HomeItemClickListener;
|
||||||
import com.hi.music.player.databinding.ItemFooterLoadingBinding;
|
import com.offline.music.playermp3.databinding.ItemFooterLoadingBinding;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,13 +1,13 @@
|
|||||||
package com.hi.music.player.adapter;
|
package com.offline.music.playermp3.adapter;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
|
|
||||||
import com.hi.music.player.ui.fragmnt.HomeFragment;
|
import com.offline.music.playermp3.ui.fragmnt.HomeFragment;
|
||||||
import com.hi.music.player.ui.fragmnt.ProfileFragment;
|
import com.offline.music.playermp3.ui.fragmnt.ProfileFragment;
|
||||||
import com.hi.music.player.ui.fragmnt.SearchFragment;
|
import com.offline.music.playermp3.ui.fragmnt.SearchFragment;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,14 +1,14 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
import androidx.media3.exoplayer.offline.Download;
|
import androidx.media3.exoplayer.offline.Download;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.BoxLikeSong;
|
import com.offline.music.playermp3.javabean.BoxLikeSong;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.javabean.response.ResponseSearch;
|
import com.offline.music.playermp3.javabean.response.ResponseSearch;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
import com.offline.music.playermp3.javabean.response.child.ResponseCategory;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseResultListChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseResultListChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSearchChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSearchChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSingle;
|
||||||
|
|
||||||
public interface HomeItemClickListener {
|
public interface HomeItemClickListener {
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.BoxLikeSong;
|
import com.offline.music.playermp3.javabean.BoxLikeSong;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
public interface MediaControllerStatusListener {
|
public interface MediaControllerStatusListener {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
public interface OnHasUrlAction {
|
public interface OnHasUrlAction {
|
||||||
void onHasUrl();
|
void onHasUrl();
|
||||||
@ -1,9 +1,7 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import okhttp3.ResponseBody;
|
|
||||||
|
|
||||||
public interface RequestListener<T> {
|
public interface RequestListener<T> {
|
||||||
|
|
||||||
void onFail(String errorMsg);
|
void onFail(String errorMsg);
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
|
import com.offline.music.playermp3.javabean.CustomerDownload;
|
||||||
|
|
||||||
|
public interface onCheckDownload {
|
||||||
|
void onHasDownload(CustomerDownload customerDownload);
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
public interface onImageColorListener {
|
public interface onImageColorListener {
|
||||||
void onImageColor(int color);
|
void onImageColor(int color);
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.api;
|
package com.offline.music.playermp3.api;
|
||||||
|
|
||||||
public interface onPlayNextListener {
|
public interface onPlayNextListener {
|
||||||
void onPlayNext(boolean hasNext);
|
void onPlayNext(boolean hasNext);
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.customerview;
|
package com.offline.music.playermp3.customerview;
|
||||||
|
|
||||||
import android.animation.ValueAnimator;
|
import android.animation.ValueAnimator;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -9,7 +9,7 @@ import android.util.AttributeSet;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.animation.LinearInterpolator;
|
import android.view.animation.LinearInterpolator;
|
||||||
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.dialog;
|
package com.offline.music.playermp3.dialog;
|
||||||
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
@ -14,12 +14,10 @@ import android.view.WindowManager;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.fragment.app.DialogFragment;
|
import androidx.fragment.app.DialogFragment;
|
||||||
import androidx.viewbinding.ViewBinding;
|
import androidx.viewbinding.ViewBinding;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.R;
|
|
||||||
|
|
||||||
|
|
||||||
public abstract class BaseDialog<T extends ViewBinding> extends DialogFragment {
|
public abstract class BaseDialog<T extends ViewBinding> extends DialogFragment {
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hi.music.player.dialog;
|
package com.offline.music.playermp3.dialog;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -21,15 +20,14 @@ import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.adapter.AdapterPlayList;
|
import com.offline.music.playermp3.adapter.AdapterPlayList;
|
||||||
import com.hi.music.player.api.onImageColorListener;
|
import com.offline.music.playermp3.api.onImageColorListener;
|
||||||
import com.hi.music.player.databinding.DialogPlayListBinding;
|
import com.offline.music.playermp3.databinding.DialogPlayListBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.media3.MyControllerView;
|
import com.offline.music.playermp3.media3.MyMediaControllerManager;
|
||||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,21 +1,19 @@
|
|||||||
package com.hi.music.player.firebase
|
package com.offline.music.playermp3.firebase
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.os.Message
|
import android.os.Message
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.util.Log
|
|
||||||
import com.google.firebase.remoteconfig.ConfigUpdate
|
import com.google.firebase.remoteconfig.ConfigUpdate
|
||||||
import com.google.firebase.remoteconfig.ConfigUpdateListener
|
import com.google.firebase.remoteconfig.ConfigUpdateListener
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfig
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigException
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigException
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue
|
||||||
import com.hi.music.player.BuildConfig
|
import com.offline.music.playermp3.BuildConfig
|
||||||
import com.hi.music.player.helper.CommonUtils
|
import com.offline.music.playermp3.helper.CommonUtils
|
||||||
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.firebase;
|
package com.offline.music.playermp3.firebase;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@ -17,7 +17,7 @@ import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
|
|||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigException;
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigException;
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings;
|
||||||
import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue;
|
import com.google.firebase.remoteconfig.FirebaseRemoteConfigValue;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.firebase;
|
package com.offline.music.playermp3.firebase;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
@ -39,6 +39,6 @@ public class Sp {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getStringValue(String key) {
|
public String getStringValue(String key) {
|
||||||
return preferences.getString(key, RemoteConfigJava.value_open_type_1);
|
return preferences.getString(key, RemoteConfigJava.value_open_type_0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import androidx.recyclerview.widget.DiffUtil;
|
import androidx.recyclerview.widget.DiffUtil;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.lifecycle.ViewModelStore;
|
import androidx.lifecycle.ViewModelStore;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
@ -10,36 +10,26 @@ import android.net.Uri;
|
|||||||
import android.util.DisplayMetrics;
|
import android.util.DisplayMetrics;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
|
|
||||||
import androidx.annotation.OptIn;
|
import androidx.annotation.OptIn;
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.MediaMetadata;
|
import androidx.media3.common.MediaMetadata;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.datasource.cache.Cache;
|
|
||||||
import androidx.media3.datasource.cache.CacheEvictor;
|
|
||||||
import androidx.media3.datasource.cache.CacheSpan;
|
|
||||||
import androidx.media3.datasource.cache.SimpleCache;
|
|
||||||
import androidx.media3.exoplayer.offline.Download;
|
import androidx.media3.exoplayer.offline.Download;
|
||||||
import androidx.palette.graphics.Palette;
|
import androidx.palette.graphics.Palette;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.api.onImageColorListener;
|
import com.offline.music.playermp3.api.onImageColorListener;
|
||||||
import com.hi.music.player.javabean.BoxDownloadSong;
|
import com.offline.music.playermp3.javabean.BoxDownloadSong;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import java.util.NavigableSet;
|
|
||||||
import java.util.TreeSet;
|
|
||||||
|
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
|
|
||||||
public class CommonUtils {
|
public class CommonUtils {
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
|
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
|
|
||||||
public class ItemDecoration extends RecyclerView.ItemDecoration {
|
public class ItemDecoration extends RecyclerView.ItemDecoration {
|
||||||
|
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.javabean.A_data.Category;
|
import com.offline.music.playermp3.javabean.A_data.Category;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
public class MyValue {
|
public class MyValue {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import android.content.ActivityNotFoundException;
|
import android.content.ActivityNotFoundException;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.helper;
|
package com.offline.music.playermp3.helper;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
@ -6,8 +6,6 @@ import androidx.fragment.app.Fragment;
|
|||||||
import androidx.lifecycle.ViewModel;
|
import androidx.lifecycle.ViewModel;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
|
||||||
|
|
||||||
public class ViewModelScope {
|
public class ViewModelScope {
|
||||||
private ViewModelProvider mFragmentProvider;
|
private ViewModelProvider mFragmentProvider;
|
||||||
private ViewModelProvider mActivityProvider;
|
private ViewModelProvider mActivityProvider;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.A_data;
|
package com.offline.music.playermp3.javabean.A_data;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.A_data;
|
package com.offline.music.playermp3.javabean.A_data;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean;
|
package com.offline.music.playermp3.javabean;
|
||||||
|
|
||||||
import io.objectbox.annotation.Entity;
|
import io.objectbox.annotation.Entity;
|
||||||
import io.objectbox.annotation.Id;
|
import io.objectbox.annotation.Id;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean;
|
package com.offline.music.playermp3.javabean;
|
||||||
|
|
||||||
import io.objectbox.annotation.Entity;
|
import io.objectbox.annotation.Entity;
|
||||||
import io.objectbox.annotation.Id;
|
import io.objectbox.annotation.Id;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean;
|
package com.offline.music.playermp3.javabean;
|
||||||
|
|
||||||
import androidx.media3.exoplayer.offline.Download;
|
import androidx.media3.exoplayer.offline.Download;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean;
|
package com.offline.music.playermp3.javabean;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayUrl;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayUrl;
|
||||||
|
|
||||||
public class CustomerUrlInfo {
|
public class CustomerUrlInfo {
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.requestbody;
|
package com.offline.music.playermp3.javabean.requestbody;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
import com.offline.music.playermp3.javabean.requestbody.child.ContextBody;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.requestbody;
|
package com.offline.music.playermp3.javabean.requestbody;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
import com.offline.music.playermp3.javabean.requestbody.child.ContextBody;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.requestbody;
|
package com.offline.music.playermp3.javabean.requestbody;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
import com.offline.music.playermp3.javabean.requestbody.child.ContextBody;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.requestbody;
|
package com.offline.music.playermp3.javabean.requestbody;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.requestbody.child.Client;
|
import com.offline.music.playermp3.javabean.requestbody.child.ContextBody;
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.requestbody;
|
package com.offline.music.playermp3.javabean.requestbody;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.requestbody.child.Client;
|
import com.offline.music.playermp3.javabean.requestbody.child.ContextBody;
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.requestbody.child;
|
package com.offline.music.playermp3.javabean.requestbody.child;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@ -1,7 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.requestbody.child;
|
package com.offline.music.playermp3.javabean.requestbody.child;
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
public class ContextBody {
|
public class ContextBody {
|
||||||
|
|
||||||
@ -1,6 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategoryListChild;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseHomeChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseHomeChild;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,6 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import com.hi.music.player.helper.MyValue;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseResultListChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseResultListChild;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hi.music.player.javabean.response;
|
package com.offline.music.playermp3.javabean.response;
|
||||||
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSearchChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSearchChild;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
public class ResponseCategoryListChild {
|
public class ResponseCategoryListChild {
|
||||||
private String SongTitle;
|
private String SongTitle;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
public class ResponseResultListChild {
|
public class ResponseResultListChild {
|
||||||
private String thumbnail;
|
private String thumbnail;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
public class ResponseSearchChild {
|
public class ResponseSearchChild {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.javabean.response.child;
|
package com.offline.music.playermp3.javabean.response.child;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@ -1,37 +1,15 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.net.Uri;
|
|
||||||
|
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.datasource.DataSource;
|
import androidx.media3.datasource.DataSource;
|
||||||
import androidx.media3.datasource.DataSpec;
|
|
||||||
import androidx.media3.datasource.DefaultDataSource;
|
|
||||||
import androidx.media3.datasource.DefaultDataSourceFactory;
|
|
||||||
import androidx.media3.datasource.DefaultHttpDataSource;
|
|
||||||
import androidx.media3.datasource.ResolvingDataSource;
|
|
||||||
import androidx.media3.datasource.cache.CacheDataSource;
|
|
||||||
import androidx.media3.datasource.cache.SimpleCache;
|
import androidx.media3.datasource.cache.SimpleCache;
|
||||||
import androidx.media3.exoplayer.ExoPlayer;
|
|
||||||
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
|
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
|
||||||
import androidx.media3.exoplayer.source.MediaSource;
|
import androidx.media3.exoplayer.source.MediaSource;
|
||||||
import androidx.media3.exoplayer.source.MediaSourceFactory;
|
|
||||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
|
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
|
||||||
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
|
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.api.RequestListener;
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayUrl;
|
|
||||||
import com.hi.music.player.network.JsonHelper;
|
|
||||||
import com.hi.music.player.network.RetrofitManager;
|
|
||||||
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
import okhttp3.ResponseBody;
|
|
||||||
|
|
||||||
|
|
||||||
public class DynamicMediaSourceFactory implements MediaSource.Factory {
|
public class DynamicMediaSourceFactory implements MediaSource.Factory {
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@ import androidx.media3.database.StandaloneDatabaseProvider;
|
|||||||
import androidx.media3.datasource.cache.NoOpCacheEvictor;
|
import androidx.media3.datasource.cache.NoOpCacheEvictor;
|
||||||
import androidx.media3.datasource.cache.SimpleCache;
|
import androidx.media3.datasource.cache.SimpleCache;
|
||||||
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -18,11 +18,11 @@ import androidx.media3.exoplayer.offline.DownloadNotificationHelper;
|
|||||||
import androidx.media3.exoplayer.offline.DownloadService;
|
import androidx.media3.exoplayer.offline.DownloadService;
|
||||||
import androidx.media3.exoplayer.scheduler.Scheduler;
|
import androidx.media3.exoplayer.scheduler.Scheduler;
|
||||||
|
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.api.onCheckDownload;
|
import com.offline.music.playermp3.api.onCheckDownload;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.CustomerDownload;
|
import com.offline.music.playermp3.javabean.CustomerDownload;
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMApplication;
|
import com.offline.music.playermp3.ui.activity.viewmodel.VMApplication;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@ -15,21 +15,20 @@ import androidx.media3.session.SessionToken;
|
|||||||
|
|
||||||
import com.google.common.util.concurrent.ListenableFuture;
|
import com.google.common.util.concurrent.ListenableFuture;
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
import com.google.common.util.concurrent.MoreExecutors;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.api.MediaControllerListener;
|
import com.offline.music.playermp3.api.MediaControllerListener;
|
||||||
import com.hi.music.player.api.MediaControllerStatusListener;
|
import com.offline.music.playermp3.api.MediaControllerStatusListener;
|
||||||
import com.hi.music.player.api.OnHasUrlAction;
|
import com.offline.music.playermp3.api.OnHasUrlAction;
|
||||||
import com.hi.music.player.api.onCheckDownload;
|
import com.offline.music.playermp3.api.onCheckDownload;
|
||||||
import com.hi.music.player.api.onPlayNextListener;
|
import com.offline.music.playermp3.api.onPlayNextListener;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.MyValue;
|
import com.offline.music.playermp3.helper.MyValue;
|
||||||
import com.hi.music.player.javabean.CustomerDownload;
|
import com.offline.music.playermp3.javabean.CustomerDownload;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayUrl;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayUrl;
|
||||||
import com.hi.music.player.network.RetrofitManager;
|
import com.offline.music.playermp3.network.RetrofitManager;
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMApplication;
|
import com.offline.music.playermp3.ui.activity.viewmodel.VMApplication;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -14,21 +14,17 @@ import androidx.media3.datasource.DataSpec;
|
|||||||
import androidx.media3.datasource.DefaultDataSource;
|
import androidx.media3.datasource.DefaultDataSource;
|
||||||
import androidx.media3.datasource.DefaultHttpDataSource;
|
import androidx.media3.datasource.DefaultHttpDataSource;
|
||||||
import androidx.media3.datasource.ResolvingDataSource;
|
import androidx.media3.datasource.ResolvingDataSource;
|
||||||
import androidx.media3.datasource.TransferListener;
|
|
||||||
import androidx.media3.datasource.cache.CacheDataSource;
|
import androidx.media3.datasource.cache.CacheDataSource;
|
||||||
import androidx.media3.datasource.cache.SimpleCache;
|
import androidx.media3.datasource.cache.SimpleCache;
|
||||||
import androidx.media3.exoplayer.DefaultLoadControl;
|
import androidx.media3.exoplayer.DefaultLoadControl;
|
||||||
import androidx.media3.exoplayer.ExoPlayer;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
|
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
|
||||||
import androidx.media3.exoplayer.source.MediaSource;
|
import androidx.media3.exoplayer.source.MediaSource;
|
||||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
|
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
|
||||||
import androidx.media3.session.MediaSession;
|
import androidx.media3.session.MediaSession;
|
||||||
import androidx.media3.session.MediaSessionService;
|
import androidx.media3.session.MediaSessionService;
|
||||||
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class PlaybackService extends MediaSessionService {
|
public class PlaybackService extends MediaSessionService {
|
||||||
private MediaSession mediaSession = null;
|
private MediaSession mediaSession = null;
|
||||||
@ -1,14 +1,8 @@
|
|||||||
package com.hi.music.player.media3;
|
package com.offline.music.playermp3.media3;
|
||||||
|
|
||||||
import androidx.media3.common.MediaItem;
|
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.media3.datasource.DataSource;
|
import androidx.media3.datasource.DataSource;
|
||||||
import androidx.media3.exoplayer.drm.DrmSessionManagerProvider;
|
|
||||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory;
|
||||||
import androidx.media3.exoplayer.source.MediaSource;
|
|
||||||
import androidx.media3.exoplayer.upstream.LoadErrorHandlingPolicy;
|
|
||||||
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
|
||||||
|
|
||||||
|
|
||||||
public class testSourceFactory implements DataSource.Factory {
|
public class testSourceFactory implements DataSource.Factory {
|
||||||
@ -1,26 +1,25 @@
|
|||||||
package com.hi.music.player.network;
|
package com.offline.music.playermp3.network;
|
||||||
|
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.MyValue;
|
import com.offline.music.playermp3.helper.MyValue;
|
||||||
import com.hi.music.player.javabean.response.ResponseCategoryList;
|
import com.offline.music.playermp3.javabean.response.ResponseCategoryList;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayUrl;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayUrl;
|
||||||
import com.hi.music.player.javabean.response.ResponseResult;
|
import com.offline.music.playermp3.javabean.response.ResponseResult;
|
||||||
import com.hi.music.player.javabean.response.ResponseResultList;
|
import com.offline.music.playermp3.javabean.response.ResponseResultList;
|
||||||
import com.hi.music.player.javabean.response.ResponseSearch;
|
import com.offline.music.playermp3.javabean.response.ResponseSearch;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
import com.offline.music.playermp3.javabean.response.child.ResponseCategory;
|
||||||
import com.hi.music.player.javabean.response.ResponseHome;
|
import com.offline.music.playermp3.javabean.response.ResponseHome;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseHomeChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseHomeChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseResultListChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseResultListChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSearchChild;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSearchChild;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.offline.music.playermp3.javabean.response.child.ResponseSingle;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@ -1,10 +1,9 @@
|
|||||||
package com.hi.music.player.network;
|
package com.offline.music.playermp3.network;
|
||||||
|
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import okhttp3.RequestBody;
|
import okhttp3.RequestBody;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
import retrofit2.http.GET;
|
|
||||||
import retrofit2.http.Header;
|
import retrofit2.http.Header;
|
||||||
import retrofit2.http.Headers;
|
import retrofit2.http.Headers;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.hi.music.player.network;
|
package com.offline.music.playermp3.network;
|
||||||
|
|
||||||
import com.hi.music.player.api.RequestListener;
|
import com.offline.music.playermp3.api.RequestListener;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
|
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@ -1,15 +1,14 @@
|
|||||||
package com.hi.music.player.network;
|
package com.offline.music.playermp3.network;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.api.RequestListener;
|
import com.offline.music.playermp3.api.RequestListener;
|
||||||
import com.hi.music.player.javabean.requestbody.BodyHome;
|
import com.offline.music.playermp3.javabean.requestbody.BodyHome;
|
||||||
import com.hi.music.player.javabean.requestbody.BodyPlay;
|
import com.offline.music.playermp3.javabean.requestbody.BodyPlay;
|
||||||
import com.hi.music.player.javabean.requestbody.BodyPlayUrl;
|
import com.offline.music.playermp3.javabean.requestbody.BodyPlayUrl;
|
||||||
import com.hi.music.player.javabean.requestbody.BodySearch;
|
import com.offline.music.playermp3.javabean.requestbody.BodySearch;
|
||||||
import com.hi.music.player.javabean.requestbody.BodySearchSuggestion;
|
import com.offline.music.playermp3.javabean.requestbody.BodySearchSuggestion;
|
||||||
import com.hi.music.player.javabean.requestbody.child.Client;
|
import com.offline.music.playermp3.javabean.requestbody.child.Client;
|
||||||
import com.hi.music.player.javabean.requestbody.child.ContextBody;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -1,14 +1,14 @@
|
|||||||
package com.hi.music.player.objectbox;
|
package com.offline.music.playermp3.objectbox;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.hi.music.player.api.LikeSongListener;
|
import com.offline.music.playermp3.api.LikeSongListener;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.javabean.BoxLikeSong;
|
import com.offline.music.playermp3.javabean.BoxLikeSong;
|
||||||
import com.hi.music.player.javabean.BoxLikeSong_;
|
import com.offline.music.playermp3.javabean.BoxLikeSong_;
|
||||||
import com.hi.music.player.javabean.MyObjectBox;
|
import com.offline.music.playermp3.javabean.MyObjectBox;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.service;
|
package com.offline.music.playermp3.service;
|
||||||
|
|
||||||
import android.app.Notification;
|
import android.app.Notification;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
@ -24,9 +24,9 @@ import androidx.core.app.NotificationCompat;
|
|||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.ui.activity.A_PlayActivity;
|
import com.offline.music.playermp3.ui.activity.A_PlayActivity;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -101,8 +101,8 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ? PendingIntent.FLAG_IMMUTABLE : 0); // 适配Android 12
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.S ? PendingIntent.FLAG_IMMUTABLE : 0); // 适配Android 12
|
||||||
|
|
||||||
return new NotificationCompat.Builder(this, CHANNEL_ID)
|
return new NotificationCompat.Builder(this, CHANNEL_ID)
|
||||||
.setContentTitle("正在播放音频") // 通知标题
|
.setContentTitle("Playing audio") // 通知标题
|
||||||
.setContentText("您的音频正在播放") // 通知内容
|
.setContentText("Your audio is playing") // 通知内容
|
||||||
.setSmallIcon(R.drawable.home_select) // 小图标
|
.setSmallIcon(R.drawable.home_select) // 小图标
|
||||||
.setContentIntent(pendingIntent) // 点击通知的Intent
|
.setContentIntent(pendingIntent) // 点击通知的Intent
|
||||||
.setPriority(NotificationCompat.PRIORITY_LOW) // 低优先级
|
.setPriority(NotificationCompat.PRIORITY_LOW) // 低优先级
|
||||||
@ -113,7 +113,7 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
private void createNotificationChannel() {
|
private void createNotificationChannel() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
NotificationChannel serviceChannel = new NotificationChannel(
|
NotificationChannel serviceChannel = new NotificationChannel(
|
||||||
CHANNEL_ID, "音乐播放器频道", NotificationManager.IMPORTANCE_LOW);
|
CHANNEL_ID, "Music player channel", NotificationManager.IMPORTANCE_LOW);
|
||||||
NotificationManager manager = getSystemService(NotificationManager.class);
|
NotificationManager manager = getSystemService(NotificationManager.class);
|
||||||
if (manager != null) {
|
if (manager != null) {
|
||||||
manager.createNotificationChannel(serviceChannel); // 创建渠道
|
manager.createNotificationChannel(serviceChannel); // 创建渠道
|
||||||
@ -190,7 +190,7 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
if (afd != null) {
|
if (afd != null) {
|
||||||
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); // 设置数据源
|
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); // 设置数据源
|
||||||
} else {
|
} else {
|
||||||
throw new IOException("无法打开内容URI: " + path);
|
throw new IOException("Unable to open the content URI: " + path);
|
||||||
}
|
}
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
Log.e("MusicPlayerService", "权限被拒绝,无法访问内容URI: " + path, e);
|
Log.e("MusicPlayerService", "权限被拒绝,无法访问内容URI: " + path, e);
|
||||||
@ -208,7 +208,7 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
mediaPlayer.setDataSource(file.getAbsolutePath()); // 从文件加载
|
mediaPlayer.setDataSource(file.getAbsolutePath()); // 从文件加载
|
||||||
} else {
|
} else {
|
||||||
throw new IOException("文件未找到: " + path);
|
throw new IOException("File not found: " + path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -225,7 +225,7 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
return (dotIndex > 0) ? fileName.substring(0, dotIndex) : fileName;
|
return (dotIndex > 0) ? fileName.substring(0, dotIndex) : fileName;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("MusicPlayerService", "获取文件名失败", e);
|
Log.e("MusicPlayerService", "获取文件名失败", e);
|
||||||
return "未知文件"; // 默认文件名
|
return "Unknown file"; // 默认文件名
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -249,7 +249,7 @@ public class MusicPlayerForegroundService extends Service {
|
|||||||
} else {
|
} else {
|
||||||
pauseAudio(); // 时间到,暂停音乐
|
pauseAudio(); // 时间到,暂停音乐
|
||||||
isPlaying.postValue(false); // 更新播放状态
|
isPlaying.postValue(false); // 更新播放状态
|
||||||
Toast.makeText(getApplicationContext(), "定时器结束", Toast.LENGTH_SHORT).show();
|
Toast.makeText(getApplicationContext(), "Timer end", Toast.LENGTH_SHORT).show();
|
||||||
stopTimer(); // 时间到,结束计时器
|
stopTimer(); // 时间到,结束计时器
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,24 +1,22 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.os.Handler;
|
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Looper;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import com.google.android.material.tabs.TabLayoutMediator;
|
import com.google.android.material.tabs.TabLayoutMediator;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.adapter.A_HomeViewPagerAdapter;
|
import com.offline.music.playermp3.adapter.A_HomeViewPagerAdapter;
|
||||||
import com.hi.music.player.databinding.ActivityAhomeBinding;
|
import com.offline.music.playermp3.databinding.ActivityAhomeBinding;
|
||||||
import com.hi.music.player.databinding.HomeTabCustomBinding;
|
import com.offline.music.playermp3.databinding.HomeTabCustomBinding;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.service.MusicPlayerForegroundService;
|
import com.offline.music.playermp3.service.MusicPlayerForegroundService;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@ -11,7 +11,6 @@ import android.graphics.drawable.BitmapDrawable;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Looper;
|
|
||||||
import android.renderscript.Allocation;
|
import android.renderscript.Allocation;
|
||||||
import android.renderscript.Element;
|
import android.renderscript.Element;
|
||||||
import android.renderscript.RenderScript;
|
import android.renderscript.RenderScript;
|
||||||
@ -22,7 +21,6 @@ import android.view.View;
|
|||||||
import android.widget.RadioGroup;
|
import android.widget.RadioGroup;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@ -32,10 +30,10 @@ import com.bumptech.glide.Glide;
|
|||||||
import com.bumptech.glide.request.target.CustomTarget;
|
import com.bumptech.glide.request.target.CustomTarget;
|
||||||
import com.bumptech.glide.request.transition.Transition;
|
import com.bumptech.glide.request.transition.Transition;
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.databinding.ActivityAplayBinding;
|
import com.offline.music.playermp3.databinding.ActivityAplayBinding;
|
||||||
import com.hi.music.player.javabean.A_data.AudioItem;
|
import com.offline.music.playermp3.javabean.A_data.AudioItem;
|
||||||
import com.hi.music.player.service.MusicPlayerForegroundService;
|
import com.offline.music.playermp3.service.MusicPlayerForegroundService;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -59,6 +57,7 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
|
|
||||||
// 设置观察者
|
// 设置观察者
|
||||||
musicService.getIsPlaying().observe(A_PlayActivity.this, this::updatePlayButton);
|
musicService.getIsPlaying().observe(A_PlayActivity.this, this::updatePlayButton);
|
||||||
|
|
||||||
musicService.getFileName().observe(A_PlayActivity.this, vb.songTitle::setText);
|
musicService.getFileName().observe(A_PlayActivity.this, vb.songTitle::setText);
|
||||||
|
|
||||||
// 更新进度条和时间
|
// 更新进度条和时间
|
||||||
@ -100,6 +99,10 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
|
|
||||||
loadBackgroundPreference(); // 加载之前保存的背景状态
|
loadBackgroundPreference(); // 加载之前保存的背景状态
|
||||||
|
|
||||||
|
updateSeekBarAndTime();
|
||||||
|
if (musicService != null) {
|
||||||
|
musicService.startUpdatingProgress();
|
||||||
|
}
|
||||||
|
|
||||||
// 从Intent获取音频项
|
// 从Intent获取音频项
|
||||||
AudioItem audioItem = (AudioItem) getIntent().getSerializableExtra("Path");
|
AudioItem audioItem = (AudioItem) getIntent().getSerializableExtra("Path");
|
||||||
@ -108,6 +111,8 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.d("paly","-----" +audioItem.getName());
|
||||||
|
|
||||||
Glide.with(this)
|
Glide.with(this)
|
||||||
.load("file:///android_asset/" + audioItem.getImage())
|
.load("file:///android_asset/" + audioItem.getImage())
|
||||||
.placeholder(R.mipmap.playing_background) // 默认图片
|
.placeholder(R.mipmap.playing_background) // 默认图片
|
||||||
@ -120,7 +125,7 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
@Override
|
@Override
|
||||||
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
|
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
|
||||||
// 对图片进行高斯模糊处理
|
// 对图片进行高斯模糊处理
|
||||||
Bitmap blurredBitmap = blurBitmap(A_PlayActivity.this, resource,5);
|
Bitmap blurredBitmap = blurBitmap(A_PlayActivity.this, resource, 5);
|
||||||
|
|
||||||
// 将模糊后的图片作为背景设置到 vb.topContainer
|
// 将模糊后的图片作为背景设置到 vb.topContainer
|
||||||
Drawable blurredDrawable = new BitmapDrawable(getResources(), blurredBitmap);
|
Drawable blurredDrawable = new BitmapDrawable(getResources(), blurredBitmap);
|
||||||
@ -134,7 +139,6 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
startMusicService(audioItem); // 启动音乐服务
|
startMusicService(audioItem); // 启动音乐服务
|
||||||
setupPlayButtonClickListener(); // 设置播放按钮的点击事件
|
setupPlayButtonClickListener(); // 设置播放按钮的点击事件
|
||||||
|
|
||||||
@ -210,21 +214,21 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
|
|
||||||
// 更新进度条和时间显示
|
// 更新进度条和时间显示
|
||||||
private void updateSeekBarAndTime() {
|
private void updateSeekBarAndTime() {
|
||||||
if (isBound && musicService != null) {
|
if (isBound && musicService!= null) {
|
||||||
// 观察当前播放进度
|
// 观察当前播放进度
|
||||||
musicService.getCurrentPositionLiveData().observe(this, position -> {
|
musicService.getCurrentPositionLiveData().observe(this, position -> {
|
||||||
if (musicService.getDurationLiveData().getValue() != null) {
|
Integer duration = musicService.getDurationLiveData().getValue();
|
||||||
int duration = musicService.getDurationLiveData().getValue();
|
if (duration!= null && duration > 0) {
|
||||||
if (duration > 0) {
|
vb.songSeekbar.setProgress((int) ((position / (float) duration) * 100));
|
||||||
vb.songSeekbar.setProgress((int) ((position / (float) duration) * 100));
|
vb.current.setText(formatTime(position));
|
||||||
vb.current.setText(formatTime(position));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 观察音频总时长
|
// 观察音频总时长
|
||||||
musicService.getDurationLiveData().observe(this, duration -> {
|
musicService.getDurationLiveData().observe(this, duration -> {
|
||||||
vb.time.setText(formatTime(duration));
|
if (duration!= null) {
|
||||||
|
vb.time.setText(formatTime(duration));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -279,7 +283,6 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 保存背景状态到SharedPreferences
|
// 保存背景状态到SharedPreferences
|
||||||
private void saveBackgroundPreference() {
|
private void saveBackgroundPreference() {
|
||||||
SharedPreferences sharedPreferences = getSharedPreferences("AppPreferences", MODE_PRIVATE);
|
SharedPreferences sharedPreferences = getSharedPreferences("AppPreferences", MODE_PRIVATE);
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ActivityAsettingBinding;
|
import com.offline.music.playermp3.databinding.ActivityAsettingBinding;
|
||||||
import com.hi.music.player.helper.SettingUtil;
|
import com.offline.music.playermp3.helper.SettingUtil;
|
||||||
|
|
||||||
public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
||||||
|
|
||||||
@ -40,6 +40,10 @@ public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
|||||||
SettingUtil.openTermsOfService(this);
|
SettingUtil.openTermsOfService(this);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
vb.back.setOnClickListener(v -> {
|
||||||
|
finish();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,12 +1,12 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ActivityAsplashBinding;
|
import com.offline.music.playermp3.databinding.ActivityAsplashBinding;
|
||||||
import com.hi.music.player.firebase.RemoteConfigJava;
|
import com.offline.music.playermp3.firebase.RemoteConfigJava;
|
||||||
import com.hi.music.player.firebase.Sp;
|
import com.offline.music.playermp3.firebase.Sp;
|
||||||
|
|
||||||
|
|
||||||
public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
||||||
@ -46,7 +46,7 @@ public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void intData(){
|
public void intData() {
|
||||||
|
|
||||||
countDownTimer = new CountDownTimer(SPLASH_TIME_OUT, 100) {
|
countDownTimer = new CountDownTimer(SPLASH_TIME_OUT, 100) {
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
@ -25,16 +25,16 @@ import androidx.viewbinding.ViewBinding;
|
|||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.api.onPlayNextListener;
|
import com.offline.music.playermp3.api.onPlayNextListener;
|
||||||
import com.hi.music.player.databinding.ActivityBaseBinding;
|
import com.offline.music.playermp3.databinding.ActivityBaseBinding;
|
||||||
import com.hi.music.player.databinding.LayoutPanelBinding;
|
import com.offline.music.playermp3.databinding.LayoutPanelBinding;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.MyValue;
|
import com.offline.music.playermp3.helper.MyValue;
|
||||||
import com.hi.music.player.helper.ViewModelScope;
|
import com.offline.music.playermp3.helper.ViewModelScope;
|
||||||
import com.hi.music.player.media3.MyMediaControllerManager;
|
import com.offline.music.playermp3.media3.MyMediaControllerManager;
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMApplication;
|
import com.offline.music.playermp3.ui.activity.viewmodel.VMApplication;
|
||||||
|
|
||||||
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity implements View.OnClickListener {
|
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity implements View.OnClickListener {
|
||||||
|
|
||||||
@ -1,48 +1,34 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.offline.music.playermp3.ui.activity;
|
||||||
|
|
||||||
import static com.bumptech.glide.request.RequestOptions.bitmapTransform;
|
import static com.bumptech.glide.request.RequestOptions.bitmapTransform;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.annotation.OptIn;
|
import androidx.annotation.OptIn;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.media3.common.util.UnstableApi;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.DataSource;
|
import com.bumptech.glide.load.DataSource;
|
||||||
import com.bumptech.glide.load.engine.GlideException;
|
import com.bumptech.glide.load.engine.GlideException;
|
||||||
import com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions;
|
|
||||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
|
||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.offline.music.playermp3.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.offline.music.playermp3.R;
|
||||||
import com.hi.music.player.adapter.AdapterCategoryList;
|
import com.offline.music.playermp3.adapter.AdapterCategoryList;
|
||||||
import com.hi.music.player.api.HomeItemClickListener;
|
import com.offline.music.playermp3.api.HomeItemClickListener;
|
||||||
import com.hi.music.player.api.onImageColorListener;
|
import com.offline.music.playermp3.databinding.ActivityCategoryListBinding;
|
||||||
import com.hi.music.player.databinding.ActivityCategoryListBinding;
|
import com.offline.music.playermp3.databinding.ActivityHomeBinding;
|
||||||
import com.hi.music.player.databinding.ActivityHomeBinding;
|
import com.offline.music.playermp3.helper.CommonUtils;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.offline.music.playermp3.helper.MyValue;
|
||||||
import com.hi.music.player.helper.MyValue;
|
import com.offline.music.playermp3.javabean.response.ResponseCategoryList;
|
||||||
import com.hi.music.player.javabean.response.ResponseCategoryList;
|
import com.offline.music.playermp3.javabean.response.ResponsePlayListInfo;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlayListInfo;
|
import com.offline.music.playermp3.ui.fragmnt.viewmodel.VMCategoryList;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseCategory;
|
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMApplication;
|
|
||||||
import com.hi.music.player.ui.fragmnt.viewmodel.VMCategoryList;
|
|
||||||
import com.hi.music.player.ui.fragmnt.viewmodel.VMHome;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user