|
|
@ -171,14 +171,16 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
public boolean onCreateOptionsMenu(final Menu menu) { |
|
|
|
getMenuInflater().inflate(R.menu.main_menu, menu); |
|
|
|
searchMenuItem = menu.findItem(R.id.search); |
|
|
|
if (showSearch && currentNavControllerLiveData != null && currentNavControllerLiveData.getValue() != null) { |
|
|
|
if (showSearch && currentNavControllerLiveData != null) { |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (navController != null) { |
|
|
|
final NavDestination currentDestination = navController.getCurrentDestination(); |
|
|
|
if (currentDestination != null) { |
|
|
|
final int destinationId = currentDestination.getId(); |
|
|
|
showSearch = destinationId == R.id.profileFragment; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (!showSearch) { |
|
|
|
searchMenuItem.setVisible(false); |
|
|
|
return true; |
|
|
@ -206,10 +208,10 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
|
|
|
|
@Override |
|
|
|
public boolean onSupportNavigateUp() { |
|
|
|
if (currentNavControllerLiveData != null && currentNavControllerLiveData.getValue() != null) { |
|
|
|
return currentNavControllerLiveData.getValue().navigateUp(); |
|
|
|
} |
|
|
|
return false; |
|
|
|
if (currentNavControllerLiveData == null) return false; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (navController == null) return false; |
|
|
|
return navController.navigateUp(); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
@ -260,8 +262,9 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
suggestionAdapter = new SuggestionsAdapter(this, (type, query) -> { |
|
|
|
if (searchMenuItem != null) searchMenuItem.collapseActionView(); |
|
|
|
if (searchView != null && !searchView.isIconified()) searchView.setIconified(true); |
|
|
|
if (currentNavControllerLiveData != null && currentNavControllerLiveData.getValue() != null) { |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (navController == null) return; |
|
|
|
final Bundle bundle = new Bundle(); |
|
|
|
switch (type) { |
|
|
|
case TYPE_LOCATION: |
|
|
@ -277,7 +280,6 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
navController.navigate(R.id.action_global_profileFragment, bundle); |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
@ -469,9 +471,7 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
} |
|
|
|
|
|
|
|
private void setupNavigation(final Toolbar toolbar, final NavController navController) { |
|
|
|
if (navController == null) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (navController == null) return; |
|
|
|
NavigationUI.setupWithNavController(toolbar, navController); |
|
|
|
navController.addOnDestinationChangedListener((controller, destination, arguments) -> { |
|
|
|
// below is a hack to check if we are at the end of the current stack, to setup the search view |
|
|
@ -586,8 +586,9 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
private void showProfileView(@NonNull final IntentModel intentModel) { |
|
|
|
final String username = intentModel.getText(); |
|
|
|
// Log.d(TAG, "username: " + username); |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (currentNavControllerLiveData == null || navController == null) return; |
|
|
|
if (navController == null) return; |
|
|
|
final Bundle bundle = new Bundle(); |
|
|
|
bundle.putString("username", "@" + username); |
|
|
|
navController.navigate(R.id.action_global_profileFragment, bundle); |
|
|
@ -613,8 +614,9 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
private void showLocationView(@NonNull final IntentModel intentModel) { |
|
|
|
final String locationId = intentModel.getText(); |
|
|
|
// Log.d(TAG, "locationId: " + locationId); |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (currentNavControllerLiveData == null || navController == null) return; |
|
|
|
if (navController == null) return; |
|
|
|
final Bundle bundle = new Bundle(); |
|
|
|
bundle.putString("locationId", locationId); |
|
|
|
navController.navigate(R.id.action_global_locationFragment, bundle); |
|
|
@ -623,8 +625,9 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
private void showHashtagView(@NonNull final IntentModel intentModel) { |
|
|
|
final String hashtag = intentModel.getText(); |
|
|
|
// Log.d(TAG, "hashtag: " + hashtag); |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (currentNavControllerLiveData == null || navController == null) return; |
|
|
|
if (navController == null) return; |
|
|
|
final Bundle bundle = new Bundle(); |
|
|
|
bundle.putString("hashtag", "#" + hashtag); |
|
|
|
navController.navigate(R.id.action_global_hashTagFragment, bundle); |
|
|
@ -633,8 +636,9 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
private void showActivityView() { |
|
|
|
binding.bottomNavView.setSelectedItemId(R.id.more_nav_graph); |
|
|
|
binding.bottomNavView.post(() -> { |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
final NavController navController = currentNavControllerLiveData.getValue(); |
|
|
|
if (currentNavControllerLiveData == null || navController == null) return; |
|
|
|
if (navController == null) return; |
|
|
|
final NavDirections navDirections = MorePreferencesFragmentDirections.actionMorePreferencesFragmentToNotificationsViewer(); |
|
|
|
navController.navigate(navDirections); |
|
|
|
}); |
|
|
@ -674,12 +678,14 @@ public class MainActivity extends BaseLanguageActivity implements FragmentManage |
|
|
|
public void setToolbar(final Toolbar toolbar) { |
|
|
|
binding.appBarLayout.setVisibility(View.GONE); |
|
|
|
setSupportActionBar(toolbar); |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
setupNavigation(toolbar, currentNavControllerLiveData.getValue()); |
|
|
|
} |
|
|
|
|
|
|
|
public void resetToolbar() { |
|
|
|
binding.appBarLayout.setVisibility(View.VISIBLE); |
|
|
|
setSupportActionBar(binding.toolbar); |
|
|
|
if (currentNavControllerLiveData == null) return; |
|
|
|
setupNavigation(binding.toolbar, currentNavControllerLiveData.getValue()); |
|
|
|
} |
|
|
|
} |