Created
May 23, 2017 19:14
-
-
Save yakov116/a12c2631a122c01da84c221ff9b8314b to your computer and use it in GitHub Desktop.
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 com.fastaccess.ui.modules.main; | |
import android.content.Intent; | |
import android.graphics.Typeface; | |
import android.os.Bundle; | |
import android.support.annotation.NonNull; | |
import android.support.annotation.Nullable; | |
import android.support.design.widget.FloatingActionButton; | |
import android.support.v4.view.GravityCompat; | |
import android.view.Menu; | |
import android.view.MenuItem; | |
import com.fastaccess.R; | |
import com.fastaccess.data.dao.model.Notification; | |
import com.fastaccess.helper.BundleConstant; | |
import com.fastaccess.helper.TypeFaceHelper; | |
import com.fastaccess.helper.ViewHelper; | |
import com.fastaccess.ui.base.BaseActivity; | |
import com.fastaccess.ui.modules.feeds.FeedsFragment; | |
import com.fastaccess.ui.modules.main.issues.pager.MyIssuesPagerFragment; | |
import com.fastaccess.ui.modules.main.pullrequests.pager.MyPullsPagerFragment; | |
import com.fastaccess.ui.modules.notification.NotificationActivity; | |
import com.fastaccess.ui.modules.search.SearchActivity; | |
import com.fastaccess.ui.modules.settings.SlackBottomSheetDialog; | |
import butterknife.BindView; | |
import butterknife.OnClick; | |
import icepick.State; | |
import it.sephiroth.android.library.bottomnavigation.BottomNavigation; | |
import shortbread.Shortcut; | |
@Shortcut(id = "feeds", icon = R.drawable.ic_github_shortcut, shortLabelRes = R.string.feeds, rank = 1) | |
public class MainActivity extends BaseActivity<MainMvp.View, MainPresenter> implements MainMvp.View { | |
@State @MainMvp.NavigationType int navType = MainMvp.FEEDS; | |
@BindView(R.id.bottomNavigation) BottomNavigation bottomNavigation; | |
@BindView(R.id.fab) FloatingActionButton fab; | |
@OnClick(R.id.fab) void onFilter() {} | |
@NonNull @Override public MainPresenter providePresenter() { | |
return new MainPresenter(); | |
} | |
@Override protected int layout() { | |
return R.layout.activity_main_view; | |
} | |
@Override protected boolean isTransparent() { | |
return true; | |
} | |
@Override protected boolean canBack() { | |
return false; | |
} | |
@Override protected boolean isSecured() { | |
return false; | |
} | |
@Override protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
if (savedInstanceState == null) { | |
if (getIntent() != null && getIntent().getBooleanExtra(SlackBottomSheetDialog.TAG, false)) { | |
new SlackBottomSheetDialog().show(getSupportFragmentManager(), SlackBottomSheetDialog.TAG); | |
} | |
} | |
selectHome(false); | |
hideShowShadow(navType == MainMvp.FEEDS); | |
setToolbarIcon(R.drawable.ic_menu); | |
onInit(savedInstanceState); | |
fab.setImageResource(R.drawable.ic_filter); | |
onNewIntent(getIntent()); | |
} | |
@Override protected void onNewIntent(Intent intent) { | |
super.onNewIntent(intent); | |
if (intent != null && intent.getExtras() != null) { | |
boolean recreate = intent.getExtras().getBoolean(BundleConstant.YES_NO_EXTRA); | |
if (recreate) recreate(); | |
} | |
} | |
@Override public boolean onCreateOptionsMenu(Menu menu) { | |
getMenuInflater().inflate(R.menu.search_menu, menu); | |
if (isLoggedIn() && Notification.hasUnreadNotifications()) { | |
ViewHelper.tintDrawable(menu.findItem(R.id.notifications).setIcon(R.drawable.ic_ring).getIcon(), ViewHelper.getAccentColor(this)); | |
} | |
return super.onCreateOptionsMenu(menu); | |
} | |
@Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { | |
if (item.getItemId() == android.R.id.home) { | |
if (drawer != null) drawer.openDrawer(GravityCompat.START); | |
return true; | |
} else if (item.getItemId() == R.id.search) { | |
startActivity(new Intent(this, SearchActivity.class)); | |
return true; | |
} else if (item.getItemId() == R.id.notifications) { | |
ViewHelper.tintDrawable(item.setIcon(R.drawable.ic_notifications_none).getIcon(), ViewHelper.getIconColor(this)); | |
startActivity(new Intent(this, NotificationActivity.class)); | |
return true; | |
} | |
return super.onOptionsItemSelected(item); | |
} | |
@Override public void onNavigationChanged(@MainMvp.NavigationType int navType) { | |
this.navType = navType; | |
//noinspection WrongConstant | |
if (bottomNavigation.getSelectedIndex() != navType) bottomNavigation.setSelectedIndex(navType, true); | |
hideShowShadow(navType == MainMvp.FEEDS); | |
getPresenter().onModuleChanged(getSupportFragmentManager(), navType); | |
} | |
@Override public void onUpdateDrawerMenuHeader() { | |
setupNavigationView(extraNav); | |
} | |
@Shortcut(id = "myIssues", icon = R.drawable.ic_issues_shortcut, shortLabelRes = R.string.issues, rank = 2, action = "myIssues") | |
public void myIssues() {}//do nothing | |
@Shortcut(id = "myPulls", icon = R.drawable.ic_pull_requests_shortcut, shortLabelRes = R.string.pull_requests, rank = 3, action = "myPulls") | |
public void myPulls() {}//do nothing | |
private void onInit(@Nullable Bundle savedInstanceState) { | |
if (isLoggedIn()) { | |
if (savedInstanceState == null) { | |
boolean attachFeeds = true; | |
if (getIntent().getAction() != null) { | |
if (getIntent().getAction().equalsIgnoreCase("myPulls")) { | |
navType = MainMvp.PULL_REQUESTS; | |
getSupportFragmentManager() | |
.beginTransaction() | |
.replace(R.id.container, MyPullsPagerFragment.newInstance(), MyPullsPagerFragment.TAG) | |
.commit(); | |
bottomNavigation.setSelectedIndex(2, true); | |
attachFeeds = false; | |
} else if (getIntent().getAction().equalsIgnoreCase("myIssues")) { | |
navType = MainMvp.ISSUES; | |
getSupportFragmentManager() | |
.beginTransaction() | |
.replace(R.id.container, MyIssuesPagerFragment.newInstance(), MyIssuesPagerFragment.TAG) | |
.commit(); | |
bottomNavigation.setSelectedIndex(1, true); | |
attachFeeds = false; | |
} | |
} | |
hideShowShadow(navType == MainMvp.FEEDS); | |
if (attachFeeds) { | |
getSupportFragmentManager() | |
.beginTransaction() | |
.replace(R.id.container, FeedsFragment.newInstance(), FeedsFragment.TAG) | |
.commit(); | |
} | |
} | |
Typeface myTypeface = TypeFaceHelper.getTypeface(); | |
bottomNavigation.setDefaultTypeface(myTypeface); | |
bottomNavigation.setOnMenuItemClickListener(getPresenter()); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment