Remove Toaster

pull/1432/head
Alex Baker 3 years ago
parent 0f82b39913
commit 781ea9c03e

@ -8,8 +8,8 @@ import dagger.hilt.android.AndroidEntryPoint
import org.tasks.R
import org.tasks.billing.BillingClient
import org.tasks.billing.Inventory
import org.tasks.extensions.Context.toast
import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.ui.Toaster
import javax.inject.Inject
@AndroidEntryPoint
@ -17,7 +17,6 @@ class Debug : InjectingPreferenceFragment() {
@Inject lateinit var inventory: Inventory
@Inject lateinit var billingClient: BillingClient
@Inject lateinit var toaster: Toaster
override fun getPreferenceXml() = R.xml.preferences_debug
@ -38,7 +37,7 @@ class Debug : InjectingPreferenceFragment() {
findPreference(R.string.debug_reset_ssl).setOnPreferenceClickListener {
resetCertificates(requireContext())
toaster.longToast("SSL certificates reset")
context?.toast("SSL certificates reset")
false
}

@ -65,6 +65,7 @@ import org.tasks.db.SuspendDbUtils.chunkedMap
import org.tasks.dialogs.DateTimePicker.Companion.newDateTimePicker
import org.tasks.dialogs.DialogBuilder
import org.tasks.dialogs.SortDialog
import org.tasks.extensions.Context.toast
import org.tasks.extensions.Fragment.safeStartActivityForResult
import org.tasks.filters.PlaceFilter
import org.tasks.intents.TaskIntents
@ -79,7 +80,6 @@ import org.tasks.tasklist.*
import org.tasks.themes.ColorProvider
import org.tasks.themes.ThemeColor
import org.tasks.ui.TaskListViewModel
import org.tasks.ui.Toaster
import timber.log.Timber
import java.text.ParseException
import java.time.format.FormatStyle
@ -105,7 +105,6 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var device: Device
@Inject lateinit var taskMover: TaskMover
@Inject lateinit var toaster: Toaster
@Inject lateinit var taskAdapterProvider: TaskAdapterProvider
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var taskDuplicator: TaskDuplicator
@ -421,7 +420,7 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL
private fun clearCompleted() = lifecycleScope.launch {
val count = taskDeleter.clearCompleted(filter)
toaster.longToast(R.string.delete_multiple_tasks_confirmation, count)
context?.toast(R.string.delete_multiple_tasks_confirmation, locale.formatNumber(count))
}
@OnClick(R.id.fab)

@ -24,7 +24,6 @@ import org.tasks.data.Geofence;
import org.tasks.data.Location;
import org.tasks.locale.Locale;
import org.tasks.preferences.PermissionChecker;
import org.tasks.ui.Toaster;
@AndroidEntryPoint
public class GeofenceDialog extends DialogFragment {
@ -39,7 +38,6 @@ public class GeofenceDialog extends DialogFragment {
@Inject Activity context;
@Inject Locale locale;
@Inject PermissionChecker permissionChecker;
@Inject Toaster toaster;
@BindView(R.id.location_arrival)
SwitchMaterial arrivalView;

@ -14,7 +14,6 @@ import kotlinx.coroutines.withContext
import org.tasks.R
import org.tasks.backup.TasksJsonImporter
import org.tasks.backup.TasksJsonImporter.ImportResult
import org.tasks.ui.Toaster
import javax.inject.Inject
@AndroidEntryPoint
@ -22,7 +21,6 @@ class ImportTasksDialog : DialogFragment() {
@Inject lateinit var jsonImporter: TasksJsonImporter
@Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var context: Activity
@Inject lateinit var toaster: Toaster
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val arguments = requireArguments()

@ -15,7 +15,9 @@ object Context {
}
}
fun Context.toast(resId: Int, duration: Int = Toast.LENGTH_LONG) {
Toast.makeText(this, resId, duration).show()
}
fun Context.toast(resId: Int, vararg formatArgs: Any, duration: Int = Toast.LENGTH_LONG) =
toast(getString(resId, formatArgs), duration)
fun Context.toast(text: String?, duration: Int = Toast.LENGTH_LONG) =
text?.let { Toast.makeText(this, it, duration).show() }
}

@ -42,6 +42,7 @@ import org.tasks.data.Place
import org.tasks.data.Place.Companion.newPlace
import org.tasks.data.PlaceUsage
import org.tasks.dialogs.DialogBuilder
import org.tasks.extensions.Context.toast
import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.location.LocationPickerAdapter.OnLocationPicked
import org.tasks.location.LocationSearchAdapter.OnPredictionPicked
@ -52,7 +53,6 @@ import org.tasks.preferences.PermissionRequestor
import org.tasks.preferences.Preferences
import org.tasks.themes.ColorProvider
import org.tasks.themes.Theme
import org.tasks.ui.Toaster
import timber.log.Timber
import java.util.concurrent.TimeUnit
import javax.inject.Inject
@ -85,7 +85,6 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
lateinit var recyclerView: RecyclerView
@Inject lateinit var theme: Theme
@Inject lateinit var toaster: Toaster
@Inject lateinit var locationDao: LocationDao
@Inject lateinit var permissionChecker: PermissionChecker
@Inject lateinit var permissionRequestor: ActivityPermissionRequestor
@ -247,7 +246,7 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
} catch (e: Exception) {
loadingIndicator.visibility = View.GONE
firebase.reportException(e)
toaster.longToast(e.message)
toast(e.message)
}
}
}
@ -267,7 +266,7 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
try {
locationService.currentLocation()?.let { map.movePosition(it, animate) }
} catch (e: Exception) {
toaster.longToast(e.message)
toast(e.message)
}
}
}
@ -314,7 +313,7 @@ class LocationPickerActivity : InjectingAppCompatActivity(), Toolbar.OnMenuItemC
private fun handleError(error: Event<String>) {
val message = error.ifUnhandled
if (!isNullOrEmpty(message)) {
toaster.longToast(message)
toast(message)
}
}

