@Override public void setContentView(int viewId) { if (isTv()) { super.setContentView(R.layout.static_drawer_activity); } else { super.setContentView(R.layout.abstract_activity); } rootView = (ViewGroup) findViewById(R.id.content_frame); if (viewId != 0) { LayoutInflater layoutInflater = getLayoutInflater(); layoutInflater.inflate(viewId, rootView); } drawerList = (NavigationView) findViewById(R.id.left_drawer); drawerList.setNavigationItemSelectedListener( new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(final MenuItem menuItem) { if (showingTabs) { // Settings are on a different selectable track if (menuItem.getItemId() != R.id.drawer_settings && menuItem.getItemId() != R.id.drawer_admin && menuItem.getItemId() != R.id.drawer_offline) { menuItem.setChecked(true); lastSelectedPosition = menuItem.getItemId(); } switch (menuItem.getItemId()) { case R.id.drawer_home: drawerItemSelected("Home"); return true; case R.id.drawer_library: drawerItemSelected("Artist"); return true; case R.id.drawer_playlists: drawerItemSelected("Playlist"); return true; case R.id.drawer_podcasts: drawerItemSelected("Podcast"); return true; case R.id.drawer_bookmarks: drawerItemSelected("Bookmark"); return true; case R.id.drawer_shares: drawerItemSelected("Share"); return true; case R.id.drawer_chat: drawerItemSelected("Chat"); return true; case R.id.drawer_admin: if (UserUtil.isCurrentAdmin()) { UserUtil.confirmCredentials( SubsonicActivity.this, new Runnable() { @Override public void run() { drawerItemSelected("Admin"); menuItem.setChecked(true); lastSelectedPosition = menuItem.getItemId(); } }); } else { drawerItemSelected("Admin"); menuItem.setChecked(true); lastSelectedPosition = menuItem.getItemId(); } return true; case R.id.drawer_downloading: drawerItemSelected("Download"); return true; case R.id.drawer_offline: toggleOffline(); return true; case R.id.drawer_settings: startActivity(new Intent(SubsonicActivity.this, SettingsActivity.class)); drawer.closeDrawers(); return true; } } else { int activeServer = menuItem.getItemId() - MENU_ITEM_SERVER_BASE; SubsonicActivity.this.setActiveServer(activeServer); populateTabs(); return true; } return false; } }); drawerHeader = drawerList.inflateHeaderView(R.layout.drawer_header); drawerHeader.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { if (showingTabs) { populateServers(); } else { populateTabs(); } } }); drawerHeaderToggle = (ImageView) drawerHeader.findViewById(R.id.header_select_image); drawerServerName = (TextView) drawerHeader.findViewById(R.id.header_server_name); drawerUserName = (TextView) drawerHeader.findViewById(R.id.header_user_name); drawerUserAvatar = (ImageView) drawerHeader.findViewById(R.id.header_user_avatar); updateDrawerHeader(); if (!isTv()) { drawer = (DrawerLayout) findViewById(R.id.drawer_layout); // Pass in toolbar if it exists Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar); drawerToggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.common_appname, R.string.common_appname) { @Override public void onDrawerClosed(View view) { drawerIdle = true; drawerOpen = false; if (!showingTabs) { populateTabs(); } } @Override public void onDrawerOpened(View view) { DownloadService downloadService = getDownloadService(); boolean downloadingVisible = downloadService != null && !downloadService.getBackgroundDownloads().isEmpty(); if (lastSelectedPosition == R.id.drawer_downloading) { downloadingVisible = true; } setDrawerItemVisible(R.id.drawer_downloading, downloadingVisible); drawerIdle = true; drawerOpen = true; } @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); drawerIdle = false; } }; drawer.setDrawerListener(drawerToggle); drawerToggle.setDrawerIndicatorEnabled(true); drawer.setOnTouchListener( new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (drawerIdle && currentFragment != null && currentFragment.getGestureDetector() != null) { return currentFragment.getGestureDetector().onTouchEvent(event); } else { return false; } } }); } // Check whether this is a tablet or not secondaryContainer = findViewById(R.id.fragment_second_container); if (secondaryContainer != null) { primaryContainer = findViewById(R.id.fragment_container); } }