BaseActivity 增加点击事件实现
This commit is contained in:
parent
5d2621f17d
commit
985cdbf771
@ -3,6 +3,7 @@ package com.hi.music.player.media3;
|
|||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
|
||||||
import androidx.media3.common.MediaItem;
|
import androidx.media3.common.MediaItem;
|
||||||
|
import androidx.media3.common.MediaMetadata;
|
||||||
import androidx.media3.session.MediaController;
|
import androidx.media3.session.MediaController;
|
||||||
import androidx.media3.session.SessionToken;
|
import androidx.media3.session.SessionToken;
|
||||||
|
|
||||||
@ -10,29 +11,30 @@ 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.hi.music.player.MusicApplication;
|
||||||
import com.hi.music.player.helper.CommonUtils;
|
import com.hi.music.player.helper.CommonUtils;
|
||||||
|
import com.hi.music.player.javabean.response.ResponsePlay;
|
||||||
import com.hi.music.player.network.RetrofitManager;
|
import com.hi.music.player.network.RetrofitManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public class MyMediaController {
|
public class MyMediaControllerManager {
|
||||||
|
|
||||||
private static volatile MyMediaController MyMediaControllerInstance;
|
private static volatile MyMediaControllerManager myMediaControllerManagerInstance;
|
||||||
|
|
||||||
private MediaController mediaController;
|
private MediaController mediaController;
|
||||||
public static MyMediaController getInstance() {
|
public static MyMediaControllerManager getInstance() {
|
||||||
if (MyMediaControllerInstance == null) {
|
if (myMediaControllerManagerInstance == null) {
|
||||||
synchronized (RetrofitManager.class) {
|
synchronized (RetrofitManager.class) {
|
||||||
if (MyMediaControllerInstance == null) {
|
if (myMediaControllerManagerInstance == null) {
|
||||||
MyMediaControllerInstance = new MyMediaController();
|
myMediaControllerManagerInstance = new MyMediaControllerManager();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return MyMediaControllerInstance;
|
return myMediaControllerManagerInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init(){
|
public void init(){
|
||||||
SessionToken sessionToken =
|
SessionToken sessionToken =
|
||||||
new SessionToken(MusicApplication.myApplication, new ComponentName(MusicApplication.myApplication, PlaybackService.class));
|
new SessionToken(MusicApplication.myApplication, new ComponentName(MusicApplication.myApplication, PlaybackService.class));
|
||||||
ListenableFuture<MediaController> controllerFuture =
|
ListenableFuture<MediaController> controllerFuture =
|
||||||
@ -50,7 +52,28 @@ public class MyMediaController {
|
|||||||
}, MoreExecutors.directExecutor());
|
}, MoreExecutors.directExecutor());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addMusicPlay(ResponsePlay responsePlay){
|
||||||
List<MediaItem> mediaItems = new ArrayList<>();
|
List<MediaItem> mediaItems = new ArrayList<>();
|
||||||
|
MediaItem.Builder builder = new MediaItem.Builder();
|
||||||
|
builder.setUri(responsePlay.getVideoId());
|
||||||
|
MediaMetadata.Builder MediaMetadata_builder = new MediaMetadata.Builder();
|
||||||
|
// MediaMetadata_builder.setMediaType();
|
||||||
|
// MediaMetadata_builder.setAlbumTitle();
|
||||||
|
// MediaMetadata_builder.setArtist();
|
||||||
|
// MediaMetadata_builder.setDurationMs();
|
||||||
|
// MediaMetadata_builder.setTitle();
|
||||||
|
// MediaMetadata_builder.setRecordingYear();
|
||||||
|
builder.setMediaMetadata(MediaMetadata_builder.build());
|
||||||
|
|
||||||
|
mediaItems.add(builder.build());
|
||||||
mediaController.addMediaItems(mediaItems);
|
mediaController.addMediaItems(mediaItems);
|
||||||
|
mediaController.prepare();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void play(){
|
||||||
|
mediaController.play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ package com.hi.music.player.ui.activity;
|
|||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
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;
|
||||||
@ -41,6 +42,11 @@ public class A_HomeActivity extends BaseActivity<ActivityAhomeBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return true;
|
return true;
|
||||||
@ -95,5 +101,9 @@ public class A_HomeActivity extends BaseActivity<ActivityAhomeBinding> {
|
|||||||
tabBinding.homeIcon.setImageResource(isSelected ? selectedIcons[position] : defaultIcons[position]);
|
tabBinding.homeIcon.setImageResource(isSelected ? selectedIcons[position] : defaultIcons[position]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.hi.music.player.ui.activity;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ActivityAplayBinding;
|
import com.hi.music.player.databinding.ActivityAplayBinding;
|
||||||
|
|
||||||
public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
||||||
@ -15,6 +17,11 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return true;
|
return true;
|
||||||
@ -24,4 +31,9 @@ public class A_PlayActivity extends BaseActivity<ActivityAplayBinding> {
|
|||||||
public boolean statusBarLight() {
|
public boolean statusBarLight() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.hi.music.player.ui.activity;
|
||||||
|
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ActivityAsettingBinding;
|
import com.hi.music.player.databinding.ActivityAsettingBinding;
|
||||||
|
|
||||||
public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
||||||
@ -15,6 +17,11 @@ public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return true;
|
return true;
|
||||||
@ -24,4 +31,9 @@ public class A_SettingActivity extends BaseActivity<ActivityAsettingBinding> {
|
|||||||
public boolean statusBarLight() {
|
public boolean statusBarLight() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -2,6 +2,7 @@ package com.hi.music.player.ui.activity;
|
|||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.hi.music.player.databinding.ActivityAsplashBinding;
|
import com.hi.music.player.databinding.ActivityAsplashBinding;
|
||||||
|
|
||||||
@ -23,6 +24,11 @@ public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return true;
|
return true;
|
||||||
@ -58,4 +64,9 @@ public class A_SplashActivity extends BaseActivity<ActivityAsplashBinding> {
|
|||||||
countDownTimer.start();
|
countDownTimer.start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -14,7 +14,7 @@ import androidx.viewbinding.ViewBinding;
|
|||||||
|
|
||||||
import com.hi.music.player.helper.ViewModelScope;
|
import com.hi.music.player.helper.ViewModelScope;
|
||||||
|
|
||||||
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity {
|
public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActivity implements View.OnClickListener{
|
||||||
|
|
||||||
private final ViewModelScope mViewModelScope = new ViewModelScope();
|
private final ViewModelScope mViewModelScope = new ViewModelScope();
|
||||||
|
|
||||||
@ -38,11 +38,14 @@ public abstract class BaseActivity<T extends ViewBinding> extends AppCompatActiv
|
|||||||
initFullScreen();
|
initFullScreen();
|
||||||
}
|
}
|
||||||
onCreateInit();
|
onCreateInit();
|
||||||
|
onInitClick();
|
||||||
}
|
}
|
||||||
protected abstract T getViewBinding();
|
protected abstract T getViewBinding();
|
||||||
|
|
||||||
protected abstract void onCreateInit();
|
protected abstract void onCreateInit();
|
||||||
|
|
||||||
|
protected abstract void onInitClick();
|
||||||
|
|
||||||
public abstract boolean isFullScreen();
|
public abstract boolean isFullScreen();
|
||||||
|
|
||||||
public abstract boolean statusBarLight();
|
public abstract boolean statusBarLight();
|
||||||
|
|||||||
@ -37,6 +37,11 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding> {
|
|||||||
initView(); // 可以在这里初始化视图
|
initView(); // 可以在这里初始化视图
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return true;
|
return true;
|
||||||
@ -97,7 +102,9 @@ public class HomeActivity extends BaseActivity<ActivityHomeBinding> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -36,6 +36,11 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFullScreen() {
|
public boolean isFullScreen() {
|
||||||
return false;
|
return false;
|
||||||
@ -45,4 +50,9 @@ public class MainActivity extends BaseActivity<ActivityMainBinding> {
|
|||||||
public boolean statusBarLight() {
|
public boolean statusBarLight() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,14 +1,12 @@
|
|||||||
package com.hi.music.player.ui.activity;
|
package com.hi.music.player.ui.activity;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
import androidx.media3.session.MediaController;
|
|
||||||
import androidx.media3.session.SessionToken;
|
|
||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.load.DataSource;
|
import com.bumptech.glide.load.DataSource;
|
||||||
@ -17,8 +15,6 @@ 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.google.common.util.concurrent.ListenableFuture;
|
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
|
||||||
import com.hi.music.player.MusicApplication;
|
import com.hi.music.player.MusicApplication;
|
||||||
import com.hi.music.player.R;
|
import com.hi.music.player.R;
|
||||||
import com.hi.music.player.databinding.ActivityPlayBinding;
|
import com.hi.music.player.databinding.ActivityPlayBinding;
|
||||||
@ -26,17 +22,17 @@ import com.hi.music.player.helper.CommonUtils;
|
|||||||
import com.hi.music.player.helper.MyValue;
|
import com.hi.music.player.helper.MyValue;
|
||||||
import com.hi.music.player.javabean.response.ResponsePlay;
|
import com.hi.music.player.javabean.response.ResponsePlay;
|
||||||
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
import com.hi.music.player.javabean.response.child.ResponseSingle;
|
||||||
import com.hi.music.player.media3.PlaybackService;
|
import com.hi.music.player.media3.MyMediaControllerManager;
|
||||||
import com.hi.music.player.ui.activity.viewmodel.VMPlay;
|
import com.hi.music.player.ui.activity.viewmodel.VMPlay;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.ExecutionException;
|
|
||||||
|
|
||||||
public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
||||||
|
|
||||||
|
|
||||||
private ResponseSingle responseSingle;
|
private ResponseSingle responseSingle;
|
||||||
private VMPlay vmPlay;
|
private VMPlay vmPlay;
|
||||||
|
private MyMediaControllerManager mediaController;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ActivityPlayBinding getViewBinding() {
|
protected ActivityPlayBinding getViewBinding() {
|
||||||
@ -65,10 +61,19 @@ public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInitClick() {
|
||||||
|
vb.btnPlay.setOnClickListener(this::onClick);
|
||||||
|
}
|
||||||
|
|
||||||
private void loadInfo(ResponsePlay data) {
|
private void loadInfo(ResponsePlay data) {
|
||||||
vb.tvSongName.setText(data.getSongTitle());
|
vb.tvSongName.setText(data.getSongTitle());
|
||||||
vb.tvSingerName.setText(data.getSingerName());
|
vb.tvSingerName.setText(data.getSingerName());
|
||||||
vb.tvDuration.setText(data.getDuration());
|
vb.tvDuration.setText(data.getDuration());
|
||||||
|
|
||||||
|
mediaController = MyMediaControllerManager.getInstance();
|
||||||
|
mediaController.init();
|
||||||
|
mediaController.addMusicPlay(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadCovert(String url) {
|
private void loadCovert(String url) {
|
||||||
@ -109,4 +114,12 @@ public class PlayActivity extends BaseActivity<ActivityPlayBinding> {
|
|||||||
public boolean statusBarLight() {
|
public boolean statusBarLight() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
if(v.equals(vb.btnPlay)){
|
||||||
|
mediaController.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user