Search in sources :

Example 1 with AsyncGoogleMusicAuthenticationTask

use of com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask in project JamsMusicPlayer by psaravan.

the class SettingsActivity____ method onCreate.

@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
    //Context.
    mContext = this;
    mSettingsActivity = this;
    mApp = (Common) mContext.getApplicationContext();
    //Initialize SharedPreferences.
    sharedPreferences = this.getSharedPreferences("com.jams.music.player", Context.MODE_PRIVATE);
    //Set the UI theme.
    if (mApp.getCurrentTheme() == Common.DARK_THEME) {
        this.setTheme(R.style.AppThemeNoActionBar);
    } else {
        this.setTheme(R.style.AppThemeNoActionBarLight);
    }
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);
    preferenceManager = this.getPreferenceManager();
    //Retrieve the preferences based on their unique keys.
    upgradePreference = preferenceManager.findPreference("preference_key_upgrade");
    appThemePreference = preferenceManager.findPreference("preference_key_app_theme");
    playerColorSchemePreference = preferenceManager.findPreference("preference_key_player_color_scheme");
    trackChangeAnimationPreference = preferenceManager.findPreference("preference_key_track_change_animation");
    defaultScreenPreference = preferenceManager.findPreference("preference_key_startup_screen");
    artistsLayoutPreference = preferenceManager.findPreference("preference_key_artists_layout");
    albumArtistsLayoutPreference = preferenceManager.findPreference("preference_key_album_artists_layout");
    albumsLayoutPreference = preferenceManager.findPreference("preference_key_albums_layout");
    lockscreenControlsPreference = preferenceManager.findPreference("preference_key_lockscreen_controls");
    albumArtStylePreference = preferenceManager.findPreference("preference_key_album_art_style");
    albumArtSourcesPreference = preferenceManager.findPreference("preference_key_album_art_sources");
    albumArtScanDownloadPreference = preferenceManager.findPreference("preference_key_scan_download_album_art");
    chooseGooglePlayMusicAccountPreference = preferenceManager.findPreference("preference_key_google_play_music_account");
    getPinnedSongsPreference = preferenceManager.findPreference("preference_key_get_pinned_songs");
    defaultFolderPreference = preferenceManager.findPreference("preference_key_default_folder");
    addMusicLibraryPreference = preferenceManager.findPreference("preference_key_add_music_library");
    editMusicLibraryPreference = preferenceManager.findPreference("preference_key_edit_music_library");
    deleteMusicLibraryPreference = preferenceManager.findPreference("preference_key_delete_music_library");
    selectFoldersPreference = preferenceManager.findPreference("preference_key_select_folders");
    rescanFoldersPreference = preferenceManager.findPreference("preference_key_rescan_folders");
    scanFrequencyPreference = preferenceManager.findPreference("preference_key_scan_frequency");
    blacklistManagerPreference = preferenceManager.findPreference("preference_key_blacklist_manager");
    unblacklistAllPreference = preferenceManager.findPreference("preference_key_unblacklist_all");
    scrobblingPreference = preferenceManager.findPreference("preference_key_scrobbling");
    headphonesUnplugActionPreference = preferenceManager.findPreference("preference_key_headphones_unplug_action");
    crossfadeTracksPreference = preferenceManager.findPreference("preference_key_crossfade_tracks");
    crossfadeTracksDurationPreference = preferenceManager.findPreference("preference_key_crossfade_tracks_duration");
    equalizerPreference = preferenceManager.findPreference("preference_key_equalizer_toggle");
    licensesPreference = preferenceManager.findPreference("preference_key_licenses");
    contactUsPreference = preferenceManager.findPreference("preference_key_contact_us");
    //Set the preference icons.
    upgradePreference.setIcon(UIElementsHelper.getIcon(mContext, "checkmark"));
    appThemePreference.setIcon(UIElementsHelper.getIcon(mContext, "color_palette"));
    playerColorSchemePreference.setIcon(UIElementsHelper.getIcon(mContext, "color_palette_play"));
    trackChangeAnimationPreference.setIcon(UIElementsHelper.getIcon(mContext, "customize_screens"));
    defaultScreenPreference.setIcon(UIElementsHelper.getIcon(mContext, "default_screen"));
    artistsLayoutPreference.setIcon(UIElementsHelper.getIcon(mContext, "mic"));
    albumArtistsLayoutPreference.setIcon(UIElementsHelper.getIcon(mContext, "album_artists"));
    albumsLayoutPreference.setIcon(UIElementsHelper.getIcon(mContext, "albums"));
    lockscreenControlsPreference.setIcon(UIElementsHelper.getIcon(mContext, "lockscreen_controls"));
    getPinnedSongsPreference.setIcon(UIElementsHelper.getIcon(mContext, "pin_settings"));
    chooseGooglePlayMusicAccountPreference.setIcon(UIElementsHelper.getIcon(mContext, "accounts"));
    addMusicLibraryPreference.setIcon(UIElementsHelper.getIcon(mContext, "add_new_library"));
    editMusicLibraryPreference.setIcon(UIElementsHelper.getIcon(mContext, "edit_library"));
    deleteMusicLibraryPreference.setIcon(UIElementsHelper.getIcon(mContext, "delete_library"));
    albumArtStylePreference.setIcon(UIElementsHelper.getIcon(mContext, "cover_art_icon"));
    albumArtSourcesPreference.setIcon(UIElementsHelper.getIcon(mContext, "album_art_source"));
    albumArtScanDownloadPreference.setIcon(UIElementsHelper.getIcon(mContext, "auto_cover_fetch"));
    defaultFolderPreference.setIcon(UIElementsHelper.getIcon(mContext, "folders_settings"));
    selectFoldersPreference.setIcon(UIElementsHelper.getIcon(mContext, "folders_settings"));
    rescanFoldersPreference.setIcon(UIElementsHelper.getIcon(mContext, "rescan"));
    scanFrequencyPreference.setIcon(UIElementsHelper.getIcon(mContext, "scan_frequency"));
    blacklistManagerPreference.setIcon(UIElementsHelper.getIcon(mContext, "manage_blacklists"));
    unblacklistAllPreference.setIcon(UIElementsHelper.getIcon(mContext, "unblacklist_all"));
    scrobblingPreference.setIcon(UIElementsHelper.getIcon(mContext, "scrobbling"));
    headphonesUnplugActionPreference.setIcon(UIElementsHelper.getIcon(mContext, "headphones"));
    crossfadeTracksPreference.setIcon(UIElementsHelper.getIcon(mContext, "crossfade_tracks"));
    crossfadeTracksDurationPreference.setIcon(UIElementsHelper.getIcon(mContext, "crossfade_tracks_duration"));
    equalizerPreference.setIcon(UIElementsHelper.getIcon(mContext, "equalizer_settings"));
    licensesPreference.setIcon(UIElementsHelper.getIcon(mContext, "licenses"));
    contactUsPreference.setIcon(UIElementsHelper.getIcon(mContext, "contact_us"));
    if (sharedPreferences.getBoolean("TRIAL", true) == false) {
        PreferenceScreen screen = getPreferenceScreen();
        PreferenceCategory upgradePrefCategory = (PreferenceCategory) preferenceManager.findPreference("upgrade_pref_category");
        screen.removePreference(upgradePrefCategory);
    }
    upgradePreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //initInAppBilling();
            Intent intent = new Intent(mContext, com.jams.music.player.LauncherActivity.LauncherActivity.class);
            intent.putExtra("UPGRADE", true);
            startActivity(intent);
            finish();
            return false;
        }
    });
    //Set click listeners on each preference.
    appThemePreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 0);
            startActivity(intent);
            return false;
        }
    });
    playerColorSchemePreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 1);
            startActivity(intent);
            return false;
        }
    });
    trackChangeAnimationPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            int selectedIndex = sharedPreferences.getInt("TRACK_CHANGE_ANIMATION", 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.track_change_animation);
            View layoutView = mSettingsActivity.getLayoutInflater().inflate(R.layout.generic_message_listview_dialog_layout, null);
            TextView message = (TextView) layoutView.findViewById(R.id.generic_message);
            ListView listView = (ListView) layoutView.findViewById(R.id.generic_listview);
            message.setTypeface(TypefaceHelper.getTypeface(mContext, "RobotoCondensed-Light"));
            message.setPaintFlags(message.getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG);
            message.setText(R.string.track_change_animation_info);
            String[] values = { mSettingsActivity.getResources().getString(R.string.slide_away), mSettingsActivity.getResources().getString(R.string.zoom_out_and_slide_away), mSettingsActivity.getResources().getString(R.string.depth_transformer) };
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(mSettingsActivity, android.R.layout.simple_list_item_single_choice, android.R.id.text1, values);
            listView.setAdapter(adapter);
            listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
            listView.setItemChecked(selectedIndex, true);
            listView.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int which, long arg3) {
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                    sharedPreferences.edit().putInt("TRACK_CHANGE_ANIMATION", which).commit();
                    mTrackChangeAnimationDialog.dismiss();
                }
            });
            builder.setView(layoutView);
            mTrackChangeAnimationDialog = builder.create();
            mTrackChangeAnimationDialog.show();
            return false;
        }
    });
    defaultScreenPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //Get the current preference.
            int currentPreference = sharedPreferences.getInt("STARTUP_SCREEN", 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            //builder.setTitle(R.string.startup_screen);
            builder.setSingleChoiceItems(R.array.startup_screen_items, currentPreference, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    sharedPreferences.edit().putInt("STARTUP_SCREEN", which).commit();
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    artistsLayoutPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //Get the current preference.
            int currentPreference = sharedPreferences.getInt("ARTISTS_LAYOUT_PREF", 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.artists_layout);
            builder.setSingleChoiceItems(R.array.layout_preference_items, currentPreference, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    sharedPreferences.edit().putInt("ARTISTS_LAYOUT_PREF", which).commit();
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    albumArtistsLayoutPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //Get the current preference.
            int currentPreference = sharedPreferences.getInt("ALBUM_ARTISTS_LAYOUT_PREF", 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.album_artists_layout);
            builder.setSingleChoiceItems(R.array.layout_preference_items, currentPreference, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    sharedPreferences.edit().putInt("ALBUM_ARTISTS_LAYOUT_PREF", which).commit();
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    albumsLayoutPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //Get the current preference.
            int currentPreference = sharedPreferences.getInt("ALBUMS_LAYOUT_PREF", 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.albums_layout);
            builder.setSingleChoiceItems(R.array.layout_preference_items, currentPreference, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    sharedPreferences.edit().putInt("ALBUMS_LAYOUT_PREF", which).commit();
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    lockscreenControlsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            //Get the current preference.
            int currentPreference = sharedPreferences.getInt(Common.SHOW_LOCKSCREEN_CONTROLS, 0);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            //builder.setTitle(R.string.lockscreen_controls);
            builder.setSingleChoiceItems(R.array.enable_disable, currentPreference, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    sharedPreferences.edit().putInt(Common.SHOW_LOCKSCREEN_CONTROLS, which).commit();
                    dialog.dismiss();
                    //Enable/disable the lockscreen controls for this session.
                    try {
                        if (which == 0) {
                            Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                            if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true) {
                                mApp.getService().initRemoteControlClient();
                                mApp.getService().updateRemoteControlClients(mApp.getService().getCurrentSong());
                            }
                        } else if (which == 1) {
                            if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true) {
                                Toast.makeText(mContext, R.string.lockscreen_controls_disabled_next_run, Toast.LENGTH_LONG).show();
                            } else {
                                Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                            }
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
            builder.create().show();
            return false;
        }
    });
    defaultFolderPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.default_folder_for_folders_view);
            builder.setMessage(R.string.default_folder_for_folders_view_info);
            builder.setPositiveButton(R.string.ok, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            builder.create().show();
            return false;
        }
    });
    chooseGooglePlayMusicAccountPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            final AccountManager accountManager = AccountManager.get(mContext);
            final Account[] accounts = accountManager.getAccounts();
            final int size = accounts.length;
            final String[] accountNames = new String[size + 1];
            accountNames[0] = "Don't use Google Play Music";
            //Create a new array with a list of all account names on the device.
            for (int i = 0; i < accounts.length; i++) {
                accountNames[i + 1] = accounts[i].name;
            }
            //Get the current account name (if it exists) and get the index of the account name.
            String currentAccountName = sharedPreferences.getString("GOOGLE_PLAY_MUSIC_ACCOUNT", "");
            int accountIndex = -1;
            if (!currentAccountName.isEmpty()) {
                for (int i = 0; i < accounts.length; i++) {
                    if (currentAccountName.equals(accountNames[i + 1])) {
                        accountIndex = i + 1;
                    }
                }
            } else {
                accountIndex = 0;
            }
            //Display a list of all accounts that are currently on the device.
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.select_google_account);
            builder.setSingleChoiceItems(accountNames, accountIndex, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int position) {
                    if (position != 0) {
                        //Start the sign-in process.
                        Toast.makeText(mContext, R.string.signing_in_dot_dot_dot, Toast.LENGTH_SHORT).show();
                        sharedPreferences.edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", accountNames[position]).commit();
                        AsyncGoogleMusicAuthenticationTask task = new AsyncGoogleMusicAuthenticationTask(mContext.getApplicationContext(), mSettingsActivity, false, accountNames[position]);
                        task.execute();
                    } else {
                        Toast.makeText(mContext, R.string.google_play_music_disabled, Toast.LENGTH_SHORT).show();
                        sharedPreferences.edit().putBoolean("GOOGLE_PLAY_MUSIC_ENABLED", false).commit();
                        sharedPreferences.edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", "").commit();
                        //Restart the app.
                        final Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
                        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                        finish();
                        startActivity(i);
                    }
                    dialog.dismiss();
                }
            });
            AlertDialog dialog = builder.create();
            dialog.show();
            return false;
        }
    });
    getPinnedSongsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            mApp.queueSongsToPin(true, false, null);
            return false;
        }
    });
    addMusicLibraryPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 13);
            startActivity(intent);
            return false;
        }
    });
    editMusicLibraryPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 14);
            intent.putExtra("OPERATION", "EDIT");
            startActivity(intent);
            return false;
        }
    });
    deleteMusicLibraryPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 14);
            intent.putExtra("OPERATION", "DELETE");
            startActivity(intent);
            return false;
        }
    });
    albumArtStylePreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 3);
            startActivity(intent);
            return false;
        }
    });
    albumArtSourcesPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 4);
            startActivity(intent);
            return false;
        }
    });
    albumArtScanDownloadPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            //Start the service that will download album art.
            mContext.startService(new Intent(mContext, AutoFetchAlbumArtService.class));
            return false;
        }
    });
    selectFoldersPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 5);
            startActivity(intent);
            return false;
        }
    });
    rescanFoldersPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            //Seting the "REBUILD_LIBRARY" flag to true will force MainActivity to rescan the folders.
            sharedPreferences.edit().putBoolean("REBUILD_LIBRARY", true).commit();
            //Restart the app.
            final Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
            i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            finish();
            startActivity(i);
            return false;
        }
    });
    scanFrequencyPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 7);
            startActivity(intent);
            return false;
        }
    });
    blacklistManagerPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            /*				Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
				intent.putExtra("INDEX", 8);
				startActivity(intent);*/
            /*String[] blacklistManagerChoices = { mContext.getResources().getString(R.string.manage_blacklisted_artists),
						 							 mContext.getResources().getString(R.string.manage_blacklisted_albums), 
						 							 mContext.getResources().getString(R.string.manage_blacklisted_songs), 
						 							 mContext.getResources().getString(R.string.manage_blacklisted_playlists) };
				
				AlertDialog.Builder builder = new AlertDialog.Builder(mContext);

		        //Set the dialog title.
		        builder.setTitle(R.string.blacklist_manager);
		        builder.setItems(blacklistManagerChoices, new OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						Bundle bundle = new Bundle();
						
						if (which==0) {
							bundle.putString("MANAGER_TYPE", "ARTISTS");
						} else if (which==1) {
							bundle.putString("MANAGER_TYPE", "ALBUMS");
						} else if (which==2) {
							bundle.putString("MANAGER_TYPE", "SONGS");
						} else if (which==3) {
							bundle.putString("MANAGER_TYPE", "PLAYLISTS");
						}
						
						dialog.dismiss();
						Intent intent = new Intent(mContext, BlacklistManagerActivity.class);
						intent.putExtras(bundle);
						startActivity(intent);
						
					}
		        	
		        });
		        
		        builder.create().show();*/
            Intent intent = new Intent(mContext, BlacklistManagerActivity.class);
            startActivity(intent);
            return false;
        }
    });
    unblacklistAllPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            AsyncUnblacklistAllSongsTask task = new AsyncUnblacklistAllSongsTask();
            task.execute();
            return false;
        }
    });
    /*    	bluetoothControlsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

			@Override
			public boolean onPreferenceClick(Preference arg0) {
				// TODO Auto-generated method stub
				return false;
			}
    		
    	});
    	
    	headphonesUnplugActionPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

			@Override
			public boolean onPreferenceClick(Preference arg0) {
				// TODO Auto-generated method stub
				return false;
			}
    		
    	});*/
    scrobblingPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            int currentSelection = 0;
            if (sharedPreferences.getInt("SCROBBLING", 0) == 0) {
                currentSelection = 0;
            } else if (sharedPreferences.getInt("SCROBBLING", 0) == 1) {
                currentSelection = 1;
            } else if (sharedPreferences.getInt("SCROBBLING", 0) == 2) {
                currentSelection = 2;
            }
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.scrobbling);
            builder.setSingleChoiceItems(R.array.scrobbling_options, currentSelection, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                    sharedPreferences.edit().putInt("SCROBBLING", which).commit();
                }
            });
            builder.create().show();
            return false;
        }
    });
    headphonesUnplugActionPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            //Get the current selection.
            int currentSelection;
            if (sharedPreferences.getString("UNPLUG_ACTION", "DO_NOTHING").equals("DO_NOTHING")) {
                currentSelection = 0;
            } else {
                currentSelection = 1;
            }
            String[] unplugActionsArray = mContext.getResources().getStringArray(R.array.headphones_unplug_actions);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.headphones_unplug_action);
            builder.setSingleChoiceItems(unplugActionsArray, currentSelection, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                    if (which == 0) {
                        sharedPreferences.edit().putString("UNPLUG_ACTION", "DO_NOTHING").commit();
                        if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true) {
                            mApp.getService().unregisterReceiver(mApp.getService().getHeadsetPlugReceiver());
                        }
                    } else {
                        sharedPreferences.edit().putString("UNPLUG_ACTION", "PAUSE_MUSIC_PLAYBACK").commit();
                        if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true) {
                            mApp.getService().registerHeadsetPlugReceiver();
                        }
                    }
                }
            });
            builder.create().show();
            return false;
        }
    });
    crossfadeTracksPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            int currentSelection;
            if (sharedPreferences.getBoolean(Common.CROSSFADE_ENABLED, false) == true) {
                currentSelection = 0;
            } else {
                currentSelection = 1;
            }
            String[] enableDisableArray = mContext.getResources().getStringArray(R.array.enable_disable);
            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
            builder.setTitle(R.string.crossfade_tracks);
            builder.setSingleChoiceItems(enableDisableArray, currentSelection, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                    if (which == 0) {
                        sharedPreferences.edit().putBoolean(Common.CROSSFADE_ENABLED, true).commit();
                        //Enable crossfade for the current queue.
                        if (mApp.isServiceRunning() && mApp.getService().getHandler() != null) {
                            mApp.getService().getHandler().post(mApp.getService().startCrossFadeRunnable);
                        }
                    } else {
                        sharedPreferences.edit().putBoolean(Common.CROSSFADE_ENABLED, false).commit();
                        //Disable crossfade for the current queue.
                        if (mApp.isServiceRunning() && mApp.getService().getHandler() != null) {
                            mApp.getService().getHandler().removeCallbacks(mApp.getService().startCrossFadeRunnable);
                            mApp.getService().getHandler().removeCallbacks(mApp.getService().crossFadeRunnable);
                        }
                    }
                }
            });
            builder.create().show();
            return false;
        }
    });
    crossfadeTracksDurationPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            AlertDialog.Builder builder = new AlertDialog.Builder(mSettingsActivity);
            builder.setTitle(R.string.crossfade_duration);
            RelativeLayout dialogView = (RelativeLayout) mSettingsActivity.getLayoutInflater().inflate(R.layout.dialog_crossfade_duration, null);
            final TextView durationText = (TextView) dialogView.findViewById(R.id.crossfade_duration_text);
            final SeekBar durationSeekBar = (SeekBar) dialogView.findViewById(R.id.crossfade_duration_seekbar);
            int currentSeekBarDuration = sharedPreferences.getInt(Common.CROSSFADE_DURATION, 5);
            durationSeekBar.setMax(14);
            durationSeekBar.setProgress(currentSeekBarDuration);
            durationText.setText(currentSeekBarDuration + " secs");
            durationSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    sharedPreferences.edit().putInt(Common.CROSSFADE_DURATION, (progress + 1)).commit();
                    durationText.setText((progress + 1) + " secs");
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
                }
            });
            builder.setView(dialogView);
            builder.setPositiveButton(R.string.ok, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int arg1) {
                    dialog.dismiss();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    equalizerPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            boolean currentSetting = sharedPreferences.getBoolean("EQUALIZER_ENABLED", true);
            int intCurrentSetting = -1;
            if (currentSetting == true)
                intCurrentSetting = 0;
            else
                intCurrentSetting = 1;
            AlertDialog.Builder builder = new AlertDialog.Builder(mSettingsActivity);
            builder.setTitle(R.string.equalizer);
            builder.setSingleChoiceItems(R.array.enable_disable, intCurrentSetting, new OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    boolean isEnabled;
                    if (which == 0)
                        isEnabled = true;
                    else
                        isEnabled = false;
                    sharedPreferences.edit().putBoolean("EQUALIZER_ENABLED", isEnabled).commit();
                    Toast.makeText(mContext, R.string.changes_saved, Toast.LENGTH_SHORT).show();
                    if (Build.PRODUCT.contains("HTC") && which == 0) {
                        showHTCEqualizerIssueDialog();
                    }
                    if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true && which == 0) {
                        mApp.getService().initAudioFX();
                    } else if (sharedPreferences.getBoolean("SERVICE_RUNNING", false) == true && which == 1) {
                        try {
                            mApp.getService().getEqualizerHelper().releaseEQObjects();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                    dialog.dismiss();
                }

                private void showHTCEqualizerIssueDialog() {
                    AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
                    builder.setTitle(R.string.htc_devices);
                    builder.setMessage(R.string.htc_devices_equalizer_issue);
                    builder.setPositiveButton(R.string.ok, new OnClickListener() {

                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.dismiss();
                        }
                    });
                    builder.create().show();
                }
            });
            builder.create().show();
            return false;
        }
    });
    licensesPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent intent = new Intent(mContext, PreferenceDialogLauncherActivity.class);
            intent.putExtra("INDEX", 12);
            startActivity(intent);
            return false;
        }
    });
    contactUsPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference arg0) {
            Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "jamsmusicplayer@gmail.com", null));
            emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Jams Music Player Support");
            startActivity(Intent.createChooser(emailIntent, "Send email"));
            return false;
        }
    });
}
Also used : AlertDialog(android.app.AlertDialog) PreferenceScreen(android.preference.PreferenceScreen) DialogInterface(android.content.DialogInterface) AsyncGoogleMusicAuthenticationTask(com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask) OnSeekBarChangeListener(android.widget.SeekBar.OnSeekBarChangeListener) OnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener) ListView(android.widget.ListView) TextView(android.widget.TextView) OnItemClickListener(android.widget.AdapterView.OnItemClickListener) SeekBar(android.widget.SeekBar) Intent(android.content.Intent) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) Paint(android.graphics.Paint) BlacklistManagerActivity(com.jams.music.player.BlacklistManagerActivity.BlacklistManagerActivity) PreferenceCategory(android.preference.PreferenceCategory) Preference(android.preference.Preference) RelativeLayout(android.widget.RelativeLayout) OnClickListener(android.content.DialogInterface.OnClickListener) AdapterView(android.widget.AdapterView) AccountManager(android.accounts.AccountManager) ArrayAdapter(android.widget.ArrayAdapter)

