tree 39dd79f533db3ad7fc49023a30904c3318d23d51
parent 70a43cb2a5ea8950f5518dd1e8821501164f8dfe
author Michael Bestas <mikeioannina@gmail.com> 1386819654 +0200
committer SamarV-121 <samar@samarv121.dev> 1710305028 +0530
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEEFuXitIY/O9P5vxqQfFT6H+3hNyEFAmXxLwQACgkQfFT6H+3h
 NyHbWAv/dv8hSB4a6y6XMS6ipTmomeMeFfDSmhpk2C+iV4BSJAcKT0yXvYIaJOqo
 eWADmUnAcIWyVXHmPKWnUPkmbxIX3jUVwih9Em1nfhvUq32ycEGmLWIQclZhgLc0
 LtCagzXYR0naDLPEEY3jwlDrmiOJ3wBGNrFBwpU+tRH9Oxi0EfQifjsufrsNQrjm
 /a53M3I8A1oQF0WoKMcW2NzaVWi+Hai/BG+VCemonZMpe4ReNGhBsZ8RNysd0dqt
 Gjdy4xLgO0UCv/dfBkPfRILSM7C+3wxo6WPE/ZeuNUZevtWnokqUqT1rKV2aRQuM
 9XjVtm3D/YOh4bv70Db0J/dneM354EFT77jvOVnIR+xq5zrsUWDO2MDgs9twUyem
 iy+9x91WZc2xAop8rw6KDcMM9YbcVIeMmTlFTTiENjlDHsUIZbc/qIjb6jGMhcZV
 I94bhB1uNjQ2iAUDVRbs+I0vDOWCwUsSiVlwNQ/OA8V8hI4GyjGuNv1WBik3zw2a
 ++olQ5a4
 =9F1d
 -----END PGP SIGNATURE-----

Settings: Forward port lock pattern grid size (2/2)

Author: d34d <clark@cyngn.com>
Date:   Tue Dec 29 11:51:21 2015 -0800

    Fingerprint: Forward challenge extras

    The forward port of custom pattern sizes introduced a bug that would
    cause an NPE when trying to add a fingerprint for security. This patch
    forwards the extras associated with the challenge that would have
    normally been passed directly in to the ChooseLockPattern fragment.

    Change-Id: I3ad994b2604ff45b573c011c3588afe8b35bfdd3
    TICKET: CYNGNOS-1490

Author: Roman Birg <roman@cyngn.com>
Date:   Mon Mar 21 15:17:16 2016 -0700

    Settings: forward decrypt required on boot flag

    This wasn't being pass forward and all of the defaults had it set to
    true.

    Ticket: CYNGNOS-2270

    Change-Id: I90a6c918bb5b4b52791bcff18a6ea3bcfb194547
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Fri Dec 11 11:37:00 2015 -0600

    Settings: allow rotation while setting new pattern

    Change-Id: I0fc9a7df686b8af0c60edf1916dc6fe02185f704
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Mon Apr 6 12:20:33 2015 -0700

    Settings: handle decrypting larger pattern sizes

    Change-Id: Id24d46829063171fa87cabb23a7da378726d7548
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Tue Apr 28 14:02:21 2015 -0700

    CryptKeeper: pattern unlock displays incorrect pw when correct

    fakeUnlockAttempt() gets called when the user inputs any pattern length
    < 4 which queues up the 'incorrect error' message. The message needs to
    be cleared before trying to actually check the password so it never goes
    through in case the password was correct.

    Change-Id: If78db332d3d696ba443d0be911fb5db504cb14cd
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Fri May 1 17:07:47 2015 -0700

    Settings: fix non lock pattern CryptKeeper crash

    Change-Id: Ib2d6c9a468bfe778d5cb927759f11b2b03c25ee6
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Tue May 19 14:06:51 2015 -0700

    CryptKeeper: layout whole screen in bounds

    Add flags to make the screen layout properly on devices with the
    navigation bar visible

    Change-Id: I8607c8e49ac3625a7fb6a13b4501ea7ac818b9ba
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Roman Birg <roman@cyngn.com>
Date:   Wed May 20 10:31:13 2015 -0700

    CryptKeeper improvements

    - Status text was used enough to warrant it being a field variable
      instead of looking for the view every time

    - Display proper text after changing pattern sizes (to input a pattern,
      not a password)

    - Disable changing pattern sizes while validaing pattern

    REFS: LETTUCE-557, LETTUCE-352
    Change-Id: Ib4ecf04a58da8d1648d514d9650d69c33d9587a7
    Signed-off-by: Roman Birg <roman@cyngn.com>

Author: Alberto97 <albertop2197@gmail.com>
Date:   Mon Nov 21 20:47:25 2016 +0100

    Settings: Use GLIF Theme for missing Settings > Screen lock Activities

    Icons by Asher

    Change-Id: Icf1627b41ef604302a5819ad3b1bdfd6d8479202

Author: LuK1337 <priv.luk@gmail.com>
Date:   Mon May 10 22:00:01 2021 +0200

    Settings: Remove hardcoded extras from ChooseLockPatternSize

    Change-Id: I860d87842de0dbb9f87394a0c1fc5043fd16b07b

Author: LuK1337 <priv.luk@gmail.com>
Date:   Tue May 11 11:32:38 2021 +0200

    Settings: Make setup wizard go through ChooseLockPatternSize if needed

    Change-Id: Idfd3670d4b541b3618c4416b3b9dbf7d88ae3ed1

Author: LuK1337 <priv.luk@gmail.com>
Date:   Mon May 10 22:29:49 2021 +0200

    Settings: Make FRP go through ChooseLockPatternSize if needed

    Change-Id: I70b0ddb20033dd5505c391763a0a58fd2f9c8004

Change-Id: I7078d703c218cd096d9b77c003a94b52fbce6322
