use of com.alexstyl.specialdates.date.AndroidDateLabelCreator in project Memento-Calendar by alexstyl.
the class SearchActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
AppComponent applicationModule = ((MementoApplication) getApplication()).getApplicationModule();
applicationModule.inject(this);
peopleEventsSearch = new PeopleEventsSearch(peopleEventsProvider, NameMatcher.INSTANCE);
DateLabelCreator dateLabelCreator = new AndroidDateLabelCreator(this);
viewModelFactory = new ContactEventViewModelFactory(new ContactEventLabelCreator(Date.Companion.today(), strings, dateLabelCreator), colors);
analytics.trackScreen(Screen.SEARCH);
searchbar = Views.findById(this, R.id.search_searchbar);
setSupportActionBar(searchbar);
content = Views.findById(this, R.id.search_content);
resultView = Views.findById(this, R.id.search_results);
resultView.setHasFixedSize(true);
int spacingInPixels = getResources().getDimensionPixelSize(R.dimen.search_result_card_vertical_padding) / HALF;
resultView.addItemDecoration(new SpacesItemDecoration(spacingInPixels, COLUMNS));
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(context());
resultView.setLayoutManager(mLayoutManager);
namesSuggestionsView = Views.findById(this, R.id.search_nameday_suggestions);
if (savedInstanceState != null) {
searchQuery = savedInstanceState.getString(KEY_QUERY);
}
setupSearchField();
adapter = new SearchResultAdapter(imageLoader, labelCreator);
adapter.setSearchResultClickListener(listener);
resultView.setAdapter(adapter);
searchbar.setOnBackKeyPressedListener(onBackKeyPressedListener);
setupSearchbarHint(namedayUserSettings);
if (namedayUserSettings.isEnabled()) {
GridLayoutManager namedayManager = new GridLayoutManager(context(), 1, RecyclerView.HORIZONTAL, false);
namesAdapter = NameSuggestionsAdapter.newInstance(onNameSelectedListener, namedayUserSettings, namedayCalendarProvider);
namesSuggestionsView.setHasFixedSize(true);
namesSuggestionsView.setLayoutManager(namedayManager);
namesSuggestionsView.setAdapter(namesAdapter);
searchbar.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
searchbar.setOnFocusChangeListener(new ToggleVisibilityOnFocus(namesSuggestionsView));
} else {
namesSuggestionsView.setVisibility(GONE);
}
if (savedInstanceState == null) {
fader.hideContentOf(searchbar);
ViewTreeObserver viewTreeObserver = searchbar.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
searchbar.getViewTreeObserver().removeOnGlobalLayoutListener(this);
animateShowSearch();
}
private void animateShowSearch() {
TransitionManager.beginDelayedTransition(searchbar, FadeInTransition.createTransition());
fader.showContent(searchbar);
}
});
}
}
use of com.alexstyl.specialdates.date.AndroidDateLabelCreator in project Memento-Calendar by alexstyl.
the class AddEventActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.slide_in_from_below, R.anim.stay);
setContentView(R.layout.activity_add_event);
AppComponent applicationModule = ((MementoApplication) getApplication()).getApplicationModule();
applicationModule.inject(this);
analytics.trackScreen(Screen.ADD_EVENT);
filePathProvider = new FilePathProvider(this);
MementoToolbar toolbar = Views.findById(this, R.id.memento_toolbar);
setSupportActionBar(toolbar);
toolbar.displayNavigationIconAsClose();
AvatarPickerView avatarView = Views.findById(this, R.id.add_event_avatar);
RecyclerView eventsView = Views.findById(this, R.id.add_event_events);
eventsView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
eventsView.setHasFixedSize(true);
ContactDetailsAdapter adapter = new ContactDetailsAdapter(contactDetailsListener);
eventsView.setAdapter(adapter);
AddEventContactEventViewModelFactory factory = new AddEventContactEventViewModelFactory(new AndroidDateLabelCreator(this));
AddEventViewModelFactory addEventFactory = new AddEventViewModelFactory(strings);
ContactEventsFetcher contactEventsFetcher = new ContactEventsFetcher(getSupportLoaderManager(), this, peopleEventsProvider, factory, addEventFactory);
WriteableAccountsProvider accountsProvider = WriteableAccountsProvider.from(this);
ContactOperations contactOperations = new ContactOperations(getContentResolver(), accountsProvider, peopleEventsProvider, ShortDateLabelCreator.INSTANCE);
MessageDisplayer messageDisplayer = new ToastDisplayer(getApplicationContext());
ContactOperationsExecutor operationsExecutor = new ContactOperationsExecutor(getContentResolver(), tracker);
ImageDecoder imageDecoder = new ImageDecoder();
AvatarPresenter avatarPresenter = new AvatarPresenter(imageLoader, avatarView, createToolbarAnimator(toolbar), imageDecoder);
EventsPresenter eventsPresenter = new EventsPresenter(contactEventsFetcher, adapter, factory, addEventFactory);
presenter = new AddContactEventsPresenter(analytics, avatarPresenter, eventsPresenter, contactOperations, messageDisplayer, operationsExecutor);
permissionChecker = new AndroidPermissions(tracker, this);
presenter.startPresenting(new OnCameraClickedListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onPictureRetakenRequested() {
if (permissionChecker.canReadExternalStorage()) {
BottomSheetPicturesDialog.includeClearImageOption().show(getSupportFragmentManager(), "picture_pick");
} else {
requestExternalStoragePermission();
}
}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onNewPictureTakenRequested() {
if (permissionChecker.canReadExternalStorage()) {
BottomSheetPicturesDialog.newInstance().show(getSupportFragmentManager(), "picture_pick");
} else {
requestExternalStoragePermission();
}
}
@RequiresApi(api = Build.VERSION_CODES.M)
private void requestExternalStoragePermission() {
requestPermissions(new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, CODE_PERMISSION_EXTERNAL_STORAGE);
}
});
}
Aggregations