Получите все изображения продуктов последовательно из магазина администратора Shopify в GraphQL в Android - PullRequest
0 голосов
/ 05 февраля 2019

Я использую GraphQL в андроид студии.И сейчас я получаю только одно изображение продукта.

Но я хочу получить все изображения продуктов соответственно.

Ниже приведен мой код для Android с Java.

1) Получите изображение продукта, добавив его идентификатор.

querySEC = Storefront.query(rootQuery -> rootQuery
            .node(new ID(moviesList.get(position).getId().toString()), nodeQuery -> nodeQuery
                    .onProduct(productQuery -> productQuery
                            .title()
                            .description()
                            .images(arg -> arg.first(10), imageConnectionQuery -> imageConnectionQuery
                                    .edges(imageEdgeQuery -> imageEdgeQuery
                                            .node(imageQuery -> imageQuery
                                                    .src()
                                            )
                                    )
                            )
                            .variants(arg -> arg.first(10), variantConnectionQuery -> variantConnectionQuery
                                    .edges(variantEdgeQuery -> variantEdgeQuery
                                            .node(productVariantQuery -> productVariantQuery
                                                    .price()
                                                    .title()
                                                    .available()
                                            )
                                    )
                            )
                    )
            )
    );

2) Затем я вызываю этот метод для установки изображения в Imageview

graphClient.queryGraph(querySEC).enqueue(new GraphCall.Callback<Storefront.QueryRoot>()
    {
        @Override
        public void onResponse(@NonNull GraphResponse<Storefront.QueryRoot> response)
        {
            Storefront.Product product = (Storefront.Product) response.data().getNode();

            List<Storefront.Image> productImages = new ArrayList<>();

            for (final Storefront.ImageEdge imageEdge : product.getImages().getEdges())
            {
                productImages.add(imageEdge.getNode());
            }

            List<Storefront.ProductVariant> productVariants = new ArrayList<>();

            for (final Storefront.ProductVariantEdge productVariantEdge : product.getVariants().getEdges())
            {
                productVariants.add(productVariantEdge.getNode());
            }


            ((MainActivity)context).runOnUiThread(new Runnable()
            {

                @Override
                public void run()
                {

                    for (int i = 0; i <productImages.size() ; i++) {

                        Glide.with(((MainActivity)context))
                                .load(productImages.get(productImages.listIterator().nextIndex()).getSrc())
                                .into((ImageView)
                                        ((MainActivity)context).
                                                findViewById(R.id.img_prdimg));

                    }

                }

            });

        }

        @Override
        public void onFailure(@NonNull GraphError error)
        {


        }

    });

Проверкаэто изображение для понимания проблемы.

enter image description here

...