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.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.widget.Toast; import com.aniruddhc.acemusic.player.R; /********************************************************* * Allows the user to select where they want to load album * art images from. * * @author Saravan Pantham *********************************************************/ public class AlbumArtSourceDialog extends DialogFragment { private Context mContext; private AlbumArtSourceDialog dialog; private SharedPreferences sharedPreferences; private int userSelection = 0; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { mContext = getActivity().getApplicationContext(); dialog = this; sharedPreferences = mContext.getSharedPreferences("com.aniruddhc.acemusic.player", Context.MODE_PRIVATE); String[] albumArtSources = getActivity().getResources().getStringArray(R.array.album_art_sources); //Check which frequency is currently selected and set the appropriate flag. if (sharedPreferences.getInt("ALBUM_ART_SOURCE", 0) == 0) { userSelection = 0; } else if (sharedPreferences.getInt("ALBUM_ART_SOURCE", 0) == 1) { userSelection = 1; } else if (sharedPreferences.getInt("ALBUM_ART_SOURCE", 0) == 2) { userSelection = 2; } else if (sharedPreferences.getInt("ALBUM_ART_SOURCE", 0) == 3) { userSelection = 3; } AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle(R.string.album_art_sources); builder.setSingleChoiceItems(albumArtSources, userSelection, new OnClickListener() { @Override public void onClick(DialogInterface arg0, int which) { //Update the SharedPreferences entry based on the user's selection. if (which == 0) { //"Prefer embedded art" sharedPreferences.edit().putInt("ALBUM_ART_SOURCE", 0).commit(); } else if (which == 1) { //"Prefer folder art" sharedPreferences.edit().putInt("ALBUM_ART_SOURCE", 1).commit(); } else if (which == 2) { //"Use embedded art only" sharedPreferences.edit().putInt("ALBUM_ART_SOURCE", 2).commit(); } else if (which == 3) { //"User folder art only" sharedPreferences.edit().putInt("ALBUM_ART_SOURCE", 3).commit(); } //Rescan for album art. //Seting the "RESCAN_ALBUM_ART" flag to true will force MainActivity to rescan the folders. sharedPreferences.edit().putBoolean("RESCAN_ALBUM_ART", true).commit(); //Restart the app. final Intent i = getActivity().getBaseContext().getPackageManager() .getLaunchIntentForPackage(getActivity().getBaseContext().getPackageName()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); getActivity().finish(); startActivity(i); dialog.dismiss(); getActivity().finish(); Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_LONG).show(); } }); return builder.create(); } @Override public void onDestroy() { super.onDestroy(); getActivity().finish(); } }