Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extend AccuradioDetector to bigcontentview #93

Open
abertschi opened this issue Nov 29, 2023 · 10 comments
Open

Extend AccuradioDetector to bigcontentview #93

abertschi opened this issue Nov 29, 2023 · 10 comments

Comments

@abertschi
Copy link
Owner

AccuradioDetector only parses contentview, extend it to include (now deprecated) bigcontentview.

https://developer.android.com/reference/android/app/Notification#bigContentView

</android.service.notification.StatusBarNotification><android.service.notification.StatusBarNotification>
  <groupKey>0|com.slipstream.accuradio|101|null|10295</groupKey>
  <id>101</id>
  <initialPid>5166</initialPid>
  <key>0|com.slipstream.accuradio|101|null|10295</key>
  <notification>
    <allPendingIntents>
      <mArray>
        <android.app.PendingIntent>
          <mTarget class="android.content.IIntentSender$Stub$Proxy">
            <mRemote class="android.os.BinderProxy"/>
          </mTarget>
          <mWhitelistToken class="android.os.BinderProxy"/>
        </android.app.PendingIntent>
        <android.app.PendingIntent>
          <mTarget class="android.content.IIntentSender$Stub$Proxy">
            <mRemote class="android.os.BinderProxy"/>
          </mTarget>
          <mWhitelistToken class="android.os.BinderProxy" reference="../../android.app.PendingIntent/mWhitelistToken"/>
        </android.app.PendingIntent>
      </mArray>
      <mHashes>
        <int>98166312</int>
        <int>215441217</int>
      </mHashes>
      <mIdentityHashCode>false</mIdentityHashCode>
      <mSize>2</mSize>
    </allPendingIntents>
    <audioAttributes>
      <mContentType>4</mContentType>
      <mFlags>2048</mFlags>
      <mFormattedTags></mFormattedTags>
      <mSource>-1</mSource>
      <mTags/>
      <mUsage>5</mUsage>
    </audioAttributes>
    <audioStreamType>-1</audioStreamType>
    <bigContentView>
      <mActions>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296728</viewId>
          <methodName>setVisibility</methodName>
          <value class="int">8</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296758</viewId>
          <methodName>setVisibility</methodName>
          <value class="int">8</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296800</viewId>
          <methodName>setVisibility</methodName>
          <value class="int">8</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296703</viewId>
          <methodName>setText</methodName>
          <value class="string"></value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296702</viewId>
          <methodName>setText</methodName>
          <value class="string">Music will resume shortly...</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296399</viewId>
          <methodName>setText</methodName>
          <value class="string">1980s Hits</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-ReflectionAction>
          <viewId>2131296810</viewId>
          <methodName>setImageResource</methodName>
          <value class="int">2131230805</value>
        </android.widget.RemoteViews_-ReflectionAction>
        <android.widget.RemoteViews_-SetOnClickResponse>
          <viewId>2131296758</viewId>
        </android.widget.RemoteViews_-SetOnClickResponse>
      </mActions>
      <mApplication>
        <banner>0</banner>
        <icon>2131230927</icon>
        <labelRes>2131755044</labelRes>
        <logo>0</logo>
        <name>com.slipstream.accuradio.AccuRadioApplication</name>
        <packageName>com.slipstream.accuradio</packageName>
        <showUserIcon>-10000</showUserIcon>
        <appComponentFactory>androidx.core.app.CoreComponentFactory</appComponentFactory>
        <category>-1</category>
        <className>com.slipstream.accuradio.AccuRadioApplication</className>
        <compatibleWidthLimitDp>0</compatibleWidthLimitDp>
        <compileSdkVersion>31</compileSdkVersion>
        <compileSdkVersionCodename>12</compileSdkVersionCodename>
        <credentialProtectedDataDir>/data/user/0/com.slipstream.accuradio</credentialProtectedDataDir>
        <dataDir>/data/user/0/com.slipstream.accuradio</dataDir>
        <descriptionRes>0</descriptionRes>
        <deviceProtectedDataDir>/data/user_de/0/com.slipstream.accuradio</deviceProtectedDataDir>
        <enabled>true</enabled>
        <enabledSetting>0</enabledSetting>
        <flags>551075396</flags>
        <fullBackupContent>0</fullBackupContent>
        <installLocation>-1</installLocation>
        <largestWidthLimitDp>0</largestWidthLimitDp>
        <longVersionCode>83</longVersionCode>
        <mHiddenApiPolicy>-1</mHiddenApiPolicy>
        <maxAspectRatio>0.0</maxAspectRatio>
        <minSdkVersion>23</minSdkVersion>

#83 @unseenlarks

@abertschi
Copy link
Owner Author

  • Additionally, we can add a feature to use reflection and compare all string fields to match one of the user entries in Generic Text Detector. This will make the Generic Text Detector work with custom notification content that uses unconventional fields to store text but comes with a performance/ battery penalty.

@unseenlarks
Copy link

thank you for looking into this. :)

@abertschi abertschi mentioned this issue Dec 8, 2023
@abertschi
Copy link
Owner Author

Fixed in #94

@unseenlarks
Copy link

much appreciated, will grab the .apk ASAP.

@abertschi
Copy link
Owner Author

also i use the device in dark mode and the smaller notifications the app gives (for example when enabling developer mode, then a tracer for a specific app), are hard to read.

Can you post a screenshot showing what is hard to read?

@abertschi
Copy link
Owner Author

And ideally a screenshot of the notification when the ad occurs (and not being detected). Will look again at the tracing dump file. It's a bit hard to troubleshoot as the issue seems device/ OS specific. I did not have this issue on my phone.
What phone do you have?

@abertschi
Copy link
Owner Author

The new generic text detector should now be able to detect any text in the notification, supposing the text is text and not an image. Enabling best effort and user defined text detector (with the ad string) does not fix the issue?

@abertschi
Copy link
Owner Author

The most recent tracing file does not contain an Ad with the text: "Music will resume shortly..". Did you record the old tracing file with the same version of Android 13? If so we do not need a new tracing file. Otherwise, could you create another tracing file and ensure that you can capture an ad?. many thanks :)

@unseenlarks
Copy link

unseenlarks commented Dec 11, 2023

moto g32 running Android 13. the log i originally sent in November had the device still on Android 12.

i set battery optimisation to unrestricted, and always-on notifications to on, but the settings didn't apply until i restarted the device.

after that, the notification appeared, as shown on screenshot, but ad was not muted. maybe this app's developers have managed something, to make the ad not register as one?
adfree

text i can't read is shown here.
text

sharing the log again, in case it contains something new after the reboot.
adfree-accuradio.txt

@unseenlarks
Copy link

i don't know if it will help, but for this log i restarted the station three times, so three "Music will resume shortly..." ads would play.
adfree-accuradio.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants