public Template onGetTemplate()

in car_app_library/places/common/src/main/java/androidx/car/app/sample/places/common/PlaceDetailsScreen.java [97:153]


    public Template onGetTemplate() {
        Pane.Builder paneBuilder = new Pane.Builder();

        // If we don't have any places yet, show a loading progress indicator.
        if (mDetails == null) {
            paneBuilder.setLoading(true);
        } else {
            Row.Builder row1Builder = new Row.Builder().setTitle("Address");

            // Add the address, split in multiple lines.
            List<CharSequence> addressLines = getAddressLines(mPlace.getAddress(mGeocoder));
            for (CharSequence line : addressLines) {
                row1Builder.addText(line);
            }

            if (mPhoto != null) {
                row1Builder.setImage(
                        new CarIcon.Builder(IconCompat.createWithBitmap(mPhoto)).build(),
                        Row.IMAGE_TYPE_LARGE);
            }

            paneBuilder.addRow(row1Builder.build());

            boolean hasSecondRow = false;
            Row.Builder row2Builder = new Row.Builder().setTitle("Phone Number and Rating");

            // Add the phone number.
            String phoneNumber = mDetails.getPhoneNumber();
            if (phoneNumber != null) {
                hasSecondRow = true;
                row2Builder.addText(phoneNumber);
            }

            // Add the place's ratings.
            double ratings = mDetails.getRatings();
            if (ratings >= 0) {
                hasSecondRow = true;
                row2Builder.addText(getRatingsString(ratings));
            }

            if (hasSecondRow) {
                paneBuilder.addRow(row2Builder.build());
            }

            // Add a button with a navigate action.
            paneBuilder.addAction(
                    new Action.Builder()
                            .setTitle("Navigate")
                            .setOnClickListener(this::onClickNavigate)
                            .build());
        }

        return new PaneTemplate.Builder(paneBuilder.build())
                .setTitle(mPlace.getName())
                .setHeaderAction(Action.BACK)
                .build();
    }