Git Product home page Git Product logo

botifier's People

Contributors

bennogap avatar grimpy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

botifier's Issues

AVCRP audio focus causes attenuation

I often listen to iHeartRadio. When a notification comes in, the iHeartRadio audio level attenuates while the notification ding plays. But the audio level never restores. My work-around is to stop/start iHeartReadio (or cycle bluetooth, or reboot, etc.).

I next found that Botifier attenuates the audio with Google Play Music as well as iheartradio.

Finally I found that if I set Botifier AVCRP plug-in to clear the notification after a timeout (e.g. 10s), the audio attenuation ended after that time.

I recently learned a little about Android audio focus, including ducking. I found in the Botifier code that it grabs audio focus with duckability (AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK). I suspect this might be the cause of the audio attenuation.

Why does Botifier need to grab audio focus? The system is handling the notification sound, right? And while the TTS module might need audio focus, that's not part of the AVCRP plug-in, but the TTS plug-in (which is not using).

Dependency on Sony Libs

import com.sonyericsson.extras.liveware.aef.notification.Notification;
import com.sonyericsson.extras.liveware.aef.registration.Registration;
import com.sonyericsson.extras.liveware.extension.util.ExtensionService;
import com.sonyericsson.extras.liveware.extension.util.notification.NotificationUtil;
import com.sonyericsson.extras.liveware.extension.util.registration.DeviceInfoHelper;
import com.sonyericsson.extras.liveware.extension.util.registration.RegistrationInformation;

Please update gradle to resolve these

TTS plugin not working on fire phone/ fire os 4.6.1

Shouter App from play store works but I prefer botifier from f-droid.

logcat follows:

