Example usage for android.view View setOnClickListener

List of usage examples for android.view View setOnClickListener

Introduction

In this page you can find the example usage for android.view View setOnClickListener.

Prototype

public void setOnClickListener(@Nullable OnClickListener l) 

Source Link

Document

Register a callback to be invoked when this view is clicked.

Usage

From source file:com.bhatworks.android.slidingtab.SlidingTabLayout.java

private void populateTabStrip() {
    final PagerAdapter adapter = mViewPager.getAdapter();
    final View.OnClickListener tabClickListener = new TabClickListener();

    for (int i = 0; i < adapter.getCount(); i++) {
        View tabView = null;
        TextView tabTitleView = null;//from   w  w  w.  j  ava 2  s.  c o m

        if (mTabViewLayoutId != 0) {
            // If there is a custom tab view layout id set, try and inflate it
            tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
            tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
        }

        if (tabView == null) {
            tabView = createDefaultTabView(getContext());
        }

        if (tabTitleView == null && TextView.class.isInstance(tabView)) {
            tabTitleView = (TextView) tabView;
        }

        if (mDistributeEvenly) {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
            lp.width = 0;
            lp.weight = 1;
        }

        if (tabTitleView != null) {
            tabTitleView.setText(adapter.getPageTitle(i));
        }
        tabView.setOnClickListener(tabClickListener);
        String desc = mContentDescriptions.get(i, null);
        if (desc != null) {
            tabView.setContentDescription(desc);
        }

        mTabStrip.addView(tabView);
        if (i == mViewPager.getCurrentItem()) {
            tabView.setSelected(true);
        }
    }
}

From source file:com.coupondunia.restaurants.offers.views.SlidingTabLayout.java

private void populateTabStrip() {
    final PagerAdapter adapter = mViewPager.getAdapter();
    final OnClickListener tabClickListener = new TabClickListener();

    for (int i = 0; i < adapter.getCount(); i++) {
        View tabView = null;
        TextView tabTitleView = null;// w  w  w.j a  v a2  s. c om

        if (mTabViewLayoutId != 0) {
            // If there is a custom tab view layout id set, try and inflate it
            tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
            tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
        }

        if (tabView == null) {
            tabView = createDefaultTabView(getContext());
        }

        if (tabTitleView == null && TextView.class.isInstance(tabView)) {
            tabTitleView = (TextView) tabView;
        }

        if (mDistributeEvenly) {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
            lp.width = 0;
            lp.weight = 1;
        }

        assert tabTitleView != null;
        tabTitleView.setText(adapter.getPageTitle(i));
        tabTitleView.setTextColor(Color.BLACK);
        tabView.setOnClickListener(tabClickListener);
        String desc = mContentDescriptions.get(i, null);
        if (desc != null) {
            tabView.setContentDescription(desc);
        }

        mTabStrip.addView(tabView);
        if (i == mViewPager.getCurrentItem()) {
            tabView.setSelected(true);
        }
    }
}

From source file:com.activiti.android.ui.fragments.task.TaskDetailsFoundationFragment.java

private void displayFormField() {
    if (isEnded) {
        hide(R.id.task_details_form_container);
        return;/* w w w.j av a  2  s .  com*/
    }

    show(R.id.task_details_form_container);
    HolderUtils.configure(formHolder, getString(R.string.task_field_form),
            getString(R.string.task_action_retrieve_info), R.drawable.ic_assignment_grey);

    View v = viewById(R.id.task_details_form_container);
    v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AttachFormTaskDialogFragment.with(getActivity()).bindFragmentTag(getTag())
                    .taskId(taskRepresentation.getId())
                    .formKey(formKey != null ? Long.parseLong(formKey) : null).displayAsDialog();
        }
    });

    ((TextView) viewById(R.id.task_details_form_container).findViewById(R.id.bottomtext))
            .setText(formModelName != null ? formModelName
                    : formDefinitionModel != null ? formDefinitionModel.getName()
                            : getString(R.string.task_message_no_form));
}

From source file:com.al70b.core.extended_widgets.SlidingTabLayout.java