Example 2 with AsyncGoogleMusicAuthenticationTask

use of com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask in project JamsMusicPlayer by psaravan.

the class GooglePlayMusicFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mContext = getActivity().getApplicationContext();
    mApp = (Common) mContext;
    View rootView = (View) inflater.inflate(R.layout.fragment_welcome_screen_5, null);
    welcomeHeader = (TextView) rootView.findViewById(R.id.welcome_header);
    welcomeHeader.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Light"));
    welcomeText1 = (TextView) rootView.findViewById(R.id.welcome_text_1);
    welcomeText1.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Regular"));
    googlePlayMusicDisclaimer = (TextView) rootView.findViewById(R.id.google_play_music_disclaimer);
    googlePlayMusicDisclaimer.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Regular"));
    radioGroup = (RadioGroup) rootView.findViewById(R.id.google_play_music_radio_group);
    final AccountManager accountManager = AccountManager.get(getActivity().getApplicationContext());
    final Account[] accounts = accountManager.getAccountsByType("com.google");
    //We're adding 1 here to account (no pun intended) for the extra "Don't use Google Play Music" option.
    final int size = accounts.length + 1;
    final RadioButton[] radioButton = new RadioButton[size];
    //Add a new radio button the group for each username.
    for (int i = 0; i < size; i++) {
        radioButton[i] = new RadioButton(getActivity());
        radioGroup.addView(radioButton[i]);
        //The first radio button will always be "Don't use Google Play Music".
        if (i == 0) {
            radioButton[i].setChecked(true);
            radioButton[i].setText(R.string.dont_use_google_play_music);
        } else {
            radioButton[i].setText(accounts[i - 1].name);
        }
        radioButton[i].setTag(i);
        radioButton[i].setTypeface(TypefaceHelper.getTypeface(mContext, "Roboto-Regular"));
    }
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            int radioButtonID = group.getCheckedRadioButtonId();
            View radioButton = group.findViewById(radioButtonID);
            int index = group.indexOfChild(radioButton);
            if (index != 0) {
                account = accounts[index - 1];
                mApp.getSharedPreferences().edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", account.name).commit();
                AsyncGoogleMusicAuthenticationTask task = new AsyncGoogleMusicAuthenticationTask(mContext, getActivity(), true, account.name);
                task.execute();
            } else {
                mApp.getSharedPreferences().edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", "").commit();
                mApp.getSharedPreferences().edit().putBoolean("GOOGLE_PLAY_MUSIC_ENABLED", false).commit();
            }
        }
    });
    return rootView;
}
Also used : Account(android.accounts.Account) OnCheckedChangeListener(android.widget.RadioGroup.OnCheckedChangeListener) RadioGroup(android.widget.RadioGroup) AsyncGoogleMusicAuthenticationTask(com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask) AccountManager(android.accounts.AccountManager) RadioButton(android.widget.RadioButton) TextView(android.widget.TextView) View(android.view.View) Paint(android.graphics.Paint)

