3
import android.content.Context;
4
import android.database.Cursor;
5
import android.view.LayoutInflater;
6
import android.view.View;
7
import android.view.ViewGroup;
8
import android.webkit.WebView;
9
import android.widget.CursorAdapter;
10
import android.widget.LinearLayout;
11
import android.widget.TextView;
13
public class VertretungAdapter extends CursorAdapter {
14
static class Standard {
15
public LinearLayout standard;
17
public TextView klasse;
18
public TextView title;
21
public TextView vtext;
22
public TextView bottom;
25
public VertretungAdapter(Context context, Cursor c) {
26
super(context, c, false);
29
public View newView(Context context, Cursor cursor, ViewGroup parent) {
30
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
31
View rowView = inflater.inflate(R.layout.standard, null, true);
32
Standard holder = new Standard();
33
holder.standard = (LinearLayout) rowView.findViewById(R.id.standard_rellayout);
34
holder.date = (TextView) rowView.findViewById(R.id.vertretung_date);
35
holder.klasse = (TextView) rowView.findViewById(R.id.vertretung_class);
36
holder.title = (TextView) rowView.findViewById(R.id.vertretung_title);
37
holder.type = (TextView) rowView.findViewById(R.id.vertretung_type);
38
holder.when = (TextView) rowView.findViewById(R.id.vertretung_when);
39
holder.vtext = (TextView) rowView.findViewById(R.id.vertretung_text);
40
holder.bottom = (TextView) rowView.findViewById(R.id.vertretung_bottom);
41
holder.webv = (WebView) rowView.findViewById(R.id.standard_webview);
42
if(Functions.getSDK() < 11)
43
holder.klasse.setBackgroundResource(R.layout.divider_gradient);
44
rowView.setTag(holder);
49
public void bindView(View view, Context context, Cursor cursor) {
50
Standard holder = (Standard) view.getTag();
54
int position = cursor.getPosition();
56
cursor.moveToPosition(position-1);
57
olddate = cursor.getString(cursor.getColumnIndex(Functions.DB_DATE));
58
oldclass = cursor.getString(cursor.getColumnIndex(Functions.DB_KLASSENSTUFE));
59
cursor.moveToPosition(position);
62
String date = cursor.getString(cursor.getColumnIndex(Functions.DB_DATE));
63
if(date.equals(olddate))
64
holder.date.setVisibility(View.GONE);
66
holder.date.setVisibility(View.VISIBLE);
67
holder.date.setText(date);
71
String klassenstufe = cursor.getString(cursor.getColumnIndex(Functions.DB_KLASSENSTUFE));
72
String klasse = cursor.getString(cursor.getColumnIndex(Functions.DB_KLASSE));
73
if(!klasse.equals("infotext")) {
75
holder.webv.setVisibility(View.GONE);
77
holder.title.setVisibility(View.VISIBLE);
78
holder.type.setVisibility(View.VISIBLE);
79
holder.when.setVisibility(View.VISIBLE);
80
holder.bottom.setVisibility(View.VISIBLE);
82
if(klassenstufe.equals(oldclass))
83
holder.klasse.setVisibility(View.GONE);
85
holder.klasse.setVisibility(View.VISIBLE);
87
if(Integer.valueOf(klassenstufe) < 14)
88
holder.klasse.setText(klassenstufe + ". " + context.getString(R.string.classes));
90
holder.klasse.setText(context.getString(R.string.no_classes));
91
if(klasse.equals("null")) {
92
klasse = context.getString(R.string.no_class);
95
String fach = cursor.getString(cursor.getColumnIndex(Functions.DB_FACH));
96
holder.title.setText(klasse + " (" + fach + ")");
97
String type = cursor.getString(cursor.getColumnIndex(Functions.DB_ART));
98
holder.type.setText(type);
100
Integer lesson = Integer.valueOf(cursor.getString(cursor.getColumnIndex(Functions.DB_STUNDE)));
101
String when = lesson.toString();
103
int length = cursor.getInt(cursor.getColumnIndex(Functions.DB_LENGTH));
106
when += ", " + lesson.toString();
110
holder.when.setText(when + context.getString(R.string.hour));
111
String vtext = cursor.getString(cursor.getColumnIndex(Functions.DB_VERTRETUNGSTEXT));
112
if(vtext.equals("null"))
113
holder.vtext.setVisibility(View.GONE);
116
* * android recycles Views
117
* * -> it happens, that a view with invisible vtext is reused
118
* * -> make visible in ANY CASE */
119
holder.vtext.setVisibility(View.VISIBLE);
120
holder.vtext.setText("[" + vtext + "]");
122
String lehrer = cursor.getString(cursor.getColumnIndex(Functions.DB_LEHRER));
123
if(cursor.getString(cursor.getColumnIndex(Functions.DB_ART)).equals("Entfall")){
124
holder.bottom.setText(context.getString(R.string.at) + " " + lehrer);
126
String vertreter = cursor.getString(cursor.getColumnIndex(Functions.DB_VERTRETER));
127
String raum = cursor.getString(cursor.getColumnIndex(Functions.DB_RAUM));
128
String raumInsert = "";
129
if(!raum.equals("null"))
130
raumInsert = '\n' + context.getString(R.string.room) + " " + raum;
131
holder.bottom.setText(lehrer + " → " + vertreter + raumInsert);
134
holder.klasse.setText(context.getString(R.string.info));
135
//hide views not needed
136
holder.title.setVisibility(View.GONE);
137
holder.type.setVisibility(View.GONE);
138
holder.when.setVisibility(View.GONE);
139
holder.bottom.setVisibility(View.GONE);
140
holder.vtext.setVisibility(View.GONE);
142
//unhide needed views that could be hidden
143
holder.klasse.setVisibility(View.VISIBLE);
144
holder.webv.setVisibility(View.VISIBLE);
145
String info = cursor.getString(cursor.getColumnIndex(Functions.DB_VERTRETUNGSTEXT));
146
holder.webv.loadData(info, "text/html", null);
147
//holder.vtext.setText(Html.fromHtml(cursor.getString(cursor.getColumnIndex(Functions.DB_VERTRETUNGSTEXT))));