private void populateTabStrip() {
    final PagerAdapter adapter = mViewPager.getAdapter();
    final View.OnClickListener tabClickListener = new TabClickListener();

    for (int i = 0; i < adapter.getCount(); i++) {
        View tabView = null;
        TextView tabTitleView = null;/*from   ww w  .  j  a  v a2  s .com*/

        if (mTabViewLayoutId != 0) {
            // If there is a custom tab view layout userID set, try and inflate it
            tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
            tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
        }

        if (tabView == null) {
            tabView = createDefaultTabView(getContext());
        }

        if (tabTitleView == null && TextView.class.isInstance(tabView)) {
            tabTitleView = (TextView) tabView;
        }

        if (mDistributeEvenly) {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
            lp.width = 0;
            lp.weight = 1;
        }

        if (tabView != null && tabTitleView != null) {
            tabTitleView.setText(adapter.getPageTitle(i));
            tabView.setOnClickListener(tabClickListener);
            String desc = mContentDescriptions.get(i, null);
            if (desc != null) {
                tabView.setContentDescription(desc);
            }

            mTabStrip.addView(tabView);

            if (i == mViewPager.getCurrentItem()) {
                tabView.setSelected(true);
            }
        }
    }
}

From source file:com.activiti.android.ui.fragments.task.TaskDetailsFoundationFragment.java

private void displayAssignee(String assignee) {
    HolderUtils.configure(assigneeHolder, getString(R.string.task_field_assignee),
            (assignee != null) ? assignee : getString(R.string.task_message_no_assignee),
            R.drawable.ic_assignment_ind_grey);
    if (TaskHelper.canReassign(taskRepresentation, getAccount().getUserId())) {
        View v = viewById(R.id.task_details_assignee_container);
        v.setOnClickListener(new View.OnClickListener() {
            @Override//from  w ww  .j  a va 2 s  .c  o  m
            public void onClick(View v) {
                // Special case activiti.alfresco.com & tenantid == null
                // User must pick user via email only
                if (ActivitiSession.getInstance().isActivitiOnTheCloud()
                        && getAccount().getTenantId() == null) {
                    ActivitiUserPickerFragment.with(getActivity()).fragmentTag(getTag()).fieldId("assign")
                            .displayAsDialog();
                } else {
                    UserPickerFragment.with(getActivity()).fragmentTag(getTag()).fieldId("assign")
                            .singleChoice(true).mode(ListingModeFragment.MODE_PICK).display();
                }
            }
        });
    } else {
        UIUtils.setBackground(viewById(R.id.task_details_assignee_container), null);
    }
}

From source file:com.activiti.android.ui.fragments.task.TaskDetailsFoundationFragment.java

private void displayDescription(final String description) {
    descriptionHolder.bottomText.setVisibility(View.GONE);
    descriptionHolder.icon.setImageResource(R.drawable.ic_info_outline_grey);
    if (TextUtils.isEmpty(description)) {
        descriptionHolder.topText.setText(R.string.task_message_no_description);
    } else {/*w  w w .  j  a  va2s .  c om*/
        descriptionHolder.topText.setText(description);
    }
    descriptionHolder.topText.setMaxLines(15);
    descriptionHolder.topText.setSingleLine(false);
    if (!isEnded) {
        View v = viewById(R.id.task_details_description_container);
        v.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditTextDialogFragment.with(getActivity()).fieldId(EDIT_DESCRIPTION).tag(getTag())
                        .value(description).displayAsDialog();
            }
        });
    } else {
        clearBackground(viewById(R.id.task_details_description_container));
    }
}

From source file:net.sourceforge.kalimbaradio.androidapp.activity.DownloadActivity.java

