~lsgadmins/+junk/lsgapp-trunk

« back to all changes in this revision

Viewing changes to src/com/lsg/app/VertretungAdapter.java

  • Committer: maximilian
  • Date: 2012-05-10 19:03:45 UTC
  • Revision ID: maximilian-20120510190345-xjp6t5sohqzwnnhl
*seperated again
*new front page navigation
*now using AsyncTask for update

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package com.lsg.app;
2
 
 
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;
12
 
 
13
 
public class VertretungAdapter extends CursorAdapter {
14
 
        static class Standard {
15
 
                public LinearLayout standard;
16
 
                public TextView date;
17
 
                public TextView klasse;
18
 
                public TextView title;
19
 
                public TextView type;
20
 
                public TextView when;
21
 
                public TextView vtext;
22
 
                public TextView bottom;
23
 
                public WebView webv;
24
 
        }
25
 
        public VertretungAdapter(Context context, Cursor c) {
26
 
                super(context, c, false);
27
 
                }
28
 
        @Override
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);
45
 
                        return rowView;
46
 
                        }
47
 
        
48
 
        @Override
49
 
        public void bindView(View view, Context context, Cursor cursor) {
50
 
                Standard holder = (Standard) view.getTag();
51
 
                
52
 
                String olddate  = "";
53
 
                String oldclass = "";
54
 
                int position = cursor.getPosition();
55
 
                if(position > 0) {
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);
60
 
                }
61
 
                
62
 
                String date = cursor.getString(cursor.getColumnIndex(Functions.DB_DATE));
63
 
                if(date.equals(olddate))
64
 
                        holder.date.setVisibility(View.GONE);
65
 
                else {
66
 
                        holder.date.setVisibility(View.VISIBLE);
67
 
                        holder.date.setText(date);
68
 
                        oldclass = "";
69
 
                }
70
 
 
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")) {
74
 
                        //hide
75
 
                        holder.webv.setVisibility(View.GONE);
76
 
                        //show needed views
77
 
                        holder.title.setVisibility(View.VISIBLE);
78
 
                        holder.type.setVisibility(View.VISIBLE);
79
 
                        holder.when.setVisibility(View.VISIBLE);
80
 
                        holder.bottom.setVisibility(View.VISIBLE);
81
 
                        
82
 
                        if(klassenstufe.equals(oldclass))
83
 
                                holder.klasse.setVisibility(View.GONE);
84
 
                        else {
85
 
                                holder.klasse.setVisibility(View.VISIBLE);
86
 
                                }
87
 
                        if(Integer.valueOf(klassenstufe) < 14)
88
 
                                holder.klasse.setText(klassenstufe + ". " + context.getString(R.string.classes));
89
 
                        else
90
 
                                holder.klasse.setText(context.getString(R.string.no_classes));
91
 
                        if(klasse.equals("null")) {
92
 
                                klasse = context.getString(R.string.no_class);
93
 
                                }
94
 
                        
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);
99
 
                        
100
 
                        Integer lesson = Integer.valueOf(cursor.getString(cursor.getColumnIndex(Functions.DB_STUNDE)));
101
 
                        String when = lesson.toString();
102
 
                        int i = 0;
103
 
                        int length = cursor.getInt(cursor.getColumnIndex(Functions.DB_LENGTH));
104
 
                        while(i < length) {
105
 
                                lesson++;
106
 
                                when += ", " + lesson.toString();
107
 
                                i++;
108
 
                        }
109
 
                        when += ".";
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);
114
 
                        else {
115
 
                                /*
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 + "]");
121
 
                                }
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);
125
 
                                } else {
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);
132
 
                        }
133
 
                } else {
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);
141
 
                        
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))));
148
 
                }
149
 
                }
150
 
}