from pathlib import Path
root=Path(__file__).resolve().parents[1]
clock=(root/'src/com/lemenzo/clock/ClockActivity.java').read_text()
ui=(root/'src/com/lemenzo/clock/util/Ui.java').read_text()
settings=(root/'src/com/lemenzo/clock/settings/SettingsActivity.java').read_text()
alarm=(root/'src/com/lemenzo/clock/alarm/AlarmEditorActivity.java').read_text()
world=(root/'src/com/lemenzo/clock/worldclock/WorldClockRepository.java').read_text()
strings=(root/'res/values/strings.xml').read_text()
checks={
    'lifecycle-aware ticker':'tickerRunning' in clock and 'onPause(){tickerRunning=false' in clock,
    'no always-on 250ms ticker':'postDelayed(this,250)' not in clock,
    'stopwatch cached repository':'stopwatchRepository=new StopwatchRepository(this)' in clock,
    'timer cached repository':'timerRepository=new TimerRepository(this)' in clock,
    'timer direct view map':'timerCountdownViews' in clock and 'refreshTimerIn(' not in clock,
    'world-clock cached search index':'searchIndex' in world and 'SearchEntry' in world,
    'modern settings rows':'Ui.settingsRow' in settings and 'setSingleChoiceItems' in settings,
    'no legacy settings spinner':'Spinner' not in settings and 'simple_spinner' not in settings,
    'modern alarm snooze':'Ui.settingsRow' in alarm and 'setSingleChoiceItems' in alarm and 'Spinner' not in alarm,
    'LemenzoOS dark base':'BLACK=0xff08090c' in ui,
    'Lemenzo blue':'BLUE=0xff3f8cff' in ui,
    'navy surfaces':'SURFACE2=0xff0b1929' in ui and 'SURFACE3=0xff102641' in ui,
    'About version 1.0':'name="version_1_0">1.0<' in strings,
}
failed=[k for k,v in checks.items() if not v]
for k,v in checks.items(): print(('PASS' if v else 'FAIL')+': '+k)
if failed: raise SystemExit('FAILED: '+', '.join(failed))
print('LEMENZO CLOCK V3.2 MODERN/PERFORMANCE VALIDATION: PASS')
