Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut)
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
|
||||
package com.android.server;
|
||||
|
||||
import com.android.server.status.IconData;
|
||||
import com.android.server.status.NotificationData;
|
||||
import com.android.server.status.StatusBarService;
|
||||
|
||||
import android.app.ActivityManagerNative;
|
||||
import android.app.IActivityManager;
|
||||
import android.app.INotificationManager;
|
||||
@@ -30,33 +34,29 @@ import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.content.res.Resources;
|
||||
import android.media.AudioManager;
|
||||
import android.media.AsyncPlayer;
|
||||
import android.media.RingtoneManager;
|
||||
import android.media.AudioManager;
|
||||
import android.net.Uri;
|
||||
import android.os.BatteryManager;
|
||||
import android.os.Binder;
|
||||
import android.os.RemoteException;
|
||||
import android.os.Handler;
|
||||
import android.os.IBinder;
|
||||
import android.os.Message;
|
||||
import android.os.Power;
|
||||
import android.os.RemoteException;
|
||||
import android.os.Vibrator;
|
||||
import android.provider.Settings;
|
||||
import android.util.Config;
|
||||
import android.text.TextUtils;
|
||||
import android.util.EventLog;
|
||||
import android.util.Log;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.accessibility.AccessibilityManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.server.status.IconData;
|
||||
import com.android.server.status.NotificationData;
|
||||
import com.android.server.status.StatusBarService;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.io.IOException;
|
||||
|
||||
class NotificationManagerService extends INotificationManager.Stub
|
||||
{
|
||||
@@ -98,7 +98,7 @@ class NotificationManagerService extends INotificationManager.Stub
|
||||
private boolean mBatteryLow;
|
||||
private boolean mBatteryFull;
|
||||
private NotificationRecord mLedNotification;
|
||||
|
||||
|
||||
private static final int BATTERY_LOW_ARGB = 0xFFFF0000; // Charging Low - red solid on
|
||||
private static final int BATTERY_MEDIUM_ARGB = 0xFFFFFF00; // Charging - orange solid on
|
||||
private static final int BATTERY_FULL_ARGB = 0xFF00FF00; // Charging Full - green solid on
|
||||
@@ -594,6 +594,9 @@ class NotificationManagerService extends INotificationManager.Stub
|
||||
Binder.restoreCallingIdentity(identity);
|
||||
}
|
||||
}
|
||||
|
||||
sendAccessibilityEventTypeNotificationChangedDoCheck(notification, pkg);
|
||||
|
||||
} else {
|
||||
if (old != null && old.statusBarKey != null) {
|
||||
long identity = Binder.clearCallingIdentity();
|
||||
@@ -676,6 +679,26 @@ class NotificationManagerService extends INotificationManager.Stub
|
||||
idOut[0] = id;
|
||||
}
|
||||
|
||||
private void sendAccessibilityEventTypeNotificationChangedDoCheck(Notification notification,
|
||||
CharSequence packageName) {
|
||||
AccessibilityManager manager = AccessibilityManager.getInstance(mContext);
|
||||
if (!manager.isEnabled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
AccessibilityEvent event =
|
||||
AccessibilityEvent.obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
|
||||
event.setPackageName(packageName);
|
||||
event.setClassName(Notification.class.getName());
|
||||
event.setParcelableData(notification);
|
||||
CharSequence tickerText = notification.tickerText;
|
||||
if (!TextUtils.isEmpty(tickerText)) {
|
||||
event.getText().add(tickerText);
|
||||
}
|
||||
|
||||
manager.sendAccessibilityEvent(event);
|
||||
}
|
||||
|
||||
private void cancelNotificationLocked(NotificationRecord r) {
|
||||
// status bar
|
||||
if (r.notification.icon != 0) {
|
||||
|
||||
Reference in New Issue
Block a user