package com.tiktakindia.tiktak.VideoAction;


import android.annotation.SuppressLint;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;

import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.tiktakindia.tiktak.BuildConfig;
import com.tiktakindia.tiktak.R;
import com.tiktakindia.tiktak.SimpleClasses.Fragment_Callback;
import com.tiktakindia.tiktak.SimpleClasses.Functions;
import com.tiktakindia.tiktak.SimpleClasses.Variables;

import java.util.Collections;
import java.util.List;


/**
 * A simple {@link Fragment} subclass.
 */
public class VideoAction_F extends BottomSheetDialogFragment implements View.OnClickListener {

    View view;
    Context context;
    RecyclerView recyclerView;

    Fragment_Callback fragment_callback;

    String video_id;

    ProgressBar progressBar;

    public VideoAction_F() {
    }

    @SuppressLint("ValidFragment")
    public VideoAction_F(String id, Fragment_Callback fragment_callback) {
        video_id=id;
        this.fragment_callback=fragment_callback;
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        view= inflater.inflate(R.layout.fragment_video_action, container, false);
        context=getContext();

        progressBar=view.findViewById(R.id.progress_bar);
        view.findViewById(R.id.save_video_layout).setOnClickListener(this);
        view.findViewById(R.id.copy_layout).setOnClickListener(this);
        view.findViewById(R.id.llShareVideo).setOnClickListener(this);

//        new Handler().postDelayed(new Runnable() {
//            @Override
//            public void run() {
//
//                Get_Shared_app();
//            }
//        },1000);

        return view;
    }

    VideoSharingApps_Adapter adapter;
    public void Get_Shared_app(){
        recyclerView = (RecyclerView) view.findViewById(R.id.recylerview);
        final GridLayoutManager layoutManager = new GridLayoutManager(context, 5);
        recyclerView.setLayoutManager(layoutManager);
        recyclerView.setHasFixedSize(false);

        new Thread(new Runnable() {
            @Override
            public void run() {

                try {

                PackageManager pm=getActivity().getPackageManager();
                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.setType("text/plain");
                intent.putExtra(Intent.EXTRA_TEXT, "https://google.com");

                List<ResolveInfo> launchables=pm.queryIntentActivities(intent, 0);

                for (int i=0; i<launchables.size(); i++){

                    if(launchables.get(i).activityInfo.name.contains("SendTextToClipboardActivity")){
                        launchables.remove(i);
                        break;
                    }

                }

                Collections.sort(launchables,
                        new ResolveInfo.DisplayNameComparator(pm));

                 adapter=new VideoSharingApps_Adapter(context, launchables, new VideoSharingApps_Adapter.OnItemClickListener() {
                    @Override
                    public void onItemClick(int positon, ResolveInfo item, View view) {
                        Toast.makeText(context, ""+item.activityInfo.name, Toast.LENGTH_SHORT).show();
                        //Open_App(item);
                    }
                });

                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        recyclerView.setAdapter(adapter);
                        progressBar.setVisibility(View.GONE);
                    }
                });


            }
            catch (Exception e){

            }
            }
        }).start();



    }


    public void Open_App() {

            try {
                Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.setType("text/plain");
                shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Tik Tak");
                String shareMessage= "\nLet see this video , shared from Tik Tak\n\n";
                shareMessage = shareMessage + Variables.base_url+"view.php?id="+video_id +" or Download from "+"https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID+"\n\n";
                shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);
                startActivity(Intent.createChooser(shareIntent, "choose one"));
            } catch(Exception e) {
                //e.toString();
            }


    }



    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.save_video_layout:

                if(Functions.Checkstoragepermision(getActivity())) {

                    Bundle bundle = new Bundle();
                    bundle.putString("action", "save");
                    dismiss();
                    fragment_callback.Responce(bundle);
                }

                break;

            case R.id.llShareVideo:

                Open_App();
                break;
        }
    }


}
