use of com.alexstyl.specialdates.permissions.AndroidPermissions in project Memento-Calendar by alexstyl.
the class DailyReminderFragment method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Context context = getActivity().getApplicationContext();
scheduler = new DailyReminderScheduler(AlarmManagerCompat.from(context), context);
AppComponent applicationModule = ((MementoApplication) getActivity().getApplication()).getApplicationModule();
applicationModule.inject(this);
addPreferencesFromResource(R.xml.preference_dailyreminder);
permissionChecker = new AndroidPermissions(tracker, getActivity());
enablePreference = findPreference(R.string.key_daily_reminder);
preferences = DailyReminderPreferences.newInstance(getActivity());
enablePreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean isEnabled = (boolean) newValue;
preferences.setEnabled(isEnabled);
if (isEnabled) {
analytics.trackDailyReminderEnabled();
scheduler.setupReminder(preferences);
} else {
analytics.trackDailyReminderDisabled();
scheduler.cancelReminder();
}
return true;
}
});
ringtonePreference = findPreference(R.string.key_daily_reminder_ringtone);
ringtonePreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
if (permissionChecker.canReadExternalStorage()) {
// the permission exists. Let the system handle the event
return false;
} else {
requestPermissions(new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, EXTERNAL_STORAGE_REQUEST_CODE);
return true;
}
}
});
ringtonePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
updateRingtoneSummaryFor(Uri.parse((String) newValue));
return true;
}
});
timePreference = findPreference(R.string.key_daily_reminder_time);
timePreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
int[] time = (int[]) newValue;
TimeOfDay timeOfDay = new TimeOfDay(time[0], time[1]);
updateTimeSet(timeOfDay);
analytics.trackDailyReminderTimeUpdated(timeOfDay);
preferences.setDailyReminderTime(timeOfDay);
scheduler.updateReminderTime(timeOfDay);
return true;
}
});
hideVibratorSettingIfNotPresent();
}
use of com.alexstyl.specialdates.permissions.AndroidPermissions 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);
}
});
}
use of com.alexstyl.specialdates.permissions.AndroidPermissions in project Memento-Calendar by alexstyl.
the class DailyReminderIntentService method onCreate.
@Override
public void onCreate() {
super.onCreate();
AppComponent applicationModule = ((MementoApplication) getApplication()).getApplicationModule();
applicationModule.inject(this);
bankHolidaysPreferences = AndroidBankHolidaysPreferences.newInstance(this);
checker = new AndroidPermissions(tracker, this);
}
Aggregations