package net.screenfreeze.deskcon;
import java.util.ArrayList;
import java.util.Arrays;
import android.accessibilityservice.AccessibilityService;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.Notification;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
public class NotificationUpdateServiceOld extends AccessibilityService {
private static SharedPreferences sharedPrefs;
@Override
public void onCreate() {
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
super.onCreate();
}
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if (event.getEventType() == AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED) {
Notification not = (Notification) event.getParcelableData();
// permissions
boolean send_other_notifications = sharedPrefs.getBoolean("send_other_notifications", false);
ArrayList<String> whitelist = getNotificationWhitelist();
String packagename = String.valueOf(event.getPackageName());
if (not != null && send_other_notifications && whitelist.contains(packagename)) {
Log.d("Notification: ", "new post");
if (not.tickerText != null) {
String text = not.tickerText.toString();
startUpdateServiceCommand(text);
}
}
}
}
@Override
protected void onServiceConnected() {
AccessibilityServiceInfo info = new AccessibilityServiceInfo();
info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
info.notificationTimeout = 1;
info.feedbackType = AccessibilityEvent.TYPES_ALL_MASK;
setServiceInfo(info);
}
//send specific Command
private void startUpdateServiceCommand(String mess) {
Intent i = new Intent(getBaseContext(), StatusUpdateService.class);
i.putExtra("commandtype", "OTH_NOT");
i.putExtra("message", mess);
startService(i);
}
private ArrayList<String> getNotificationWhitelist() {
String whiteliststr = sharedPrefs.getString("notification_whitelist", "");
ArrayList<String> whitelist = new ArrayList<String>();
if (whiteliststr.equals("")) {
whitelist = new ArrayList<String>();
}
else {
whitelist = new ArrayList<String>(Arrays.<String>asList((whiteliststr.split(", "))));
}
return whitelist;
}
@Override
public void onInterrupt() {
}
}