/TheLearningLock

A lock screen that learns

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

TheLearningLock

An Android app that uses an anomaly detection (based on a Normal Distribution) to learn how the user enters their pattern and detects it there is an imposter

Setup
  • Install JDK
  • Install Android Studio + Android SDK
  • Create / Get the app/src/main/res/values/secrets.xml file which contains API keys. The format should be
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="AWARENESS_API_KEY_DEBUG">{Google API Key for debug builds}</string>
    <string name="AWARENESS_API_KEY_RELEASE">{Google API Key for release builds}</string>
    <string name="FABRIC_API_KEY_DEBUG">{Crashlytics API Key for debug builds}</string>
    <string name="FABRIC_API_KEY_RELEASE">{Crashlytics API Key for release builds}</string>
</resources>
  • Build and Run on Android Studio
Details

Minimum API - Android 4.4 (Level 19) / Kitkat

Source Code package structure
  • lockscreen: Contains code related to the Lock screen that is shown when the phone is locked and any related code, such as the notifications system
  • main: The Activity that is actually launched when the app starts, and the Welcome and Settings fragments
  • pattern: Shared files that are used for anything related to the Pattern unlock
  • pin: Shared files that are used for anything related to the PIN unlock
  • setup: Code related to the Setup flow (which is used by the stuff in main)
  • shared: Code that is shared by the other packages
Credits

Created by Alston Lin with contributions from Ejaaz Merali, and Tyler Wang

Designed by David Liu