package com.ellen.musicplayer.ui.activity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.ellen.musicplayer.App;
import com.ellen.musicplayer.MessageTag;
import com.ellen.musicplayer.R;
import com.ellen.musicplayer.adapter.MenuAdapter;
import com.ellen.musicplayer.bean.DinShiBean;
import com.ellen.musicplayer.bean.Menu;
import com.ellen.musicplayer.bean.PiFu;
import com.ellen.musicplayer.service.DinShiService;
import com.ellen.musicplayer.ui.dialog.CloseAppDialog;
import com.ellen.musicplayer.ui.dialog.CommonOkCancelDialog;
import com.ellen.musicplayer.ui.dialog.DeveloperDialog;
import com.ellen.musicplayer.ui.dialog.DinShiDialog;
import com.ellen.musicplayer.ui.dialog.PlayListDialog;
import com.ellen.musicplayer.manager.pifu.PiFuManager;
import com.ellen.musicplayer.message.MusicPlay;
import com.ellen.musicplayer.message.PiFuMessage;
import com.ellen.musicplayer.ui.fragment.LocalFragment;
import com.ellen.musicplayer.ui.fragment.SortFragment;
import com.ellen.musicplayer.manager.mediaplayer.MediaPlayerManager;
import com.ellen.musicplayer.notification.MusicNotification;
import com.ellen.musicplayer.utils.PermissionUtils;
import com.ellen.musicplayer.utils.TimeUtils;
import com.ellen.musicplayer.utils.ToastUtils;
import com.ellen.musicplayer.utils.statusutil.StatusUtils;
import com.ellen.supermessagelibrary.BaseEvent;
import com.ellen.supermessagelibrary.MessageEventTrigger;
import com.ellen.supermessagelibrary.MessageManager;
import com.ellen.supermessagelibrary.SuperMessage;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private TextView tvTabOne, tvTabTwo, tvMusicName, tvSingerName;
private ViewPager viewPager;
private List<Fragment> fragmentList;
private DrawerLayout drawerLayout;
private ImageView ivUser, ivSerach, ivPlayerIcon;
private ImageView ivPlayerBg, ivPlayerPause, ivPlayerList;
private IntentFilter intentFilterPause, intentFilterNext;
private RelativeLayout rlPlayerMb;
private ImageView ivPiFu;
private PermissionUtils permissionUtils;
private RelativeLayout rl;
private MusicNotification musicNotification;
private BaseEvent dinShiBaseEvent;
private MyServiceConncetion myServiceConncetion;
private LinearLayout llExit;
private Handler handler = new Handler();
private TextView tvDinShiTime;
private LinearLayout llPiFu,llDinShi,llDeveloper;
/**
* 取代EventBus
*/
private BaseEvent musicEvent, piFuEvent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置无ActionBar效果
StatusUtils.setNoActionBar(this);
StatusUtils.setTranslucentStatus(this);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
initView();
initData();
}
private void initData() {
dinShiBaseEvent = new MessageEventTrigger() {
@Override
public void handleMessage(SuperMessage message) {
DinShiBean dinShiBean = (DinShiBean) message.object;
if(dinShiBean.isComplete()) {
handler.post(new Runnable() {
@Override
public void run() {
tvDinShiTime.setVisibility(View.GONE);
App app = (App) getApplication();
if(app.isAppActive()) {
CloseAppDialog closeAppDialog = new CloseAppDialog(System.currentTimeMillis(), new CloseAppDialog.Callback() {
@Override
public void ok() {
}
@Override
public void stop() {
if (MediaPlayerManager.getInstance().checkCanPlay()) {
MediaPlayerManager.getInstance().pause();
}
}
@Override
public void cancel() {
ToastUtils.toast(app.getActivity(), "退出定时停止播放成功!");
}
});
AppCompatActivity appCompatActivity = (AppCompatActivity) app.getActivity();
closeAppDialog.show(appCompatActivity.getSupportFragmentManager(), "");
}else {
if (MediaPlayerManager.getInstance().checkCanPlay()) {
MediaPlayerManager.getInstance().pause();
}
}
if (myServiceConncetion != null) {
unbindService(myServiceConncetion);
myServiceConncetion = null;
}
}
});
}else {
tvDinShiTime.setVisibility(View.VISIBLE);
tvDinShiTime.setText(TimeUtils.format((dinShiBean.getTime())));
}
}
@Override
public FragmentActivity bindActivity() {
return MainActivity.this;
}
};
MessageManager.getInstance().registerMessageEvent(MessageTag.DIN_SHI_COMPLETE,dinShiBaseEvent);
updatePiFu(PiFuManager.getInstance().getPiFu());
//走马灯设置
tvMusicName.setSelected(true);
//tvSingerName.setSelected(true);
permissionUtils = new PermissionUtils(this);
permissionUtils.startCheckFileReadWritePermission(0, new PermissionUtils.PermissionCallback() {
@Override
public void success() {
fragmentList = new ArrayList<>();
fragmentList.add(new SortFragment());
fragmentList.add(new LocalFragment());
viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@NonNull
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return 2;
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling等人在1995年推出,被设计为一种简单、健壮、可移植、多线程、动态的语言。Java的主要特点和优势包括以下几个方面: 跨平台性(Write Once, Run Anywhere): Java的代码可以在不同的平台上运行,只需编写一次代码,就可以在任何支持Java的设备上执行。这得益于Java虚拟机(JVM),它充当了代码和底层硬件之间的中介。 面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存管理(垃圾回收): Java具有自动内存管理机制,通过垃圾回收器自动回收不再使用的对象,使得开发者不需要手动管理内存,减轻了程序员的负担,同时也减少了内存泄漏的风险。
资源推荐
资源详情
资源评论
收起资源包目录
大学生毕业设计音乐播放器模型项目.zip (291个子文件)
gradlew.bat 2KB
.gitignore 214B
.gitignore 7B
build.gradle 2KB
build.gradle 598B
settings.gradle 46B
gradlew 5KB
gradle-wrapper.jar 53KB
MainActivity.java 21KB
SystemBarTintManager.java 19KB
PlayActivity.java 18KB
ManyChooseActivity.java 14KB
SQLManager.java 13KB
SortFragment.java 13KB
MediaPlayerManager.java 12KB
BaseApplication.java 11KB
PiFuSettingActivity.java 10KB
LocalSDMusicUtils.java 10KB
BaseSingleRecyclerViewAdapter.java 10KB
StatusUtils.java 9KB
MusicMessageDialog.java 8KB
BaseMediaPlayerActivity.java 8KB
ShareUtils.java 7KB
PlayListDialog.java 7KB
SerachDanQuFragment.java 7KB
DanQuFragment.java 6KB
UriUtils.java 6KB
SerachGeDanFragment.java 6KB
LikeActivity.java 6KB
BasePopwindow.java 6KB
SerachActivity.java 6KB
GeDanActivity.java 6KB
CreateGeDanDialog.java 5KB
BaseNotification.java 5KB
App.java 5KB
Music.java 5KB
AddToGeDanDialog.java 5KB
SerachSingerFragment.java 4KB
MusicAdapter.java 4KB
SerachZhuanJiFragment.java 4KB
SortActivity.java 4KB
ContentProviderUtils.java 4KB
PermissionUtils.java 4KB
SerachMusicAdapter.java 4KB
GeDanManagerActivity.java 4KB
PinYinUtil.java 4KB
AllNearFragment.java 4KB
MusicBitmap.java 4KB
DinShiService.java 4KB
OneZhouNearFragment.java 4KB
NearDateMusicAdapter.java 4KB
GeDanManagerDialog.java 4KB
SingerFragment.java 4KB
OSUtils.java 3KB
GeDanManagerAdapter.java 3KB
BannerAdapter.java 3KB
NearTimesMusicAdapter.java 3KB
CloseAppDialog.java 3KB
SplashActivity.java 3KB
SingerAdapter.java 3KB
ZhuanJiAdapter.java 3KB
PlayMusicAdapter.java 3KB
BaseDialog.java 3KB
ManyChooseAdapter.java 3KB
FileFragment.java 3KB
ZhuanJiFragment.java 3KB
GeDanAdapter.java 3KB
MusicNotification.java 3KB
XCRoundRectImageView.java 3KB
SaveStatusFragmentPagerAdapter.java 3KB
PiFuSelectorAdapter.java 3KB
YuanJiaoImageView.java 3KB
CollectionUtils.java 2KB
BaseFloatingView.java 2KB
LiuPaiAdapter.java 2KB
BaseDialogFragment.java 2KB
FileMusicAdapter.java 2KB
NearMusicActivity.java 2KB
MenuAdapter.java 2KB
GaoShiUtils.java 2KB
BaseListViewAdapter.java 2KB
BaseFragment.java 2KB
SelectorSingerDialog.java 2KB
BaseActivity.java 2KB
MusicLocalMessageDilaog.java 2KB
DinShiDialog.java 2KB
BaseMultipleRecyclerViewAdapter.java 2KB
LocalFragment.java 2KB
CommonOkCancelDialog.java 2KB
LeiBieDialog.java 2KB
JumpSortUtils.java 2KB
GeDanMusicTable.java 2KB
NearMusicTable.java 2KB
BaseBottomPopWindow.java 2KB
MusicMessageMenuAdapter.java 2KB
AppLifeListener.java 2KB
MMKVHelper.java 2KB
LinShenUtils.java 2KB
GeDanTable.java 2KB
ManySelectorMusicDialog.java 2KB
共 291 条
- 1
- 2
- 3
资源评论
JJJ69
- 粉丝: 6135
- 资源: 5674
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功