Example 3 with AsyncGoogleMusicAuthenticationTask

use of com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask in project JamsMusicPlayer by psaravan.

the class GooglePlayMusicAuthenticationDialog method onCreateDialog.

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    parentActivity = getActivity();
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    sharedPreferences = parentActivity.getSharedPreferences("com.jams.music.player", Context.MODE_PRIVATE);
    View rootView = parentActivity.getLayoutInflater().inflate(R.layout.dialog_google_authentication_layout, null);
    //Check if this dialog was called from the Welcome sequence.
    mFirstRun = getArguments().getBoolean(Common.FIRST_RUN);
    infoText = (TextView) rootView.findViewById(R.id.google_authentication_dialog_text);
    infoText.setTypeface(TypefaceHelper.getTypeface(getActivity(), "RobotoCondensed-Light"));
    infoText.setPaintFlags(infoText.getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG);
    final AccountManager accountManager = AccountManager.get(getActivity().getApplicationContext());
    final Account[] accounts = accountManager.getAccountsByType("com.google");
    final int size = accounts.length;
    String[] accountNames = new String[size];
    for (int i = 0; i < size; i++) {
        accountNames[i] = accounts[i].name;
    }
    //Set the dialog title.
    builder.setTitle(R.string.sign_in_google_play_music);
    builder.setCancelable(false);
    builder.setItems(accountNames, new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            account = accounts[which];
            sharedPreferences.edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", account.name).commit();
            AsyncGoogleMusicAuthenticationTask task = new AsyncGoogleMusicAuthenticationTask(parentActivity.getApplicationContext(), parentActivity, mFirstRun, account.name);
            task.execute();
        }
    });
    return builder.create();
}
Also used : AlertDialog(android.app.AlertDialog) Account(android.accounts.Account) DialogInterface(android.content.DialogInterface) AsyncGoogleMusicAuthenticationTask(com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask) TextView(android.widget.TextView) View(android.view.View) Paint(android.graphics.Paint) AccountManager(android.accounts.AccountManager)

