1
0
mirror of https://codeberg.org/Freeyourgadget/Gadgetbridge synced 2024-07-08 22:51:37 +02:00
Gadgetbridge/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/NotificationListener.java
Andreas Shimokawa bf6abe9672 Quick and dirty support for incoming calls notification the Pebble way
Incoming calls are no longer send as simple notifications but properly as
incoming calls. The Pebble will vibrate until the call is taken or dismissed.

It is not yet possible to dismiss the call using the Pebble button.
2015-01-22 22:49:50 +01:00

58 lines
1.8 KiB
Java

package nodomain.freeyourgadget.gadgetbridge;
import android.app.Notification;
import android.content.Intent;
import android.os.Bundle;
import android.service.notification.NotificationListenerService;
import android.service.notification.StatusBarNotification;
import android.util.Log;
public class NotificationListener extends NotificationListenerService {
private String TAG = this.getClass().getSimpleName();
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Notification notification = sbn.getNotification();
/* do not display messages from "android"
* This includes keyboard selection message, usb connection messages, etc
* Hope it does not filter out too much, we will see...
*/
String source = sbn.getPackageName();
if (source.equals("android") || source.equals("com.android.dialer"))
return;
Log.i(TAG, sbn.getPackageName());
Bundle extras = notification.extras;
String title = extras.getString(Notification.EXTRA_TITLE);
String content = "";
if (extras.containsKey(Notification.EXTRA_TEXT))
content = extras.getString(Notification.EXTRA_TEXT);
if (content != null) {
Intent startIntent = new Intent(NotificationListener.this, BluetoothCommunicationService.class);
startIntent.setAction(BluetoothCommunicationService.ACTION_SENDMESSAGE);
startIntent.putExtra("notification_title", title);
startIntent.putExtra("notification_content", content);
startService(startIntent);
}
}
@Override
public void onNotificationRemoved(StatusBarNotification sbn) {
}
}