29
30
import android.util.Log;
30
31
import android.view.ContextMenu;
31
32
import android.view.ContextMenu.ContextMenuInfo;
33
import android.view.Display;
32
34
import android.view.LayoutInflater;
33
35
import android.view.Menu;
34
36
import android.view.MenuInflater;
35
37
import android.view.MenuItem;
36
38
import android.view.View;
39
import android.view.View.OnClickListener;
37
40
import android.view.ViewGroup;
38
41
import android.webkit.WebView;
39
42
import android.widget.CursorAdapter;
91
96
SQLiteStatement num_rows = myDB.compileStatement("SELECT COUNT(*) FROM " + Functions.DB_VPLAN_TABLE);
92
97
long count = num_rows.simpleQueryForLong();
98
SQLiteStatement num_rows_2 = myDB.compileStatement("SELECT COUNT(*) FROM " + Functions.DB_VPLAN_TEACHER);
99
long count2 = num_rows_2.simpleQueryForLong();
100
if(count == 0 || count2 == 0)
96
vadapter_all = new VPlan.VertretungAdapter(context, cursor_all);
97
vadapter_mine = new VPlan.VertretungAdapter(context, cursor_mine);
103
vadapter_all = new VPlan.VertretungAdapter(context, cursor_all, false);
104
vadapter_mine = new VPlan.VertretungAdapter(context, cursor_mine, false);
105
vadapter_teachers = new VPlan.VertretungAdapter(context, cursor_teachers, true);
102
public String getTitle( int position )
105
return titles[ position ];
109
110
public int getCount() {
192
197
cursor_all = myDB.query(Functions.DB_VPLAN_TABLE, new String [] {Functions.DB_ROWID, Functions.DB_KLASSE, Functions.DB_ART, Functions.DB_STUNDE,
193
198
Functions.DB_LEHRER, Functions.DB_FACH, Functions.DB_VERTRETUNGSTEXT, Functions.DB_VERTRETER, Functions.DB_RAUM,
194
199
Functions.DB_KLASSENSTUFE, Functions.DB_DATE, Functions.DB_LENGTH}, all_cond, where_conds, null, null, null);
200
cursor_teachers = myDB.query(Functions.DB_VPLAN_TEACHER, new String [] {Functions.DB_ROWID, Functions.DB_KLASSE, Functions.DB_ART, Functions.DB_STUNDE,
201
Functions.DB_LEHRER, Functions.DB_FACH, Functions.DB_VERTRETUNGSTEXT, Functions.DB_VERTRETER, Functions.DB_RAUM,
202
Functions.DB_KLASSENSTUFE, Functions.DB_DATE, Functions.DB_LENGTH}, all_cond, where_conds, null, null, null);;
195
203
vadapter_mine.changeCursor(cursor_mine);
196
204
vadapter_all.changeCursor(cursor_all);
205
vadapter_teachers.changeCursor(cursor_teachers);
198
207
public void updateWhereCond(String searchText) {
199
208
where_conds[1] = "%" + searchText + "%";
258
268
public TextView bottom;
259
269
public WebView webv;
261
public VertretungAdapter(Context context, Cursor c) {
271
public VertretungAdapter(Context context, Cursor c, boolean teacher) {
262
272
super(context, c, false);
273
this.teacher = teacher;
265
276
public View newView(Context context, Cursor cursor, ViewGroup parent) {
266
277
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
267
View rowView = inflater.inflate(R.layout.standard, null, true);
280
rowView = inflater.inflate(R.layout.standard, null, true);
282
rowView = inflater.inflate(R.layout.standard, null, true);
268
283
Standard holder = new Standard();
269
284
holder.standard = (LinearLayout) rowView.findViewById(R.id.standard_rellayout);
270
285
holder.date = (TextView) rowView.findViewById(R.id.vertretung_date);
405
426
values.put(Functions.DB_KLASSE, jObject.getString("klasse"));
406
427
values.put(Functions.DB_STUNDE, jObject.getString("stunde"));
407
428
values.put(Functions.DB_VERTRETER, jObject.getString("vertreter"));
429
values.put(Functions.DB_RAW_VERTRETER, jObject.getString("rawvertreter"));
408
430
values.put(Functions.DB_LEHRER, jObject.getString("lehrer"));
431
values.put(Functions.DB_RAW_LEHRER, jObject.getString("rawlehrer"));
409
432
values.put(Functions.DB_RAUM, jObject.getString("raum"));
410
433
values.put(Functions.DB_ART, jObject.getString("art"));
411
434
values.put(Functions.DB_VERTRETUNGSTEXT, jObject.getString("vertretungstext"));
439
462
return new String[] {"unknownerror", context.getString(R.string.unknownerror)};
440
463
return new String[] {"success", " "};
465
public String[] updateTeachers() {
466
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
469
add = "&" + URLEncoder.encode("date", "UTF-8") + "=" + URLEncoder.encode(prefs.getString("vplan_teacher_date", ""), "UTF-8")
470
+ "&" + URLEncoder.encode("time", "UTF-8") + "=" + URLEncoder.encode(prefs.getString("vplan_teacher_time", ""), "UTF-8")
471
+ "&" + URLEncoder.encode("type", "UTF-8") + "=" + URLEncoder.encode("teachers", "UTF-8");
472
} catch(UnsupportedEncodingException e) { Log.d("encoding", e.getMessage()); }
473
String get = Functions.getData(Functions.VP_URL, context, true, add);
475
if(!get.equals("networkerror") && !get.equals("loginerror") && !get.equals("noact") && !get.equals("rights")) {
477
JSONArray jArray = new JSONArray(get);
479
SQLiteDatabase myDB = context.openOrCreateDatabase(Functions.DB_NAME, Context.MODE_PRIVATE, null);
480
myDB.delete(Functions.DB_VPLAN_TEACHER, null, null); //clear vertretungen
481
while(i < jArray.length() - 1) {
482
JSONObject jObject = jArray.getJSONObject(i);
483
ContentValues values = new ContentValues();
484
values.put(Functions.DB_KLASSENSTUFE, jObject.getString("klassenstufe"));
485
values.put(Functions.DB_KLASSE, jObject.getString("klasse"));
486
values.put(Functions.DB_STUNDE, jObject.getString("stunde"));
487
values.put(Functions.DB_VERTRETER, jObject.getString("vertreter"));
488
values.put(Functions.DB_RAW_VERTRETER, jObject.getString("rawvertreter"));
489
values.put(Functions.DB_LEHRER, jObject.getString("lehrer"));
490
values.put(Functions.DB_RAW_LEHRER, jObject.getString("rawlehrer"));
491
values.put(Functions.DB_RAUM, jObject.getString("raum"));
492
values.put(Functions.DB_ART, jObject.getString("art"));
493
values.put(Functions.DB_VERTRETUNGSTEXT, jObject.getString("vertretungstext"));
494
values.put(Functions.DB_FACH, jObject.getString("fach"));
495
values.put(Functions.DB_RAW_FACH, jObject.getString("rawfach"));
496
values.put(Functions.DB_DATE, jObject.getString("date"));
497
values.put(Functions.DB_LENGTH, jObject.getInt("length"));
498
myDB.insert(Functions.DB_VPLAN_TEACHER, null, values);
502
JSONObject jObject = jArray.getJSONObject(i);
503
String date = jObject.getString("date");
504
String time = jObject.getString("time");
505
SharedPreferences.Editor edit = prefs.edit();
506
edit.putString("vplan_teacher_date", date);
507
edit.putString("vplan_teacher_time", time);
509
} catch(JSONException e) {
510
Log.d("jsonerror", e.getMessage());
511
return new String[] {"json", context.getString(R.string.jsonerror)};
514
else if(get.equals("noact"))
515
return new String[] {"noact", context.getString(R.string.noact)};
516
else if(get.equals("loginerror"))
517
return new String[] {"loginerror", context.getString(R.string.loginerror)};
518
else if(get.equals("networkerror"))
519
return new String[] {"networkerror", context.getString(R.string.networkerror)};
521
return new String[] {"unknownerror", context.getString(R.string.unknownerror)};
522
return new String[] {"success", " "};
443
525
public class VPlanUpdateTask extends AsyncTask<Void, Void, String[]> {
444
526
protected void onPreExecute() {
472
555
private ViewPager pager;
473
556
private SharedPreferences prefs;
474
557
private ProgressDialog loading;
558
private LinearLayout[] lins = new LinearLayout[3];
475
559
public void onCreate(Bundle savedInstanceState) {
476
560
super.onCreate(savedInstanceState);
477
561
Functions.setTheme(false, true, this);
478
getWindow().setBackgroundDrawableResource(R.layout.background);
562
//getWindow().setBackgroundDrawableResource(R.layout.background);
479
563
setContentView(R.layout.viewpager);
480
564
adapter = new VPlanPagerAdapter(this);
481
pager = (ViewPager)findViewById( R.id.viewpager );
565
pager = (ViewPager)findViewById(R.id.viewpager);
482
566
pager.setOnPageChangeListener(this);
483
567
pager.setAdapter(adapter);
484
568
prefs = PreferenceManager.getDefaultSharedPreferences(this);
569
lins[0] = (LinearLayout) findViewById(R.id.first);
570
lins[1] = (LinearLayout) findViewById(R.id.second);
571
lins[2] = (LinearLayout) findViewById(R.id.third);
572
lins[0].setVisibility(View.VISIBLE);
573
lins[1].setVisibility(View.VISIBLE);
574
lins[2].setVisibility(View.VISIBLE);
575
((TextView) findViewById(R.id.first_textv)).setText(getString(R.string.mine_short));
576
((TextView) findViewById(R.id.second_textv)).setText(getString(R.string.all_short));
577
((TextView) findViewById(R.id.third_textv)).setText(getString(R.string.teachers_short));
578
((TextView) findViewById(R.id.first_textv)).setOnClickListener(new OnClickListener() {
579
public void onClick(View v) {
580
pager.setCurrentItem(0);
583
((TextView) findViewById(R.id.second_textv)).setOnClickListener(new OnClickListener() {
584
public void onClick(View v) {
585
pager.setCurrentItem(1);
588
((TextView) findViewById(R.id.third_textv)).setOnClickListener(new OnClickListener() {
589
public void onClick(View v) {
590
pager.setCurrentItem(2);
593
//pager.setCurrentItem(1, true);
594
//pager.setCurrentItem(0, true);
595
Display display = getWindowManager().getDefaultDisplay();
596
Point size = new Point();
597
display.getSize(size);
598
//int flipper_width = (findViewById(R.id.viewflipper)).getWidth();
599
//Functions.moveViewPagerTitles(lins, 320, 0, 0);
486
601
public boolean onCreateOptionsMenu(Menu menu) {
487
602
MenuInflater inflater = getMenuInflater();
488
603
inflater.inflate(R.menu.vplan, menu);
555
public void onPageScrollStateChanged(int arg0) {
670
public void onPageScrollStateChanged(int state) {
556
671
//not interesting
559
public void onPageScrolled(int arg0, float arg1, int arg2) {
674
public void onPageScrolled(int position, float offset, int offsetPixels) {
675
lins[0].setVisibility(View.VISIBLE);
676
lins[1].setVisibility(View.VISIBLE);
677
lins[2].setVisibility(View.VISIBLE);
678
int flipper_width = (findViewById(R.id.viewflipper)).getWidth();
679
Functions.moveViewPagerTitles(lins, flipper_width, position, offsetPixels, this);
563
682
public void onPageSelected(int position) {
565
setTitle(R.string.mine);
567
setTitle(R.string.all);
570
686
public void onDestroy() {