Cleanup with Kotlin extension functions
This commit is contained in:
parent
fc4f0396a4
commit
e0f345b616
37 changed files with 183 additions and 291 deletions
|
@ -15,13 +15,13 @@
|
|||
package code.name.monkey.retromusic
|
||||
|
||||
import android.app.Application
|
||||
import android.widget.Toast
|
||||
import cat.ereza.customactivityoncrash.config.CaocConfig
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.Constants.PRO_VERSION_PRODUCT_ID
|
||||
import code.name.monkey.retromusic.activities.ErrorActivity
|
||||
import code.name.monkey.retromusic.appshortcuts.DynamicShortcutManager
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.helper.WallpaperAccentManager
|
||||
import com.anjlab.android.iab.v3.BillingProcessor
|
||||
import com.anjlab.android.iab.v3.PurchaseInfo
|
||||
|
@ -60,11 +60,7 @@ class App : Application() {
|
|||
override fun onProductPurchased(productId: String, details: PurchaseInfo?) {}
|
||||
|
||||
override fun onPurchaseHistoryRestored() {
|
||||
Toast.makeText(
|
||||
this@App,
|
||||
R.string.restored_previous_purchase_please_restart,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
showToast(R.string.restored_previous_purchase_please_restart)
|
||||
}
|
||||
|
||||
override fun onBillingError(errorCode: Int, error: Throwable?) {}
|
||||
|
|
|
@ -19,8 +19,6 @@ import android.graphics.Color
|
|||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.MenuItem
|
||||
import android.widget.Toast
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.MaterialUtil
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.BuildConfig
|
||||
|
@ -31,6 +29,7 @@ import code.name.monkey.retromusic.databinding.ActivityProVersionBinding
|
|||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.setLightStatusBar
|
||||
import code.name.monkey.retromusic.extensions.setStatusBarColor
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import com.anjlab.android.iab.v3.BillingProcessor
|
||||
import com.anjlab.android.iab.v3.PurchaseInfo
|
||||
|
||||
|
@ -66,8 +65,7 @@ class PurchaseActivity : AbsBaseActivity(), BillingProcessor.IBillingHandler {
|
|||
}
|
||||
|
||||
private fun restorePurchase() {
|
||||
Toast.makeText(this, R.string.restoring_purchase, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
showToast(R.string.restoring_purchase)
|
||||
billingProcessor.loadOwnedPurchasesFromGoogleAsync(object :
|
||||
BillingProcessor.IPurchasesResponseListener {
|
||||
override fun onPurchasesSuccess() {
|
||||
|
@ -75,30 +73,22 @@ class PurchaseActivity : AbsBaseActivity(), BillingProcessor.IBillingHandler {
|
|||
}
|
||||
|
||||
override fun onPurchasesError() {
|
||||
Toast.makeText(
|
||||
this@PurchaseActivity,
|
||||
R.string.could_not_restore_purchase,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showToast(R.string.could_not_restore_purchase)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun onProductPurchased(productId: String, details: PurchaseInfo?) {
|
||||
Toast.makeText(this, R.string.thank_you, Toast.LENGTH_SHORT).show()
|
||||
showToast(R.string.thank_you)
|
||||
setResult(RESULT_OK)
|
||||
}
|
||||
|
||||
override fun onPurchaseHistoryRestored() {
|
||||
if (App.isProVersion()) {
|
||||
Toast.makeText(
|
||||
this,
|
||||
R.string.restored_previous_purchase_please_restart,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
showToast(R.string.restored_previous_purchase_please_restart)
|
||||
setResult(RESULT_OK)
|
||||
} else {
|
||||
Toast.makeText(this, R.string.no_purchase_found, Toast.LENGTH_SHORT).show()
|
||||
showToast(R.string.no_purchase_found)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,12 +21,10 @@ import android.view.LayoutInflater
|
|||
import android.view.MenuItem
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.recyclerview.widget.DefaultItemAnimator
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||
import code.name.monkey.appthemehelper.util.TintHelper
|
||||
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
|
||||
|
@ -121,7 +119,7 @@ class SupportDevelopmentActivity : AbsBaseActivity(), BillingProcessor.IBillingH
|
|||
|
||||
override fun onProductPurchased(productId: String, details: PurchaseInfo?) {
|
||||
// loadSkuDetails();
|
||||
Toast.makeText(this, R.string.thank_you, Toast.LENGTH_SHORT).show()
|
||||
showToast(R.string.thank_you)
|
||||
}
|
||||
|
||||
override fun onBillingError(errorCode: Int, error: Throwable?) {
|
||||
|
@ -130,7 +128,7 @@ class SupportDevelopmentActivity : AbsBaseActivity(), BillingProcessor.IBillingH
|
|||
|
||||
override fun onPurchaseHistoryRestored() {
|
||||
// loadSkuDetails();
|
||||
Toast.makeText(this, R.string.restored_previous_purchases, Toast.LENGTH_SHORT).show()
|
||||
showToast(R.string.restored_previous_purchases)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
|
|
@ -20,7 +20,6 @@ import android.content.Intent
|
|||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.StringDef
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.core.content.getSystemService
|
||||
|
@ -39,6 +38,7 @@ import code.name.monkey.retromusic.activities.bugreport.model.github.GithubTarge
|
|||
import code.name.monkey.retromusic.databinding.ActivityBugReportBinding
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.setTaskDescriptionColorAuto
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
|
@ -163,11 +163,7 @@ open class BugReportActivity : AbsThemeActivity() {
|
|||
val clipboard = getSystemService<ClipboardManager>()
|
||||
val clip = ClipData.newPlainText(getString(R.string.device_info), deviceInfo?.toMarkdown())
|
||||
clipboard?.setPrimaryClip(clip)
|
||||
Toast.makeText(
|
||||
this@BugReportActivity,
|
||||
R.string.copied_device_info_to_clipboard,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
showToast(R.string.copied_device_info_to_clipboard)
|
||||
}
|
||||
|
||||
private fun validateInput(): Boolean {
|
||||
|
|
|
@ -30,10 +30,7 @@ import androidx.core.widget.doAfterTextChanged
|
|||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.ActivityAlbumTagEditorBinding
|
||||
import code.name.monkey.retromusic.extensions.appHandleColor
|
||||
import code.name.monkey.retromusic.extensions.defaultFooterColor
|
||||
import code.name.monkey.retromusic.extensions.isColorLight
|
||||
import code.name.monkey.retromusic.extensions.setTint
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.glide.GlideApp
|
||||
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||
import code.name.monkey.retromusic.model.ArtworkInfo
|
||||
|
@ -117,11 +114,7 @@ class AlbumTagEditorActivity : AbsTagEditorActivity<ActivityAlbumTagEditorBindin
|
|||
}
|
||||
|
||||
private fun toastLoadingFailed() {
|
||||
Toast.makeText(
|
||||
this@AlbumTagEditorActivity,
|
||||
R.string.could_not_download_album_cover,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showToast(R.string.could_not_download_album_cover)
|
||||
}
|
||||
|
||||
override fun searchImageOnWeb() {
|
||||
|
@ -161,8 +154,7 @@ class AlbumTagEditorActivity : AbsTagEditorActivity<ActivityAlbumTagEditorBindin
|
|||
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
Toast.makeText(this@AlbumTagEditorActivity, "Load Failed", Toast.LENGTH_LONG)
|
||||
.show()
|
||||
showToast("Load Failed", Toast.LENGTH_LONG)
|
||||
}
|
||||
|
||||
override fun setResource(resource: BitmapPaletteWrapper?) {}
|
||||
|
|
|
@ -30,10 +30,7 @@ import androidx.core.widget.doAfterTextChanged
|
|||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.ActivitySongTagEditorBinding
|
||||
import code.name.monkey.retromusic.extensions.appHandleColor
|
||||
import code.name.monkey.retromusic.extensions.defaultFooterColor
|
||||
import code.name.monkey.retromusic.extensions.isColorLight
|
||||
import code.name.monkey.retromusic.extensions.setTint
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.glide.GlideApp
|
||||
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||
import code.name.monkey.retromusic.model.ArtworkInfo
|
||||
|
@ -196,8 +193,7 @@ class SongTagEditorActivity : AbsTagEditorActivity<ActivitySongTagEditorBinding>
|
|||
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
Toast.makeText(this@SongTagEditorActivity, "Load Failed", Toast.LENGTH_LONG)
|
||||
.show()
|
||||
showToast("Load Failed", Toast.LENGTH_LONG)
|
||||
}
|
||||
|
||||
override fun setResource(resource: BitmapPaletteWrapper?) {}
|
||||
|
|
|
@ -6,8 +6,8 @@ import android.graphics.Bitmap
|
|||
import android.media.MediaScannerConnection
|
||||
import android.os.Build
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.RequiresApi
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.misc.UpdateToastMediaScannerCompletionListener
|
||||
import code.name.monkey.retromusic.model.AudioTagInfo
|
||||
import code.name.monkey.retromusic.util.MusicUtil.createAlbumArtFile
|
||||
|
@ -24,7 +24,6 @@ import org.jaudiotagger.tag.TagException
|
|||
import org.jaudiotagger.tag.images.AndroidArtwork
|
||||
import org.jaudiotagger.tag.images.Artwork
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
|
||||
class TagWriter {
|
||||
|
@ -34,7 +33,7 @@ class TagWriter {
|
|||
suspend fun scan(context: Context, toBeScanned: List<String?>?) {
|
||||
if (toBeScanned == null || toBeScanned.isEmpty()) {
|
||||
Log.i("scan", "scan: Empty")
|
||||
Toast.makeText(context, "Scan file from folder", Toast.LENGTH_SHORT).show()
|
||||
context.showToast( "Scan file from folder")
|
||||
return
|
||||
}
|
||||
MediaScannerConnection.scanFile(
|
||||
|
@ -60,7 +59,7 @@ class TagWriter {
|
|||
info.artworkInfo.artwork.compress(
|
||||
Bitmap.CompressFormat.JPEG,
|
||||
100,
|
||||
FileOutputStream(albumArtFile)
|
||||
albumArtFile.outputStream()
|
||||
)
|
||||
artwork = AndroidArtwork.createArtworkFromFile(albumArtFile)
|
||||
} catch (e: IOException) {
|
||||
|
@ -133,7 +132,7 @@ class TagWriter {
|
|||
info.artworkInfo.artwork.compress(
|
||||
Bitmap.CompressFormat.JPEG,
|
||||
100,
|
||||
FileOutputStream(albumArtFile)
|
||||
albumArtFile.outputStream()
|
||||
)
|
||||
artwork = AndroidArtwork.createArtworkFromFile(albumArtFile)
|
||||
} catch (e: IOException) {
|
||||
|
|
|
@ -19,12 +19,12 @@ import android.view.LayoutInflater
|
|||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import code.name.monkey.appthemehelper.ThemeStore.Companion.accentColor
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.databinding.PreferenceDialogLibraryCategoriesListitemBinding
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.model.CategoryInfo
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.SwipeAndDragHelper
|
||||
|
@ -59,12 +59,7 @@ class CategoryInfoAdapter : RecyclerView.Adapter<CategoryInfoAdapter.ViewHolder>
|
|||
categoryInfo.visible = !categoryInfo.visible
|
||||
holder.binding.checkbox.isChecked = categoryInfo.visible
|
||||
} else {
|
||||
Toast.makeText(
|
||||
holder.itemView.context,
|
||||
R.string.you_have_to_select_at_least_one_category,
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
holder.itemView.context.showToast(R.string.you_have_to_select_at_least_one_category)
|
||||
}
|
||||
}
|
||||
holder.binding.dragView.setOnTouchListener { _: View?, event: MotionEvent ->
|
||||
|
|
|
@ -114,7 +114,7 @@ class RetroWebServer(val context: Context) : NanoHTTPD(SERVER_PORT) {
|
|||
} else {
|
||||
res = newFixedLengthResponse(
|
||||
Status.OK, mime,
|
||||
FileInputStream(file), file.length()
|
||||
file.inputStream(), file.length()
|
||||
)
|
||||
res.addHeader("Accept-Ranges", "bytes")
|
||||
res.addHeader("Content-Length", "" + fileLen)
|
||||
|
|
|
@ -22,14 +22,10 @@ import androidx.core.os.bundleOf
|
|||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.EXTRA_PLAYLIST
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.db.PlaylistWithSongs
|
||||
import code.name.monkey.retromusic.extensions.colorButtons
|
||||
import code.name.monkey.retromusic.extensions.createNewFile
|
||||
import code.name.monkey.retromusic.extensions.extraNotNull
|
||||
import code.name.monkey.retromusic.extensions.materialDialog
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.helper.M3UWriter
|
||||
import code.name.monkey.retromusic.util.PlaylistsUtil
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -64,25 +60,21 @@ class SavePlaylistDialog : DialogFragment() {
|
|||
playlistWithSongs
|
||||
)
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
showToast(
|
||||
String.format(
|
||||
requireContext().getString(R.string.saved_playlist_to),
|
||||
data?.lastPathSegment
|
||||
),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
"Something went wrong : " + e.message,
|
||||
Toast.LENGTH_SHORT
|
||||
showToast(
|
||||
"Something went wrong : " + e.message
|
||||
)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -95,11 +87,10 @@ class SavePlaylistDialog : DialogFragment() {
|
|||
) { _, _ ->
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
String.format(App.getContext().getString(R.string.saved_playlist_to), file),
|
||||
showToast(
|
||||
String.format(getString(R.string.saved_playlist_to), file),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
)
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package code.name.monkey.retromusic.extensions
|
||||
|
||||
import android.content.Context
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.StringRes
|
||||
|
||||
fun Context.showToast(@StringRes stringRes: Int, duration: Int = Toast.LENGTH_SHORT) {
|
||||
showToast(getString(stringRes), duration)
|
||||
}
|
||||
|
||||
fun Context.showToast(message: String, duration: Int = Toast.LENGTH_SHORT) {
|
||||
Toast.makeText(this, message, duration).show()
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package code.name.monkey.retromusic.extensions
|
||||
|
||||
import java.io.BufferedOutputStream
|
||||
import java.util.zip.ZipOutputStream
|
||||
|
||||
fun BufferedOutputStream.zipOutputStream(): ZipOutputStream = ZipOutputStream(this)
|
|
@ -80,12 +80,12 @@ fun <T> Fragment.whichFragment(@IdRes id: Int): T {
|
|||
return childFragmentManager.findFragmentById(id) as T
|
||||
}
|
||||
|
||||
fun Fragment.showToast(@StringRes stringRes: Int) {
|
||||
showToast(getString(stringRes))
|
||||
fun Fragment.showToast(@StringRes stringRes: Int, duration: Int = Toast.LENGTH_SHORT) {
|
||||
showToast(getString(stringRes), duration)
|
||||
}
|
||||
|
||||
fun Fragment.showToast(message: String) {
|
||||
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
|
||||
fun Fragment.showToast(message: String, duration: Int = Toast.LENGTH_SHORT) {
|
||||
Toast.makeText(requireContext(), message, duration).show()
|
||||
}
|
||||
|
||||
fun Context.getDrawableCompat(@DrawableRes drawableRes: Int): Drawable {
|
||||
|
|
|
@ -16,11 +16,11 @@ package code.name.monkey.retromusic.fragments
|
|||
|
||||
import android.animation.ValueAnimator
|
||||
import android.content.Context
|
||||
import android.widget.Toast
|
||||
import androidx.core.animation.doOnEnd
|
||||
import androidx.lifecycle.*
|
||||
import code.name.monkey.retromusic.*
|
||||
import code.name.monkey.retromusic.db.*
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.fragments.ReloadType.*
|
||||
import code.name.monkey.retromusic.fragments.search.Filter
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
|
@ -348,12 +348,7 @@ class LibraryViewModel(
|
|||
createPlaylist(PlaylistEntity(playlistName = playlistName))
|
||||
insertSongs(songs.map { it.toSongEntity(playlistId) })
|
||||
withContext(Main) {
|
||||
Toast.makeText(
|
||||
context ,
|
||||
context
|
||||
.getString(R.string.playlist_created_sucessfully, playlistName),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
context.showToast(R.string.playlist_created_sucessfully)
|
||||
}
|
||||
} else {
|
||||
val playlist = playlists.firstOrNull()
|
||||
|
@ -365,13 +360,7 @@ class LibraryViewModel(
|
|||
}
|
||||
forceReload(Playlists)
|
||||
withContext(Main) {
|
||||
Toast.makeText(
|
||||
context, context.getString(
|
||||
R.string.added_song_count_to_playlist,
|
||||
songs.size,
|
||||
playlistName
|
||||
), Toast.LENGTH_SHORT
|
||||
).show()
|
||||
context.showToast(R.string.added_song_count_to_playlist)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.content.Intent
|
|||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.view.isVisible
|
||||
|
@ -20,6 +19,7 @@ import code.name.monkey.retromusic.databinding.FragmentBackupBinding
|
|||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.accentOutlineColor
|
||||
import code.name.monkey.retromusic.extensions.materialDialog
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.helper.BackupHelper
|
||||
import code.name.monkey.retromusic.helper.sanitize
|
||||
import code.name.monkey.retromusic.util.BackupUtil
|
||||
|
@ -122,11 +122,7 @@ class BackupFragment : Fragment(R.layout.fragment_backup), BackupAdapter.BackupC
|
|||
try {
|
||||
file.delete()
|
||||
} catch (exception: SecurityException) {
|
||||
Toast.makeText(
|
||||
activity,
|
||||
"Could not delete backup",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showToast("Could not delete backup")
|
||||
}
|
||||
backupViewModel.loadBackups()
|
||||
return true
|
||||
|
@ -151,11 +147,9 @@ class BackupFragment : Fragment(R.layout.fragment_backup), BackupAdapter.BackupC
|
|||
file.renameTo(renamedFile)
|
||||
backupViewModel.loadBackups()
|
||||
} else {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
"File already exists",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showToast(
|
||||
"File already exists"
|
||||
)
|
||||
}
|
||||
}
|
||||
positiveButton(android.R.string.ok)
|
||||
|
|
|
@ -29,7 +29,6 @@ import android.view.MenuItem
|
|||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.Toast
|
||||
import androidx.annotation.LayoutRes
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.core.os.bundleOf
|
||||
|
@ -48,10 +47,7 @@ import code.name.monkey.retromusic.activities.tageditor.SongTagEditorActivity
|
|||
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||
import code.name.monkey.retromusic.db.toSongEntity
|
||||
import code.name.monkey.retromusic.dialogs.*
|
||||
import code.name.monkey.retromusic.extensions.currentFragment
|
||||
import code.name.monkey.retromusic.extensions.hide
|
||||
import code.name.monkey.retromusic.extensions.keepScreenOn
|
||||
import code.name.monkey.retromusic.extensions.whichFragment
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.NowPlayingScreen
|
||||
import code.name.monkey.retromusic.fragments.ReloadType
|
||||
import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
|
||||
|
@ -60,7 +56,10 @@ import code.name.monkey.retromusic.interfaces.IPaletteColorHolder
|
|||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.repository.RealRepository
|
||||
import code.name.monkey.retromusic.service.MusicService
|
||||
import code.name.monkey.retromusic.util.*
|
||||
import code.name.monkey.retromusic.util.NavigationUtil
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import code.name.monkey.retromusic.util.RetroUtil
|
||||
import code.name.monkey.retromusic.util.RingtoneManager
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.Dispatchers.Main
|
||||
|
@ -196,7 +195,7 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme
|
|||
if (genre == null) {
|
||||
genre = "Not Specified"
|
||||
}
|
||||
Toast.makeText(context, genre, Toast.LENGTH_SHORT).show()
|
||||
showToast(genre)
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,6 @@ import android.view.MenuInflater
|
|||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.webkit.MimeTypeMap
|
||||
import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.core.view.isVisible
|
||||
|
@ -211,12 +210,9 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
}
|
||||
R.id.action_set_as_start_directory -> {
|
||||
startDirectory = file
|
||||
Toast.makeText(
|
||||
activity,
|
||||
String.format(getString(R.string.new_start_directory), file.path),
|
||||
Toast.LENGTH_SHORT
|
||||
showToast(
|
||||
String.format(getString(R.string.new_start_directory), file.path)
|
||||
)
|
||||
.show()
|
||||
return@setOnMenuItemClickListener true
|
||||
}
|
||||
R.id.action_scan -> {
|
||||
|
@ -491,7 +487,7 @@ class FoldersFragment : AbsMainActivityFragment(R.layout.fragment_folder),
|
|||
return
|
||||
}
|
||||
if (toBeScanned.isEmpty()) {
|
||||
Toast.makeText(activity, R.string.nothing_to_scan, Toast.LENGTH_SHORT).show()
|
||||
showToast(R.string.nothing_to_scan)
|
||||
} else {
|
||||
MediaScannerConnection.scanFile(
|
||||
requireContext(),
|
||||
|
|
|
@ -24,7 +24,6 @@ import android.view.LayoutInflater
|
|||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.fragment.app.Fragment
|
||||
|
@ -36,6 +35,7 @@ import code.name.monkey.retromusic.R
|
|||
import code.name.monkey.retromusic.databinding.FragmentUserInfoBinding
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.applyToolbar
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
import code.name.monkey.retromusic.glide.GlideApp
|
||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||
|
@ -55,9 +55,7 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
|
||||
import java.io.BufferedOutputStream
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
|
||||
class UserInfoFragment : Fragment() {
|
||||
|
||||
|
@ -98,11 +96,7 @@ class UserInfoFragment : Fragment() {
|
|||
binding.next.setOnClickListener {
|
||||
val nameString = binding.name.text.toString().trim { it <= ' ' }
|
||||
if (nameString.isEmpty()) {
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
"Your name can't be empty!",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
showToast("Your name can't be empty!")
|
||||
return@setOnClickListener
|
||||
}
|
||||
PreferenceUtil.userName = nameString
|
||||
|
@ -204,9 +198,9 @@ class UserInfoFragment : Fragment() {
|
|||
val fileUri = data?.data
|
||||
fileUri?.let { setAndSaveBannerImage(it) }
|
||||
} else if (resultCode == ImagePicker.RESULT_ERROR) {
|
||||
Toast.makeText(requireContext(), ImagePicker.getError(data), Toast.LENGTH_SHORT).show()
|
||||
showToast(ImagePicker.getError(data))
|
||||
} else {
|
||||
Toast.makeText(requireContext(), "Task Cancelled", Toast.LENGTH_SHORT).show()
|
||||
showToast("Task Cancelled")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,7 +239,7 @@ class UserInfoFragment : Fragment() {
|
|||
val file = File(appDir, fileName)
|
||||
var successful = false
|
||||
runCatching {
|
||||
BufferedOutputStream(FileOutputStream(file)).use {
|
||||
file.outputStream().buffered().use {
|
||||
successful = ImageUtil.resizeBitmap(bitmap, 2048)
|
||||
.compress(Bitmap.CompressFormat.WEBP, 100, it)
|
||||
}
|
||||
|
@ -254,7 +248,7 @@ class UserInfoFragment : Fragment() {
|
|||
}
|
||||
if (successful) {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(requireContext(), "Updated", Toast.LENGTH_SHORT).show()
|
||||
showToast("Updated")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,12 +19,12 @@ import android.graphics.drawable.ColorDrawable
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceManager
|
||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
|
||||
import code.name.monkey.retromusic.activities.OnThemeChangedListener
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.preferences.*
|
||||
import code.name.monkey.retromusic.util.NavigationUtil
|
||||
import dev.chrisbanes.insetter.applyInsetter
|
||||
|
@ -36,8 +36,7 @@ import dev.chrisbanes.insetter.applyInsetter
|
|||
abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
|
||||
|
||||
internal fun showProToastAndNavigate(message: String) {
|
||||
Toast.makeText(requireContext(), "$message is Pro version feature.", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
showToast("$message is Pro version feature.")
|
||||
NavigationUtil.goToProVersion(requireActivity())
|
||||
}
|
||||
|
||||
|
|
|
@ -2,11 +2,11 @@ package code.name.monkey.retromusic.helper
|
|||
|
||||
import android.content.Context
|
||||
import android.os.Environment
|
||||
import android.widget.Toast
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.BuildConfig
|
||||
import code.name.monkey.retromusic.db.PlaylistEntity
|
||||
import code.name.monkey.retromusic.db.toSongEntity
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.extensions.zipOutputStream
|
||||
import code.name.monkey.retromusic.helper.BackupContent.*
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.repository.Repository
|
||||
|
@ -15,12 +15,12 @@ import kotlinx.coroutines.Dispatchers
|
|||
import kotlinx.coroutines.withContext
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import java.io.*
|
||||
import java.io.File
|
||||
import java.io.InputStream
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.zip.ZipEntry
|
||||
import java.util.zip.ZipInputStream
|
||||
import java.util.zip.ZipOutputStream
|
||||
|
||||
object BackupHelper : KoinComponent {
|
||||
private val repository by inject<Repository>()
|
||||
|
@ -37,38 +37,30 @@ object BackupHelper : KoinComponent {
|
|||
zipItems.addAll(getSettingsZipItems(context))
|
||||
getUserImageZipItems(context)?.let { zipItems.addAll(it) }
|
||||
zipItems.addAll(getCustomArtistZipItems(context))
|
||||
zipAll(zipItems, backupFile)
|
||||
zipAll(context, zipItems, backupFile)
|
||||
// Clean Cache Playlist Directory
|
||||
File(context.filesDir, PLAYLISTS_PATH).deleteRecursively()
|
||||
}
|
||||
|
||||
private suspend fun zipAll(zipItems: List<ZipItem>, backupFile: File) =
|
||||
private suspend fun zipAll(context: Context, zipItems: List<ZipItem>, backupFile: File) =
|
||||
withContext(Dispatchers.IO) {
|
||||
runCatching {
|
||||
ZipOutputStream(BufferedOutputStream(FileOutputStream(backupFile))).use { out ->
|
||||
backupFile.outputStream().buffered().zipOutputStream().use { out ->
|
||||
for (zipItem in zipItems) {
|
||||
FileInputStream(zipItem.filePath).use { fi ->
|
||||
BufferedInputStream(fi).use { origin ->
|
||||
File(zipItem.filePath).inputStream().buffered().use { origin ->
|
||||
val entry = ZipEntry(zipItem.zipPath)
|
||||
out.putNextEntry(entry)
|
||||
origin.copyTo(out)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}.onFailure {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(App.getContext(), "Couldn't create backup", Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
context.showToast("Couldn't create backup")
|
||||
}
|
||||
}.onSuccess {
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
App.getContext(),
|
||||
"Backup created successfully",
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
context.showToast("Backup created successfully")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -167,7 +159,7 @@ object BackupHelper : KoinComponent {
|
|||
}
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(context, "Restore Completed Successfully", Toast.LENGTH_SHORT).show()
|
||||
context.showToast("Restore Completed Successfully")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -176,7 +168,7 @@ object BackupHelper : KoinComponent {
|
|||
val file = File(
|
||||
context.filesDir.path, zipEntry.getFileName()
|
||||
)
|
||||
BufferedOutputStream(FileOutputStream(file)).use { bos ->
|
||||
file.outputStream().buffered().use { bos ->
|
||||
zipIn.copyTo(bos)
|
||||
}
|
||||
}
|
||||
|
@ -188,7 +180,7 @@ object BackupHelper : KoinComponent {
|
|||
if (file.exists()) {
|
||||
file.delete()
|
||||
}
|
||||
BufferedOutputStream(FileOutputStream(file)).use { bos ->
|
||||
file.outputStream().buffered().use { bos ->
|
||||
zipIn.copyTo(bos)
|
||||
}
|
||||
}
|
||||
|
@ -233,14 +225,12 @@ object BackupHelper : KoinComponent {
|
|||
if (!parentFolder.exists()) {
|
||||
parentFolder.mkdirs()
|
||||
}
|
||||
BufferedOutputStream(
|
||||
FileOutputStream(
|
||||
File(
|
||||
val file = File(
|
||||
parentFolder,
|
||||
zipEntry.getFileName()
|
||||
)
|
||||
)
|
||||
).use { bos ->
|
||||
file.outputStream().buffered()
|
||||
.use { bos ->
|
||||
zipIn.copyTo(bos)
|
||||
}
|
||||
}
|
||||
|
@ -252,7 +242,7 @@ object BackupHelper : KoinComponent {
|
|||
) {
|
||||
val file =
|
||||
File(context.filesDir.parentFile, "shared_prefs".child(zipEntry.getFileName()))
|
||||
BufferedOutputStream(FileOutputStream(file)).use { bos ->
|
||||
file.outputStream().buffered().use { bos ->
|
||||
zipIn.copyTo(bos)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import android.provider.DocumentsContract
|
|||
import android.widget.Toast
|
||||
import androidx.core.content.ContextCompat
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.repository.SongRepository
|
||||
import code.name.monkey.retromusic.service.MusicService
|
||||
|
@ -317,11 +318,7 @@ object MusicPlayerRemote : KoinComponent {
|
|||
queue.add(song)
|
||||
openQueue(queue, 0, false)
|
||||
}
|
||||
Toast.makeText(
|
||||
musicService,
|
||||
musicService!!.resources.getString(R.string.added_title_to_playing_queue),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
musicService?.showToast(R.string.added_title_to_playing_queue)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -340,7 +337,7 @@ object MusicPlayerRemote : KoinComponent {
|
|||
R.string.added_x_titles_to_playing_queue,
|
||||
songs.size
|
||||
)
|
||||
Toast.makeText(musicService, toast, Toast.LENGTH_SHORT).show()
|
||||
musicService?.showToast(toast, Toast.LENGTH_SHORT)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -355,11 +352,7 @@ object MusicPlayerRemote : KoinComponent {
|
|||
queue.add(song)
|
||||
openQueue(queue, 0, false)
|
||||
}
|
||||
Toast.makeText(
|
||||
musicService,
|
||||
musicService!!.resources.getString(R.string.added_title_to_playing_queue),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
musicService?.showToast(R.string.added_title_to_playing_queue)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
@ -377,7 +370,7 @@ object MusicPlayerRemote : KoinComponent {
|
|||
R.string.added_x_titles_to_playing_queue,
|
||||
songs.size
|
||||
)
|
||||
Toast.makeText(musicService, toast, Toast.LENGTH_SHORT).show()
|
||||
musicService?.showToast(toast)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
|
|
|
@ -21,7 +21,6 @@ import android.util.AttributeSet
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||
import androidx.fragment.app.DialogFragment
|
||||
|
@ -81,7 +80,7 @@ class AlbumCoverStylePreferenceDialog : DialogFragment(),
|
|||
val coverStyle = values()[viewPagerPosition]
|
||||
if (isAlbumCoverStyle(coverStyle)) {
|
||||
val result = getString(coverStyle.titleRes) + " theme is Pro version feature."
|
||||
Toast.makeText(context, result, Toast.LENGTH_SHORT).show()
|
||||
showToast(result)
|
||||
NavigationUtil.goToProVersion(requireActivity())
|
||||
} else {
|
||||
PreferenceUtil.albumCoverStyle = coverStyle
|
||||
|
|
|
@ -18,7 +18,6 @@ import android.app.Dialog
|
|||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import android.util.AttributeSet
|
||||
import android.widget.Toast
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||
import androidx.fragment.app.DialogFragment
|
||||
|
@ -30,6 +29,7 @@ import code.name.monkey.retromusic.databinding.PreferenceDialogLibraryCategories
|
|||
import code.name.monkey.retromusic.extensions.colorButtons
|
||||
import code.name.monkey.retromusic.extensions.colorControlNormal
|
||||
import code.name.monkey.retromusic.extensions.materialDialog
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.model.CategoryInfo
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
|
||||
|
@ -76,7 +76,7 @@ class LibraryPreferenceDialog : DialogFragment() {
|
|||
private fun updateCategories(categories: List<CategoryInfo>) {
|
||||
if (getSelected(categories) == 0) return
|
||||
if (getSelected(categories) > 5) {
|
||||
Toast.makeText(context, "Not more than 5 items", Toast.LENGTH_SHORT).show()
|
||||
showToast("Not more than 5 items")
|
||||
return
|
||||
}
|
||||
PreferenceUtil.libraryCategory = categories
|
||||
|
|
|
@ -21,7 +21,6 @@ import android.util.AttributeSet
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||
import androidx.fragment.app.DialogFragment
|
||||
|
@ -91,7 +90,7 @@ class NowPlayingScreenPreferenceDialog : DialogFragment(), ViewPager.OnPageChang
|
|||
if (isNowPlayingThemes(nowPlayingScreen)) {
|
||||
val result =
|
||||
"${getString(nowPlayingScreen.titleRes)} theme is Pro version feature."
|
||||
Toast.makeText(context, result, Toast.LENGTH_SHORT).show()
|
||||
showToast(result)
|
||||
NavigationUtil.goToProVersion(requireContext())
|
||||
} else {
|
||||
PreferenceUtil.nowPlayingScreen = nowPlayingScreen
|
||||
|
|
|
@ -9,9 +9,9 @@ import android.media.MediaPlayer
|
|||
import android.media.audiofx.AudioEffect
|
||||
import android.os.PowerManager
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.core.net.toUri
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import code.name.monkey.retromusic.service.AudioFader.Companion.createFadeAnimator
|
||||
import code.name.monkey.retromusic.service.playback.Playback
|
||||
|
@ -291,12 +291,7 @@ class CrossFadePlayer(val context: Context) : Playback, MediaPlayer.OnCompletion
|
|||
player2 = MediaPlayer()
|
||||
mIsInitialized = true
|
||||
mp?.setWakeMode(context, PowerManager.PARTIAL_WAKE_LOCK)
|
||||
Toast.makeText(
|
||||
context,
|
||||
context.resources.getString(R.string.unplayable_file),
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
context.showToast(R.string.unplayable_file)
|
||||
Log.e(TAG, what.toString() + extra)
|
||||
return false
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ import android.support.v4.media.session.PlaybackStateCompat
|
|||
import android.telephony.PhoneStateListener
|
||||
import android.telephony.TelephonyManager
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.edit
|
||||
import androidx.core.content.getSystemService
|
||||
import androidx.media.AudioAttributesCompat
|
||||
|
@ -54,6 +53,7 @@ import code.name.monkey.retromusic.activities.LockScreenActivity
|
|||
import code.name.monkey.retromusic.appwidgets.*
|
||||
import code.name.monkey.retromusic.auto.AutoMediaIDHelper
|
||||
import code.name.monkey.retromusic.auto.AutoMusicProvider
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.glide.BlurTransformation
|
||||
import code.name.monkey.retromusic.glide.GlideApp
|
||||
import code.name.monkey.retromusic.glide.RetroGlideExtension.getSongModel
|
||||
|
@ -891,10 +891,7 @@ class MusicService : MediaBrowserServiceCompat(),
|
|||
}
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(
|
||||
this, resources.getString(R.string.audio_focus_denied), Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
showToast(R.string.audio_focus_denied)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -924,8 +921,7 @@ class MusicService : MediaBrowserServiceCompat(),
|
|||
if (openTrackAndPrepareNextAt(position)) {
|
||||
play()
|
||||
} else {
|
||||
Toast.makeText(this, resources.getString(R.string.unplayable_file), Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
showToast(resources.getString(R.string.unplayable_file))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -940,7 +936,7 @@ class MusicService : MediaBrowserServiceCompat(),
|
|||
}
|
||||
play()
|
||||
} else {
|
||||
Toast.makeText(applicationContext, R.string.playlist_is_empty, Toast.LENGTH_LONG).show()
|
||||
showToast(R.string.playlist_is_empty)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1315,11 +1311,10 @@ class MusicService : MediaBrowserServiceCompat(),
|
|||
openQueue(playlistSongs, 0, true)
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(applicationContext, R.string.playlist_is_empty, Toast.LENGTH_LONG)
|
||||
.show()
|
||||
showToast( R.string.playlist_is_empty)
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(applicationContext, R.string.playlist_is_empty, Toast.LENGTH_LONG).show()
|
||||
showToast(R.string.playlist_is_empty)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@ package code.name.monkey.retromusic.util
|
|||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.FileProvider
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import java.io.File
|
||||
|
||||
object BackupUtil {
|
||||
|
@ -19,11 +19,9 @@ object BackupUtil {
|
|||
).addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION).setType("*/*")
|
||||
} catch (e: IllegalArgumentException) {
|
||||
e.printStackTrace()
|
||||
Toast.makeText(
|
||||
context,
|
||||
"Could not share this file.",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
context.showToast(
|
||||
"Could not share this file."
|
||||
)
|
||||
Intent()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,14 +25,13 @@ import android.provider.MediaStore
|
|||
import android.widget.Toast
|
||||
import androidx.core.content.edit
|
||||
import code.name.monkey.retromusic.App
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.request.target.SimpleTarget
|
||||
import com.bumptech.glide.request.transition.Transition
|
||||
import java.io.BufferedOutputStream
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
import java.util.*
|
||||
|
||||
|
@ -53,7 +52,7 @@ class CustomArtistImageUtil private constructor(context: Context) {
|
|||
.into(object : SimpleTarget<Bitmap>() {
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
Toast.makeText(App.getContext(), "Load Failed", Toast.LENGTH_LONG).show()
|
||||
App.getContext().showToast("Load Failed")
|
||||
}
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
|
@ -70,13 +69,12 @@ class CustomArtistImageUtil private constructor(context: Context) {
|
|||
|
||||
var succesful = false
|
||||
try {
|
||||
val os = BufferedOutputStream(FileOutputStream(file))
|
||||
file.outputStream().buffered().use { bos ->
|
||||
succesful = ImageUtil.resizeBitmap(resource, 2048)
|
||||
.compress(Bitmap.CompressFormat.JPEG, 100, os)
|
||||
os.close()
|
||||
.compress(Bitmap.CompressFormat.JPEG, 100, bos)
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
Toast.makeText(App.getContext(), e.toString(), Toast.LENGTH_LONG)
|
||||
.show()
|
||||
App.getContext().showToast(e.toString(), Toast.LENGTH_LONG)
|
||||
}
|
||||
|
||||
if (succesful) {
|
||||
|
|
|
@ -9,7 +9,6 @@ import android.os.Environment
|
|||
import android.provider.BaseColumns
|
||||
import android.provider.MediaStore
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.FileProvider
|
||||
import androidx.core.content.contentValuesOf
|
||||
import androidx.core.net.toUri
|
||||
|
@ -20,6 +19,7 @@ import code.name.monkey.retromusic.db.PlaylistEntity
|
|||
import code.name.monkey.retromusic.db.SongEntity
|
||||
import code.name.monkey.retromusic.db.toSongEntity
|
||||
import code.name.monkey.retromusic.extensions.getLong
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.removeFromQueue
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
|
@ -58,11 +58,7 @@ object MusicUtil : KoinComponent {
|
|||
} catch (e: IllegalArgumentException) {
|
||||
// TODO the path is most likely not like /storage/emulated/0/... but something like /storage/28C7-75B0/...
|
||||
e.printStackTrace()
|
||||
Toast.makeText(
|
||||
context,
|
||||
"Could not share this file, I'm aware of the issue.",
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
context.showToast("Could not share this file, I'm aware of the issue.")
|
||||
Intent()
|
||||
}
|
||||
}
|
||||
|
@ -456,12 +452,7 @@ object MusicUtil : KoinComponent {
|
|||
}
|
||||
activity.contentResolver.notifyChange("content://media".toUri(), null)
|
||||
activity.runOnUiThread {
|
||||
Toast.makeText(
|
||||
activity,
|
||||
activity.getString(R.string.deleted_x_songs, songCount),
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
activity.showToast(activity.getString(R.string.deleted_x_songs, songCount))
|
||||
callback?.run()
|
||||
}
|
||||
|
||||
|
@ -519,11 +510,7 @@ object MusicUtil : KoinComponent {
|
|||
cursor.close()
|
||||
}
|
||||
withContext(Dispatchers.Main) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
context.getString(R.string.deleted_x_songs, deletedCount),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
context.showToast(context.getString(R.string.deleted_x_songs, deletedCount))
|
||||
}
|
||||
|
||||
} catch (ignored: SecurityException) {
|
||||
|
|
|
@ -22,6 +22,7 @@ import android.widget.Toast
|
|||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.*
|
||||
import code.name.monkey.retromusic.activities.bugreport.BugReportActivity
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.audioSessionId
|
||||
|
||||
object NavigationUtil {
|
||||
|
@ -68,10 +69,7 @@ object NavigationUtil {
|
|||
private fun stockEqualizer(activity: Activity) {
|
||||
val sessionId = audioSessionId
|
||||
if (sessionId == AudioEffect.ERROR_BAD_VALUE) {
|
||||
Toast.makeText(
|
||||
activity, activity.resources.getString(R.string.no_audio_ID), Toast.LENGTH_LONG
|
||||
)
|
||||
.show()
|
||||
activity.showToast(R.string.no_audio_ID, Toast.LENGTH_LONG)
|
||||
} else {
|
||||
try {
|
||||
val effects = Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL)
|
||||
|
@ -79,12 +77,7 @@ object NavigationUtil {
|
|||
effects.putExtra(AudioEffect.EXTRA_CONTENT_TYPE, AudioEffect.CONTENT_TYPE_MUSIC)
|
||||
activity.startActivityForResult(effects, 0)
|
||||
} catch (notFound: ActivityNotFoundException) {
|
||||
Toast.makeText(
|
||||
activity,
|
||||
activity.resources.getString(R.string.no_equalizer),
|
||||
Toast.LENGTH_SHORT
|
||||
)
|
||||
.show()
|
||||
activity.showToast(R.string.no_equalizer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -424,10 +424,11 @@ object PreferenceUtil {
|
|||
val position = sharedPreferences.getStringOrDefault(
|
||||
HOME_ARTIST_GRID_STYLE, "0"
|
||||
).toInt()
|
||||
val typedArray = App.getContext()
|
||||
.resources.obtainTypedArray(R.array.pref_home_grid_style_layout)
|
||||
val layoutRes = typedArray.getResourceId(position, 0)
|
||||
typedArray.recycle()
|
||||
val layoutRes =
|
||||
App.getContext().resources.obtainTypedArray(R.array.pref_home_grid_style_layout)
|
||||
.use {
|
||||
it.getResourceId(position, 0)
|
||||
}
|
||||
return if (layoutRes == 0) {
|
||||
R.layout.item_artist
|
||||
} else layoutRes
|
||||
|
@ -438,10 +439,10 @@ object PreferenceUtil {
|
|||
val position = sharedPreferences.getStringOrDefault(
|
||||
HOME_ALBUM_GRID_STYLE, "4"
|
||||
).toInt()
|
||||
val typedArray = App.getContext()
|
||||
.resources.obtainTypedArray(R.array.pref_home_grid_style_layout)
|
||||
val layoutRes = typedArray.getResourceId(position, 0)
|
||||
typedArray.recycle()
|
||||
val layoutRes = App.getContext()
|
||||
.resources.obtainTypedArray(R.array.pref_home_grid_style_layout).use {
|
||||
it.getResourceId(position, 0)
|
||||
}
|
||||
return if (layoutRes == 0) {
|
||||
R.layout.item_image
|
||||
} else layoutRes
|
||||
|
|
|
@ -19,10 +19,10 @@ import android.content.Intent
|
|||
import android.provider.BaseColumns
|
||||
import android.provider.MediaStore
|
||||
import android.provider.Settings
|
||||
import android.widget.Toast
|
||||
import androidx.core.net.toUri
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.showToast
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.util.MusicUtil.getSongFileUri
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
@ -45,7 +45,7 @@ class RingtoneManager(val context: Context) {
|
|||
Settings.System.putString(resolver, Settings.System.RINGTONE, uri.toString())
|
||||
val message = context
|
||||
.getString(R.string.x_has_been_set_as_ringtone, cursorSong.getString(0))
|
||||
Toast.makeText(context, message, Toast.LENGTH_SHORT).show()
|
||||
context.showToast(message)
|
||||
}
|
||||
}
|
||||
} catch (ignored: SecurityException) {
|
||||
|
|
|
@ -15,24 +15,24 @@ package code.name.monkey.retromusic.views
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.retromusic.R
|
||||
import com.bumptech.glide.Glide
|
||||
|
||||
/** @author Hemanth S (h4h13).
|
||||
*/
|
||||
class NetworkImageView : CircularImageView {
|
||||
constructor(context: Context) : super(context) {
|
||||
init(context, null)
|
||||
}
|
||||
class NetworkImageView @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) :
|
||||
CircularImageView(context, attrs, defStyleAttr) {
|
||||
|
||||
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
|
||||
init(context, attrs)
|
||||
init {
|
||||
context.withStyledAttributes(attrs, R.styleable.NetworkImageView, 0, 0) {
|
||||
val url = getString(R.styleable.NetworkImageView_url_link)
|
||||
setImageUrl(context, url!!)
|
||||
}
|
||||
|
||||
constructor(
|
||||
context: Context, attrs: AttributeSet?, defStyleAttr: Int
|
||||
) : super(context, attrs, defStyleAttr) {
|
||||
init(context, attrs)
|
||||
}
|
||||
|
||||
fun setImageUrl(imageUrl: String) {
|
||||
|
@ -46,12 +46,4 @@ class NetworkImageView : CircularImageView {
|
|||
.placeholder(R.drawable.ic_account)
|
||||
.into(this)
|
||||
}
|
||||
|
||||
private fun init(context: Context, attributeSet: AttributeSet?) {
|
||||
val attributes =
|
||||
context.obtainStyledAttributes(attributeSet, R.styleable.NetworkImageView, 0, 0)
|
||||
val url = attributes.getString(R.styleable.NetworkImageView_url_link)
|
||||
setImageUrl(context, url!!)
|
||||
attributes.recycle()
|
||||
}
|
||||
}
|
|
@ -15,6 +15,7 @@ package code.name.monkey.retromusic.views
|
|||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.content.withStyledAttributes
|
||||
import code.name.monkey.retromusic.R
|
||||
import com.google.android.material.imageview.ShapeableImageView
|
||||
import com.google.android.material.shape.CornerFamily
|
||||
|
@ -29,13 +30,12 @@ class RetroShapeableImageView @JvmOverloads constructor(
|
|||
|
||||
|
||||
init {
|
||||
val typedArray =
|
||||
context.obtainStyledAttributes(attrs, R.styleable.RetroShapeableImageView, defStyle, -1)
|
||||
context.withStyledAttributes(attrs, R.styleable.RetroShapeableImageView, defStyle, -1) {
|
||||
addOnLayoutChangeListener { _, _, _, _, _, _, _, _, _ ->
|
||||
val radius = width / 2f
|
||||
shapeAppearanceModel = ShapeAppearanceModel().withCornerSize(radius)
|
||||
}
|
||||
typedArray.recycle()
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateCornerSize(cornerSize: Float) {
|
||||
|
|
|
@ -61,6 +61,14 @@
|
|||
android:visibility="gone"
|
||||
tools:text="100"
|
||||
tools:visibility="visible" />
|
||||
|
||||
<code.name.monkey.retromusic.views.PlayingIndicatorView
|
||||
android:id="@+id/playing_indicator"
|
||||
android:layout_width="45dp"
|
||||
android:layout_height="45dp"
|
||||
android:padding="5dp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
|
|
|
@ -53,8 +53,8 @@
|
|||
</array>
|
||||
|
||||
<array name="pref_appbar_mode_titles">
|
||||
<item>@string/collapsing</item>
|
||||
<item>@string/simple</item>
|
||||
<item>@string/expanded</item>
|
||||
<item>@string/compact</item>
|
||||
</array>
|
||||
|
||||
<string-array name="pref_appbar_mode_values">
|
||||
|
@ -229,5 +229,4 @@
|
|||
<item>@string/choose_image</item>
|
||||
<item>@string/remove_image</item>
|
||||
</string-array>
|
||||
<string name="collapsing">Collapsing</string>
|
||||
</resources>
|
|
@ -103,6 +103,7 @@
|
|||
<string name="bug_report_no_password">Please enter your valid GitHub password</string>
|
||||
<string name="bug_report_no_title">Please enter an issue title</string>
|
||||
<string name="bug_report_no_username">Please enter your valid GitHub username</string>
|
||||
<string name="bug_report_success">Bug report successful</string>
|
||||
<string name="bug_report_summary">An unexpected error occurred. Sorry you found this bug, if it keeps crashing \"Clear app data\" or send an Email </string>
|
||||
<string name="bug_report_use_account">Send using GitHub account</string>
|
||||
<string name="buy_now">Buy now</string>
|
||||
|
@ -126,6 +127,7 @@
|
|||
<string name="clear_playing_queue">Clear queue</string>
|
||||
<string name="color">Color</string>
|
||||
<string name="colors">Colors</string>
|
||||
<string name="compact">Compact</string>
|
||||
<string name="composer">Composer</string>
|
||||
<string name="copied_device_info_to_clipboard">Copied device info to clipboard.</string>
|
||||
<string name="could_not_create_playlist">Couldn\u2019t create playlist.</string>
|
||||
|
@ -168,6 +170,7 @@
|
|||
<string name="edit_synced_lyrics">Edit Synced Lyrics</string>
|
||||
<string name="empty">Empty</string>
|
||||
<string name="equalizer">Equalizer</string>
|
||||
<string name="expanded">Expanded</string>
|
||||
<string name="faq">FAQ</string>
|
||||
<string name="favorites">Favorites</string>
|
||||
<string name="finish_last_song">Finish last song</string>
|
||||
|
@ -533,5 +536,4 @@
|
|||
<string name="you_have_to_select_at_least_one_category">You have to select at least one category.</string>
|
||||
<string name="you_will_be_forwarded_to_the_issue_tracker_website">You will be forwarded to the issue tracker website.</string>
|
||||
<string name="your_account_data_is_only_used_for_authentication">Your account data is only used for authentication.</string>
|
||||
<string name="bug_report_success">Bug report successful</string>
|
||||
</resources>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue