package com.puntoz.pro;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import androidx.media3.common.MediaItem;
import androidx.media3.common.util.UnstableApi;
import androidx.media3.datasource.DefaultHttpDataSource;
import androidx.media3.exoplayer.DefaultLoadControl;
import androidx.media3.exoplayer.ExoPlayer;
import androidx.media3.exoplayer.hls.HlsMediaSource;
import androidx.media3.exoplayer.source.ProgressiveMediaSource;
import androidx.media3.exoplayer.trackselection.DefaultTrackSelector;
import androidx.media3.ui.AspectRatioFrameLayout;
import androidx.media3.ui.PlayerView;

import java.io.InputStream;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import java.net.HttpURLConnection;
import java.net.URLEncoder;

@UnstableApi
public class PlayerActivity extends Activity {

    PlayerView playerView;
    ExoPlayer player;
    Handler handler = new Handler();

    FrameLayout root;
    LinearLayout osdBox;
    ImageView logoView;
    TextView nowView;
    TextView nowTimeView;
    TextView nextView;
    TextView nextTimeView;
    TextView remainView;
    View progressDone;
    View progressLeft;

    String url = "";
    String channelName = "Puntoz TV";
    String channelLogo = "";
    String nowTitle = "No information";
    String nextTitle = "No information";
    String startTime = "";
    String endTime = "";
    String nextStartTime = "";
    String nextEndTime = "";
    String streamId = "";

    ArrayList<EpgItem> epgItems = new ArrayList<>();
    Runnable epgTicker;
    Runnable osdHideTicker;
    boolean epgReloading = false;
    long lastEpgReload = 0;

    int amarillo = Color.rgb(255, 220, 0);
    int azul = Color.rgb(0, 210, 255);

    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        url = getIntent().getStringExtra("url");
        channelName = getIntent().getStringExtra("channel_name");
