package com.kure.musicplayer.activities; import java.util.ArrayList; import android.app.ActionBar; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.kure.musicplayer.R; import com.kure.musicplayer.kMP; /** * Direct sub menu for the Main Menu, showing other * sub menus related to Music, such as "Artists", "Albums" * and "All Songs". * */ public class ActivityMenuMusic extends ActivityMaster implements OnItemClickListener { /** * All the possible items the user can select on this menu. * * Will be initialized with default values on `onCreate`. */ public static ArrayList<String> items = new ArrayList<String>(); /** * List that will be populated with all the items. * * Look for it inside the res/layout xml files. */ ListView listView; /** * Called when the activity is created for the first time. */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_menu); // This enables the "Up" button on the top Action Bar // Note that it returns to the parent Activity, specified // on `AndroidManifest` ActionBar actionBar = getActionBar(); if (actionBar != null) actionBar.setDisplayHomeAsUpEnabled(true); // Adding all possible items on the menu. items.add(getString(R.string.menu_music_playlists)); items.add(getString(R.string.menu_music_artists)); items.add(getString(R.string.menu_music_albums)); items.add(getString(R.string.menu_music_genres)); items.add(getString(R.string.menu_music_years)); items.add(getString(R.string.menu_music_songs)); // List to be populated with items listView = (ListView)findViewById(R.id.activity_main_menu_list); // Adapter that will convert from Strings to List Items final ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1, items); // Filling teh list with all the items listView.setAdapter(adapter); listView.setOnItemClickListener(this); } /** * Will react to the user selecting an item. */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // We can only handle the user choice from now on // if we've successfuly scanned the songs from the // device. if (! kMP.songs.isInitialized()) { Toast.makeText(this, getString(R.string.menu_music_proceed_error), Toast.LENGTH_LONG).show(); return; } // Gets the string value of the current item and // compares to all possible items. String currentItem = listView.getItemAtPosition(position).toString(); if (currentItem == getString(R.string.menu_music_playlists)) { startActivity(new Intent(this, ActivityMenuPlaylist.class)); } else if (currentItem == getString(R.string.menu_music_artists)) { startActivity(new Intent(this, ActivityMenuArtist.class)); } else if (currentItem == getString(R.string.menu_music_albums)) { startActivity(new Intent(this, ActivityMenuAlbum.class)); } else if (currentItem == getString(R.string.menu_music_songs)) { kMP.musicList = kMP.songs.songs; startActivity(new Intent(this, ActivityListSongs.class)); } else if (currentItem == getString(R.string.menu_music_genres)) { startActivity(new Intent(this, ActivityMenuGenre.class)); } else if (currentItem == getString(R.string.menu_music_years)) { startActivity(new Intent(this, ActivityMenuYear.class)); } else { } } /** * When destroying the Activity. */ @Override protected void onDestroy() { super.onDestroy(); // Need to clear all the items otherwise // they'll keep adding up. items.clear(); } }