Java tutorial
/* * Copyright (C) 2014 Saravan Pantham * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.aniruddhc.acemusic.player.Dialogs; import android.app.AlertDialog; import android.database.Cursor; import android.database.MatrixCursor; import android.database.MergeCursor; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.graphics.Paint; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.View; import android.widget.EditText; import com.aniruddhc.acemusic.player.R; import com.aniruddhc.acemusic.player.AsyncTasks.AsyncCreateNewPlaylistTask; import com.aniruddhc.acemusic.player.AsyncTasks.AsyncAddSongsToPlaylistTask; import com.aniruddhc.acemusic.player.Helpers.TypefaceHelper; import com.aniruddhc.acemusic.player.DBHelpers.DBAccessHelper; public class AddToPlaylistDialog extends DialogFragment { private Context mContext; private String ADD_TYPE; private String ARTIST; private String ALBUM; private String ALBUM_ARTIST; private String SONG; private String GENRE; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { mContext = getActivity().getApplicationContext(); //Retrieve the arguments. ADD_TYPE = getArguments().getString("ADD_TYPE"); if (ADD_TYPE.equals("ARTIST")) { ARTIST = getArguments().getString("ARTIST"); } else if (ADD_TYPE.equals("ALBUM_ARTIST")) { ALBUM_ARTIST = getArguments().getString("ALBUM_ARTIST"); } else if (ADD_TYPE.equals("ALBUM")) { ARTIST = getArguments().getString("ARTIST"); ALBUM = getArguments().getString("ALBUM"); } else if (ADD_TYPE.equals("SONG")) { ARTIST = getArguments().getString("ARTIST"); ALBUM = getArguments().getString("ALBUM"); SONG = getArguments().getString("SONG"); } else if (ADD_TYPE.equals("GENRE")) { GENRE = getArguments().getString("GENRE"); } else if (ADD_TYPE.equals("ALBUM_BY_ALBUM_ARTIST")) { ALBUM = getArguments().getString("ALBUM"); ALBUM_ARTIST = getArguments().getString("ALBUM_ARTIST"); } AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); String columns[] = { DBAccessHelper.PLAYLIST_NAME, DBAccessHelper._ID, DBAccessHelper.PLAYLIST_FILE_PATH, DBAccessHelper.PLAYLIST_SOURCE, DBAccessHelper.PLAYLIST_ID }; MatrixCursor matrixCursor = new MatrixCursor(columns); matrixCursor.addRow( new String[] { getActivity().getResources().getString(R.string.new_playlist), "0", "0", "0", "0" }); DBAccessHelper playlistsDBHelper = new DBAccessHelper(getActivity().getApplicationContext()); Cursor userPlaylistsCursor = playlistsDBHelper.getAllSongsInAlbum(null, null); final MergeCursor mergeCursor = new MergeCursor(new Cursor[] { matrixCursor, userPlaylistsCursor }); //Set the dialog title. builder.setTitle(R.string.add_to_playlist); builder.setCursor(mergeCursor, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Index 0 is the dummy playlist that will open the "New Playlist" dialog. if (which == 0) { showNewPlaylistDialog(); } else { mergeCursor.moveToPosition(which); String playlistName = mergeCursor .getString(mergeCursor.getColumnIndex(DBAccessHelper.PLAYLIST_NAME)); String playlistId = mergeCursor .getString(mergeCursor.getColumnIndex(DBAccessHelper.PLAYLIST_ID)); AsyncAddSongsToPlaylistTask task = new AsyncAddSongsToPlaylistTask(mContext, playlistName, playlistId, ARTIST, ALBUM, SONG, GENRE, ALBUM_ARTIST, ADD_TYPE); task.execute(); } } }, DBAccessHelper.PLAYLIST_NAME); return builder.create(); } //Displays the "Add New Playlist" dialog. public void showNewPlaylistDialog() { View dialogView = getActivity().getLayoutInflater().inflate(R.layout.add_new_playlist_dialog_layout, null); final EditText newPlaylistEditText = (EditText) dialogView.findViewById(R.id.new_playlist_name_text_field); newPlaylistEditText.setTypeface(TypefaceHelper.getTypeface(getActivity(), "RobotoCondensed-Light")); newPlaylistEditText.setPaintFlags( newPlaylistEditText.getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.new_playlist); builder.setView(dialogView); builder.setPositiveButton(R.string.ok, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Retrieve the name of the new playlist. String playlistName = newPlaylistEditText.getText().toString(); AsyncCreateNewPlaylistTask task = new AsyncCreateNewPlaylistTask(mContext, playlistName, ARTIST, ALBUM, SONG, GENRE, ALBUM_ARTIST, ADD_TYPE); task.execute(); dialog.dismiss(); } }); builder.setNegativeButton(R.string.cancel, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } }