from pathlib import Path
root=Path(__file__).resolve().parents[1]
bridge=(root/"src/com/lemenzo/messenger/sms/BulkSmsBridgeReceiver.java").read_text()
tracker=(root/"src/com/lemenzo/messenger/sms/MultipartSendTracker.java").read_text()
manifest=(root/"AndroidManifest.xml").read_text()
checks={
"Messenger defines signature permission":
    'android:name="com.lemenzo.permission.MULTI_SMS"' in manifest and
    'android:protectionLevel="signature"' in manifest,
"Messenger bridge receiver is exported":
    'android:name=".sms.BulkSmsBridgeReceiver"' in manifest and
    'android:exported="true"' in manifest,
"Messenger bridge requires permission":
    'android:permission="com.lemenzo.permission.MULTI_SMS"' in manifest,
"Immediate failure callback is explicit":
    '"com.lemenzo.multisms.BulkStatusReceiver"' in bridge,
"Final tracker callback is explicit":
    '"com.lemenzo.multisms.BulkStatusReceiver"' in tracker,
"Status callback action preserved":
    '"com.lemenzo.multisms.BULK_STATUS"' in bridge and
    '"com.lemenzo.multisms.BULK_STATUS"' in tracker,
}
bad=[k for k,v in checks.items() if not v]
if bad:
 print("EXPLICIT MULTI SMS CALLBACK VALIDATION: FAIL")
 for x in bad: print("-",x)
 raise SystemExit(1)
print("EXPLICIT MULTI SMS CALLBACK VALIDATION: PASS")
for x in checks: print("-",x)