/**
 * Called when the activity is first created.
 *//*from   www  .  j  a  v  a  2  s .  com*/
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.download);

    WindowManager w = getWindowManager();
    Display d = w.getDefaultDisplay();
    swipeDistance = (d.getWidth() + d.getHeight()) * PERCENTAGE_OF_SCREEN_FOR_SWIPE / 100;
    swipeVelocity = (d.getWidth() + d.getHeight()) * PERCENTAGE_OF_SCREEN_FOR_SWIPE / 100;
    gestureScanner = new GestureDetector(this);

    playlistFlipper = (ViewFlipper) findViewById(R.id.download_playlist_flipper);
    emptyTextView = (TextView) findViewById(R.id.download_empty);
    songTitleTextView = (TextView) findViewById(R.id.download_song_title);
    artistTextView = (TextView) findViewById(R.id.download_artist);
    albumArtImageView = (ImageView) findViewById(R.id.download_album_art_image);
    positionTextView = (TextView) findViewById(R.id.download_position);
    durationTextView = (TextView) findViewById(R.id.download_duration);
    statusTextView = (TextView) findViewById(R.id.download_status);
    progressBar = (SeekBar) findViewById(R.id.download_progress_bar);
    playlistView = (ListView) findViewById(R.id.download_list);
    previousButton = findViewById(R.id.download_previous);
    nextButton = findViewById(R.id.download_next);
    pauseButton = findViewById(R.id.download_pause);
    stopButton = findViewById(R.id.download_stop);
    startButton = findViewById(R.id.download_start);
    shuffleButton = findViewById(R.id.download_shuffle);
    repeatButton = (ImageButton) findViewById(R.id.download_repeat);
    equalizerButton = (Button) findViewById(R.id.download_equalizer);
    visualizerButton = (Button) findViewById(R.id.download_visualizer);
    // jukeboxButton = (Button) findViewById(R.id.download_jukebox);
    // shareButton = (ImageView) findViewById(R.id.download_share);
    // starButton = (ImageView) findViewById(R.id.download_star);
    LinearLayout visualizerViewLayout = (LinearLayout) findViewById(R.id.download_visualizer_view_layout);
    toggleListButton = (ImageButton) findViewById(R.id.download_toggle_list);

    View.OnTouchListener touchListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent me) {
            return gestureScanner.onTouchEvent(me);
        }
    };
    previousButton.setOnTouchListener(touchListener);
    nextButton.setOnTouchListener(touchListener);
    pauseButton.setOnTouchListener(touchListener);
    stopButton.setOnTouchListener(touchListener);
    // startButton.setOnTouchListener(touchListener);
    equalizerButton.setOnTouchListener(touchListener);
    visualizerButton.setOnTouchListener(touchListener);
    //jukeboxButton.setOnTouchListener(touchListener);
    //shareButton.setOnTouchListener(touchListener);
    //starButton.setOnTouchListener(touchListener);
    emptyTextView.setOnTouchListener(touchListener);
    albumArtImageView.setOnTouchListener(touchListener);

    previousButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            warnIfNetworkOrStorageUnavailable();
            getDownloadService().previous();
            onCurrentChanged();
            onProgressChanged();
        }
    });

    nextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            warnIfNetworkOrStorageUnavailable();
            if (getDownloadService().getCurrentPlayingIndex() < getDownloadService().size() - 1) {
                getDownloadService().next();
                onCurrentChanged();
                onProgressChanged();
            }
        }
    });

    pauseButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getDownloadService().pause();
            onCurrentChanged();
            onProgressChanged();
        }
    });

    stopButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getDownloadService().reset();
            onCurrentChanged();
            onProgressChanged();
        }
    });

    startButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            warnIfNetworkOrStorageUnavailable();
            start();
            onCurrentChanged();
            onProgressChanged();
        }
    });

    shuffleButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getDownloadService().shuffle();
            Util.toast(DownloadActivity.this, R.string.download_menu_shuffle_notification);
            setControlsVisible(true);
        }
    });

    repeatButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            RepeatMode repeatMode = getDownloadService().getRepeatMode().next();
            getDownloadService().setRepeatMode(repeatMode);
            onDownloadListChanged();
            switch (repeatMode) {
            case OFF:
                Util.toast(DownloadActivity.this, R.string.download_repeat_off);
                break;
            case ALL:
                Util.toast(DownloadActivity.this, R.string.download_repeat_all);
                break;
            case SINGLE:
                Util.toast(DownloadActivity.this, R.string.download_repeat_single);
                break;
            default:
                break;
            }
            setControlsVisible(true);
        }
    });

    equalizerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(DownloadActivity.this, EqualizerActivity.class));
            setControlsVisible(true);
        }
    });

    visualizerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            boolean active = !visualizerView.isActive();
            visualizerView.setActive(active);
            getDownloadService().setShowVisualization(visualizerView.isActive());
            updateButtons();
            Util.toast(DownloadActivity.this,
                    active ? R.string.download_visualizer_on : R.string.download_visualizer_off);
            setControlsVisible(true);
        }
    });

    /* jukeboxButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        boolean jukeboxEnabled = !getDownloadService().isJukeboxEnabled();
        getDownloadService().setJukeboxEnabled(jukeboxEnabled);
        updateButtons();
        Util.toast(DownloadActivity.this, jukeboxEnabled ? R.string.download_jukebox_on : R.string.download_jukebox_off, false);
        setControlsVisible(true);
    }
     });*/

    /*shareButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (currentPlaying != null) {
            ShareUtil.shareInBackground(DownloadActivity.this, currentPlaying.getSong());
        }
        setControlsVisible(true);
    }
    });*/

    /*starButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (currentPlaying != null) {
            MusicDirectory.Entry song = currentPlaying.getSong();
            StarUtil.starInBackground(DownloadActivity.this, song, !song.isStarred());
            starButton.setImageResource(song.isStarred() ? R.drawable.starred : R.drawable.unstarred);
        }
        setControlsVisible(true);
    }
    });*/

    toggleListButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            toggleFullscreenAlbumArt();
        }
    });

    progressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int position, boolean fromUser) {
            if (fromUser) {
                Util.toast(DownloadActivity.this, Util.formatDuration(position / 1000), true);
                setControlsVisible(true);
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // Notification that the user has started a touch gesture. Clients may want to use this to disable advancing the seekbar.
            seekInProgress = true;
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // Notification that the user has finished a touch gesture. Clients may want to use this to re-enable advancing the seekbar.
            seekInProgress = false;
            int position = seekBar.getProgress();
            Util.toast(DownloadActivity.this, Util.formatDuration(position / 1000), true);
            getDownloadService().seekTo(position);
        }
    });

    playlistView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            warnIfNetworkOrStorageUnavailable();
            getDownloadService().play(position);
            onCurrentChanged();
            onProgressChanged();
        }
    });

    registerForContextMenu(playlistView);

    DownloadService downloadService = getDownloadService();
    if (downloadService != null && getIntent().getBooleanExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, false)) {
        warnIfNetworkOrStorageUnavailable();
        downloadService.setShufflePlayEnabled(true);
    }

    boolean visualizerAvailable = downloadService != null && downloadService.getVisualizerController() != null;
    boolean equalizerAvailable = downloadService != null && downloadService.getEqualizerController() != null;

    if (!equalizerAvailable) {
        equalizerButton.setVisibility(View.GONE);
    }
    if (!visualizerAvailable) {
        visualizerButton.setVisibility(View.GONE);
    } else {
        visualizerView = new VisualizerView(this);
        visualizerViewLayout.addView(visualizerView, new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT));
    }

    final View overflowButton = findViewById(R.id.download_overflow);
    overflowButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            new PopupMenuHelper().showMenu(DownloadActivity.this, overflowButton, R.menu.nowplaying);
        }
    });
}