@ -13,6 +13,7 @@ import kotlinx.coroutines.launch
import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.auth.SignInActivity
import org.tasks.extensions.Context.toast
import org.tasks.jobs.WorkManager
import org.tasks.preferences.fragments.MainSettingsFragment
import org.tasks.preferences.fragments.MainSettingsFragment.Companion.REQUEST_CALDAV_SETTINGS
@ -20,7 +21,6 @@ import org.tasks.preferences.fragments.MainSettingsFragment.Companion.REQUEST_GO
import org.tasks.preferences.fragments.MainSettingsFragment.Companion.REQUEST_TASKS_ORG
import org.tasks.preferences.fragments.TasksAccount
import org.tasks.sync.SyncAdapters
import org.tasks.ui.Toaster
import javax.inject.Inject
@AndroidEntryPoint
@ -28,7 +28,6 @@ class MainPreferences : BasePreferences() {
@Inject lateinit var syncAdapters: SyncAdapters
@Inject lateinit var workManager: WorkManager
@Inject lateinit var toaster: Toaster
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
private val viewModel: PreferencesViewModel by viewModels()
@ -61,7 +60,7 @@ class MainPreferences : BasePreferences() {
syncAdapters.sync(true)
workManager.updateBackgroundSync()
} else {
data?.getStringExtra(GtasksLoginActivity.EXTRA_ERROR)?.let { toaster.longToast(it) }
data?.getStringExtra(GtasksLoginActivity.EXTRA_ERROR)?.let { toast(it) }
}
REQUEST_TASKS_ORG -> if (resultCode == Activity.RESULT_OK) {
syncAdapters.sync(true)
@ -78,7 +77,7 @@ class MainPreferences : BasePreferences() {
}
}
} else {
data?.getStringExtra(SignInActivity.EXTRA_ERROR)?.let { toaster.longToast(it) }
data?.getStringExtra(SignInActivity.EXTRA_ERROR)?.let { toast(it) }
}
else -> super.onActivityResult(requestCode, resultCode, data)
}

