summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoboErik <epastern@google.com>2011-08-26 14:30:10 -0700
committerRoboErik <epastern@google.com>2011-08-26 14:36:56 -0700
commitf9cb58df1deab65ad426d7997fe3e3fdfeef2850 (patch)
tree77dbbe7c306cf445368872e65ca772fa068cd995
parent6cc51adc0015c3ce59c48cc80482cc344ab9e4aa (diff)
downloadandroid_packages_apps_Calendar-f9cb58df1deab65ad426d7997fe3e3fdfeef2850.tar.gz
android_packages_apps_Calendar-f9cb58df1deab65ad426d7997fe3e3fdfeef2850.tar.bz2
android_packages_apps_Calendar-f9cb58df1deab65ad426d7997fe3e3fdfeef2850.zip
b/5216482 Add state to calendar visibility accessibility events
Change-Id: I6972ba13c498d75d1a8036309455e6a86368da8a
-rw-r--r--res/layout/mini_calendar_item.xml7
-rw-r--r--src/com/android/calendar/month/MonthWeekEventsView.java17
-rw-r--r--src/com/android/calendar/selectcalendars/SelectCalendarsSimpleAdapter.java4
3 files changed, 25 insertions, 3 deletions
diff --git a/res/layout/mini_calendar_item.xml b/res/layout/mini_calendar_item.xml
index 9ac0ea90..1a5989bd 100644
--- a/res/layout/mini_calendar_item.xml
+++ b/res/layout/mini_calendar_item.xml
@@ -58,4 +58,11 @@
android:visibility="gone"
/>
+ <!-- This is here to provide selection info for accessibility events -->
+ <CheckBox
+ android:id="@+id/visible_check_box"
+ android:layout_width="0dip"
+ android:layout_height="0dip"
+ android:visibility="invisible" />
+
</RelativeLayout>
diff --git a/src/com/android/calendar/month/MonthWeekEventsView.java b/src/com/android/calendar/month/MonthWeekEventsView.java
index 40cd4e72..2f2d464d 100644
--- a/src/com/android/calendar/month/MonthWeekEventsView.java
+++ b/src/com/android/calendar/month/MonthWeekEventsView.java
@@ -19,6 +19,8 @@ package com.android.calendar.month;
import com.android.calendar.Event;
import com.android.calendar.R;
import com.android.calendar.Utils;
+
+import android.app.Service;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -38,6 +40,7 @@ import android.text.format.Time;
import android.util.Log;
import android.view.MotionEvent;
import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -746,12 +749,20 @@ public class MonthWeekEventsView extends SimpleWeekView {
@Override
public boolean onHoverEvent(MotionEvent event) {
+ Context context = getContext();
+ AccessibilityManager am = (AccessibilityManager) context
+ .getSystemService(Service.ACCESSIBILITY_SERVICE);
+ // only send accessibility events if accessibility and exploration are
+ // on.
+ if (!am.isEnabled() || !am.isTouchExplorationEnabled()) {
+ return super.onHoverEvent(event);
+ }
if (event.getAction() != MotionEvent.ACTION_HOVER_EXIT) {
Time hover = getDayFromLocation(event.getX());
if (hover != null
&& (mLastHoverTime == null || Time.compare(hover, mLastHoverTime) != 0)) {
Long millis = hover.toMillis(true);
- String date = Utils.formatDateRange(getContext(), millis, millis,
+ String date = Utils.formatDateRange(context, millis, millis,
DateUtils.FORMAT_SHOW_DATE);
AccessibilityEvent accessEvent = AccessibilityEvent
.obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
@@ -767,11 +778,11 @@ public class MonthWeekEventsView extends SimpleWeekView {
int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR;
if (!e.allDay) {
flags |= DateUtils.FORMAT_SHOW_TIME;
- if (DateFormat.is24HourFormat(getContext())) {
+ if (DateFormat.is24HourFormat(context)) {
flags |= DateUtils.FORMAT_24HOUR;
}
}
- text.add(Utils.formatDateRange(getContext(), e.startMillis, e.endMillis,
+ text.add(Utils.formatDateRange(context, e.startMillis, e.endMillis,
flags) + ". ");
}
}
diff --git a/src/com/android/calendar/selectcalendars/SelectCalendarsSimpleAdapter.java b/src/com/android/calendar/selectcalendars/SelectCalendarsSimpleAdapter.java
index bddfc771..e42af628 100644
--- a/src/com/android/calendar/selectcalendars/SelectCalendarsSimpleAdapter.java
+++ b/src/com/android/calendar/selectcalendars/SelectCalendarsSimpleAdapter.java
@@ -273,6 +273,10 @@ public class SelectCalendarsSimpleAdapter extends BaseAdapter implements ListAda
newParams.height = NORMAL_ITEM_HEIGHT;
}
view.setLayoutParams(newParams);
+ CheckBox visibleCheckBox = (CheckBox) view.findViewById(R.id.visible_check_box);
+ if (visibleCheckBox != null) {
+ visibleCheckBox.setChecked(selected);
+ }
}
view.invalidate();
return view;