Set formatting to kotlin style guide

pull/935/head
Alex Baker 6 years ago
parent 940785ceec
commit fe611468e3

@ -56,7 +56,7 @@ android {
val tasksKeyPassword: String? by project val tasksKeyPassword: String? by project
keyAlias = tasksKeyAlias keyAlias = tasksKeyAlias
storeFile = file(tasksStoreFile?: "none") storeFile = file(tasksStoreFile ?: "none")
storePassword = tasksStorePassword storePassword = tasksStorePassword
keyPassword = tasksKeyPassword keyPassword = tasksKeyPassword
} }

@ -23,14 +23,17 @@ class Debug : InjectingPreferenceFragment() {
setPreferencesFromResource(R.xml.preferences_debug, rootKey) setPreferencesFromResource(R.xml.preferences_debug, rootKey)
for (pref in Ints.asList( for (pref in Ints.asList(
R.string.p_leakcanary, R.string.p_leakcanary,
R.string.p_flipper, R.string.p_flipper,
R.string.p_strict_mode_vm, R.string.p_strict_mode_vm,
R.string.p_strict_mode_thread)) findPreference(pref) R.string.p_strict_mode_thread
)) {
findPreference(pref)
.setOnPreferenceChangeListener { _: Preference?, _: Any? -> .setOnPreferenceChangeListener { _: Preference?, _: Any? ->
showRestartDialog() showRestartDialog()
true true
} }
}
findPreference(R.string.debug_reset_ssl).setOnPreferenceClickListener { findPreference(R.string.debug_reset_ssl).setOnPreferenceClickListener {
resetCertificates(context!!) resetCertificates(context!!)

@ -33,15 +33,15 @@ abstract class InjectingPreferenceFragment : PreferenceFragmentCompat() {
protected open fun showRestartDialog() { protected open fun showRestartDialog() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.restart_required) .setMessage(R.string.restart_required)
.setPositiveButton(R.string.restart_now) { _: DialogInterface?, _: Int -> .setPositiveButton(R.string.restart_now) { _: DialogInterface?, _: Int ->
val nextIntent = Intent(context, MainActivity::class.java) val nextIntent = Intent(context, MainActivity::class.java)
nextIntent.putExtra(MainActivity.OPEN_FILTER, null as Filter?) nextIntent.putExtra(MainActivity.OPEN_FILTER, null as Filter?)
ProcessPhoenix.triggerRebirth(context, nextIntent) ProcessPhoenix.triggerRebirth(context, nextIntent)
} }
.setNegativeButton(R.string.restart_later, null) .setNegativeButton(R.string.restart_later, null)
.show() .show()
} }
protected fun requires(@StringRes prefGroup: Int, check: Boolean, vararg resIds: Int) { protected fun requires(@StringRes prefGroup: Int, check: Boolean, vararg resIds: Int) {

@ -20,8 +20,9 @@ abstract class AbstractFragmentPluginPreference : BasePreferences() {
if (isLocalePluginIntent(intent)) { if (isLocalePluginIntent(intent)) {
Timber.d( Timber.d(
"Creating Activity with Intent=%s, savedInstanceState=%s, EXTRA_BUNDLE=%s", "Creating Activity with Intent=%s, savedInstanceState=%s, EXTRA_BUNDLE=%s",
intent, savedInstanceState, getPreviousBundle()) intent, savedInstanceState, getPreviousBundle()
)
} }
} }
@ -32,7 +33,10 @@ abstract class AbstractFragmentPluginPreference : BasePreferences() {
if (null != resultBundle) { if (null != resultBundle) {
val blurb = getResultBlurb(resultBundle) val blurb = getResultBlurb(resultBundle)
val result = Bundle() val result = Bundle()
result.putBundle(com.twofortyfouram.locale.api.Intent.EXTRA_BUNDLE, resultBundle) result.putBundle(
com.twofortyfouram.locale.api.Intent.EXTRA_BUNDLE,
resultBundle
)
result.putString(com.twofortyfouram.locale.api.Intent.EXTRA_STRING_BLURB, blurb) result.putString(com.twofortyfouram.locale.api.Intent.EXTRA_STRING_BLURB, blurb)
setResult(RESULT_OK, Intent().putExtras(result)) setResult(RESULT_OK, Intent().putExtras(result))
} }

@ -36,5 +36,6 @@ class TaskerSettingsActivity : AbstractFragmentPluginPreference() {
override fun inject(component: ActivityComponent) = component.inject(this) override fun inject(component: ActivityComponent) = component.inject(this)
private fun getFragment() = supportFragmentManager.findFragmentById(R.id.settings) as TaskerListNotification private fun getFragment() =
supportFragmentManager.findFragmentById(R.id.settings) as TaskerListNotification
} }

@ -13,7 +13,7 @@ import org.tasks.ui.MenuColorizer
private const val EXTRA_TITLE = "extra_title" private const val EXTRA_TITLE = "extra_title"
abstract class BasePreferences : ThemedInjectingAppCompatActivity(), abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback { PreferenceFragmentCompat.OnPreferenceStartFragmentCallback {
lateinit var toolbar: Toolbar lateinit var toolbar: Toolbar
@ -24,9 +24,9 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
toolbar = binding.toolbar.toolbar toolbar = binding.toolbar.toolbar
if (savedInstanceState == null) { if (savedInstanceState == null) {
supportFragmentManager supportFragmentManager
.beginTransaction() .beginTransaction()
.replace(R.id.settings, getRootPreference()) .replace(R.id.settings, getRootPreference())
.commit() .commit()
toolbar.title = getString(getRootTitle()) toolbar.title = getString(getRootTitle())
} else { } else {
toolbar.title = savedInstanceState.getCharSequence(EXTRA_TITLE) toolbar.title = savedInstanceState.getCharSequence(EXTRA_TITLE)
@ -36,7 +36,8 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
toolbar.title = getString(getRootTitle()) toolbar.title = getString(getRootTitle())
} }
} }
toolbar.navigationIcon = ContextCompat.getDrawable(this, R.drawable.ic_outline_arrow_back_24px); toolbar.navigationIcon =
ContextCompat.getDrawable(this, R.drawable.ic_outline_arrow_back_24px);
toolbar.setNavigationOnClickListener { onBackPressed() } toolbar.setNavigationOnClickListener { onBackPressed() }
setupMenu() setupMenu()
MenuColorizer.colorToolbar(this, toolbar) MenuColorizer.colorToolbar(this, toolbar)
@ -61,21 +62,21 @@ abstract class BasePreferences : ThemedInjectingAppCompatActivity(),
} }
override fun onPreferenceStartFragment( override fun onPreferenceStartFragment(
caller: PreferenceFragmentCompat, caller: PreferenceFragmentCompat,
pref: Preference pref: Preference
): Boolean { ): Boolean {
val args = pref.extras val args = pref.extras
val fragment = supportFragmentManager.fragmentFactory.instantiate( val fragment = supportFragmentManager.fragmentFactory.instantiate(
classLoader, classLoader,
pref.fragment pref.fragment
).apply { ).apply {
arguments = args arguments = args
setTargetFragment(caller, 0) setTargetFragment(caller, 0)
} }
supportFragmentManager.beginTransaction() supportFragmentManager.beginTransaction()
.replace(R.id.settings, fragment) .replace(R.id.settings, fragment)
.addToBackStack(null) .addToBackStack(null)
.commit() .commit()
toolbar.title = pref.title toolbar.title = pref.title
return true return true
} }

@ -3,8 +3,6 @@ package org.tasks.preferences
import org.tasks.R import org.tasks.R
import org.tasks.injection.ActivityComponent import org.tasks.injection.ActivityComponent
import org.tasks.preferences.fragments.Advanced import org.tasks.preferences.fragments.Advanced
import org.tasks.preferences.fragments.HelpAndFeedback
import org.tasks.preferences.fragments.Notifications
class ManageSpaceActivity : BasePreferences() { class ManageSpaceActivity : BasePreferences() {

@ -2,7 +2,6 @@ package org.tasks.preferences
import org.tasks.R import org.tasks.R
import org.tasks.injection.ActivityComponent import org.tasks.injection.ActivityComponent
import org.tasks.preferences.fragments.HelpAndFeedback
import org.tasks.preferences.fragments.Notifications import org.tasks.preferences.fragments.Notifications
class NotificationPreferences : BasePreferences() { class NotificationPreferences : BasePreferences() {

@ -50,43 +50,48 @@ class Advanced : InjectingPreferenceFragment() {
setPreferencesFromResource(R.xml.preferences_advanced, rootKey) setPreferencesFromResource(R.xml.preferences_advanced, rootKey)
findPreference(R.string.EPr_manage_purge_deleted) findPreference(R.string.EPr_manage_purge_deleted)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
purgeDeletedTasks() purgeDeletedTasks()
false false
} }
findPreference(R.string.EPr_manage_delete_completed_gcal) findPreference(R.string.EPr_manage_delete_completed_gcal)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
deleteCompletedEvents() deleteCompletedEvents()
false false
} }
findPreference(R.string.EPr_manage_delete_all_gcal) findPreference(R.string.EPr_manage_delete_all_gcal)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
deleteAllCalendarEvents() deleteAllCalendarEvents()
false false
} }
findPreference(R.string.EPr_reset_preferences) findPreference(R.string.EPr_reset_preferences)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
resetPreferences() resetPreferences()
false false
} }
findPreference(R.string.EPr_delete_task_data) findPreference(R.string.EPr_delete_task_data)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
deleteTaskData() deleteTaskData()
false false
} }
findPreference(R.string.p_attachment_dir) findPreference(R.string.p_attachment_dir)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
FileHelper.newDirectoryPicker(this, REQUEST_CODE_FILES_DIR, preferences.attachmentsDirectory) FileHelper.newDirectoryPicker(
false this,
} REQUEST_CODE_FILES_DIR,
preferences.attachmentsDirectory
)
false
}
updateAttachmentDirectory() updateAttachmentDirectory()
calendarReminderPreference = findPreference(R.string.p_calendar_reminders) as SwitchPreferenceCompat calendarReminderPreference =
findPreference(R.string.p_calendar_reminders) as SwitchPreferenceCompat
initializeCalendarReminderPreference() initializeCalendarReminderPreference()
} }
@ -96,9 +101,10 @@ class Advanced : InjectingPreferenceFragment() {
val uri = data!!.data!! val uri = data!!.data!!
if (AndroidUtilities.atLeastLollipop()) { if (AndroidUtilities.atLeastLollipop()) {
context!!.contentResolver context!!.contentResolver
.takePersistableUriPermission( .takePersistableUriPermission(
uri, uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION) Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
} }
preferences.setUri(R.string.p_attachment_dir, uri) preferences.setUri(R.string.p_attachment_dir, uri)
updateAttachmentDirectory() updateAttachmentDirectory()
@ -109,7 +115,8 @@ class Advanced : InjectingPreferenceFragment() {
} }
override fun onRequestPermissionsResult( override fun onRequestPermissionsResult(
requestCode: Int, permissions: Array<String?>, grantResults: IntArray) { requestCode: Int, permissions: Array<String?>, grantResults: IntArray
) {
if (requestCode == PermissionRequestor.REQUEST_CALENDAR) { if (requestCode == PermissionRequestor.REQUEST_CALENDAR) {
if (PermissionUtil.verifyPermissions(grantResults)) { if (PermissionUtil.verifyPermissions(grantResults)) {
calendarReminderPreference.isChecked = true calendarReminderPreference.isChecked = true
@ -132,100 +139,103 @@ class Advanced : InjectingPreferenceFragment() {
} }
private fun initializeCalendarReminderPreference() { private fun initializeCalendarReminderPreference() {
calendarReminderPreference.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, newValue -> calendarReminderPreference.onPreferenceChangeListener =
if (newValue == null) { Preference.OnPreferenceChangeListener { _, newValue ->
false if (newValue == null) {
} else if (!(newValue as Boolean)) { false
true } else if (!(newValue as Boolean)) {
} else if (permissionRequester.requestCalendarPermissions()) { true
CalendarNotificationIntentService.enqueueWork(context) } else if (permissionRequester.requestCalendarPermissions()) {
true CalendarNotificationIntentService.enqueueWork(context)
} else { true
false } else {
false
}
} }
} calendarReminderPreference.isChecked =
calendarReminderPreference.isChecked = calendarReminderPreference.isChecked && permissionChecker.canAccessCalendars() calendarReminderPreference.isChecked && permissionChecker.canAccessCalendars()
} }
private fun updateAttachmentDirectory() { private fun updateAttachmentDirectory() {
findPreference(R.string.p_attachment_dir).summary = findPreference(R.string.p_attachment_dir).summary =
FileHelper.uri2String(preferences.attachmentsDirectory) FileHelper.uri2String(preferences.attachmentsDirectory)
} }
private fun purgeDeletedTasks() { private fun purgeDeletedTasks() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.EPr_manage_purge_deleted_message) .setMessage(R.string.EPr_manage_purge_deleted_message)
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(android.R.string.ok) { _, _ ->
performAction( performAction(
R.string.EPr_manage_purge_deleted_status, Callable { taskDeleter.purgeDeleted() }) R.string.EPr_manage_purge_deleted_status,
} Callable { taskDeleter.purgeDeleted() })
.setNegativeButton(android.R.string.cancel, null) }
.show() .setNegativeButton(android.R.string.cancel, null)
.show()
} }
private fun deleteCompletedEvents() { private fun deleteCompletedEvents() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.EPr_manage_delete_completed_gcal_message) .setMessage(R.string.EPr_manage_delete_completed_gcal_message)
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(android.R.string.ok) { _, _ ->
performAction( performAction(
R.string.EPr_manage_delete_completed_gcal_status, R.string.EPr_manage_delete_completed_gcal_status,
Callable { Callable {
calendarEventProvider.deleteEvents(taskDao.completedCalendarEvents) calendarEventProvider.deleteEvents(taskDao.completedCalendarEvents)
taskDao.clearCompletedCalendarEvents() taskDao.clearCompletedCalendarEvents()
}) })
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.show() .show()
} }
private fun deleteAllCalendarEvents() { private fun deleteAllCalendarEvents() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.EPr_manage_delete_all_gcal_message) .setMessage(R.string.EPr_manage_delete_all_gcal_message)
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(android.R.string.ok) { _, _ ->
performAction( performAction(
R.string.EPr_manage_delete_all_gcal_status, R.string.EPr_manage_delete_all_gcal_status,
Callable { Callable {
calendarEventProvider.deleteEvents(taskDao.allCalendarEvents) calendarEventProvider.deleteEvents(taskDao.allCalendarEvents)
taskDao.clearAllCalendarEvents() taskDao.clearAllCalendarEvents()
}) })
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.show() .show()
} }
private fun performAction(@StringRes message: Int, callable: Callable<Int>) { private fun performAction(@StringRes message: Int, callable: Callable<Int>) {
disposables.add( disposables.add(
Single.fromCallable(callable) Single.fromCallable(callable)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe { c: Int? -> toaster.longToastUnformatted(message, c!!) }) .subscribe { c: Int? -> toaster.longToastUnformatted(message, c!!) })
} }
private fun resetPreferences() { private fun resetPreferences() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.EPr_reset_preferences_warning) .setMessage(R.string.EPr_reset_preferences_warning)
.setPositiveButton(R.string.EPr_reset_preferences) { _, _ -> .setPositiveButton(R.string.EPr_reset_preferences) { _, _ ->
preferences.reset() preferences.reset()
exitProcess(0) exitProcess(0)
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.show() .show()
} }
private fun deleteTaskData() { private fun deleteTaskData() {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.EPr_delete_task_data_warning) .setMessage(R.string.EPr_delete_task_data_warning)
.setPositiveButton(R.string.EPr_delete_task_data) { _, _ -> .setPositiveButton(R.string.EPr_delete_task_data) { _, _ ->
context!!.deleteDatabase(database.name) context!!.deleteDatabase(database.name)
exitProcess(0) exitProcess(0)
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.show() .show()
} }
override fun inject(component: FragmentComponent) { override fun inject(component: FragmentComponent) {

@ -41,47 +41,52 @@ class Backups : InjectingPreferenceFragment() {
initializeBackupDirectory() initializeBackupDirectory()
findPreference(R.string.backup_BAc_import) findPreference(R.string.backup_BAc_import)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
startActivityForResult( startActivityForResult(
FileHelper.newFilePickerIntent(activity, preferences.backupDirectory), FileHelper.newFilePickerIntent(activity, preferences.backupDirectory),
REQUEST_PICKER) REQUEST_PICKER
false )
} false
}
findPreference(R.string.backup_BAc_export) findPreference(R.string.backup_BAc_export)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
ExportTasksDialog.newExportTasksDialog() ExportTasksDialog.newExportTasksDialog()
.show(fragmentManager!!, FRAG_TAG_EXPORT_TASKS) .show(fragmentManager!!, FRAG_TAG_EXPORT_TASKS)
false false
} }
val googleDriveBackup = findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat val googleDriveBackup =
googleDriveBackup.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { preference: Preference, newValue: Any? -> findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat
when { googleDriveBackup.onPreferenceChangeListener =
newValue == null -> { Preference.OnPreferenceChangeListener { preference: Preference, newValue: Any? ->
false when {
} newValue == null -> {
newValue as Boolean -> { false
if (permissionRequestor.requestAccountPermissions()) { }
requestGoogleDriveLogin() newValue as Boolean -> {
if (permissionRequestor.requestAccountPermissions()) {
requestGoogleDriveLogin()
}
false
}
else -> {
preference.summary = null
true
} }
false
}
else -> {
preference.summary = null
true
} }
} }
}
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
val googleDriveBackup = findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat val googleDriveBackup =
findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat
val account = preferences.getStringValue(R.string.p_google_drive_backup_account) val account = preferences.getStringValue(R.string.p_google_drive_backup_account)
if (preferences.getBoolean(R.string.p_google_drive_backup, false) if (preferences.getBoolean(R.string.p_google_drive_backup, false)
&& googleAccountManager.canAccessAccount(account)) { && googleAccountManager.canAccessAccount(account)
) {
googleDriveBackup.isChecked = true googleDriveBackup.isChecked = true
googleDriveBackup.summary = account googleDriveBackup.summary = account
} else { } else {
@ -90,7 +95,11 @@ class Backups : InjectingPreferenceFragment() {
} }
} }
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (requestCode == PermissionRequestor.REQUEST_GOOGLE_ACCOUNTS) { if (requestCode == PermissionRequestor.REQUEST_GOOGLE_ACCOUNTS) {
if (PermissionUtil.verifyPermissions(grantResults)) { if (PermissionUtil.verifyPermissions(grantResults)) {
requestGoogleDriveLogin() requestGoogleDriveLogin()
@ -106,9 +115,10 @@ class Backups : InjectingPreferenceFragment() {
val uri = data.data!! val uri = data.data!!
if (AndroidUtilities.atLeastLollipop()) { if (AndroidUtilities.atLeastLollipop()) {
context?.contentResolver context?.contentResolver
?.takePersistableUriPermission( ?.takePersistableUriPermission(
uri, uri,
Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION) Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
} }
preferences.setUri(R.string.p_backup_dir, uri) preferences.setUri(R.string.p_backup_dir, uri)
updateBackupDirectory() updateBackupDirectory()
@ -117,15 +127,21 @@ class Backups : InjectingPreferenceFragment() {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val uri = data!!.data val uri = data!!.data
val extension = FileHelper.getExtension(activity, uri) val extension = FileHelper.getExtension(activity, uri)
if (!("json".equals(extension, ignoreCase = true) || "xml".equals(extension, ignoreCase = true))) { if (!("json".equals(extension, ignoreCase = true) || "xml".equals(
extension,
ignoreCase = true
))
) {
toaster.longToast(R.string.invalid_backup_file) toaster.longToast(R.string.invalid_backup_file)
} else { } else {
ImportTasksDialog.newImportTasksDialog(uri, extension).show(fragmentManager!!, FRAG_TAG_IMPORT_TASKS) ImportTasksDialog.newImportTasksDialog(uri, extension)
.show(fragmentManager!!, FRAG_TAG_IMPORT_TASKS)
} }
} }
} else if (requestCode == REQUEST_DRIVE_BACKUP) { } else if (requestCode == REQUEST_DRIVE_BACKUP) {
val success = resultCode == RESULT_OK val success = resultCode == RESULT_OK
(findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat).isChecked = success (findPreference(R.string.p_google_drive_backup) as SwitchPreferenceCompat).isChecked =
success
if (!success && data != null) { if (!success && data != null) {
toaster.longToast(data.getStringExtra(GtasksLoginActivity.EXTRA_ERROR)) toaster.longToast(data.getStringExtra(GtasksLoginActivity.EXTRA_ERROR))
} }
@ -136,21 +152,26 @@ class Backups : InjectingPreferenceFragment() {
} }
private fun requestGoogleDriveLogin() { private fun requestGoogleDriveLogin() {
startActivityForResult(Intent(context, DriveLoginActivity::class.java), REQUEST_DRIVE_BACKUP) startActivityForResult(
Intent(context, DriveLoginActivity::class.java),
REQUEST_DRIVE_BACKUP
)
} }
private fun initializeBackupDirectory() { private fun initializeBackupDirectory() {
findPreference(R.string.p_backup_dir) findPreference(R.string.p_backup_dir)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
FileHelper.newDirectoryPicker( FileHelper.newDirectoryPicker(
this, REQUEST_CODE_BACKUP_DIR, preferences.backupDirectory) this, REQUEST_CODE_BACKUP_DIR, preferences.backupDirectory
false )
} false
}
updateBackupDirectory() updateBackupDirectory()
} }
private fun updateBackupDirectory() { private fun updateBackupDirectory() {
findPreference(R.string.p_backup_dir).summary = FileHelper.uri2String(preferences.backupDirectory) findPreference(R.string.p_backup_dir).summary =
FileHelper.uri2String(preferences.backupDirectory)
} }
override fun inject(component: FragmentComponent) { override fun inject(component: FragmentComponent) {

@ -27,26 +27,31 @@ class DashClock : InjectingPreferenceFragment() {
setPreferencesFromResource(R.xml.preferences_dashclock, rootKey) setPreferencesFromResource(R.xml.preferences_dashclock, rootKey)
findPreference(R.string.p_dashclock_filter) findPreference(R.string.p_dashclock_filter)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
val intent = Intent(context, FilterSelectionActivity::class.java) val intent = Intent(context, FilterSelectionActivity::class.java)
intent.putExtra( intent.putExtra(
FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.dashclockFilter) FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.dashclockFilter
intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true) )
startActivityForResult(intent, REQUEST_SELECT_FILTER) intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true)
false startActivityForResult(intent, REQUEST_SELECT_FILTER)
} false
}
refreshPreferences() refreshPreferences()
if (!inventory.purchasedDashclock()) { if (!inventory.purchasedDashclock()) {
startActivityForResult(Intent(context, PurchaseActivity::class.java), REQUEST_SUBSCRIPTION) startActivityForResult(
Intent(context, PurchaseActivity::class.java),
REQUEST_SUBSCRIPTION
)
} }
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_SELECT_FILTER) { if (requestCode == REQUEST_SELECT_FILTER) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
val filter: Filter = data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!! val filter: Filter =
data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!!
defaultFilterProvider.dashclockFilter = filter defaultFilterProvider.dashclockFilter = filter
refreshPreferences() refreshPreferences()
localBroadcastManager.broadcastRefresh() localBroadcastManager.broadcastRefresh()

@ -19,29 +19,34 @@ class HelpAndFeedback : InjectingPreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.help_and_feedback, rootKey) setPreferencesFromResource(R.xml.help_and_feedback, rootKey)
findPreference(R.string.changelog).summary = getString(R.string.version_string, BuildConfig.VERSION_NAME) findPreference(R.string.changelog).summary =
getString(R.string.version_string, BuildConfig.VERSION_NAME)
findPreference(R.string.contact_developer) findPreference(R.string.contact_developer)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
val uri = Uri.fromParts("mailto", "Alex <" + getString(R.string.support_email) + ">", null) val uri = Uri.fromParts(
val intent = Intent(Intent.ACTION_SENDTO, uri) "mailto",
.putExtra(Intent.EXTRA_SUBJECT, "Tasks Feedback") "Alex <" + getString(R.string.support_email) + ">",
.putExtra(Intent.EXTRA_TEXT, device.debugInfo) null
startActivity(intent) )
false val intent = Intent(Intent.ACTION_SENDTO, uri)
} .putExtra(Intent.EXTRA_SUBJECT, "Tasks Feedback")
.putExtra(Intent.EXTRA_TEXT, device.debugInfo)
startActivity(intent)
false
}
findPreference(R.string.refresh_purchases) findPreference(R.string.refresh_purchases)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
billingClient.queryPurchases() billingClient.queryPurchases()
false false
} }
findPreference(R.string.p_collect_statistics) findPreference(R.string.p_collect_statistics)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
showRestartDialog() showRestartDialog()
true true
} }
if (inventory.hasPro()) { if (inventory.hasPro()) {
val findPreference = findPreference(R.string.upgrade_to_pro) val findPreference = findPreference(R.string.upgrade_to_pro)
@ -51,10 +56,12 @@ class HelpAndFeedback : InjectingPreferenceFragment() {
@Suppress("ConstantConditionIf") @Suppress("ConstantConditionIf")
if (BuildConfig.FLAVOR == "generic") { if (BuildConfig.FLAVOR == "generic") {
remove(R.string.p_collect_statistics, remove(
R.string.rate_tasks, R.string.p_collect_statistics,
R.string.upgrade_to_pro, R.string.rate_tasks,
R.string.refresh_purchases) R.string.upgrade_to_pro,
R.string.refresh_purchases
)
} }
} }

@ -73,21 +73,29 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
setupColorPreference(R.string.p_theme, themeBase.name, THEMES, REQUEST_THEME_PICKER) setupColorPreference(R.string.p_theme, themeBase.name, THEMES, REQUEST_THEME_PICKER)
setupColorPreference(R.string.p_theme_color, themeColor.name, COLORS, REQUEST_COLOR_PICKER) setupColorPreference(R.string.p_theme_color, themeColor.name, COLORS, REQUEST_COLOR_PICKER)
setupColorPreference(R.string.p_theme_accent, themeAccent.name, ACCENTS, REQUEST_ACCENT_PICKER) setupColorPreference(
R.string.p_theme_accent,
themeAccent.name,
ACCENTS,
REQUEST_ACCENT_PICKER
)
updateLauncherPreference() updateLauncherPreference()
findPreference(R.string.p_show_subtasks) findPreference(R.string.p_show_subtasks)
.setOnPreferenceChangeListener { _: Preference?, _: Any? -> .setOnPreferenceChangeListener { _: Preference?, _: Any? ->
localBroadcastManager.broadcastRefresh() localBroadcastManager.broadcastRefresh()
true true
} }
val defaultList = findPreference(R.string.p_default_list) val defaultList = findPreference(R.string.p_default_list)
val filter: Filter = defaultFilterProvider.defaultFilter val filter: Filter = defaultFilterProvider.defaultFilter
defaultList.summary = filter.listingTitle defaultList.summary = filter.listingTitle
defaultList.onPreferenceClickListener = Preference.OnPreferenceClickListener { defaultList.onPreferenceClickListener = Preference.OnPreferenceClickListener {
val intent = Intent(context, FilterSelectionActivity::class.java) val intent = Intent(context, FilterSelectionActivity::class.java)
intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.defaultFilter) intent.putExtra(
FilterSelectionActivity.EXTRA_FILTER,
defaultFilterProvider.defaultFilter
)
intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true) intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true)
startActivityForResult(intent, REQUEST_DEFAULT_LIST) startActivityForResult(intent, REQUEST_DEFAULT_LIST)
true true
@ -133,67 +141,70 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
} }
private fun updateLauncherPreference() = private fun updateLauncherPreference() =
setupColorPreference( setupColorPreference(
R.string.p_theme_launcher, R.string.p_theme_launcher,
themeCache.getThemeColor(preferences.getInt(R.string.p_theme_launcher, 7)).name, themeCache.getThemeColor(preferences.getInt(R.string.p_theme_launcher, 7)).name,
LAUNCHER, LAUNCHER,
REQUEST_LAUNCHER_PICKER) REQUEST_LAUNCHER_PICKER
)
private fun setupLocationPickers() { private fun setupLocationPickers() {
val choices = listOf(getString(R.string.map_provider_mapbox), getString(R.string.map_provider_google)) val choices =
listOf(getString(R.string.map_provider_mapbox), getString(R.string.map_provider_google))
val singleCheckedArrayAdapter = SingleCheckedArrayAdapter(context!!, choices, themeAccent) val singleCheckedArrayAdapter = SingleCheckedArrayAdapter(context!!, choices, themeAccent)
val mapProviderPreference = findPreference(R.string.p_map_provider) val mapProviderPreference = findPreference(R.string.p_map_provider)
mapProviderPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener { mapProviderPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setSingleChoiceItems( .setSingleChoiceItems(
singleCheckedArrayAdapter, singleCheckedArrayAdapter,
getMapProvider() getMapProvider()
) { dialog: DialogInterface, which: Int -> ) { dialog: DialogInterface, which: Int ->
if (which == 1) { if (which == 1) {
if (!playServices.refreshAndCheck()) { if (!playServices.refreshAndCheck()) {
playServices.resolve(activity) playServices.resolve(activity)
dialog.dismiss() dialog.dismiss()
return@setSingleChoiceItems return@setSingleChoiceItems
}
} }
preferences.setInt(R.string.p_map_provider, which)
mapProviderPreference.summary = choices[which]
dialog.dismiss()
} }
.setNegativeButton(android.R.string.cancel, null) preferences.setInt(R.string.p_map_provider, which)
.showThemedListView() mapProviderPreference.summary = choices[which]
dialog.dismiss()
}
.setNegativeButton(android.R.string.cancel, null)
.showThemedListView()
false false
} }
val mapProvider: Int = getMapProvider() val mapProvider: Int = getMapProvider()
mapProviderPreference.summary = if (mapProvider == -1) getString(R.string.none) else choices[mapProvider] mapProviderPreference.summary =
if (mapProvider == -1) getString(R.string.none) else choices[mapProvider]
val placeProviderPreference = findPreference(R.string.p_place_provider) val placeProviderPreference = findPreference(R.string.p_place_provider)
placeProviderPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener { placeProviderPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
dialogBuilder dialogBuilder
.newDialog() .newDialog()
.setSingleChoiceItems( .setSingleChoiceItems(
singleCheckedArrayAdapter, singleCheckedArrayAdapter,
getPlaceProvider() getPlaceProvider()
) { dialog: DialogInterface, which: Int -> ) { dialog: DialogInterface, which: Int ->
if (which == 1) { if (which == 1) {
if (!playServices.refreshAndCheck()) { if (!playServices.refreshAndCheck()) {
playServices.resolve(activity) playServices.resolve(activity)
dialog.dismiss() dialog.dismiss()
return@setSingleChoiceItems return@setSingleChoiceItems
} }
if (!inventory.hasPro()) { if (!inventory.hasPro()) {
toaster.longToast(R.string.requires_pro_subscription) toaster.longToast(R.string.requires_pro_subscription)
dialog.dismiss() dialog.dismiss()
return@setSingleChoiceItems return@setSingleChoiceItems
}
} }
preferences.setInt(R.string.p_place_provider, which)
placeProviderPreference.summary = choices[which]
dialog.dismiss()
} }
.setNegativeButton(android.R.string.cancel, null) preferences.setInt(R.string.p_place_provider, which)
.showThemedListView() placeProviderPreference.summary = choices[which]
dialog.dismiss()
}
.setNegativeButton(android.R.string.cancel, null)
.showThemedListView()
false false
} }
val placeProvider: Int = getPlaceProvider() val placeProvider: Int = getPlaceProvider()
@ -201,11 +212,17 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
} }
private fun getPlaceProvider(): Int { private fun getPlaceProvider(): Int {
return if (playServices.isPlayServicesAvailable && inventory.hasPro()) preferences.getInt(R.string.p_place_provider, 0) else 0 return if (playServices.isPlayServicesAvailable && inventory.hasPro()) preferences.getInt(
R.string.p_place_provider,
0
) else 0
} }
private fun getMapProvider(): Int { private fun getMapProvider(): Int {
return if (playServices.isPlayServicesAvailable) preferences.getInt(R.string.p_map_provider, 0) else 0 return if (playServices.isPlayServicesAvailable) preferences.getInt(
R.string.p_map_provider,
0
) else 0
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
@ -239,14 +256,16 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
} }
} else if (requestCode == REQUEST_DEFAULT_LIST) { } else if (requestCode == REQUEST_DEFAULT_LIST) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val filter: Filter = data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!! val filter: Filter =
data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!!
defaultFilterProvider.defaultFilter = filter defaultFilterProvider.defaultFilter = filter
findPreference(R.string.p_default_list).summary = filter.listingTitle findPreference(R.string.p_default_list).summary = filter.listingTitle
localBroadcastManager.broadcastRefresh() localBroadcastManager.broadcastRefresh()
} }
} else if (requestCode == REQUEST_LOCALE) { } else if (requestCode == REQUEST_LOCALE) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val newValue: Locale = data!!.getSerializableExtra(LocalePickerDialog.EXTRA_LOCALE) as Locale val newValue: Locale =
data!!.getSerializableExtra(LocalePickerDialog.EXTRA_LOCALE) as Locale
val override: String? = newValue.languageOverride val override: String? = newValue.languageOverride
if (Strings.isNullOrEmpty(override)) { if (Strings.isNullOrEmpty(override)) {
preferences.remove(R.string.p_language) preferences.remove(R.string.p_language)
@ -288,11 +307,15 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
private fun setLauncherIcon(index: Int) { private fun setLauncherIcon(index: Int) {
val packageManager: PackageManager? = context?.packageManager val packageManager: PackageManager? = context?.packageManager
for (i in ThemeColor.LAUNCHERS.indices) { for (i in ThemeColor.LAUNCHERS.indices) {
val componentName = ComponentName(context!!, "com.todoroo.astrid.activity.TaskListActivity" + ThemeColor.LAUNCHERS[i]) val componentName = ComponentName(
context!!,
"com.todoroo.astrid.activity.TaskListActivity" + ThemeColor.LAUNCHERS[i]
)
packageManager?.setComponentEnabledSetting( packageManager?.setComponentEnabledSetting(
componentName, componentName,
if (index == i) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else PackageManager.COMPONENT_ENABLED_STATE_DISABLED, if (index == i) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP) PackageManager.DONT_KILL_APP
)
} }
} }
@ -300,7 +323,11 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
component.inject(this) component.inject(this)
} }
private fun setupColorPreference(@StringRes prefId: Int, summary: String, palette: ColorPickerActivity.ColorPalette, requestCode: Int) { private fun setupColorPreference(
@StringRes prefId: Int, summary: String,
palette: ColorPickerActivity.ColorPalette,
requestCode: Int
) {
val themePref: Preference = findPreference(prefId) val themePref: Preference = findPreference(prefId)
themePref.summary = summary themePref.summary = summary
themePref.setOnPreferenceClickListener { themePref.setOnPreferenceClickListener {
@ -368,10 +395,11 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
private fun invalidSetting(errorResId: Int, settingResId: Int, relativeResId: Int) { private fun invalidSetting(errorResId: Int, settingResId: Int, relativeResId: Int) {
Toast.makeText( Toast.makeText(
context, context,
getString(errorResId, getString(settingResId), getString(relativeResId)), getString(errorResId, getString(settingResId), getString(relativeResId)),
Toast.LENGTH_SHORT) Toast.LENGTH_SHORT
.show() )
.show()
} }
private fun updateStartOfWeek(value: String) { private fun updateStartOfWeek(value: String) {
@ -411,9 +439,9 @@ class LookAndFeel : InjectingPreferenceFragment(), Preference.OnPreferenceChange
private fun getWeekdayEntries(): Array<String?>? { private fun getWeekdayEntries(): Array<String?>? {
return arrayOf( return arrayOf(
getString(R.string.use_locale_default), getString(R.string.use_locale_default),
getWeekdayDisplayName(DayOfWeek.SUNDAY), getWeekdayDisplayName(DayOfWeek.SUNDAY),
getWeekdayDisplayName(DayOfWeek.MONDAY) getWeekdayDisplayName(DayOfWeek.MONDAY)
) )
} }
} }

@ -46,11 +46,12 @@ class Notifications : InjectingPreferenceFragment() {
setPreferencesFromResource(R.xml.preferences_notifications, rootKey) setPreferencesFromResource(R.xml.preferences_notifications, rootKey)
rescheduleNotificationsOnChange( rescheduleNotificationsOnChange(
R.string.p_rmd_time, R.string.p_rmd_time,
R.string.p_rmd_enable_quiet, R.string.p_rmd_enable_quiet,
R.string.p_rmd_quietStart, R.string.p_rmd_quietStart,
R.string.p_rmd_quietEnd, R.string.p_rmd_quietEnd,
R.string.p_rmd_persistent) R.string.p_rmd_persistent
)
initializeRingtonePreference() initializeRingtonePreference()
initializeTimePreference(getDefaultRemindTimePreference()!!, REQUEST_DEFAULT_REMIND) initializeTimePreference(getDefaultRemindTimePreference()!!, REQUEST_DEFAULT_REMIND)
@ -58,29 +59,29 @@ class Notifications : InjectingPreferenceFragment() {
initializeTimePreference(getQuietEndPreference()!!, REQUEST_QUIET_END) initializeTimePreference(getQuietEndPreference()!!, REQUEST_QUIET_END)
findPreference(R.string.notification_channel_settings) findPreference(R.string.notification_channel_settings)
.setOnPreferenceClickListener(::openNotificationChannelSettings) .setOnPreferenceClickListener(::openNotificationChannelSettings)
findPreference(R.string.battery_optimization_settings) findPreference(R.string.battery_optimization_settings)
.setOnPreferenceClickListener(::openBatteryOptimizationSettings) .setOnPreferenceClickListener(::openBatteryOptimizationSettings)
findPreference(R.string.p_bundle_notifications) findPreference(R.string.p_bundle_notifications)
.setOnPreferenceChangeListener { _: Preference?, _: Any? -> .setOnPreferenceChangeListener { _: Preference?, _: Any? ->
NotificationSchedulerIntentService.enqueueWork(context, true) NotificationSchedulerIntentService.enqueueWork(context, true)
true true
} }
findPreference(R.string.p_badges_enabled) findPreference(R.string.p_badges_enabled)
.setOnPreferenceChangeListener { _: Preference?, newValue: Any? -> .setOnPreferenceChangeListener { _: Preference?, newValue: Any? ->
if (newValue != null) { if (newValue != null) {
if (newValue as Boolean) { if (newValue as Boolean) {
showRestartDialog() showRestartDialog()
} else {
ShortcutBadger.removeCount(context)
}
true
} else { } else {
false ShortcutBadger.removeCount(context)
} }
true
} else {
false
} }
}
val badgePreference: Preference = findPreference(R.string.p_badge_list) val badgePreference: Preference = findPreference(R.string.p_badge_list)
val filter = defaultFilterProvider.badgeFilter val filter = defaultFilterProvider.badgeFilter
@ -88,35 +89,40 @@ class Notifications : InjectingPreferenceFragment() {
badgePreference.onPreferenceClickListener = Preference.OnPreferenceClickListener { badgePreference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
val intent = Intent(context, FilterSelectionActivity::class.java) val intent = Intent(context, FilterSelectionActivity::class.java)
intent.putExtra( intent.putExtra(
FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.badgeFilter) FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.badgeFilter
)
intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true) intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true)
startActivityForResult(intent, REQUEST_BADGE_LIST) startActivityForResult(intent, REQUEST_BADGE_LIST)
true true
} }
findPreference(R.string.p_voiceRemindersEnabled) findPreference(R.string.p_voiceRemindersEnabled)
.setOnPreferenceChangeListener { preference: Preference, newValue: Any -> .setOnPreferenceChangeListener { preference: Preference, newValue: Any ->
val enabled = newValue as Boolean val enabled = newValue as Boolean
try { try {
if (enabled && !voiceOutputAssistant.isTTSInitialized) { if (enabled && !voiceOutputAssistant.isTTSInitialized) {
val checkIntent = Intent() val checkIntent = Intent()
checkIntent.action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA checkIntent.action = TextToSpeech.Engine.ACTION_CHECK_TTS_DATA
startActivityForResult(checkIntent, REQUEST_CODE_TTS_CHECK) startActivityForResult(checkIntent, REQUEST_CODE_TTS_CHECK)
} else if (!enabled && voiceOutputAssistant.isTTSInitialized) { } else if (!enabled && voiceOutputAssistant.isTTSInitialized) {
voiceOutputAssistant.shutdown() voiceOutputAssistant.shutdown()
}
} catch (e: VerifyError) {
Timber.e(e)
preference.isEnabled = false
preferences.setBoolean(preference.key, false)
} }
true } catch (e: VerifyError) {
Timber.e(e)
preference.isEnabled = false
preferences.setBoolean(preference.key, false)
} }
true
}
requires(AndroidUtilities.atLeastOreo(), R.string.notification_channel_settings) requires(AndroidUtilities.atLeastOreo(), R.string.notification_channel_settings)
requires(AndroidUtilities.atLeastMarshmallow(), R.string.battery_optimization_settings) requires(AndroidUtilities.atLeastMarshmallow(), R.string.battery_optimization_settings)
requires( requires(
AndroidUtilities.preOreo(), R.string.p_rmd_ringtone, R.string.p_rmd_vibrate, R.string.p_led_notification) AndroidUtilities.preOreo(),
R.string.p_rmd_ringtone,
R.string.p_rmd_vibrate,
R.string.p_led_notification
)
} }
override fun onDestroy() { override fun onDestroy() {
@ -132,10 +138,10 @@ class Notifications : InjectingPreferenceFragment() {
private fun rescheduleNotificationsOnChange(vararg resIds: Int) { private fun rescheduleNotificationsOnChange(vararg resIds: Int) {
for (resId in resIds) { for (resId in resIds) {
findPreference(resId) findPreference(resId)
.setOnPreferenceChangeListener { _: Preference?, _: Any? -> .setOnPreferenceChangeListener { _: Preference?, _: Any? ->
NotificationSchedulerIntentService.enqueueWork(context, false) NotificationSchedulerIntentService.enqueueWork(context, false)
true true
} }
} }
} }
@ -145,16 +151,25 @@ class Notifications : InjectingPreferenceFragment() {
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION) intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION)
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true) intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true)
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true) intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true)
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, Settings.System.DEFAULT_NOTIFICATION_URI) intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
Settings.System.DEFAULT_NOTIFICATION_URI
)
val existingValue: String? = preferences.getStringValue(R.string.p_rmd_ringtone) val existingValue: String? = preferences.getStringValue(R.string.p_rmd_ringtone)
if (existingValue != null) { if (existingValue != null) {
if (existingValue.isEmpty()) { if (existingValue.isEmpty()) {
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, null as Uri?) intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, null as Uri?)
} else { } else {
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(existingValue)) intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
Uri.parse(existingValue)
)
} }
} else { } else {
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Settings.System.DEFAULT_NOTIFICATION_URI) intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
Settings.System.DEFAULT_NOTIFICATION_URI
)
} }
startActivityForResult(intent, REQUEST_CODE_ALERT_RINGTONE) startActivityForResult(intent, REQUEST_CODE_ALERT_RINGTONE)
true true
@ -190,23 +205,28 @@ class Notifications : InjectingPreferenceFragment() {
} }
private fun initializeRingtonePreference() { private fun initializeRingtonePreference() {
val ringtoneChangedListener = Preference.OnPreferenceChangeListener { preference: Preference, value: Any? -> val ringtoneChangedListener =
if ("" == value) { Preference.OnPreferenceChangeListener { preference: Preference, value: Any? ->
preference.setSummary(R.string.silent) if ("" == value) {
} else { preference.setSummary(R.string.silent)
val ringtone = RingtoneManager.getRingtone( } else {
val ringtone = RingtoneManager.getRingtone(
context, context,
if (value == null) Settings.System.DEFAULT_NOTIFICATION_URI else Uri.parse(value as String?)) if (value == null) Settings.System.DEFAULT_NOTIFICATION_URI else Uri.parse(
preference.summary = if (ringtone == null) "" else ringtone.getTitle(context) value as String?
)
)
preference.summary = if (ringtone == null) "" else ringtone.getTitle(context)
}
true
} }
true
}
val ringtoneKey = R.string.p_rmd_ringtone val ringtoneKey = R.string.p_rmd_ringtone
val ringtonePreference: Preference = findPreference(ringtoneKey) val ringtonePreference: Preference = findPreference(ringtoneKey)
ringtonePreference.onPreferenceChangeListener = ringtoneChangedListener ringtonePreference.onPreferenceChangeListener = ringtoneChangedListener
ringtoneChangedListener.onPreferenceChange( ringtoneChangedListener.onPreferenceChange(
ringtonePreference, ringtonePreference,
preferences.getStringValue(ringtoneKey)) preferences.getStringValue(ringtoneKey)
)
} }
@TargetApi(Build.VERSION_CODES.O) @TargetApi(Build.VERSION_CODES.O)
@ -228,7 +248,8 @@ class Notifications : InjectingPreferenceFragment() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE_ALERT_RINGTONE) { if (requestCode == REQUEST_CODE_ALERT_RINGTONE) {
if (resultCode == RESULT_OK && data != null) { if (resultCode == RESULT_OK && data != null) {
val ringtone: Uri? = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI) val ringtone: Uri? =
data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI)
if (ringtone != null) { if (ringtone != null) {
preferences.setString(R.string.p_rmd_ringtone, ringtone.toString()) preferences.setString(R.string.p_rmd_ringtone, ringtone.toString())
} else { } else {
@ -250,7 +271,8 @@ class Notifications : InjectingPreferenceFragment() {
} }
} else if (requestCode == REQUEST_BADGE_LIST) { } else if (requestCode == REQUEST_BADGE_LIST) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
val filter: Filter = data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!! val filter: Filter =
data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!!
defaultFilterProvider.badgeFilter = filter defaultFilterProvider.badgeFilter = filter
findPreference(R.string.p_badge_list).summary = filter.listingTitle findPreference(R.string.p_badge_list).summary = filter.listingTitle
localBroadcastManager.broadcastRefresh() localBroadcastManager.broadcastRefresh()

@ -66,32 +66,35 @@ class ScrollableWidget : InjectingPreferenceFragment() {
showSettings.dependency = showHeader.key showSettings.dependency = showHeader.key
findPreference(R.string.p_widget_filter) findPreference(R.string.p_widget_filter)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
val intent = Intent(context, FilterSelectionActivity::class.java) val intent = Intent(context, FilterSelectionActivity::class.java)
intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, getFilter()) intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, getFilter())
intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true) intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true)
startActivityForResult(intent, REQUEST_FILTER) startActivityForResult(intent, REQUEST_FILTER)
false false
} }
findPreference(R.string.p_widget_theme) findPreference(R.string.p_widget_theme)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
val intent = Intent(context, ColorPickerActivity::class.java) val intent = Intent(context, ColorPickerActivity::class.java)
intent.putExtra( intent.putExtra(
ColorPickerActivity.EXTRA_PALETTE, ColorPickerActivity.EXTRA_PALETTE,
ColorPickerActivity.ColorPalette.WIDGET_BACKGROUND) ColorPickerActivity.ColorPalette.WIDGET_BACKGROUND
intent.putExtra( )
ColorPickerActivity.EXTRA_THEME_INDEX, widgetPreferences.themeIndex) intent.putExtra(
startActivityForResult(intent, REQUEST_THEME_SELECTION) ColorPickerActivity.EXTRA_THEME_INDEX, widgetPreferences.themeIndex
false )
} startActivityForResult(intent, REQUEST_THEME_SELECTION)
false
}
val colorPreference = findPreference(R.string.p_widget_color) val colorPreference = findPreference(R.string.p_widget_color)
colorPreference.dependency = showHeader.key colorPreference.dependency = showHeader.key
colorPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener { colorPreference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
val intent = Intent(context, ColorPickerActivity::class.java) val intent = Intent(context, ColorPickerActivity::class.java)
intent.putExtra( intent.putExtra(
ColorPickerActivity.EXTRA_PALETTE, ColorPickerActivity.ColorPalette.COLORS) ColorPickerActivity.EXTRA_PALETTE, ColorPickerActivity.ColorPalette.COLORS
)
intent.putExtra(ColorPickerActivity.EXTRA_THEME_INDEX, widgetPreferences.colorIndex) intent.putExtra(ColorPickerActivity.EXTRA_THEME_INDEX, widgetPreferences.colorIndex)
startActivityForResult(intent, REQUEST_COLOR_SELECTION) startActivityForResult(intent, REQUEST_COLOR_SELECTION)
false false
@ -105,18 +108,29 @@ class ScrollableWidget : InjectingPreferenceFragment() {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_FILTER) { if (requestCode == REQUEST_FILTER) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
val filter: Filter = data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!! val filter: Filter =
data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!!
widgetPreferences.setFilter(defaultFilterProvider.getFilterPreferenceValue(filter)) widgetPreferences.setFilter(defaultFilterProvider.getFilterPreferenceValue(filter))
updateFilter() updateFilter()
} }
} else if (requestCode == REQUEST_THEME_SELECTION) { } else if (requestCode == REQUEST_THEME_SELECTION) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
widgetPreferences.setTheme(data!!.getIntExtra(ColorPickerActivity.EXTRA_THEME_INDEX, 0)) widgetPreferences.setTheme(
data!!.getIntExtra(
ColorPickerActivity.EXTRA_THEME_INDEX,
0
)
)
updateTheme() updateTheme()
} }
} else if (requestCode == REQUEST_COLOR_SELECTION) { } else if (requestCode == REQUEST_COLOR_SELECTION) {
if (resultCode == Activity.RESULT_OK) { if (resultCode == Activity.RESULT_OK) {
widgetPreferences.setColor(data!!.getIntExtra(ColorPickerActivity.EXTRA_THEME_INDEX, 0)) widgetPreferences.setColor(
data!!.getIntExtra(
ColorPickerActivity.EXTRA_THEME_INDEX,
0
)
)
updateColor() updateColor()
} }
} else { } else {

@ -41,33 +41,37 @@ class Synchronization : InjectingPreferenceFragment() {
setPreferencesFromResource(R.xml.preferences_synchronization, rootKey) setPreferencesFromResource(R.xml.preferences_synchronization, rootKey)
findPreference(R.string.p_background_sync_unmetered_only) findPreference(R.string.p_background_sync_unmetered_only)
.setOnPreferenceChangeListener { _: Preference?, o: Any? -> .setOnPreferenceChangeListener { _: Preference?, o: Any? ->
workManager.updateBackgroundSync(null, null, o as Boolean?) workManager.updateBackgroundSync(null, null, o as Boolean?)
true true
} }
findPreference(R.string.p_background_sync) findPreference(R.string.p_background_sync)
.setOnPreferenceChangeListener { _: Preference?, o: Any? -> .setOnPreferenceChangeListener { _: Preference?, o: Any? ->
workManager.updateBackgroundSync(null, o as Boolean?, null) workManager.updateBackgroundSync(null, o as Boolean?, null)
true
}
val positionHack = findPreference(R.string.google_tasks_position_hack) as SwitchPreferenceCompat
positionHack.isChecked = preferences.isPositionHackEnabled
positionHack.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any? ->
if (newValue == null) {
false
} else {
preferences.setLong(
R.string.p_google_tasks_position_hack, if (newValue as Boolean) DateUtilities.now() else 0)
true true
} }
}
findPreference(R.string.add_account) val positionHack =
.setOnPreferenceClickListener { findPreference(R.string.google_tasks_position_hack) as SwitchPreferenceCompat
AddAccountDialog.showAddAccountDialog(activity, dialogBuilder) positionHack.isChecked = preferences.isPositionHackEnabled
positionHack.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { _: Preference?, newValue: Any? ->
if (newValue == null) {
false false
} else {
preferences.setLong(
R.string.p_google_tasks_position_hack,
if (newValue as Boolean) DateUtilities.now() else 0
)
true
} }
}
findPreference(R.string.add_account)
.setOnPreferenceClickListener {
AddAccountDialog.showAddAccountDialog(activity, dialogBuilder)
false
}
} }
override fun onResume() { override fun onResume() {
@ -106,17 +110,23 @@ class Synchronization : InjectingPreferenceFragment() {
} }
preference.setOnPreferenceClickListener { preference.setOnPreferenceClickListener {
dialogBuilder dialogBuilder
.newDialog(account) .newDialog(account)
.setItems(listOf(getString(R.string.reinitialize_account), getString(R.string.logout))) { _, which -> .setItems(
if (which == 0) { listOf(
startActivityForResult( getString(R.string.reinitialize_account),
Intent(context, GtasksLoginActivity::class.java), getString(R.string.logout)
REQUEST_GOOGLE_TASKS) )
} else { ) { _, which ->
logoutConfirmation(googleTaskAccount) if (which == 0) {
} startActivityForResult(
Intent(context, GtasksLoginActivity::class.java),
REQUEST_GOOGLE_TASKS
)
} else {
logoutConfirmation(googleTaskAccount)
} }
.showThemedListView() }
.showThemedListView()
false false
} }
category.addPreference(preference) category.addPreference(preference)
@ -132,15 +142,17 @@ class Synchronization : InjectingPreferenceFragment() {
val error = account.error val error = account.error
if (Strings.isNullOrEmpty(error)) { if (Strings.isNullOrEmpty(error)) {
preference.setSummary( preference.setSummary(
if (account.isCaldavAccount) R.string.caldav else R.string.etesync) if (account.isCaldavAccount) R.string.caldav else R.string.etesync
)
} else { } else {
preference.summary = error preference.summary = error
} }
preference.onPreferenceClickListener = Preference.OnPreferenceClickListener { preference.onPreferenceClickListener = Preference.OnPreferenceClickListener {
val intent = Intent( val intent = Intent(
context, context,
if (account.isCaldavAccount) CaldavAccountSettingsActivity::class.java if (account.isCaldavAccount) CaldavAccountSettingsActivity::class.java
else EteSyncAccountSettingsActivity::class.java) else EteSyncAccountSettingsActivity::class.java
)
intent.putExtra(CaldavAccountSettingsActivity.EXTRA_CALDAV_DATA, account) intent.putExtra(CaldavAccountSettingsActivity.EXTRA_CALDAV_DATA, account)
startActivityForResult(intent, REQUEST_CALDAV_SETTINGS) startActivityForResult(intent, REQUEST_CALDAV_SETTINGS)
false false
@ -153,14 +165,14 @@ class Synchronization : InjectingPreferenceFragment() {
private fun logoutConfirmation(account: GoogleTaskAccount) { private fun logoutConfirmation(account: GoogleTaskAccount) {
val name = account.account val name = account.account
val alertDialog = dialogBuilder val alertDialog = dialogBuilder
.newDialog() .newDialog()
.setMessage(R.string.logout_warning, name) .setMessage(R.string.logout_warning, name)
.setPositiveButton(R.string.logout) { _, _ -> .setPositiveButton(R.string.logout) { _, _ ->
taskDeleter.delete(account) taskDeleter.delete(account)
refresh() refresh()
} }
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.create() .create()
alertDialog.setCanceledOnTouchOutside(false) alertDialog.setCanceledOnTouchOutside(false)
alertDialog.setCancelable(false) alertDialog.setCancelable(false)
alertDialog.show() alertDialog.show()
@ -174,7 +186,8 @@ class Synchronization : InjectingPreferenceFragment() {
val hasCaldavAccounts = addCaldavAccounts(synchronizationPreferences) val hasCaldavAccounts = addCaldavAccounts(synchronizationPreferences)
findPreference(R.string.gtasks_GPr_header).isVisible = hasGoogleAccounts findPreference(R.string.gtasks_GPr_header).isVisible = hasGoogleAccounts
findPreference(R.string.accounts).isVisible = hasGoogleAccounts || hasCaldavAccounts findPreference(R.string.accounts).isVisible = hasGoogleAccounts || hasCaldavAccounts
findPreference(R.string.sync_SPr_interval_title).isVisible = hasGoogleAccounts || hasCaldavAccounts findPreference(R.string.sync_SPr_interval_title).isVisible =
hasGoogleAccounts || hasCaldavAccounts
} }
override fun inject(component: FragmentComponent) { override fun inject(component: FragmentComponent) {

@ -45,20 +45,28 @@ class TaskDefaults : InjectingPreferenceFragment() {
} }
val defaultCalendarName: String? = getDefaultCalendarName() val defaultCalendarName: String? = getDefaultCalendarName()
defaultCalendarPref.summary = defaultCalendarName defaultCalendarPref.summary = defaultCalendarName
?: getString(R.string.dont_add_to_calendar) ?: getString(R.string.dont_add_to_calendar)
findPreference(R.string.p_default_remote_list) findPreference(R.string.p_default_remote_list)
.setOnPreferenceClickListener { .setOnPreferenceClickListener {
RemoteListPicker.newRemoteListSupportPicker(defaultFilterProvider.defaultRemoteList, this, REQUEST_REMOTE_LIST) RemoteListPicker.newRemoteListSupportPicker(
.show(fragmentManager!!, FRAG_TAG_REMOTE_LIST_SELECTION) defaultFilterProvider.defaultRemoteList,
false this,
} REQUEST_REMOTE_LIST
)
.show(fragmentManager!!, FRAG_TAG_REMOTE_LIST_SELECTION)
false
}
updateRemoteListSummary() updateRemoteListSummary()
requires(device.supportsGeofences(), R.string.p_default_location_reminder_key) requires(device.supportsGeofences(), R.string.p_default_location_reminder_key)
} }
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (requestCode == PermissionRequestor.REQUEST_CALENDAR) { if (requestCode == PermissionRequestor.REQUEST_CALENDAR) {
if (PermissionUtil.verifyPermissions(grantResults)) { if (PermissionUtil.verifyPermissions(grantResults)) {
startCalendarSelectionActivity() startCalendarSelectionActivity()
@ -82,9 +90,11 @@ class TaskDefaults : InjectingPreferenceFragment() {
} else if (requestCode == REQUEST_CALENDAR_SELECTION) { } else if (requestCode == REQUEST_CALENDAR_SELECTION) {
if (resultCode == RESULT_OK) { if (resultCode == RESULT_OK) {
preferences.setString( preferences.setString(
R.string.gcal_p_default, R.string.gcal_p_default,
data!!.getStringExtra(CalendarSelectionActivity.EXTRA_CALENDAR_ID)) data!!.getStringExtra(CalendarSelectionActivity.EXTRA_CALENDAR_ID)
defaultCalendarPref.summary = data.getStringExtra(CalendarSelectionActivity.EXTRA_CALENDAR_NAME) )
defaultCalendarPref.summary =
data.getStringExtra(CalendarSelectionActivity.EXTRA_CALENDAR_NAME)
} }
} else { } else {
super.onActivityResult(requestCode, resultCode, data) super.onActivityResult(requestCode, resultCode, data)
@ -105,8 +115,8 @@ class TaskDefaults : InjectingPreferenceFragment() {
private fun updateRemoteListSummary() { private fun updateRemoteListSummary() {
val defaultFilter = defaultFilterProvider.defaultRemoteList val defaultFilter = defaultFilterProvider.defaultRemoteList
findPreference(R.string.p_default_remote_list).summary = findPreference(R.string.p_default_remote_list).summary =
if (defaultFilter == null) getString(R.string.dont_sync) if (defaultFilter == null) getString(R.string.dont_sync)
else defaultFilter.listingTitle else defaultFilter.listingTitle
} }
override fun inject(component: FragmentComponent) { override fun inject(component: FragmentComponent) {

@ -56,7 +56,10 @@ class TaskerListNotification : InjectingPreferenceFragment() {
} }
if (!inventory.purchasedTasker()) { if (!inventory.purchasedTasker()) {
startActivityForResult(Intent(context, PurchaseActivity::class.java), REQUEST_SUBSCRIPTION) startActivityForResult(
Intent(context, PurchaseActivity::class.java),
REQUEST_SUBSCRIPTION
)
} }
} }
@ -92,7 +95,8 @@ class TaskerListNotification : InjectingPreferenceFragment() {
fun getBundle(): Bundle { fun getBundle(): Bundle {
return ListNotificationBundle.generateBundle( return ListNotificationBundle.generateBundle(
defaultFilterProvider.getFilterPreferenceValue(filter)) defaultFilterProvider.getFilterPreferenceValue(filter)
)
} }
override fun inject(component: FragmentComponent) = component.inject(this) override fun inject(component: FragmentComponent) = component.inject(this)

@ -27,141 +27,141 @@ object CustomIcons {
@kotlin.jvm.JvmField @kotlin.jvm.JvmField
var ICONS = mapOf( var ICONS = mapOf(
LABEL to R.drawable.ic_outline_label_24px, LABEL to R.drawable.ic_outline_label_24px,
FILTER to R.drawable.ic_outline_filter_list_24px, FILTER to R.drawable.ic_outline_filter_list_24px,
CLOUD to R.drawable.ic_outline_cloud_24px, CLOUD to R.drawable.ic_outline_cloud_24px,
ALL_INBOX to R.drawable.ic_outline_all_inbox_24px, ALL_INBOX to R.drawable.ic_outline_all_inbox_24px,
LABEL_OFF to R.drawable.ic_outline_label_off_24px, LABEL_OFF to R.drawable.ic_outline_label_off_24px,
HISTORY to R.drawable.ic_outline_history_24px, HISTORY to R.drawable.ic_outline_history_24px,
TODAY to R.drawable.ic_outline_today_24px, TODAY to R.drawable.ic_outline_today_24px,
1000 to R.drawable.ic_outline_flag_24px, 1000 to R.drawable.ic_outline_flag_24px,
1062 to R.drawable.ic_outline_home_24px, 1062 to R.drawable.ic_outline_home_24px,
1041 to R.drawable.ic_outline_work_outline_24px, 1041 to R.drawable.ic_outline_work_outline_24px,
1001 to R.drawable.ic_outline_pets_24px, 1001 to R.drawable.ic_outline_pets_24px,
1002 to R.drawable.ic_outline_payment_24px, 1002 to R.drawable.ic_outline_payment_24px,
1003 to R.drawable.ic_outline_attach_money_24px, 1003 to R.drawable.ic_outline_attach_money_24px,
1059 to R.drawable.ic_outline_euro_symbol_24px, 1059 to R.drawable.ic_outline_euro_symbol_24px,
1042 to R.drawable.ic_outline_store_24px, 1042 to R.drawable.ic_outline_store_24px,
1043 to R.drawable.ic_outline_shopping_cart_24px, 1043 to R.drawable.ic_outline_shopping_cart_24px,
1004 to R.drawable.ic_outline_hourglass_empty_24px, 1004 to R.drawable.ic_outline_hourglass_empty_24px,
1005 to R.drawable.ic_outline_favorite_border_24px, 1005 to R.drawable.ic_outline_favorite_border_24px,
1006 to R.drawable.ic_outline_school_24px, 1006 to R.drawable.ic_outline_school_24px,
1007 to R.drawable.ic_outline_drive_eta_24px, 1007 to R.drawable.ic_outline_drive_eta_24px,
1008 to R.drawable.ic_outline_whatshot_24px, 1008 to R.drawable.ic_outline_whatshot_24px,
1009 to R.drawable.ic_outline_star_border_24px, 1009 to R.drawable.ic_outline_star_border_24px,
1010 to R.drawable.ic_outline_account_balance_24px, 1010 to R.drawable.ic_outline_account_balance_24px,
1011 to R.drawable.ic_outline_location_city_24px, 1011 to R.drawable.ic_outline_location_city_24px,
1012 to R.drawable.ic_outline_cake_24px, 1012 to R.drawable.ic_outline_cake_24px,
1013 to R.drawable.ic_outline_kitchen_24px, 1013 to R.drawable.ic_outline_kitchen_24px,
1014 to R.drawable.ic_outline_fitness_center_24px, 1014 to R.drawable.ic_outline_fitness_center_24px,
1015 to R.drawable.ic_outline_child_friendly_24px, 1015 to R.drawable.ic_outline_child_friendly_24px,
1016 to R.drawable.ic_outline_free_breakfast_24px, 1016 to R.drawable.ic_outline_free_breakfast_24px,
1017 to R.drawable.ic_outline_golf_course_24px, 1017 to R.drawable.ic_outline_golf_course_24px,
1018 to R.drawable.ic_outline_beach_access_24px, 1018 to R.drawable.ic_outline_beach_access_24px,
1019 to R.drawable.ic_outline_restaurant_menu_24px, 1019 to R.drawable.ic_outline_restaurant_menu_24px,
1020 to R.drawable.ic_outline_local_pharmacy_24px, 1020 to R.drawable.ic_outline_local_pharmacy_24px,
1021 to R.drawable.ic_outline_fastfood_24px, 1021 to R.drawable.ic_outline_fastfood_24px,
1022 to R.drawable.ic_outline_hotel_24px, 1022 to R.drawable.ic_outline_hotel_24px,
1023 to R.drawable.ic_outline_flight_24px, 1023 to R.drawable.ic_outline_flight_24px,
1057 to R.drawable.ic_outline_flight_takeoff_24px, 1057 to R.drawable.ic_outline_flight_takeoff_24px,
1058 to R.drawable.ic_outline_flight_land_24px, 1058 to R.drawable.ic_outline_flight_land_24px,
1024 to R.drawable.ic_outline_directions_run_24px, 1024 to R.drawable.ic_outline_directions_run_24px,
1025 to R.drawable.ic_outline_wb_sunny_24px, 1025 to R.drawable.ic_outline_wb_sunny_24px,
1026 to R.drawable.ic_outline_desktop_mac_24px, 1026 to R.drawable.ic_outline_desktop_mac_24px,
1027 to R.drawable.ic_outline_computer_24px, 1027 to R.drawable.ic_outline_computer_24px,
1028 to R.drawable.ic_outline_format_paint_24px, 1028 to R.drawable.ic_outline_format_paint_24px,
1029 to R.drawable.ic_outline_storage_24px, 1029 to R.drawable.ic_outline_storage_24px,
1030 to R.drawable.ic_outline_send_24px, 1030 to R.drawable.ic_outline_send_24px,
1031 to R.drawable.ic_outline_weekend_24px, 1031 to R.drawable.ic_outline_weekend_24px,
1032 to R.drawable.ic_outline_link_24px, 1032 to R.drawable.ic_outline_link_24px,
1033 to R.drawable.ic_outline_business_24px, 1033 to R.drawable.ic_outline_business_24px,
1034 to R.drawable.ic_outline_chat_bubble_outline_24px, 1034 to R.drawable.ic_outline_chat_bubble_outline_24px,
1035 to R.drawable.ic_outline_voicemail_24px, 1035 to R.drawable.ic_outline_voicemail_24px,
1036 to R.drawable.ic_outline_email_24px, 1036 to R.drawable.ic_outline_email_24px,
1037 to R.drawable.ic_outline_call_24px, 1037 to R.drawable.ic_outline_call_24px,
1039 to R.drawable.ic_outline_movie_24px, 1039 to R.drawable.ic_outline_movie_24px,
1040 to R.drawable.ic_outline_equalizer_24px, 1040 to R.drawable.ic_outline_equalizer_24px,
1071 to R.drawable.ic_outline_pie_chart_24px, 1071 to R.drawable.ic_outline_pie_chart_24px,
1072 to R.drawable.ic_outline_show_chart_24px, 1072 to R.drawable.ic_outline_show_chart_24px,
1044 to R.drawable.ic_outline_schedule_24px, 1044 to R.drawable.ic_outline_schedule_24px,
1045 to R.drawable.ic_outline_photo_camera_24px, 1045 to R.drawable.ic_outline_photo_camera_24px,
1046 to R.drawable.ic_outline_delete_24px, 1046 to R.drawable.ic_outline_delete_24px,
1047 to R.drawable.ic_outline_attachment_24px, 1047 to R.drawable.ic_outline_attachment_24px,
1048 to R.drawable.ic_outline_vpn_key_24px, 1048 to R.drawable.ic_outline_vpn_key_24px,
1049 to R.drawable.ic_outline_event_24px, 1049 to R.drawable.ic_outline_event_24px,
1050 to R.drawable.ic_outline_place_24px, 1050 to R.drawable.ic_outline_place_24px,
1051 to R.drawable.ic_outline_markunread_mailbox_24px, 1051 to R.drawable.ic_outline_markunread_mailbox_24px,
1052 to R.drawable.ic_outline_label_important_24px, 1052 to R.drawable.ic_outline_label_important_24px,
1053 to R.drawable.ic_outline_android_24px, 1053 to R.drawable.ic_outline_android_24px,
1054 to R.drawable.ic_outline_build_24px, 1054 to R.drawable.ic_outline_build_24px,
1055 to R.drawable.ic_outline_bug_report_24px, 1055 to R.drawable.ic_outline_bug_report_24px,
1056 to R.drawable.ic_outline_book_24px, 1056 to R.drawable.ic_outline_book_24px,
1060 to R.drawable.ic_outline_explore_24px, 1060 to R.drawable.ic_outline_explore_24px,
1061 to R.drawable.ic_outline_gavel_24px, 1061 to R.drawable.ic_outline_gavel_24px,
1063 to R.drawable.ic_outline_print_24px, 1063 to R.drawable.ic_outline_print_24px,
1064 to R.drawable.ic_outline_receipt_24px, 1064 to R.drawable.ic_outline_receipt_24px,
1038 to R.drawable.ic_outline_new_releases_24px, 1038 to R.drawable.ic_outline_new_releases_24px,
1065 to R.drawable.ic_outline_report_problem_24px, 1065 to R.drawable.ic_outline_report_problem_24px,
1068 to R.drawable.ic_outline_error_outline_24px, 1068 to R.drawable.ic_outline_error_outline_24px,
1069 to R.drawable.ic_outline_not_interested_24px, 1069 to R.drawable.ic_outline_not_interested_24px,
1070 to R.drawable.ic_outline_report_24px, 1070 to R.drawable.ic_outline_report_24px,
1066 to R.drawable.ic_outline_turned_in_24px, 1066 to R.drawable.ic_outline_turned_in_24px,
1067 to R.drawable.ic_outline_turned_in_not_24px, 1067 to R.drawable.ic_outline_turned_in_not_24px,
1073 to R.drawable.ic_outline_headset_24px, 1073 to R.drawable.ic_outline_headset_24px,
1074 to R.drawable.ic_outline_mic_none_24px, 1074 to R.drawable.ic_outline_mic_none_24px,
1075 to R.drawable.ic_outline_timer_24px, 1075 to R.drawable.ic_outline_timer_24px,
1076 to R.drawable.ic_outline_clear_24px, 1076 to R.drawable.ic_outline_clear_24px,
1077 to R.drawable.ic_outline_search_24px, 1077 to R.drawable.ic_outline_search_24px,
1078 to R.drawable.ic_outline_repeat_24px, 1078 to R.drawable.ic_outline_repeat_24px,
1079 to R.drawable.ic_outline_notifications_24px, 1079 to R.drawable.ic_outline_notifications_24px,
1080 to R.drawable.ic_outline_star_half_24px, 1080 to R.drawable.ic_outline_star_half_24px,
1081 to R.drawable.ic_outline_share_24px, 1081 to R.drawable.ic_outline_share_24px,
1082 to R.drawable.ic_outline_sentiment_very_satisfied_24px, 1082 to R.drawable.ic_outline_sentiment_very_satisfied_24px,
1083 to R.drawable.ic_outline_sentiment_very_dissatisfied_24px, 1083 to R.drawable.ic_outline_sentiment_very_dissatisfied_24px,
1084 to R.drawable.ic_outline_sentiment_satisfied_24px, 1084 to R.drawable.ic_outline_sentiment_satisfied_24px,
1085 to R.drawable.ic_outline_sentiment_dissatisfied_24px, 1085 to R.drawable.ic_outline_sentiment_dissatisfied_24px,
1086 to R.drawable.ic_outline_mood_bad_24px, 1086 to R.drawable.ic_outline_mood_bad_24px,
1087 to R.drawable.ic_outline_mood_24px, 1087 to R.drawable.ic_outline_mood_24px,
1088 to R.drawable.ic_outline_spa_24px, 1088 to R.drawable.ic_outline_spa_24px,
1089 to R.drawable.ic_outline_room_service_24px, 1089 to R.drawable.ic_outline_room_service_24px,
1090 to R.drawable.ic_outline_meeting_room_24px, 1090 to R.drawable.ic_outline_meeting_room_24px,
1091 to R.drawable.ic_outline_hot_tub_24px, 1091 to R.drawable.ic_outline_hot_tub_24px,
1092 to R.drawable.ic_outline_business_center_24px, 1092 to R.drawable.ic_outline_business_center_24px,
1093 to R.drawable.ic_outline_priority_high_24px, 1093 to R.drawable.ic_outline_priority_high_24px,
1094 to R.drawable.ic_outline_power_24px, 1094 to R.drawable.ic_outline_power_24px,
1095 to R.drawable.ic_outline_power_off_24px, 1095 to R.drawable.ic_outline_power_off_24px,
1096 to R.drawable.ic_outline_directions_bike_24px, 1096 to R.drawable.ic_outline_directions_bike_24px,
1097 to R.drawable.ic_outline_local_florist_24px, 1097 to R.drawable.ic_outline_local_florist_24px,
1098 to R.drawable.ic_outline_local_pizza_24px, 1098 to R.drawable.ic_outline_local_pizza_24px,
1099 to R.drawable.ic_outline_navigation_24px, 1099 to R.drawable.ic_outline_navigation_24px,
1100 to R.drawable.ic_outline_local_play_24px, 1100 to R.drawable.ic_outline_local_play_24px,
1101 to R.drawable.ic_outline_local_bar_24px, 1101 to R.drawable.ic_outline_local_bar_24px,
1102 to R.drawable.ic_outline_local_laundry_service_24px, 1102 to R.drawable.ic_outline_local_laundry_service_24px,
1103 to R.drawable.ic_outline_local_offer_24px, 1103 to R.drawable.ic_outline_local_offer_24px,
1104 to R.drawable.ic_outline_local_shipping_24px, 1104 to R.drawable.ic_outline_local_shipping_24px,
1105 to R.drawable.ic_outline_local_hospital_24px, 1105 to R.drawable.ic_outline_local_hospital_24px,
1106 to R.drawable.ic_outline_directions_boat_24px, 1106 to R.drawable.ic_outline_directions_boat_24px,
1107 to R.drawable.ic_outline_directions_walk_24px, 1107 to R.drawable.ic_outline_directions_walk_24px,
1108 to R.drawable.ic_outline_wb_incandescent_24px, 1108 to R.drawable.ic_outline_wb_incandescent_24px,
1109 to R.drawable.ic_outline_landscape_24px, 1109 to R.drawable.ic_outline_landscape_24px,
1110 to R.drawable.ic_outline_music_note_24px, 1110 to R.drawable.ic_outline_music_note_24px,
1111 to R.drawable.ic_outline_healing_24px, 1111 to R.drawable.ic_outline_healing_24px,
1112 to R.drawable.ic_outline_brush_24px, 1112 to R.drawable.ic_outline_brush_24px,
1113 to R.drawable.ic_outline_brightness_2_24px, 1113 to R.drawable.ic_outline_brightness_2_24px,
1114 to R.drawable.ic_outline_security_24px, 1114 to R.drawable.ic_outline_security_24px,
1115 to R.drawable.ic_outline_scanner_24px, 1115 to R.drawable.ic_outline_scanner_24px,
1116 to R.drawable.ic_outline_router_24px, 1116 to R.drawable.ic_outline_router_24px,
1117 to R.drawable.ic_outline_watch_24px, 1117 to R.drawable.ic_outline_watch_24px,
1118 to R.drawable.ic_outline_videogame_asset_24px, 1118 to R.drawable.ic_outline_videogame_asset_24px,
1119 to R.drawable.ic_cached_24px, 1119 to R.drawable.ic_cached_24px,
1120 to R.drawable.ic_octocat, 1120 to R.drawable.ic_octocat,
1121 to R.drawable.ic_outline_perm_identity_24px, 1121 to R.drawable.ic_outline_perm_identity_24px,
1122 to R.drawable.ic_track_changes_24px, 1122 to R.drawable.ic_track_changes_24px,
1123 to R.drawable.ic_open_in_new_24px, 1123 to R.drawable.ic_open_in_new_24px,
1124 to R.drawable.ic_outline_edit_24px, 1124 to R.drawable.ic_outline_edit_24px,
1125 to R.drawable.ic_outline_info_24px, 1125 to R.drawable.ic_outline_info_24px,
1126 to R.drawable.ic_outline_palette_24px, 1126 to R.drawable.ic_outline_palette_24px,
1127 to R.drawable.ic_outline_sd_storage_24px 1127 to R.drawable.ic_outline_sd_storage_24px
) )
@kotlin.jvm.JvmStatic @kotlin.jvm.JvmStatic

@ -13,7 +13,10 @@ class WidgetConfigActivity : BasePreferences() {
private var appWidgetId: Int = 0 private var appWidgetId: Int = 0
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID) appWidgetId = intent.getIntExtra(
AppWidgetManager.EXTRA_APPWIDGET_ID,
AppWidgetManager.INVALID_APPWIDGET_ID
)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

Loading…
Cancel
Save