D/MAXS/MAXSNotificationListenerService( 1915): onNotificationPosted: sbn=StatusBarNotification(pkg=com.github.grimpy.botifier user=UserHandle{0} id=1754877863 tag=null score=0: Notification(pri=0 contentView=com.github.grimpy.botifier/0x1090068 toastView=com.github.grimpy.botifier/0x10900ae vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x10 kind=[null] iconPkg=null))
I/Botifier(11261): new notification received
D/Botifier(11261): View is empty
I/MediaPlayerService( 364): [9] setDataSource playerType 3
I/ExtendedUtils( 364): AV Sync late margin : Intended=40ms Using=0ms
D/PRDrmPlugIn( 358): PRDrmPlugin::onInitialize, uniqueId = 4324
D/PRDrmPlugIn( 358): PRDrmPlugin::onSetOnInfoListener: uniqueId = 4324
D/PRDrmPlugIn( 358): PRDrmPlugin::onTerminate, uniqueId = 4324
D/Botifier(11261): Return result[My Notification, 14]
D/ExtendedUtils( 364): extended extractor not needed, return default
I/MediaPlayerService( 364): [9] prepareAsync
W/SharedAssetStorage( 1194): Launching com.ivona.tts.oem (32024) with AMZ_APP_GID
I/AwesomePlayer( 364): Could not offload audio decode, try pcm offload
I/MediaFocusControl( 1194): AudioFocus requestAudioFocus() from android.media.AudioManager@41bbfe60
I/MediaPlayerService( 364): [9] setVolume(1.000000, 1.000000)
I/MediaPlayerService( 364): [9] start
D/AwesomePlayer( 364): Mime = audio/vorbis
D/MAXS/MAXSTransportService( 2979): onStartCommand: intent=org.projectmaxs.transport.xmpp.SEND_AS_MESSAGE flags=0 startId=21 isRunning=true
D/MAXS/MAXSTransportService( 2979): onStartCommand: stickyStart=true action=org.projectmaxs.transport.xmpp.SEND_AS_MESSAGE
D/MAXS/TransportService( 2979): onHandleIntent: org.projectmaxs.transport.xmpp.SEND_AS_MESSAGE
I/TextToSpeech(11261): Sucessfully bound to com.ivona.tts.oem
D/MAXS/TransportService( 2979): onHandleIntent: org.projectmaxs.transport.xmpp.SEND_AS_MESSAGE handled
W/TextToSpeech(11261): speak failed: not bound to TTS engine
I/ActivityManager( 1194): Start proc com.ivona.tts.oem for service com.ivona.tts.oem/com.ivona.ttslib.ics.IVONATextToSpeechService: pid=11842 uid=32024 gids={72024, 1028, 1015, 3003, 9001}
V/SRS_Proc( 364): ParamSet string: set_output_flags=21:0
D/extended_audio_platform( 364): platform_find_output_node: couldn't find node for 21
D/audio_hw_extn( 364): audio_extn_set_anc_parameters: anc_enabled:0
I/audio_a2dp_hw( 364): adev_set_parameters: state AUDIO_A2DP_STATE_STANDBY
I/audio_a2dp_hw( 364): out_set_parameters: state AUDIO_A2DP_STATE_STANDBY
V/SRS_Proc( 364): ParamSet string: set_output_flags=21:0
D/extended_audio_platform( 364): platform_find_output_node: couldn't find node for 21
D/audio_hw_extn( 364): audio_extn_set_anc_parameters: anc_enabled:0
I/audio_a2dp_hw( 364): adev_set_parameters: state AUDIO_A2DP_STATE_STANDBY
I/audio_a2dp_hw( 364): out_set_parameters: state AUDIO_A2DP_STATE_STANDBY
V/SRS_Proc( 364): ParamSet string: set_output_flags=21:0
D/extended_audio_platform( 364): platform_find_output_node: couldn't find node for 21
D/audio_hw_extn( 364): audio_extn_set_anc_parameters: anc_enabled:0
I/audio_a2dp_hw( 364): adev_set_parameters: state AUDIO_A2DP_STATE_STANDBY
I/audio_a2dp_hw( 364): out_set_parameters: state AUDIO_A2DP_STATE_STANDBY
V/SRS_Proc( 364): ParamSet string: set_output_flags=21:0
D/extended_audio_platform( 364): platform_find_output_node: couldn't find node for 21
D/audio_hw_extn( 364): audio_extn_set_anc_parameters: anc_enabled:0
I/audio_a2dp_hw( 364): adev_set_parameters: state AUDIO_A2DP_STATE_STANDBY
I/audio_a2dp_hw( 364): out_set_parameters: state AUDIO_A2DP_STATE_STANDBY
D/AudioFlinger( 364): start(4096), calling pid 1379 session 22
D/AudioFlinger( 364): ? => ACTIVE (4096) on thread 0xb7e55220
V/LvOutput( 364): initCheck: 0
V/LvOutput( 364): attachEffects: attach processing to output 21, stream 5, session 22, mode 0
V/LvOutput( 364): attachEffects: no output processing needs to be attached to this stream
D/audio_hw_primary( 364): out_set_parameters: enter: usecase(0: deep-buffer-playback) kvpairs: routing=2
D/audio_hw_extn( 364): audio_extn_set_anc_parameters: anc_enabled:0
D/dalvikvm( 357): GC_EXPLICIT freed 42K, 63% free 4877K/13172K, paused 1ms+1ms, total 16ms
D/DlbEndpointParamCache( 364): setDevice(device=0x00000080)
D/DlbEndpointParamCache( 364): setDevice() Applying parameters for new device 0x00000080
D/DlbDapProcess( 364): setParam(vmb = 144)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(dvli = -320)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(dvlo = -320)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(endp = 1)
D/DlbDapProcess( 364): set()
D/DlbEndpointParamCache( 364): doCommit() Committed 4 parameters out of 4.
I/audio_a2dp_hw( 364): out_set_parameters: state AUDIO_A2DP_STATE_STANDBY
D/dalvikvm( 357): GC_EXPLICIT freed <1K, 63% free 4877K/13172K, paused 1ms+2ms, total 15ms
D/dalvikvm( 357): GC_EXPLICIT freed <1K, 63% free 4877K/13172K, paused 1ms+1ms, total 15ms
W/ActivityThread(11842): ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
I/TextToSpeech(11261): Connected to ComponentInfo{com.ivona.tts.oem/com.ivona.ttslib.ics.IVONATextToSpeechService}
I/TextToSpeech(11261): Set up connection to ComponentInfo{com.ivona.tts.oem/com.ivona.ttslib.ics.IVONATextToSpeechService}
D/StatusBar.NetworkController( 1379): refreshViews: Data not connected!! Set no data type icon / Roaming
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioPlayer( 364): updateDolbyProcessedAudioState(processed=0, playing=1)
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): setProcessedAudioState(trackId=61, processed=0)
E/AudioSink( 364): received unknown event type: 1 inside CallbackWrapper !
D/AudioFlinger( 364): start(4096), calling pid 364 session 0
D/AudioFlinger( 364): ? => ACTIVE (4096) on thread 0xb7e57190
D/AudioFlinger( 364): start(4096), calling pid 364 session 0
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): ? => ACTIVE (4096) on thread 0xb7e7be40
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/AudioFlinger( 364): Origami Dolby profiles not supported on this platform.
D/DlbDlbEffect( 364): handle_EFFECT_CMD_SET_PARAM()
D/DlbEffectContext( 364): setPregain(volume=16777216)
D/DlbEffectContext( 364): transformExternalGain() fVol:1.000000 akExtVal:0
D/DlbEndpointParamCache( 364): commitChangedParams()
D/DlbEndpointParamCache( 364): commit() Applying parameters for device 0x40000000
D/DlbDapProcess( 364): setParam(preg = 0)
D/DlbDapProcess( 364): set()
D/DlbEndpointParamCache( 364): doCommit() Committed 1 parameters out of 45.
D/DlbEndpointParamCache( 364): commit() Overriding parameters for current device 0x00000080
D/DlbDapProcess( 364): setParam(vmb = 144)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(dvli = -320)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(dvlo = -320)
D/DlbDapProcess( 364): set()
D/DlbDapProcess( 364): setParam(endp = 1)
D/DlbDapProcess( 364): set()
D/DlbEndpointParamCache( 364): doCommit() Committed 4 parameters out of 4.
D/DlbDlbEffect( 364): handle_EFFECT_CMD_SET_PARAM()
D/DlbEffectContext( 364): setPregain(volume=16777216)
D/DlbEffectContext( 364): transformExternalGain() fVol:1.000000 akExtVal:0
D/DlbQdspAlsaDriver( 364): setParam(): device 0x40000000, QDSP param 0x10728, length 1
D/DlbQdspAlsaDriver( 364): commitChangedParams()
D/audio_hw_primary( 364): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
D/hardware_info( 364): hw_info_append_hw_type : device_name = speaker
D/ACDB-LOADER( 364): ACDB -> send_audio_cal, acdb_id = 53, path = 0
I/audio_a2dp_hw( 364): start_audio_datapath: state AUDIO_A2DP_STATE_STANDBY
I/audio_a2dp_hw( 364): a2dp_command: A2DP COMMAND A2DP_CTRL_CMD_START
D/ExternalSpeakerAmpControl( 364): EnableAmps complete. Result = 2
D/audio_speaker_platform( 364): Loading speaker use case "music"
W/bt-btif ( 2399): BTHF: btif_multihf_is_call_idle: BTHF not initialized
D/bt-btif ( 2399): btif_av_state_opened_handler event:BTIF_AV_START_STREAM_REQ_EVT flags 0
D/bt-btif ( 2399): AV Sevent(0x41)=0x120b(AP_START) state=3(OPEN)
W/bt-btm ( 2399): BTM: Local device role : 0x00
W/bt-btm ( 2399): BTM: XXXXXXXXXXXXXXXXXXXXXXX
D/bt_hci_bdroid( 2399): signal_event :0x8
W/bt-btif ( 2399): bta_dm_rm_cback:1, status:7
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
D/bt_hci_bdroid( 2399): signal_event :0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
W/bt-l2cap( 2399): L2CA_SetDesireRole() new:x0, disallow_switch:0
D/bt_hci_bdroid( 2399): signal_event :0x8
D/bt_hci_bdroid( 2399): signal_event :0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
D/bt_hci_bdroid( 2399): signal_event :0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
D/bt-btif ( 2399): AV Sevent(0x41)=0x121c(STR_START_OK) state=3(OPEN)
W/bt-btm ( 2399): BTM: Local device role : 0x00
W/bt-btm ( 2399): BTM: XXXXXXXXXXXXXXXXXXXXXXX
E/bt-btif ( 2399): bta_av_link_role_ok hndl:x41 role:0, conn_audio:x1, bits:1, features:x824b
W/bt-btif ( 2399): bta_dm_rm_cback:1, status:0
W/bt-l2cap( 2399): L2CA_SetDesireRole() new:x0, disallow_switch:0
W/bt-btif ( 2399): bta_dm_rm_cback:1, status:7
W/bt-l2cap( 2399): L2CA_SetDesireRole() new:x0, disallow_switch:0
D/bt_hci_bdroid( 2399): signal_event :0x80
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x80
D/bt_hci_bdroid( 2399): signal_event :0x80
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x80
D/bt_hci_bdroid( 2399): signal_event :0x80
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x80
D/bt-btif ( 2399): btif_av_state_opened_handler event:BTA_AV_START_EVT flags 4
I/audio_a2dp_hw( 364): a2dp_command: A2DP COMMAND A2DP_CTRL_CMD_START DONE STATUS 0
I/audio_a2dp_hw( 364): skt_connect: connect to /data/misc/bluedroid/.a2dp_data (sz 4096)
I/audio_a2dp_hw( 364): skt_connect: connected to stack fd = 53
E/audio_a2dp_hw( 364): ts_error_log: [a2dp_out_write] ts 525432779, diff 525432779, val 4096 4096
W/bt-btif ( 2399): pcm bytes per tick 3840
D/bt-btif ( 2399): pcm bytes per tick 3840
D/bt-btif ( 2399): btif_av_state_started_handler event:BTIF_SM_ENTER_EVT flags 0
I/BluetoothA2dpServiceJni( 2399): bta2dp_audio_state_callback
D/A2dpStateMachine( 2399): Connected process message: 101
I/Avrcp ( 2399): old state = 0, new state= 3
D/Avrcp ( 2399): Update mPlayStartTimeMs to 525429
I/Avrcp ( 2399): update com.android.music playbackState as: Paused
I/Avrcp ( 2399): update com.google.android.music playbackState as: Paused
I/Avrcp ( 2399): update com.amazon.mp3 playbackState as: Paused
V/HeadsetService( 2399): HeadsetService - Received BluetoothA2dp Play State changed
I/HeadsetStateMachine( 2399): A2dp Play State Changed: Current State: 10Prev State: 11A2pSuspend: false
V/HeadsetStateMachine( 2399): A2dp Started 10
I/BtOppService( 2399): Received BluetoothA2dp.ACTION_PLAYING_STATE_CHANGED
I/BtOppService( 2399): device: xxxx newState: 10
D/A2dpStateMachine( 2399): A2DP Playing state : device: xxxx State:11->10
E/bt-btif ( 2399): [media task tx timer] ts 525450654, diff : 525450654, queue sz 0
D/bt_hci_bdroid( 2399): signal_event :0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x8
D/bt_hci_bdroid( 2399): bt_hc_worker_thread recvd HC_EVENT_TX
D/bt_hci_bdroid( 2399): signal_event :0x80
D/bt_hci_bdroid( 2399): signal_event :0x80
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x80
D/bt_hci_bdroid( 2399): bt_hc_worker_thread events : 0x80
W/AudioFlinger( 364): write blocked for 475 msecs, 1 delayed writes, thread 0xb4ba9008
E/audio_a2dp_hw( 364): ts_error_log: [a2dp_out_write] ts 525470738, diff 00037959, val 4096 4096

Permission <READ_PHONE_STATE> are declared but not used

Hello, I'm Denis Bogdanas, a research assistant at Oregon Stat University.
I'm working on a tool that automatically introduces runtime permission checks and requests for Android 6 apps. As part of this study I analyzed this app. I was looking at the way permissions are referred in the code.

This app declares permission <READ_PHONE_STATE> in the apk manifest, but doesn't have any code that requires them. It is possible that source code doesn't declare the permissions. I only analyzed apk builds from f-droid. Yet android build mechanism may introduce them when the app uses certain libraries:

https://commonsware.com/blog/2015/06/25/hey-where-did-these-permissions-come-from.html

It won't create any problems on Android 6, but on Android 5- users may wonder why the app needs these permissions and be skeptical of installing the app.

Do you think this is an issue?

best regards,
Denis

Provide source for SmartExtension libraries

I couldn't find the source for the smartextensions, just a binary repo and docs on sony's website... Could you point me to the right direction or include the source directly?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.