Example 4 with AsyncGoogleMusicAuthenticationTask

use of com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask in project JamsMusicPlayer by psaravan.

the class Common method onCreate.

@Override
public void onCreate() {
    super.onCreate();
    //Application context.
    mContext = getApplicationContext();
    //SharedPreferences.
    mSharedPreferences = this.getSharedPreferences("com.jams.music.player", Context.MODE_PRIVATE);
    //Init the database.
    mDBAccessHelper = new DBAccessHelper(mContext);
    //Playback kickstarter.
    mPlaybackKickstarter = new PlaybackKickstarter(this.getApplicationContext());
    //Picasso.
    mPicasso = new Picasso.Builder(mContext).build();
    //ImageLoader.
    mImageLoader = ImageLoader.getInstance();
    mImageLoaderConfiguration = new ImageLoaderConfiguration.Builder(getApplicationContext()).memoryCache(new WeakMemoryCache()).memoryCacheSizePercentage(13).imageDownloader(new ByteArrayUniversalImageLoader(mContext)).build();
    mImageLoader.init(mImageLoaderConfiguration);
    //Init DisplayImageOptions.
    initDisplayImageOptions();
    //Log the user into Google Play Music only if the account is currently set up and active.
    if (mSharedPreferences.getBoolean("GOOGLE_PLAY_MUSIC_ENABLED", false) == true) {
        //Create a temp WebView to retrieve the user agent string.
        String userAgentString = "";
        if (mSharedPreferences.getBoolean("GOT_USER_AGENT", false) == false) {
            WebView webView = new WebView(getApplicationContext());
            webView.setVisibility(View.GONE);
            webView.loadUrl("http://www.google.com");
            userAgentString = webView.getSettings().getUserAgentString();
            mSharedPreferences.edit().putBoolean("GOT_USER_AGENT", true).commit();
            mSharedPreferences.edit().putString("USER_AGENT", userAgentString).commit();
            webView = null;
        }
        setGMusicClientCalls(GMusicClientCalls.getInstance(getApplicationContext()));
        GMusicClientCalls.setWebClientUserAgent(userAgentString);
        String accountName = mSharedPreferences.getString("GOOGLE_PLAY_MUSIC_ACCOUNT", "");
        //Authenticate with Google.
        AsyncGoogleMusicAuthenticationTask task = new AsyncGoogleMusicAuthenticationTask(mContext, false, accountName);
        task.execute();
    }
}
Also used : PlaybackKickstarter(com.jams.music.player.PlaybackKickstarter.PlaybackKickstarter) DBAccessHelper(com.jams.music.player.DBHelpers.DBAccessHelper) WeakMemoryCache(com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache) AsyncGoogleMusicAuthenticationTask(com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask) WebView(android.webkit.WebView) ImageLoaderConfiguration(com.nostra13.universalimageloader.core.ImageLoaderConfiguration)

Aggregations

AsyncGoogleMusicAuthenticationTask (com.jams.music.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask)4 AccountManager (android.accounts.AccountManager)3 Paint (android.graphics.Paint)3 View (android.view.View)3 TextView (android.widget.TextView)3 Account (android.accounts.Account)2 AlertDialog (android.app.AlertDialog)2 DialogInterface (android.content.DialogInterface)2 OnClickListener (android.content.DialogInterface.OnClickListener)1 Intent (android.content.Intent)1 Preference (android.preference.Preference)1 OnPreferenceClickListener (android.preference.Preference.OnPreferenceClickListener)1 PreferenceCategory (android.preference.PreferenceCategory)1 PreferenceScreen (android.preference.PreferenceScreen)1 WebView (android.webkit.WebView)1 AdapterView (android.widget.AdapterView)1 OnItemClickListener (android.widget.AdapterView.OnItemClickListener)1 ArrayAdapter (android.widget.ArrayAdapter)1 ListView (android.widget.ListView)1 RadioButton (android.widget.RadioButton)1