Git Product home page Git Product logo

abpadlockscreen's People

Contributors

2inqui avatar abury avatar andreacremaschi avatar chocochipset avatar chy89310 avatar djbe avatar haswalt avatar ijansch avatar italypaleale avatar johankool avatar lbkehlmann avatar leonatan avatar mteece avatar sdrew avatar syky27 avatar victorwon avatar vladzz avatar wolffan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

abpadlockscreen's Issues

Localisation

An effective method for localisation needs to be added, ideally the ability to set custom text for the different labels on the view.

Swift 1.2

Hi

with Swift 1.2 the lib doesn't work

bolo

Hide OK button and set MIN & Max length to 5 digit.

Thank you for this great controller.
Screen show show UI without OK button As Native look for iOS.
Is there any inbuilt method to hide OK button and set Max length of Character ?
Any Help will be Appreciate.

Very similar to iOS interface

My app has just been rejected because "the passcode screen may be confusingly similar to the iOS Passcode interface."

It's not secure

Hi,

IMHO this view is definitely not suitable for apps with any sensitive data. Why? Because using some runtime hackery with LLDB (you can wire up LLDB debugger to an app on a Jailbroken device) one could simply remove the ABPadLockScreen from the view hierarchy. I know - there's no uncrackable software, but this one is trivial to omit. My guess is that you should try to cache and temporarily remove the view hierarchy from the screen whenever ABPadLockScreen is shown and recover it after successful unlock.

Cannot be localized

Since the properties are readonly, you cannot change the strings and cannot be localized.

Thank you.

Is this repository active?

I think that core developer, @abury, doesn't have time for maintenance as he mentioned in #57.

Maybe I am wrong.

Need @abury response.

Also, it would be good to add another contributors/core developers.
I would like to spend some time on this project.
Any suggestions from others appreciated.

Landscape error iphone

If you start the PadView, from a view in landscape mode on the iPhone 6 Plus the cancel button not work and the view is seen wrong, compared to when the start from a screen in portrait

App got rejected because of passcode interface same as iOS default

8.3 Details Your app contains features that mimic the passcode iOS interface or behavior. We’ve attached screenshot(s) for your reference.

Apps that appear confusingly similar to an existing Apple product, interface, or advertising theme will be rejected

Please remove or revise these features to make them distinctly different from the iOS behaviors and interfaces to avoid causing user confusion.

self = [self init]

  • (id)initWithPinLength:(NSUInteger)pinLength
    {
    self = [self init];
    if (self)
    {
    _pinLength = pinLength;
    }
    return self;
    }

this is so wrong... you cannot subclass....

How to use ABPadLockScreen with Pods.

I have installed ABPadLockScreen with Pods. I can see all imported files in pods. But I am unable to use those files. I am unable to understand how should i import ABPadLockScreen Module. Can you please provide some description about how to import module and use screens using pods under description of your project.

Right now I am just trying to import using following statement, but it is not importing module.

import ABPadLockScreen

iPhone Landscape

I was happy to see that you have updated your class to a iOS 7 style.
But noticed, that it now does not support landscape mode on the iPhone anymore.

Abstract protocol prevents conforming in swift 1.2

Because of the abstract decleration of the protocol it's impossible to confirm to the ABPadLockScreenViewControllerProtocol because:

  1. Only declaring 1 method fails. The abstract method is also required to conform.
  2. Declaring both methods causes build errors due to duplicate method declerations.

We removed the abstract protocol from our fork to make it work in swift but that's not ideal. Secondly I'd like to know more why there is the abstract? It doesn't seem to provide a great deal other than confusion and 2 places for the code to reside.

Default styles

The default style currently has black text against a black background... not ideal.

This should be fixed up.

Support unknown length pincodes

This is a great control, but I think several improvements are necessary.

There is already support for number of dots to display. However, this can be problematic and insecure to keep this information. Usually, a pincode is not stored in plaintext, but usually a hash is used. So exposing the number of characters is unsecure.

Here is how Apple solved it:

complex

There is a textview, it gets filled, and when the user taps the OK button, validation is performed.

Delete / Cancel button can't have larger text

