ActivityJumpUtil.java 3.22 KB
package com.cnlive.gundam.main.utils;

import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;

import com.cnlive.gundam.R;
import com.cnlive.gundam.main.model.ActiveInfo;
import com.cnlive.gundam.main.model.ActivePlayInfo;
import com.cnlive.gundam.main.model.VideoListProgram;
import com.cnlive.gundam.main.network.RetrofitUtil;
import com.cnlive.gundam.main.network.util.SignUtil;
import com.cnlive.gundam.video.activity.PlayerActivity;
import com.cnlive.gundam.video.view.VideoView;
import com.cnlive.libs.util.Config;

import java.util.HashMap;
import java.util.Map;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

/**
 * Created by Lynn on 5/27/2017.
 */

public class ActivityJumpUtil {

    //活动视频页面跳转
    public static void jumpByProgramType(final Context context, ActiveInfo activeInfo) {
        if (context == null || activeInfo == null)
            return;
        Map<String, String> params = new HashMap<>();
        params.put("appId", Config.getAppId());
        params.put("activityId", activeInfo.getActivityId());
        RetrofitUtil.getApiService().getActivityPlayInfo(SignUtil.getSignParamM(context, params)).enqueue(new Callback<ActivePlayInfo>() {
            @Override
            public void onResponse(Call<ActivePlayInfo> call, Response<ActivePlayInfo> response) {
                if (response.isSuccessful()) {
                    ActivePlayInfo info = response.body();
                    if (info != null && "0".equals(info.getCode())) {
                        jumpByStatus(context, info.getData());
                    } else {
                        Toast.makeText(context, context.getString(R.string.request_state_error), Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(Call<ActivePlayInfo> call, Throwable t) {
                Log.e("11111111111111", "onFailure: "+call.request().toString() );
                Toast.makeText(context, context.getString(R.string.request_state_error), Toast.LENGTH_LONG).show();
            }
        });
    }

    private static void jumpByStatus(Context context, ActivePlayInfo.ActiveModel model) {
        if (model == null) return;
        if (model.getActivityStatus() == 1) {//直播中
            jumpByProgramType(context, new VideoListProgram(model.getChannelId(), model.getActivityName(), model.getCoverImgUrl(), model.getRates(), VideoView.TYPE_UGC_LIVE));
        } else if (model.getActivityStatus() == 3) {//已结束
            jumpByProgramType(context, new VideoListProgram(model.getActivityId(), model.getActivityName(), model.getCoverImgUrl(), model.getActivityName(), model.getRates(), VideoView.TYPE_UGC_VOD));
        } else {
            Toast.makeText(context, context.getString(R.string.request_state_play_error), Toast.LENGTH_LONG).show();
        }
    }

    //视频页面跳转
    public static void jumpByProgramType(final Context context, final VideoListProgram program) {
        if (context == null || program == null)
            return;
        Intent intent = new Intent(context, PlayerActivity.class);
        intent.putExtra("program", program);
        context.startActivity(intent);
    }
}