private void findUI() { devDialog = new AlertDialog.Builder(ForecastActivity.this, R.style.AppCompatAlertDialogStyle); devDialog.setTitle("Печеньку?"); devDialog.setMessage("К сожалению раздел находится в разработке..."); devDialog.setPositiveButton( "ОК", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); } }); toolbar = (Toolbar) findViewById(R.id.toolbar); drawerLayout = (DrawerLayoutWithViewPager) findViewById(R.id.drawer_layout); navigationView = (NavigationView) findViewById(R.id.nav_view); b_cities = navigationView.getHeaderView(0).findViewById(R.id.b_cities); pagerMaterial = (ViewPager) navigationView.getHeaderView(0).findViewById(R.id.pager_material); pagerCity = (ViewPager) navigationView.getHeaderView(0).findViewById(R.id.pager_city); topbar = (LinearLayout) drawerLayout.findViewById(R.id.topbar); summary_box = (LinearLayout) drawerLayout.findViewById(R.id.summary_box); summary_city = (TextView) drawerLayout.findViewById(R.id.city); summary_daily = (TextView) drawerLayout.findViewById(R.id.summary); // summary_hourly = (TextView) drawerLayout.findViewById(R.id.summary_hourly); summary_city.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fadein)); summary_daily.startAnimation(AnimationUtils.loadAnimation(this, R.anim.fadein)); scroll = (SwipeRefreshLayout) drawerLayout.findViewById(R.id.scroll); scroll.setProgressViewOffset(false, -100, 100); }
@Override public void onBackPressed() { if (drawerLayout.isDrawerOpen(GravityCompat.START)) { drawerLayout.closeDrawer(GravityCompat.START); } else { super.onBackPressed(); } }
@SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) { // Handle navigation view item clicks here. if (item.isChecked()) return true; int id = item.getItemId(); final ForecastFragment fragment; switch (id) { case R.id.review: fragment = new CurrentlyFragment(); break; case R.id.daily: fragment = new DailyFragment(); break; case R.id.hourly: fragment = new HourlyForecast(); break; default: devDialog.show(); return true; } new Handler() .postDelayed( new Runnable() { @Override public void run() { getFragmentManager() .beginTransaction() // .setCustomAnimations(R.animator.slide_in_up, R.animator.slide_out_up) .replace(R.id.frame, fragment, FRAGMENT_TAG) .commit(); } }, 300); drawerLayout.closeDrawer(GravityCompat.START); return true; }
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findUI(); setSupportActionBar(toolbar); getSupportActionBar().setElevation(0); ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle( this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawerLayout.setDrawerListener(drawerToggle); drawerToggle.syncState(); navigationView.setNavigationItemSelectedListener(this); // Initialise drawerLayout.setViewPager(navigationView, R.id.pager_material); scroll.setColorSchemeResources(R.color.colorPrimary); scroll.setOnRefreshListener(this); pagerMaterial.setAdapter(new MaterialPageAdapter(this)); pagerMaterial.setPageTransformer(true, new MaterialTransformer()); pagerCity.setAdapter(new CityPageAdapter(this)); pagerMaterial.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { pagerCity.onTouchEvent(event); return false; } }); pagerCity.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { pagerMaterial.onTouchEvent(event); return false; } }); pagerCity.setOnPageChangeListener( new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled( int position, float positionOffset, int positionOffsetPixels) {} @Override public void onPageSelected(int position) { WeatherController.getInstance() .setCurrentCity(WeatherController.getInstance().getCities().get(position)); try { ((ForecastFragment) getFragmentManager().findFragmentByTag(FRAGMENT_TAG)).update(); } catch (ClassCastException ignored) { } } @Override public void onPageScrollStateChanged(int state) {} }); Log.d(TAG, "Updating forecast for current city"); pagerCity.setCurrentItem(WeatherController.getInstance().getIDCurrentCity()); pagerMaterial.setCurrentItem(WeatherController.getInstance().getIDCurrentCity()); b_cities.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { startActivityForResult(new Intent(ForecastActivity.this, CitiesActivity.class), 1); drawerLayout.closeDrawer(GravityCompat.START); } }); if (savedInstanceState == null) onNavigationItemSelected(navigationView.getMenu().getItem(0)); }