Created
June 14, 2017 19:24
-
-
Save iamnotacoder-djs/e117792926fa2d35d4f91871ca485aae to your computer and use it in GitHub Desktop.
Base Navigation Drawer Activity
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.idaspin.risensapp.activities.base; | |
import android.content.Intent; | |
import android.support.annotation.NonNull; | |
import android.view.View; | |
import android.support.design.widget.NavigationView; | |
import android.support.v4.view.GravityCompat; | |
import android.support.v4.widget.DrawerLayout; | |
import android.support.v7.app.ActionBarDrawerToggle; | |
import android.support.v7.app.AppCompatActivity; | |
import android.support.v7.widget.Toolbar; | |
import android.view.MenuItem; | |
import butterknife.BindView; | |
import butterknife.ButterKnife; | |
import ru.arturvasilov.rxloader.LifecycleHandler; | |
import ru.arturvasilov.rxloader.LoaderLifecycleHandler; | |
import ru.idaspin.risensapp.R; | |
/** | |
* Created by idaspin on 6/14/2017. | |
*/ | |
public class BaseActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, BaseView { | |
@BindView(R.id.drawer_layout) DrawerLayout mDrawerLayout; | |
@BindView(R.id.nav_view) NavigationView mNavigationView; | |
@BindView(R.id.toolbar) Toolbar mToolbar; | |
public ActionBarDrawerToggle mToggle; | |
private BasePresenter mPresenter; | |
protected void onCreateDrawer() { | |
setContentView(R.layout.activity_base); | |
ButterKnife.bind(this); | |
setSupportActionBar(mToolbar); | |
mToggle = new ActionBarDrawerToggle(this, mDrawerLayout, mToolbar, 0, 0) { | |
public void onDrawerClosed(View view) { | |
getSupportActionBar().setTitle(R.string.app_name); | |
} | |
public void onDrawerOpened(View drawerView) { | |
getSupportActionBar().setTitle(R.string.navigation_drawer_open); | |
} | |
}; | |
mDrawerLayout.addDrawerListener(mToggle); | |
mToggle.syncState(); | |
mNavigationView.setNavigationItemSelectedListener(this); | |
LifecycleHandler lifecycleHandler = LoaderLifecycleHandler.create(this, getSupportLoaderManager()); | |
mPresenter = new BasePresenter(lifecycleHandler, this); | |
} | |
@Override | |
public void onBackPressed() { | |
mPresenter.onBackPressed(mDrawerLayout.isDrawerOpen(GravityCompat.START)); | |
} | |
@SuppressWarnings("StatementWithEmptyBody") | |
@Override | |
public boolean onNavigationItemSelected(@NonNull MenuItem item) { | |
mPresenter.onNavigationItemSelected(item.getItemId()); | |
return true; | |
} | |
@Override | |
public void hideDrawer() { | |
mDrawerLayout.closeDrawer(GravityCompat.START); | |
} | |
@Override | |
public void openActivity(Class<? extends AppCompatActivity> target, String title) { | |
Intent intent = new Intent(this, target); | |
intent.putExtra("Actionbarname", title); | |
startActivity(intent); | |
} | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.idaspin.risensapp.activities.base; | |
import android.support.annotation.NonNull; | |
import android.support.v7.app.AppCompatActivity; | |
import ru.arturvasilov.rxloader.LifecycleHandler; | |
/** | |
* Created by idaspin on 6/14/2017. | |
*/ | |
class BasePresenter { | |
private BaseView mBaseView; | |
BasePresenter(@NonNull LifecycleHandler lifecycleHandler, | |
@NonNull BaseView mainView) { | |
mBaseView = mainView; | |
} | |
void onNavigationItemSelected(int id) { | |
switch (id) { | |
default: | |
mBaseView.openActivity(AppCompatActivity.class, "Ошибка"); | |
break; | |
} | |
mBaseView.hideDrawer(); | |
} | |
void onBackPressed(boolean isDrawerOpen) { | |
if (isDrawerOpen) { | |
mBaseView.hideDrawer(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package ru.idaspin.risensapp.activities.base; | |
import android.support.v7.app.AppCompatActivity; | |
/** | |
* Created by idaspin on 6/14/2017. | |
*/ | |
interface BaseView { | |
void hideDrawer(); | |
void openActivity(Class<? extends AppCompatActivity> appCompatActivityClass, String title); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment