com.aniruddhc.acemusic.player.Dialogs.AddMusicLibraryDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.aniruddhc.acemusic.player.Dialogs.AddMusicLibraryDialog.java

Source

/*
 * 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 java.util.ArrayList;
import java.util.Arrays;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;

import com.aniruddhc.acemusic.player.R;
import com.aniruddhc.acemusic.player.Helpers.TypefaceHelper;
import com.aniruddhc.acemusic.player.MusicLibraryEditorActivity.LibraryLabelsAdapter;
import com.aniruddhc.acemusic.player.MusicLibraryEditorActivity.MusicLibraryEditorActivity;

public class AddMusicLibraryDialog extends DialogFragment {

    private String libraryLabelID;

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        libraryLabelID = "circle_blue_dark";
        View rootView = getActivity().getLayoutInflater().inflate(R.layout.dialog_add_music_library, null);
        TextView instructions = (TextView) rootView.findViewById(R.id.add_music_library_instructions);
        instructions.setTypeface(TypefaceHelper.getTypeface(getActivity(), "RobotoCondensed-Light"));
        instructions.setPaintFlags(instructions.getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG);

        final ImageButton labelButton = (ImageButton) rootView.findViewById(R.id.add_music_library_label_button);
        final EditText musicLibraryName = (EditText) rootView.findViewById(R.id.add_music_library_text_field);
        musicLibraryName.setTypeface(TypefaceHelper.getTypeface(getActivity(), "RobotoCondensed-Light"));
        musicLibraryName
                .setPaintFlags(musicLibraryName.getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG);

        labelButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                //Create a new array with a list of all the library labels.
                final Drawable[] labelsArray = {
                        getActivity().getResources().getDrawable(R.drawable.circle_blue_dark),
                        getActivity().getResources().getDrawable(R.drawable.circle_blue_light),
                        getActivity().getResources().getDrawable(R.drawable.circle_green_dark),
                        getActivity().getResources().getDrawable(R.drawable.circle_green_light),
                        getActivity().getResources().getDrawable(R.drawable.circle_purple_dark),
                        getActivity().getResources().getDrawable(R.drawable.circle_purple_light),
                        getActivity().getResources().getDrawable(R.drawable.circle_red_dark),
                        getActivity().getResources().getDrawable(R.drawable.circle_red_light),
                        getActivity().getResources().getDrawable(R.drawable.circle_yellow_dark),
                        getActivity().getResources().getDrawable(R.drawable.circle_yellow_light) };

                //Create a new array with a list of all the library labels.
                final String[] labelsIdsArray = { "circle_blue_dark", "circle_blue_light", "circle_green_dark",
                        "circle_green_light", "circle_purple_dark", "circle_purple_light", "circle_red_dark",
                        "circle_red_light", "circle_yellow_dark", "circle_yellow_light" };

                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle(R.string.music_library_label);
                ArrayList<String> labelTitles = new ArrayList<String>();
                labelTitles
                        .addAll(Arrays.asList(getActivity().getResources().getStringArray(R.array.library_labels)));
                builder.setAdapter(new LibraryLabelsAdapter(getActivity(), labelTitles), new OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        libraryLabelID = labelsIdsArray[which];
                        labelButton.setImageDrawable(labelsArray[which]);

                    }

                });

                builder.create().show();

            }

        });

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        //Set the dialog title.
        builder.setTitle(R.string.add_music_library);
        builder.setView(rootView);
        builder.setPositiveButton(R.string.ok, new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int arg1) {
                String libraryName = musicLibraryName.getText().toString();

                Intent intent = new Intent(getActivity(), MusicLibraryEditorActivity.class);
                Bundle bundle = new Bundle();
                bundle.putString("LIBRARY_NAME", libraryName);
                bundle.putString("LIBRARY_ICON", libraryLabelID);
                intent.putExtras(bundle);
                startActivity(intent);

                dialog.dismiss();
                getActivity().finish();

            }

        });

        builder.setNegativeButton(R.string.cancel, new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int arg1) {
                dialog.dismiss();
                getActivity().finish();

            }

        });

        return builder.create();
    }

    @Override
    public void onPause() {
        super.onPause();
        getActivity().finish();

    }

}