i want change the code to when click imagebutton change the photo package com.example.test;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class MainActivity extends AppCompatActivity  {

    private int[] cardImages = {R.drawable.photo1, R.drawable.photo2, R.drawable.photo3, R.drawable.photo4};
    private ImageButton[] buttons; // Array to store buttons representing cards

    private int[] cardStates = new int[8];  // Array to store the state of each card (e.g., 1=face up, 2=face down, 3=matched)


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttons = new ImageButton[8];


        for (int i = 0; i < 8; i++) {
            buttons[i] = findViewById(getResources().getIdentifier("card" + (i + 1), "id", getPackageName()));
            buttons[i].setOnClickListener(cardClickListener);
            cardStates[i] = 2;
        }
        assignCardImages();
    }

    private void assignCardImages() {
        List<Integer> buttonPositions = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7));
        Collections.shuffle(buttonPositions, new Random());

        // Assign the first 4 random photo resources to the buttons
        for (int i = 0; i < 8; i++) {
            buttons[i].setImageResource(cardImages[i % 4]);
        }
    }



    private View.OnClickListener cardClickListener = new View.OnClickListener() {



        @Override
        public void onClick(View v) {


            ImageButton selectedImageButton = (ImageButton) v;
            int selectedCardIndex = Arrays.asList(buttons).indexOf(selectedImageButton);

            if (cardStates[selectedCardIndex] == 2) {
                cardStates[selectedCardIndex] = 1;

                selectedImageButton.setImageResource(cardImages[selectedCardIndex]);

                if (isTwoCardsFaceUp()) {
                    int firstCardIndex = getFirstCardIndex();
                    int secondCardIndex = getSecondCardIndex();

                    if (cardImages[firstCardIndex] == cardImages[secondCardIndex]) {
                        cardStates[firstCardIndex] = 3;
                        cardStates[secondCardIndex] = 3;
                    } else {
                        cardStates[firstCardIndex] = 2;
                        cardStates[secondCardIndex] = 2;
                        buttons[firstCardIndex].setBackgroundResource(R.drawable.photo5);
                        buttons[secondCardIndex].setBackgroundResource(R.drawable.photo5);
                    }
                }
            }
        }
    };

    private boolean isTwoCardsFaceUp() {
        int count = 0;
        for (int state : cardStates) {
            if (state == 1) {
                count++;
            }
        }
        return count == 2;
    }

    private int getFirstCardIndex() {
        for (int i = 0; i < 8; i++) {
            if (cardStates[i] == 1) {
                return i;
            }
        }
        return -1;
    }

    private int getSecondCardIndex() {
        for (int i = 0; i < 8; i++) {
            if (cardStates[i] == 1 && i != getFirstCardIndex()) {
                return i;
            }
        }
        return -1;
    }

}