package me.wcy.music.executor; import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import me.wcy.music.R; import me.wcy.music.model.Music; import me.wcy.music.utils.NetworkUtils; import me.wcy.music.utils.Preferences; /** * Created by hzwangchenyan on 2017/1/20. */ public abstract class PlayMusic implements IExecutor<Music> { private Activity mActivity; protected Music music; private int mTotalStep; protected int mCounter = 0; public PlayMusic(Activity activity, int totalStep) { mActivity = activity; mTotalStep = totalStep; } @Override public void execute() { checkNetwork(); } private void checkNetwork() { boolean mobileNetworkPlay = Preferences.enableMobileNetworkPlay(); if (NetworkUtils.isActiveNetworkMobile(mActivity) && !mobileNetworkPlay) { AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); builder.setTitle(R.string.tips); builder.setMessage(R.string.play_tips); builder.setPositiveButton(R.string.play_tips_sure, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Preferences.saveMobileNetworkPlay(true); getPlayInfoWrapper(); } }); builder.setNegativeButton(R.string.cancel, null); Dialog dialog = builder.create(); dialog.setCanceledOnTouchOutside(false); dialog.show(); } else { getPlayInfoWrapper(); } } private void getPlayInfoWrapper() { onPrepare(); getPlayInfo(); } protected abstract void getPlayInfo(); protected void checkCounter() { mCounter++; if (mCounter == mTotalStep) { onExecuteSuccess(music); } } }