Hy, in my native language (dutch) the words for delete (Verwijderen) and cancel (Annuleren) are a little lager then the delete button / cancel button can handle. Can the button be enlarged so it can handle a slightly larger text?

Vibrate the phone on error

Similar to the original Passcode on the iphone. It'll be awesome if the phone could vibrate when getting the PIN wrong. Thanks.

Add keyboard support

Adding the following code to ABPadLockScreenAbstractViewController.m will allow connected Bluetooth keyboards to be used when entering PIN codes:

-(BOOL)canBecomeFirstResponder {
    return YES;
}

-(NSArray<UIKeyCommand *> * __nullable)keyCommands {
    UIKeyCommand *delete = [UIKeyCommand keyCommandWithInput:@"\b" modifierFlags:0 action:@selector(deleteFromPin)];
    UIKeyCommand *cancel = [UIKeyCommand keyCommandWithInput:UIKeyInputEscape modifierFlags:0 action:@selector(cancelButtonSelected:)];
    NSMutableArray *commands = [@[delete, cancel] mutableCopy];
    if (self.isComplexPin) {
        [commands addObject:[UIKeyCommand keyCommandWithInput:@"\r" modifierFlags:0 action:@selector(okButtonSelected:)]];
    }
    for (int buttonNum = 0; buttonNum <= 9; buttonNum++) {
        [commands addObject:[UIKeyCommand keyCommandWithInput:[NSString stringWithFormat:@"%i", buttonNum] modifierFlags:0 action:@selector(handleNumberButton:)]];
    }
    return commands;
}

- (void)handleNumberButton:(UIKeyCommand *)command
{
    NSString *input = command.input;
    NSInteger number = [input integerValue];
    ABPadButton *theButton = lockScreenView.buttonArray[number];
    [UIView animateWithDuration:.2 delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{
        [theButton touchesBegan:[NSSet setWithArray:@[]] withEvent:nil];
    } completion:^(BOOL finished) {
        [theButton touchesEnded:[NSSet setWithArray:@[]] withEvent:nil];
    }];
    [self newPinSelected:number];
}

Support delegate-based pincode authentication

Another issue,

There should be an option for delegate-based authentication, where the user-entered pincode is provided, and the delegate provides a boolean value whether authentication passed or not.

This is necessary because often pincodes are not saved, but rather their hashes. So it would be impossible to provide it during init. Then, to check, the user-entered pincode is hashed and the two hashes are compared instead. This should not be done in the view itself, it should be done by the delegate.

Thanks,
Leo

Change old pin functionality

Well, it would be nice to have separate screen that would change existing pin passcode to new one.
It should check existing pin first and after that it should setup new pin.

So, this screen would combine two screens: lock screen to unlock 'change' ability and setup screen to setup new pin

non modular header inside framework error when using Xcode 7.1 on Swift

Hi,

I found this error today when trying to include the framework in a .swift file and was able to fix it by changing all the .h files target membership from Project to Public. It might be helpful to change this for future users. This was when using the framework and not cocoapods.

Best,
Mike

Set PIN feature

As a developer I want be able to set the ABPadLockScreenController to 'Set PIN' mode. When displayed in this mode it will allow the user to enter a PIN code, confirm that PIN code and return the code to me via a delegate method. After setting the PIN the controller will close and return itself to 'normal entry' mode.

I want appropriate animations to be used when confirming the PIN value

background color not changing

I am running swift demo app , background color showing black . In another project , i am calling it in a observer and When app coming from background then at that time only background color is showing change .
NSNotificationCenter.defaultCenter().addObserverForName(UIApplicationDidEnterBackgroundNotification, object: nil, queue: NSOperationQueue.mainQueue()) {_ in

        if (dataViewController().getpass() == "")
        {  
            self.setPin() // here I am calling set pin screen 

        }else{

            self.lockApp()   // here i am calling to unlock screen 


        }

In one Line - In observer it is working but as a normal code it is not working

Fast same button press

When you press the same button more than once, you need to wait before the animation finishes to press again.
(Gesture: Failed to receive system gesture state notification before next touch)
This leads to slow entering of common passwords like 0000, 1111 and likewise

Maybe it could be fixed by adding the selected view after the buttonview in the self.view hierarchy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.