package com.ved.musicmapapp.fragments; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import com.ved.musicmapapp.MainActivity; import com.ved.musicmapapp.R; import com.ved.musicmapapp.Objects.FacebookFriend; import com.ved.musicmapapp.Objects.User; import com.ved.musicmapapp.adapters.FriendAdapter; import com.ved.musicmapapp.adapters.UserAdapter; import com.ved.musicmapapp.applications.MusicMapApplication; import com.ved.musicmapapp.providers.GetUserArtistListTask; import com.ved.musicmapapp.providers.SearchUserTask; import com.ved.musicmapapp.utils.Statics; public class AddPlaylistFragment extends Fragment { private ListView list; private UserAdapter uAdapter; private LinearLayout group_loadmore; private boolean alertShowing = false; private MusicMapApplication app; private FacebookFriend ff; private int type; // 0: similar, 1: facebook, 2: by name private View /* group_search,*/ group_button_invite; private EditText edt_search, edt_search1; private ImageView /* imv_search, imv_search1,*/ imvAddPlaylist; private ArrayList<User> users; private SearchUserTask task; private View loadingLayout, resultLayout; private Activity mContext; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); this.mContext = activity; } public static AddPlaylistFragment newInstance(int type) { AddPlaylistFragment fragment = new AddPlaylistFragment(); fragment.type = type; return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View v = inflater.inflate(R.layout.activity_search, container, false); if (null == mContext) return v; MainActivity parent = (MainActivity) mContext; edt_search = parent.getEdtSearch(); loadingLayout = v.findViewById(R.id.loadingLayout); resultLayout = v.findViewById(R.id.resultLayout); // group_search = v.findViewById(R.id.group_search); group_button_invite = v.findViewById(R.id.group_button_invite); app = (MusicMapApplication) parent.getApplication(); list = (ListView) v.findViewById(R.id.list_you_follow); // imv_search1 = (ImageView) v.findViewById(R.id.imv_search1); edt_search1 = (EditText) v.findViewById(R.id.edt_search1); InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); edt_search1.requestFocus(); mgr.showSoftInput(edt_search1, InputMethodManager.SHOW_IMPLICIT); group_loadmore = (LinearLayout) v.findViewById(R.id.group_loadmore); users = new ArrayList<User>(); uAdapter = new UserAdapter(mContext, users); list.setAdapter(uAdapter); // edt_search1.setOnEditorActionListener(new OnEditorActionListener() { // public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { // if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) { // Log.i("check","Enter pressed"); // searchFunction(); // } // return false; // } // }); // imv_search1.setOnClickListener(new View.OnClickListener() { // // @Override // public void onClick(View arg0) { // searchFunction(); // } // }); if (type == 2) { // By Name // group_search.setVisibility(View.VISIBLE); edt_search1.setVisibility(View.VISIBLE); // imv_search.setVisibility(View.GONE); edt_search.setVisibility(View.GONE); } else { // group_search.setVisibility(View.GONE); edt_search1.setVisibility(View.VISIBLE); edt_search.setVisibility(View.VISIBLE); // imv_search.setVisibility(View.VISIBLE); if (type == 0) { // Similar list.setAdapter(uAdapter); } else { // Facebook group_button_invite.setVisibility(View.VISIBLE); list.setAdapter(new FriendAdapter(parent)); } } edt_search1 .setOnEditorActionListener(new EditText.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH || actionId == EditorInfo.IME_ACTION_DONE || event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { searchFunction(); return true; } return false; } }); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, final int pos, long arg3) { if (users.get(pos).getArtists() == null) { new GetUserArtistListTask(getActivity(), Statics.curUser .getFbid(), users.get(pos).getFbid()) { protected void onPostExecute(User result) { super.onPostExecute(result); edt_search1.setText(""); if(result != null){ users.get(pos).setArtists(result.getArtists()); users.get(pos).setGenre(result.getGenre()); transaction(users.get(pos)); } else Toast.makeText(getActivity(), "Something went wrong, Try again Later..", Toast.LENGTH_SHORT).show(); }; }.execute(); } else { transaction(users.get(pos)); } } public void transaction(User user) { UserDetailsFragment fragment = new UserDetailsFragment(); fragment.setUser(user); FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frame_content, fragment,"UserDetailFragment"); fragmentTransaction.addToBackStack(null); fragmentTransaction.commitAllowingStateLoss(); /*UserArtistsFragment fragment = new UserArtistsFragment(); fragment.setUser(user); FragmentTransaction fragmentTransaction = getFragmentManager() .beginTransaction(); fragmentTransaction.replace(R.id.frame_content, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit();*/ } }); return v; } public void searchFunction() { if (!Statics.isNetworkConnected(mContext)) { Statics.showToast(mContext, "Network unavaiable!"); return; } String keyWord = edt_search1.getText().toString().trim(); if (keyWord.length() == 0) { Statics.showToast(mContext, "Please type some key word!"); return; } InputMethodManager imm = (InputMethodManager) mContext .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edt_search1.getWindowToken(), 0); if (null != task) task.cancel(true); task = new SearchUserTask(mContext, keyWord, users) { @Override protected void onPreExecute() { super.onPreExecute(); loadingLayout.setVisibility(View.VISIBLE); list.setVisibility(View.GONE); resultLayout.setVisibility(View.GONE); } public void onSuccess() { loadingLayout.setVisibility(View.GONE); if (users.size() == 0) { resultLayout.setVisibility(View.VISIBLE); } else { uAdapter.notifyDataSetChanged(); list.setVisibility(View.VISIBLE); } }; }; task.execute(); } @Override public void onDestroy() { if (null != task) task.cancel(true); super.onDestroy(); } @Override public void onDestroyView() { if (getView() != null) { ((ViewGroup) getView().getParent()).removeView(getView()); } super.onDestroyView(); } }