protected void onCreate()

in WearAccessibilityApp/Wearable/src/main/java/com/example/android/wearable/wear/wearaccessibilityapp/LongListActivity.java [45:149]


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_long_list);

        AmbientModeSupport.attach(this);

        mHandler = new Handler();

        // List of items to display within recyclerView (used by adapter).
        mItems = new ArrayList<AppItem>();
        mItems.add(new AppItem(null, 0, SampleAppConstants.TITLE, null)); // for title
        mItems.add(new AppItem(null, 0, SampleAppConstants.SWITCH, null)); // for switch widget
        for (int i = 1; i <= 10; i++) {
            mItems.add(
                    new AppItem(
                            getResources().getString(R.string.item_text, i),
                            R.drawable.heart_circle,
                            SampleAppConstants.NORMAL,
                            null));
        }

        // Custom adapter used so we can use custom layout for the rows within the list.
        mAdapter =
                new LongListRecyclerViewAdapter(
                        this,
                        mItems,
                        new SwitchChangeListener() {
                            @Override
                            public void onChange(boolean switchOn) {
                                WearableActionDrawerView wearableActionDrawer =
                                        findViewById(R.id.action_drawer_long_list);

                                if (switchOn) {
                                    wearableActionDrawer.setVisibility(
                                            View.VISIBLE); // Hide drawer.
                                } else {
                                    wearableActionDrawer.setVisibility(
                                            View.INVISIBLE); // Hide drawer.
                                }
                            }
                        });
        WearableRecyclerView recyclerView = findViewById(R.id.recycler_view_long_list);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));
        recyclerView.setHasFixedSize(false);

        recyclerView.setAdapter(mAdapter); // Set adapter to the recyclerView.

        // Uncomment if you want the action drawer to show while scrolling down.
        // WearableActionDrawer mWearableActionDrawer=
        //         (WearableActionDrawer) findViewById(R.id.action_drawer_long_list);
        // mWearableActionDrawer.setShouldPeekOnScrollDown(true);

        mPreviousLastVisibleItem = 0; // default
        mLastVisibleItem = 0;
        mFinishLoad = false;

        if (!(recyclerView.getLayoutManager() instanceof LinearLayoutManager)) {
            return; // invalid layout manager
        }

        final LinearLayoutManager layoutManager =
                (LinearLayoutManager) recyclerView.getLayoutManager();

        recyclerView.addOnScrollListener(
                new WearableRecyclerView.OnScrollListener() {
                    @Override
                    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                        super.onScrolled(recyclerView, dx, dy);
                        mLastVisibleItem = layoutManager.findLastVisibleItemPosition();
                        if (!mFinishLoad) {
                            int count =
                                    layoutManager
                                            .getItemCount(); // total items in the recycler view

                            // Do not notify LongListActivity if no NEW items have been displayed.
                            if (mLastVisibleItem <= mPreviousLastVisibleItem) {
                                return;
                            }

                            // Do not notify LongListActivity if not yet scrolled to threshold.
                            if (mLastVisibleItem < count - 1) {
                                return;
                            }

                            if (mLastVisibleItem % 10 == 2 && mLastVisibleItem != 2) {
                                return;
                            }

                            // End of list, no more loading.
                            if (mLastVisibleItem >= SampleAppConstants.END_OF_LONG_LIST) {
                                mFinishLoad = true; // we are done loading more items.
                                addFooter();
                                return;
                            }

                            // Load more items
                            addData();

                            // To check if new items should be displayed or not.
                            mPreviousLastVisibleItem = mLastVisibleItem;
                        }
                    }
                });
    }