From source file:cn.caimatou.canting.widget.SlidingTabLayout.java

private void populateTabStrip() {
    final PagerAdapter adapter = mViewPager.getAdapter();
    final OnClickListener tabClickListener = new TabClickListener();

    for (int i = 0; i < adapter.getCount(); i++) {
        View tabView = null;
        TextView tabTitleView = null;//  w w  w.  j av a 2  s  .c  o  m

        if (mTabViewLayoutId != 0) {
            // If there is a custom tab view layout id set, try and inflate it
            tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
            tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
        }

        if (tabView == null) {
            tabView = createDefaultTabView(getContext());
        }

        if (tabTitleView == null && TextView.class.isInstance(tabView)) {
            tabTitleView = (TextView) tabView;
        }

        if (mDistributeEvenly) {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
            lp.width = 0;
            lp.weight = 1;
        }

        tabTitleView.setText(adapter.getPageTitle(i));
        // set text color
        tabTitleView.setTextColor(mTextColor);
        tabView.setOnClickListener(tabClickListener);
        String desc = mContentDescriptions.get(i, null);
        if (desc != null) {
            tabView.setContentDescription(desc);
        }

        mTabStrip.addView(tabView);
        if (i == mViewPager.getCurrentItem()) {
            tabView.setSelected(true);
        }
    }
}