@ -16,6 +16,7 @@ import org.tasks.R
import org.tasks.calendars.CalendarEventProvider
import org.tasks.data.TaskDao
import org.tasks.etebase.EtebaseLocalCache
import org.tasks.extensions.Context.toast
import org.tasks.files.FileHelper
import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.preferences.FragmentPermissionRequestor
@ -23,7 +24,6 @@ import org.tasks.preferences.PermissionChecker
import org.tasks.preferences.PermissionRequestor
import org.tasks.preferences.Preferences
import org.tasks.scheduling.CalendarNotificationIntentService
import org.tasks.ui.Toaster
import javax.inject.Inject
private const val REQUEST_CODE_FILES_DIR = 10000
@ -35,7 +35,6 @@ class Advanced : InjectingPreferenceFragment() {
@Inject lateinit var database: Database
@Inject lateinit var taskDao: TaskDao
@Inject lateinit var calendarEventProvider: CalendarEventProvider
@Inject lateinit var toaster: Toaster
@Inject lateinit var permissionRequester: FragmentPermissionRequestor
@Inject lateinit var permissionChecker: PermissionChecker
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@ -186,7 +185,7 @@ class Advanced : InjectingPreferenceFragment() {
}
private fun performAction(message: Int, callable: suspend () -> Int) = lifecycleScope.launch {
toaster.longToastUnformatted(message, callable())
context?.toast(message, callable())
}
private fun resetPreferences() {

@ -13,13 +13,13 @@ import org.tasks.R
import org.tasks.dialogs.ExportTasksDialog
import org.tasks.dialogs.ImportTasksDialog
import org.tasks.drive.DriveLoginActivity
import org.tasks.extensions.Context.toast
import org.tasks.files.FileHelper
import org.tasks.injection.InjectingPreferenceFragment
import org.tasks.preferences.FragmentPermissionRequestor
import org.tasks.preferences.PermissionRequestor
import org.tasks.preferences.Preferences
import org.tasks.preferences.PreferencesViewModel
import org.tasks.ui.Toaster
import java.util.*
import javax.inject.Inject
@ -35,7 +35,6 @@ class Backups : InjectingPreferenceFragment() {
@Inject lateinit var preferences: Preferences
@Inject lateinit var permissionRequestor: FragmentPermissionRequestor
@Inject lateinit var toaster: Toaster
@Inject lateinit var locale: Locale
private val viewModel: PreferencesViewModel by activityViewModels()
@ -195,7 +194,7 @@ class Backups : InjectingPreferenceFragment() {
ignoreCase = true
))
) {
toaster.longToast(R.string.invalid_backup_file)
context?.toast(R.string.invalid_backup_file)
} else {
ImportTasksDialog.newImportTasksDialog(uri, extension)
.show(parentFragmentManager, FRAG_TAG_IMPORT_TASKS)
@ -205,7 +204,7 @@ class Backups : InjectingPreferenceFragment() {
if (resultCode == RESULT_OK) {
viewModel.updateDriveBackup()
} else {
data?.getStringExtra(DriveLoginActivity.EXTRA_ERROR)?.let { toaster.longToast(it) }
data?.getStringExtra(DriveLoginActivity.EXTRA_ERROR)?.let { context?.toast(it) }
}
} else if (requestCode == REQUEST_BACKUP_NOW) {
if (resultCode == RESULT_OK) {

@ -5,6 +5,7 @@ import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.widget.Toast.LENGTH_SHORT
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.getSystemService
import androidx.fragment.app.Fragment
@ -26,11 +27,11 @@ import org.tasks.billing.Purchase
import org.tasks.data.CaldavAccount
import org.tasks.data.CaldavAccount.Companion.isPaymentRequired
import org.tasks.data.CaldavDao
import org.tasks.extensions.Context.toast
import org.tasks.jobs.WorkManager
import org.tasks.locale.Locale
import org.tasks.preferences.IconPreference
import org.tasks.preferences.fragments.MainSettingsFragment.Companion.REQUEST_TASKS_ORG
import org.tasks.ui.Toaster
import java.time.format.FormatStyle
import javax.inject.Inject
@ -42,7 +43,6 @@ class TasksAccount : BaseAccountPreference() {
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var workManager: WorkManager
@Inject lateinit var toaster: Toaster
@Inject lateinit var locale: Locale
private val viewModel: TasksAccountViewModel by viewModels()
@ -83,7 +83,7 @@ class TasksAccount : BaseAccountPreference() {
findPreference(R.string.local_lists).setOnPreferenceClickListener {
workManager.migrateLocalTasks(caldavAccount)
toaster.longToast(R.string.migrating_tasks)
context?.toast(R.string.migrating_tasks)
false
}
@ -139,7 +139,7 @@ class TasksAccount : BaseAccountPreference() {
val label = getString(labelRes)
getSystemService(requireContext(), ClipboardManager::class.java)
?.setPrimaryClip(ClipData.newPlainText(label, value))
toaster.toast(R.string.copied_to_clipboard, label)
context?.toast(R.string.copied_to_clipboard, label, duration = LENGTH_SHORT)
}
}
}

@ -40,6 +40,7 @@ import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.data.*
import org.tasks.data.TaskDao.TaskCriteria.activeAndVisible
import org.tasks.extensions.Context.toast
import org.tasks.locale.Locale
import org.tasks.tasklist.SubtaskViewHolder
import org.tasks.tasklist.SubtasksRecyclerAdapter
@ -57,7 +58,6 @@ class SubtaskControlSet : TaskEditControlFragment(), SubtaskViewHolder.Callbacks
@Inject lateinit var taskCompleter: TaskCompleter
@Inject lateinit var localBroadcastManager: LocalBroadcastManager
@Inject lateinit var googleTaskDao: GoogleTaskDao
@Inject lateinit var toaster: Toaster
@Inject lateinit var taskCreator: TaskCreator
@Inject lateinit var caldavDao: CaldavDao
@Inject lateinit var taskDao: TaskDao
@ -114,7 +114,7 @@ class SubtaskControlSet : TaskEditControlFragment(), SubtaskViewHolder.Callbacks
@OnClick(R.id.add_subtask)
fun addSubtask() {
if (isGoogleTaskChild) {
toaster.longToast(R.string.subtasks_multilevel_google_task)
context?.toast(R.string.subtasks_multilevel_google_task)
} else {
lifecycleScope.launch {
val task = taskCreator.createWithValues("")

@ -1,52 +0,0 @@
package org.tasks.ui;
import static android.widget.Toast.LENGTH_LONG;
import static android.widget.Toast.LENGTH_SHORT;
import static org.tasks.Strings.isNullOrEmpty;
import android.content.Context;
import android.widget.Toast;
import androidx.annotation.StringRes;
import dagger.hilt.android.qualifiers.ActivityContext;
import javax.inject.Inject;
import org.tasks.locale.Locale;
public class Toaster {
private final Context context;
private final Locale locale;
@Inject
public Toaster(@ActivityContext Context context, Locale locale) {
this.context = context;
this.locale = locale;
}
public void longToast(@StringRes int resId, int number) {
longToast(context.getString(resId, locale.formatNumber(number)));
}
public void longToast(@StringRes int resId) {
longToast(context.getString(resId));
}
public void longToast(String text) {
toast(text, LENGTH_LONG);
}
public void toast(@StringRes int resId, Object... args) {
toast(context.getString(resId, args), LENGTH_SHORT);
}
@SuppressWarnings("DeprecatedIsStillUsed")
@Deprecated
public void longToastUnformatted(@StringRes int resId, int number) {
Toast.makeText(context, context.getString(resId, number), LENGTH_LONG).show();
}
private void toast(String text, int duration) {
if (!isNullOrEmpty(text)) {
Toast.makeText(context, text, duration).show();
}
}
}

@ -9,15 +9,14 @@ import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.launch
import org.tasks.R
import org.tasks.extensions.Context.toast
import org.tasks.injection.InjectingAppCompatActivity
import org.tasks.ui.Toaster
import javax.inject.Inject
@AndroidEntryPoint
class VoiceCommandActivity : InjectingAppCompatActivity() {
@Inject lateinit var taskCreator: TaskCreator
@Inject @ApplicationContext lateinit var context: Context
@Inject lateinit var toaster: Toaster
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -28,7 +27,7 @@ class VoiceCommandActivity : InjectingAppCompatActivity() {
?.takeUnless { it.isBlank() }
?.let {
taskCreator.basicQuickAddTask(it)
toaster.longToast(R.string.voice_command_added_task)
toast(R.string.voice_command_added_task)
}
finish()
}

Loading…
Cancel
Save