package com.android.iliConnect;
import java.util.List;
import android.content.Context;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.iliConnect.Exceptions.CoursePasswordException;
import com.android.iliConnect.Exceptions.JoinCourseException;
import com.android.iliConnect.Exceptions.NetworkException;
import com.android.iliConnect.dataproviders.LocalCourseProvider;
import com.android.iliConnect.message.IliOnClickListener;
import com.android.iliConnect.models.Item;
public class SearchArrayAdapter extends DesktopDetailArrayAdapter implements IliOnClickListener {
private class SearchView {
TextView title;
TextView description;
TextView owner;
}
public SearchArrayAdapter(Context context, int textViewResourceId, List<Item> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Item item = items.get(position);
View v = convertView;
LayoutInflater vi = (LayoutInflater) MainActivity.instance.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = (LinearLayout) vi.inflate(R.layout.item, null);
SearchView searchView = new SearchView();
searchView.title = (TextView) v.findViewById(R.id.itemTitle);
searchView.description = (TextView) v.findViewById(R.id.itemDescription);
searchView.owner = (TextView) v.findViewById(R.id.itemOwner);
searchView.title.setText(item.getTitle());
searchView.title.setLines(2);
searchView.description.setText(item.getDescription());
searchView.description.setLines(1);
searchView.owner.setText(item.getOwner());
searchView.owner.setTypeface(null, Typeface.BOLD);
// Falls Description leer ist, keine Leerzeile anzeigen
/*
if(searchView.description.getText().equals("")) {
v.findViewById(R.id.itemDescription).setVisibility(View.INVISIBLE);
}*/
/*
if(searchView.owner.getText().equals("")) {
v.findViewById(R.id.itemOwner).setVisibility(View.GONE);
}
*/
// Desc., Date und Type in der Ergebnislist ausblenden
v.findViewById(R.id.itemDescription).setVisibility(View.GONE);
v.findViewById(R.id.itemDate).setVisibility(View.GONE);
v.findViewById(R.id.itemType).setVisibility(View.GONE);
final SearchArrayAdapter instance = (SearchArrayAdapter) this;
v.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
v.setBackgroundColor(R.color.darkmint);
Item item = items.get(position);
MessageBuilder.course_login(MainTabView.instance, item.title, item.ref_id, instance);
}
});
return v;
}
private void joinCourse(String ref_id, String password) {
LocalCourseProvider courseProv = new LocalCourseProvider();
try {
String result = courseProv.joinCourse(ref_id, password);
if (result != null && result.contains("PASSWORD_NEEDED")) {
// Passwortabfrage einblenden
MessageBuilder.course_password(MainTabView.instance, ref_id, this);
}
} catch (JoinCourseException e) {
MessageBuilder.course_alreadysignedin(MainTabView.instance);
} catch (CoursePasswordException e) {
MessageBuilder.course_password(MainTabView.instance, ref_id, this);
e.printStackTrace();
} catch (NetworkException e) {
MessageBuilder.exception_message(MainTabView.instance, e.getMessage());
}
}
public void onClickCoursePassword(String ref_id, String password) {
// nach Passworteingabe joinCourse() erneut aufrufen
this.joinCourse(ref_id, password);
}
public void onClickJoinCourse(String refID, String courseName) {
// TODO Auto-generated method stub
this.joinCourse(refID, null);
}
public void onClickLeftCourse(String refID, String courseName) {
// TODO Auto-generated method stub
}
public void onClickMessageBox() {
// TODO Auto-generated method stub
}
}