From e68258a2fd6b351f9cdcd9676227f850c5566049 Mon Sep 17 00:00:00 2001 From: Hemanth S Date: Sun, 19 Jul 2020 20:09:04 +0530 Subject: [PATCH] Dialog code refactor with extensions --- .../retromusic/dialogs/AddToPlaylistDialog.kt | 41 +++++++++++++++---- .../dialogs/BlacklistFolderChooserDialog.java | 6 +-- .../dialogs/CreatePlaylistDialog.kt | 8 +--- .../dialogs/DeletePlaylistDialog.kt | 7 +--- .../retromusic/dialogs/DeleteSongsDialog.kt | 8 +--- .../dialogs/RemoveFromPlaylistDialog.kt | 8 +--- .../dialogs/RenamePlaylistDialog.kt | 8 +--- .../dialogs/RetroSingleCheckedListAdapter.kt | 13 ++++++ .../retromusic/dialogs/SleepTimerDialog.kt | 17 ++++---- .../retromusic/dialogs/SongDetailDialog.kt | 7 +--- .../retromusic/dialogs/SongShareDialog.kt | 7 +--- .../monkey/retromusic/extensions/ColorExt.kt | 13 ++---- .../retromusic/extensions/DialogExtension.kt | 22 ++++++++++ .../layout-land/activity_artist_details.xml | 1 - .../main/res/layout/dialog_file_details.xml | 1 + app/src/main/res/layout/dialog_list_item.xml | 13 ++++++ 16 files changed, 110 insertions(+), 70 deletions(-) create mode 100644 app/src/main/java/code/name/monkey/retromusic/dialogs/RetroSingleCheckedListAdapter.kt create mode 100644 app/src/main/java/code/name/monkey/retromusic/extensions/DialogExtension.kt create mode 100644 app/src/main/res/layout/dialog_list_item.xml diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index 346d5e31..c23f299c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -15,16 +15,22 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog +import android.graphics.Color import android.os.Bundle +import android.view.View +import android.view.ViewGroup +import android.widget.ArrayAdapter +import android.widget.TextView import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.loaders.PlaylistLoader import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.PlaylistsUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder + class AddToPlaylistDialog : DialogFragment() { @@ -32,17 +38,38 @@ class AddToPlaylistDialog : DialogFragment() { savedInstanceState: Bundle? ): Dialog { val playlists = PlaylistLoader.getAllPlaylists(requireContext()) - val playlistNames = mutableListOf() + val playlistNames = mutableListOf() playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist)) for (p in playlists) { playlistNames.add(p.name) } - - return MaterialAlertDialogBuilder( + val adapter: ArrayAdapter = object : ArrayAdapter( requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(R.string.add_playlist_title) + R.layout.dialog_list_item, + playlistNames + ) { + override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { + val view = super.getView(position, convertView, parent) + view.findViewById(android.R.id.text1).setTextColor(Color.RED) + return view + } + } + return materialDialog(R.string.add_playlist_title) + /*.setAdapter(adapter) { _, which -> + val songs = extraNotNull>(EXTRA_SONG).value + if (which == 0) { + CreatePlaylistDialog.create(songs) + .show(requireActivity().supportFragmentManager, "ADD_TO_PLAYLIST") + } else { + PlaylistsUtil.addToPlaylist( + requireContext(), + songs, + playlists[which - 1].id, + true + ) + } + dismiss() + }*/ .setItems(playlistNames.toTypedArray()) { _, which -> val songs = extraNotNull>(EXTRA_SONG).value if (which == 0) { diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.java b/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.java index a276db9c..49cc1e0e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.java +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.java @@ -71,9 +71,9 @@ public class BlacklistFolderChooserDialog extends DialogFragment implements Mate public Dialog onCreateDialog(Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ActivityCompat.checkSelfPermission( - getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) + requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - return new MaterialDialog.Builder(getActivity()) + return new MaterialDialog.Builder(requireActivity()) .title(R.string.md_error_label) .content(R.string.md_storage_perm_error) .positiveText(android.R.string.ok) @@ -89,7 +89,7 @@ public class BlacklistFolderChooserDialog extends DialogFragment implements Mate checkIfCanGoUp(); parentContents = listFiles(); MaterialDialog.Builder builder = - new MaterialDialog.Builder(getActivity()) + new MaterialDialog.Builder(requireActivity()) .title(parentFolder.getAbsolutePath()) .items((CharSequence[]) getContentsArray()) .itemsCallback(this) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt index 91709505..d4eeb9eb 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt @@ -25,9 +25,9 @@ import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.PlaylistsUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout import kotlinx.android.synthetic.main.dialog_playlist.view.* @@ -43,11 +43,7 @@ class CreatePlaylistDialog : DialogFragment() { val playlistContainer: TextInputLayout = view.actionNewPlaylistContainer MaterialUtil.setTint(playlistContainer, false) - return MaterialAlertDialogBuilder( - requireActivity(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(R.string.new_playlist_title) + return materialDialog(R.string.new_playlist_title) .setView(view) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton( diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt index a3f01f58..7a548de4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeletePlaylistDialog.kt @@ -22,9 +22,9 @@ import code.name.monkey.retromusic.EXTRA_PLAYLIST import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.Playlist import code.name.monkey.retromusic.util.PlaylistsUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder class DeletePlaylistDialog : DialogFragment() { @@ -47,10 +47,7 @@ class DeletePlaylistDialog : DialogFragment() { ) } - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) + return materialDialog(title) .setTitle(title) .setMessage(message) .setNegativeButton(android.R.string.cancel, null) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt index 6c751b97..c67605f6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/DeleteSongsDialog.kt @@ -25,11 +25,11 @@ import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.saf.SAFGuideActivity import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.SAFUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder class DeleteSongsDialog : DialogFragment() { @JvmField @@ -58,11 +58,7 @@ class DeleteSongsDialog : DialogFragment() { ) } - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(title) + return materialDialog(title) .setMessage(message) .setCancelable(false) .setNegativeButton(android.R.string.cancel, null) diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt index 74279284..dc193398 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt @@ -22,9 +22,9 @@ import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R.string import code.name.monkey.retromusic.extensions.colorButtons +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.PlaylistSong import code.name.monkey.retromusic.util.PlaylistsUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder class RemoveFromPlaylistDialog : DialogFragment() { @@ -52,11 +52,7 @@ class RemoveFromPlaylistDialog : DialogFragment() { } } - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(title) + return materialDialog(title) .setMessage(message) .setPositiveButton(R.string.remove_action) { _, _ -> PlaylistsUtil.removeFromPlaylist( diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt index 91951fa6..78912d2a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt @@ -24,8 +24,8 @@ import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons import code.name.monkey.retromusic.extensions.extraNotNull +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.util.PlaylistsUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout @@ -43,11 +43,7 @@ class RenamePlaylistDialog : DialogFragment() { layout.findViewById(R.id.actionNewPlaylistContainer) MaterialUtil.setTint(nameContainer, false) - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(R.string.rename_playlist_title) + return materialDialog(R.string.rename_playlist_title) .setView(layout) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.action_rename) { _, _ -> diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RetroSingleCheckedListAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RetroSingleCheckedListAdapter.kt new file mode 100644 index 00000000..c8fa03cd --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RetroSingleCheckedListAdapter.kt @@ -0,0 +1,13 @@ +package code.name.monkey.retromusic.dialogs + +import android.content.Context +import android.widget.ArrayAdapter +import code.name.monkey.retromusic.R + +class RetroSingleCheckedListAdapter( + context: Context, + resource: Int = R.layout.dialog_list_item, + objects: MutableList +) : ArrayAdapter(context, resource, objects) { + +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt index 5f7e72b1..466ec532 100755 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt @@ -32,6 +32,7 @@ import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.addAccentColor import code.name.monkey.retromusic.extensions.colorButtons +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.service.MusicService import code.name.monkey.retromusic.service.MusicService.ACTION_PENDING_QUIT @@ -39,13 +40,12 @@ import code.name.monkey.retromusic.service.MusicService.ACTION_QUIT import code.name.monkey.retromusic.util.PreferenceUtil import com.afollestad.materialdialogs.DialogAction import com.afollestad.materialdialogs.MaterialDialog -import com.google.android.material.dialog.MaterialAlertDialogBuilder class SleepTimerDialog : DialogFragment() { private var seekArcProgress: Int = 0 private lateinit var timerUpdater: TimerUpdater - private lateinit var materialDialog: MaterialDialog + private lateinit var dialog: MaterialDialog private lateinit var shouldFinishLastSong: CheckBox private lateinit var seekBar: SeekBar private lateinit var timerDisplay: TextView @@ -88,11 +88,7 @@ class SleepTimerDialog : DialogFragment() { PreferenceUtil.lastSleepTimerValue = seekArcProgress } }) - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ) - .setTitle(R.string.action_sleep_timer) + return materialDialog(R.string.action_sleep_timer) .setView(layout) .setPositiveButton(R.string.action_set) { _, _ -> PreferenceUtil.isSleepTimerFinishMusic = shouldFinishLastSong.isChecked @@ -134,6 +130,7 @@ class SleepTimerDialog : DialogFragment() { } .create() .colorButtons() + } private fun updateTimeDisplayTime() { @@ -154,10 +151,10 @@ class SleepTimerDialog : DialogFragment() { private fun updateCancelButton() { val musicService = MusicPlayerRemote.musicService if (musicService != null && musicService.pendingQuit) { - materialDialog.getActionButton(DialogAction.NEUTRAL).text = - materialDialog.context.getString(R.string.cancel_current_timer) + dialog.getActionButton(DialogAction.NEUTRAL).text = + dialog.context.getString(R.string.cancel_current_timer) } else { - materialDialog.getActionButton(DialogAction.NEUTRAL).text = null + dialog.getActionButton(DialogAction.NEUTRAL).text = null } } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt index 2ac82aff..d6228dc0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongDetailDialog.kt @@ -30,9 +30,9 @@ import androidx.fragment.app.DialogFragment import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.MusicUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder import org.jaudiotagger.audio.AudioFileIO import org.jaudiotagger.audio.exceptions.CannotReadException import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException @@ -151,10 +151,7 @@ class SongDetailDialog : DialogFragment() { ) } } - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ).setTitle(R.string.action_details) + return materialDialog(R.string.action_details) .setPositiveButton(android.R.string.ok, null) .setView(dialogView) .create() diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt index c85d7449..f3ee3d6c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SongShareDialog.kt @@ -22,9 +22,9 @@ import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.ShareInstagramStory import code.name.monkey.retromusic.extensions.colorButtons +import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.MusicUtil -import com.google.android.material.dialog.MaterialAlertDialogBuilder class SongShareDialog : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { @@ -35,10 +35,7 @@ class SongShareDialog : DialogFragment() { song?.title, song?.artistName ) - return MaterialAlertDialogBuilder( - requireContext(), - R.style.ThemeOverlay_MaterialComponents_Dialog_Alert - ).setTitle(R.string.what_do_you_want_to_share) + return materialDialog(R.string.what_do_you_want_to_share) .setItems( arrayOf( getString(R.string.the_audio_file), diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt index 00a55240..cf43e7d5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt @@ -18,16 +18,15 @@ import android.app.Dialog import android.content.Context import android.content.res.ColorStateList import android.graphics.Color +import android.widget.Button import android.widget.CheckBox import android.widget.SeekBar import androidx.annotation.AttrRes -import androidx.appcompat.app.AlertDialog import androidx.appcompat.widget.Toolbar import androidx.fragment.app.Fragment import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil -import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R fun Int.ripAlpha(): Int { @@ -81,12 +80,6 @@ fun SeekBar.addAccentColor() { thumbTintList = colorState } -fun AlertDialog.colorButtons(): AlertDialog { - setOnShowListener { - getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(ThemeStore.accentColor(App.getContext())) - getButton(AlertDialog.BUTTON_NEGATIVE).setTextColor(ThemeStore.accentColor(App.getContext())) - getButton(AlertDialog.BUTTON_NEUTRAL).setTextColor(ThemeStore.accentColor(App.getContext())) - - } - return this +fun Button.accentTextColor() { + setTextColor(ThemeStore.accentColor(context)) } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/DialogExtension.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/DialogExtension.kt new file mode 100644 index 00000000..d2c38310 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/DialogExtension.kt @@ -0,0 +1,22 @@ +package code.name.monkey.retromusic.extensions + +import androidx.appcompat.app.AlertDialog +import androidx.fragment.app.DialogFragment +import code.name.monkey.retromusic.R +import com.google.android.material.dialog.MaterialAlertDialogBuilder + +fun DialogFragment.materialDialog(title: Int): MaterialAlertDialogBuilder { + return MaterialAlertDialogBuilder( + requireContext(), + R.style.ThemeOverlay_MaterialComponents_Dialog_Alert + ).setTitle(title) +} + +fun AlertDialog.colorButtons(): AlertDialog { + setOnShowListener { + getButton(AlertDialog.BUTTON_POSITIVE).accentTextColor() + getButton(AlertDialog.BUTTON_NEGATIVE).accentTextColor() + getButton(AlertDialog.BUTTON_NEUTRAL).accentTextColor() + } + return this +} \ No newline at end of file diff --git a/app/src/main/res/layout-land/activity_artist_details.xml b/app/src/main/res/layout-land/activity_artist_details.xml index 85e50dda..df5bbd0d 100644 --- a/app/src/main/res/layout-land/activity_artist_details.xml +++ b/app/src/main/res/layout-land/activity_artist_details.xml @@ -48,7 +48,6 @@ android:layout_marginEnd="16dp" android:transitionName="@string/transition_artist_image" app:cardCornerRadius="24dp" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/container" app:layout_constraintHorizontal_bias="0.5" diff --git a/app/src/main/res/layout/dialog_file_details.xml b/app/src/main/res/layout/dialog_file_details.xml index a64ad9eb..c31152fe 100644 --- a/app/src/main/res/layout/dialog_file_details.xml +++ b/app/src/main/res/layout/dialog_file_details.xml @@ -12,6 +12,7 @@ android:layout_height="wrap_content" android:paddingStart="16dp" android:paddingEnd="16dp" + android:paddingTop="16dp" android:textAppearance="@style/TextViewNormal" android:textColor="?android:attr/textColorPrimary" android:textSize="16sp" /> diff --git a/app/src/main/res/layout/dialog_list_item.xml b/app/src/main/res/layout/dialog_list_item.xml new file mode 100644 index 00000000..d85a3eae --- /dev/null +++ b/app/src/main/res/layout/dialog_list_item.xml @@ -0,0 +1,13 @@ + + \ No newline at end of file