I am 15 and  a starter in Android Studio, my app works fine but crashes every time i click the call button
This is my xml
  
    <LinearLayout
        android:layout_weight="8"
        android:layout_width="match_parent"
        android:padding="10dp"
        android:background="@drawable/recyclerview_bg"
        android:layout_height="0dp">
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/contactsRecycleView"
            android:layout_width="match_parent"
            android:layout_marginStart="3dp"
            android:layout_marginTop="3dp"
            android:layout_height="wrap_content"/>
    </LinearLayout>
</LinearLayout>
tHIS IS MY MAIN.JAVA, I CANT REALLY MAKE IT IVE BEEN DOING THIS FOR A WEEK
    private List<Contact> contacts;
    private RecyclerView recyclerView;
    private ContactAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hotlines);
        init();
        setData();
    }
    public void setData() {
        contacts.add(new Contact("PNP", "092770",R.drawable.ic_baseline_account_circle_24));
        contacts.add(new Contact("Rescue Team ", "091567",R.drawable.ic_baseline_account_circle_24));
        contacts.add(new Contact("HAT", "097709",R.drawable.ic_baseline_account_circle_24));
        adapter.notifyDataSetChanged();
    }
    private void init() {
        contacts= new ArrayList<>();
        recyclerView=findViewById(R.id.contactsRecycleView);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        adapter=new ContactAdapter(contacts);
        recyclerView.setAdapter(adapter);
    }
}
this is my Recycler Adapter. I want to pass a data on my dialer cause i cant seem to do an ACTION_CALL, I came up with using an interface method but lost throughout the tutorial. so I just stick with passing the data on the dialer. I've researched but I cant really get it. I added THE call button on holder. Can someone explain it to me clearly. Ill really appreciate it.
    private List<Contact> contacts;
    Context context;
    public ContactAdapter(List<Contact> contacts) {
        this.contacts = contacts;
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.model_contact_design, parent, false);
        return  new ViewHolder(view);
    }
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        Contact contact = contacts.get(position);
        holder.nameTv.setText(contact.getName());
        holder.photoIv.setImageResource(contact.getPhoto());
        holder.phoneNo.setText(contact.getPhoneNo());
        holder.callIv.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                String phoneNo = contact.getPhoneNo();
                String call = "tel:" + phoneNo.trim();
                Intent intent = new Intent(Intent.ACTION_DIAL);
                intent.setData(Uri.parse(call));
                context.startActivity(intent);
            }
        });
    }
    @Override
    public int getItemCount() {
        return contacts.size();
    }
    public class ViewHolder extends RecyclerView.ViewHolder {
        private ImageView photoIv;
        ImageButton callIv;
        private TextView nameTv,phoneNo;
        Context context;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            photoIv=itemView.findViewById(R.id.photoIV);
            callIv=itemView.findViewById(R.id.callIV);
            nameTv=itemView.findViewById(R.id.nameTV);
            phoneNo=itemView.findViewById(R.id.phoneNo);
        }
    }
}
tHIS IS MY LOGCATT:
    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.Context.startActivity(android.content.Intent)' on a null object reference
        at com.example.last.ContactAdapter$1.onClick(ContactAdapter.java:55)
        at android.view.View.performClick(View.java:7125)
        at android.view.View.performClickInternal(View.java:7102)
        at android.view.View.access$3500(View.java:801)
        at android.view.View$PerformClick.run(View.java:27336)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7356)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 
    