From source file:com.android.email.activity.zx.MessageView.java

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

    setContentView(R.layout.message_view);

    mSubjectView = (TextView) findViewById(R.id.subject);
    mFromView = (TextView) findViewById(R.id.from);
    mToView = (TextView) findViewById(R.id.to);
    mCcView = (TextView) findViewById(R.id.cc);
    mCcContainerView = findViewById(R.id.cc_container);
    mDateView = (TextView) findViewById(R.id.date);
    mTimeView = (TextView) findViewById(R.id.time);
    mMessageContentView = (WebView) findViewById(R.id.message_content);
    mAttachments = (LinearLayout) findViewById(R.id.attachments);
    mAttachmentIcon = (ImageView) findViewById(R.id.attachment);
    mShowPicturesSection = findViewById(R.id.show_pictures_section);
    mSenderPresenceView = (ImageView) findViewById(R.id.presence);

    mMessageContentView.setVerticalScrollBarEnabled(false);
    mAttachments.setVisibility(View.GONE);
    mAttachmentIcon.setVisibility(View.GONE);

    mFromView.setOnClickListener(this);
    mSenderPresenceView.setOnClickListener(this);
    findViewById(R.id.reply).setOnClickListener(this);
    findViewById(R.id.reply_all).setOnClickListener(this);
    findViewById(R.id.delete).setOnClickListener(this);
    findViewById(R.id.show_pictures).setOnClickListener(this);

    mMessageContentView.getSettings().setBlockNetworkImage(true);
    mMessageContentView.getSettings().setSupportZoom(false);

    setTitle("");

    mDateFormat = android.text.format.DateFormat.getDateFormat(this); // short format
    mTimeFormat = android.text.format.DateFormat.getTimeFormat(this); // 12/24 date format

    Intent intent = getIntent();//from www. ja v  a2 s .  c o  m
    mAccount = (Account) intent.getSerializableExtra(EXTRA_ACCOUNT);
    mFolder = intent.getStringExtra(EXTRA_FOLDER);
    mMessageUid = intent.getStringExtra(EXTRA_MESSAGE);
    mFolderUids = intent.getStringArrayListExtra(EXTRA_FOLDER_UIDS);

    View next = findViewById(R.id.next);
    View previous = findViewById(R.id.previous);
    /*
     * Next and Previous Message are not shown in landscape mode, so
     * we need to check before we use them.
     */
    if (next != null && previous != null) {
        next.setOnClickListener(this);
        previous.setOnClickListener(this);

        findSurroundingMessagesUid();

        previous.setVisibility(mPreviousMessageUid != null ? View.VISIBLE : View.GONE);
        next.setVisibility(mNextMessageUid != null ? View.VISIBLE : View.GONE);

        boolean goNext = intent.getBooleanExtra(EXTRA_NEXT, false);
        if (goNext) {
            next.requestFocus();
        }
    }

    MessagingController.getInstance(getApplication()).addListener(mListener);
    new Thread() {
        @Override
        public void run() {
            // TODO this is a spot that should be eventually handled by a MessagingController
            // thread pool. We want it in a thread but it can't be blocked by the normal
            // synchronization stuff in MC.
            Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
            MessagingController.getInstance(getApplication()).loadMessageForView(mAccount, mFolder, mMessageUid,
                    mListener);
        }
    }.start();
}

From source file:acc.healthapp.tabs.SlidingTabLayout.java

private void populateTabStrip() {
    final PagerAdapter adapter = mViewPager.getAdapter();
    final OnClickListener tabClickListener = new TabClickListener();

    for (int i = 0; i < adapter.getCount(); i++) {
        View tabView = null;
        TextView tabTitleView = null;//  ww  w .ja va 2 s.  c om
        ImageView tabImageView = null;

        if (mTabViewLayoutId != 0) {
            // If there is a custom tab view layout id set, try and inflate it
            tabView = LayoutInflater.from(getContext()).inflate(mTabViewLayoutId, mTabStrip, false);
            tabTitleView = (TextView) tabView.findViewById(mTabViewTextViewId);
        }

        if (tabView == null) {
            tabView = createDefaultTabView(getContext());
        }

        if (tabTitleView == null && TextView.class.isInstance(tabView)) {
            tabTitleView = (TextView) tabView;
        }

        if (mDistributeEvenly) {
            LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) tabView.getLayoutParams();
            lp.width = 0;
            lp.weight = 1;
        }

        tabTitleView.setText(adapter.getPageTitle(i));
        tabTitleView.setTextColor(getResources().getColor(R.color.white));
        tabView.setOnClickListener(tabClickListener);
        String desc = mContentDescriptions.get(i, null);
        if (desc != null) {
            tabView.setContentDescription(desc);
        }

        mTabStrip.addView(tabView);
        if (i == mViewPager.getCurrentItem()) {
            tabView.setSelected(true);
        }
    }
}