diff options
Diffstat (limited to 'client/Piztor/src/com/macaroon/piztor/AlertMaker.java')
-rw-r--r-- | client/Piztor/src/com/macaroon/piztor/AlertMaker.java | 105 |
1 files changed, 83 insertions, 22 deletions
diff --git a/client/Piztor/src/com/macaroon/piztor/AlertMaker.java b/client/Piztor/src/com/macaroon/piztor/AlertMaker.java index d7a9d69..b1087a2 100644 --- a/client/Piztor/src/com/macaroon/piztor/AlertMaker.java +++ b/client/Piztor/src/com/macaroon/piztor/AlertMaker.java @@ -1,5 +1,6 @@ package com.macaroon.piztor; +import java.io.Closeable; import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; @@ -13,10 +14,12 @@ import android.content.DialogInterface; import android.content.Intent; import android.location.LocationManager; import android.os.Bundle; +import android.os.CountDownTimer; import android.os.Handler; import android.os.Message; import android.provider.Settings; import android.util.Log; +import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; @@ -24,6 +27,8 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.ImageButton; +import android.widget.LinearLayout; +import android.widget.ProgressBar; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; @@ -46,6 +51,8 @@ public class AlertMaker { private GeoPoint markerPoint; private MapMaker mapMaker; private long timestamp; + int mHour; + int mMinute; public AlertMaker(Context cc, MapMaker mm) { context =cc; @@ -64,16 +71,16 @@ public class AlertMaker { closeBoard(context); AlertDialog.Builder gpsDialog = new AlertDialog.Builder(context); - gpsDialog.setTitle("GPS settings"); - gpsDialog.setMessage("GPS is not enabled. Please turn it on."); - gpsDialog.setPositiveButton("Settings", + gpsDialog.setTitle("GPS设置"); + gpsDialog.setMessage("GPS未开启,是否前去打开?"); + gpsDialog.setPositiveButton("设置", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); context.startActivity(intent); } }); - gpsDialog.setNegativeButton("Go without GPS", + gpsDialog.setNegativeButton("不使用GPS", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); @@ -81,44 +88,66 @@ public class AlertMaker { }); gpsDialog.show(); } + + public void showLateAlert() { + + closeBoard(context); + AlertDialog.Builder lateDialog = new AlertDialog.Builder(context); + lateDialog.setTitle("阿哦"); + lateDialog.setMessage("你迟到了!"); + lateDialog.setNeutralButton("知道了", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + arg0.cancel(); + } + }); + lateDialog.show(); + closeBoard(context); + } public long toTimestamp(int hour, int minute) { + calendar = Calendar.getInstance(); - int nhour = calendar.get(Calendar.HOUR_OF_DAY); - int nminute = calendar.get(Calendar.MINUTE); - int tmp = 0; - if (hour > nhour) tmp = (hour - nhour) * 60 + minute - nminute; - else if (minute > nminute) tmp = minute - nminute; - timestamp = System.currentTimeMillis() + tmp * 60 * 1000; - return timestamp; + calendar.set(calendar.get(Calendar.YEAR), + calendar.get(Calendar.MONTH), + calendar.get(Calendar.DAY_OF_MONTH), + hour,minute); + return calendar.getTimeInMillis(); } //TODO public void updateMarkerTime(int hour, int minute) { Log.d("time", hour + " " + minute); Log.d("time", " " + toTimestamp(hour, minute)); + mapMaker.newMarkerHour = hour; + mapMaker.newMarkerMinute = minute; + mapMaker.newMarkerTimestamp = toTimestamp(hour, minute); } public void showMarkerAlert(GeoPoint point) { closeBoard(context); + boolean flag = false; if (point == null) return; markerPoint = point; + calendar = Calendar.getInstance(); TimePickerDialog markerDialog = new TimePickerDialog(context , new TimePickerDialog.OnTimeSetListener() { - + boolean flag = false; @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { ////// at least 2 minutes - if ((hourOfDay >= calendar.get(Calendar.HOUR_OF_DAY) && minute >= calendar.get(Calendar.MINUTE)) - || hourOfDay > calendar.get(Calendar.HOUR_OF_DAY)) { - mapMaker.DrawMarker(markerPoint); + if ( !flag && + ((hourOfDay >= calendar.get(Calendar.HOUR_OF_DAY) && minute >= calendar.get(Calendar.MINUTE)) + || hourOfDay > calendar.get(Calendar.HOUR_OF_DAY))) { updateMarkerTime(hourOfDay, minute); - } - else { + mapMaker.DrawMarker(markerPoint); + flag = true; + Log.d("marker", "marker alert calls drawmarker"); + } else if (!flag) { Toast toast = Toast.makeText(context, - "Too early! Give me at least 2 minutes!", Toast.LENGTH_LONG); + "太早了!多给一点时间", Toast.LENGTH_LONG); toast.show(); closeBoard(context); showMarkerAlert(markerPoint); @@ -127,12 +156,44 @@ public class AlertMaker { } , calendar.get(Calendar.HOUR_OF_DAY) , calendar.get(Calendar.MINUTE), true); - markerDialog.show(); + markerDialog.show(); + closeBoard(context); } - + public void showCheckinAlter() { closeBoard(context); - AlertDialog.Builder checkinDialog = new AlertDialog.Builder(context); + final AlertDialog.Builder checkinDialog = new AlertDialog.Builder(context); + LayoutInflater infaler = LayoutInflater.from(context); + final LinearLayout layout = (LinearLayout)infaler.inflate(R.layout.checkindialog, null); + checkinDialog.setView(layout); + checkinDialog.setNeutralButton("取消", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + im.hideSoftInputFromWindow(layout.getWindowToken(), 0); + dialog.cancel(); + } + }); + final ProgressBar pbar = (ProgressBar)layout.findViewById(R.id.checkin_progress); + final TextView checkinInfo = (TextView)layout.findViewById(R.id.checkin_info); + checkinDialog.show(); + closeBoard(context); + new CountDownTimer(5000, 1000) { + + public void onTick(long millisUntilFinished) { + int ttt = (int)millisUntilFinished; + pbar.setProgress(ttt); + } + + public void onFinish() { + //TODO + pbar.setVisibility(View.GONE); + mapMaker.removeMarker(); + Toast toast = Toast.makeText(context, "已签到!", 2000); + toast.setGravity(Gravity.TOP, 0, 80); + toast.show(); + checkinInfo.setText("成功!"); + } + }.start(); } - + } |