Android Open Source - passwords Password Popup






From Project

Back to project page passwords.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project passwords listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

// Copyright 2014 Neil Wilkinson
///* w  ww . j  a  v a  2  s .co  m*/
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//        http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.measuredsoftware.passvault.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.animation.OvershootInterpolator;
import android.widget.TextView;
import com.measuredsoftware.passvault.R;

import java.util.Arrays;

/**
 * Popup that shows the (optionally obscured) password.
 */
public class PasswordPopup extends TextView
{
    private static final float SCALE_FACTOR = 0.6f;
    private static final int ANIMATION_DURATION = 250;

    public PasswordPopup(final Context context, final AttributeSet attrs)
    {
        super(context, attrs);

        setTextSize(context.getResources().getDimensionPixelSize(R.dimen.popup_password_text_size));
        setBackgroundResource(R.drawable.popup_password_background);
    }

    public void setPassword(final String password, final boolean obscure)
    {
        setText(obscure ? obscurePassword(password) : password);
    }

    private String obscurePassword(final String password)
    {
        final StringBuilder sb = new StringBuilder();

        final int length = password.length();
        final int charsShown;
        if (length < 5)
        {
            charsShown = 0;
        }
        else if (length < 7)
        {
            charsShown = 1;
        }
        else
        {
            charsShown = 2;
        }

        if (charsShown > 0)
        {
            sb.append(password.substring(0, charsShown));
        }
        final char[] chars = new char[length - (charsShown * 2)];
        Arrays.fill(chars, '??');
        sb.append(String.valueOf(chars));
        if (charsShown > 0)
        {
            sb.append(password.substring(length - charsShown, length));
        }
        return sb.toString();
    }

    public void show(final int centreX, final int centreY)
    {
        // post so it goes on the next tick and it'll have been layed out since the setText() call.
        getHandler().post(new Runnable()
        {
            @Override
            public void run()
            {
                final int left = centreX - (getWidth() / 2);
                final int top = centreY - (getHeight() / 2);

                setVisibility(VISIBLE);
                setTranslationX(left);
                setTranslationY(top);

                setAlpha(0f);
                setScaleX(SCALE_FACTOR);
                setScaleY(SCALE_FACTOR);

                animate().alpha(1f).scaleX(1f).scaleY(1f).setInterpolator(new OvershootInterpolator()).setDuration(ANIMATION_DURATION)
                         .start();
            }
        });
    }

    public void close()
    {
        setVisibility(INVISIBLE);
    }
}




Java Source Code List

com.measuredsoftware.passvault.AbsPasswordActivity.java
com.measuredsoftware.passvault.EditPasswordActivity.java
com.measuredsoftware.passvault.MainActivity.java
com.measuredsoftware.passvault.NewPasswordActivity.java
com.measuredsoftware.passvault.PassVaultApplication.java
com.measuredsoftware.passvault.Typefaces.java
com.measuredsoftware.passvault.drawable.StateTransitionDrawable.java
com.measuredsoftware.passvault.listener.PasswordTextWatcher.java
com.measuredsoftware.passvault.model.PasswordGenerator.java
com.measuredsoftware.passvault.model.PasswordListAdapter.java
com.measuredsoftware.passvault.model.PasswordModel.java
com.measuredsoftware.passvault.model.RandomRandomizer.java
com.measuredsoftware.passvault.model.Randomizer.java
com.measuredsoftware.passvault.model.UserPreferences.java
com.measuredsoftware.passvault.tools.StringTools.java
com.measuredsoftware.passvault.view.AddArrow.java
com.measuredsoftware.passvault.view.AnimatedListView.java
com.measuredsoftware.passvault.view.BackgroundContainer.java
com.measuredsoftware.passvault.view.CondensedCheckedTextView.java
com.measuredsoftware.passvault.view.CondensedEditText.java
com.measuredsoftware.passvault.view.CondensedTextButton.java
com.measuredsoftware.passvault.view.CondensedTextView.java
com.measuredsoftware.passvault.view.FooterBar.java
com.measuredsoftware.passvault.view.GeneratorSection.java
com.measuredsoftware.passvault.view.MenuScreen.java
com.measuredsoftware.passvault.view.PasswordLengthSlider.java
com.measuredsoftware.passvault.view.PasswordListItem.java
com.measuredsoftware.passvault.view.PasswordList.java
com.measuredsoftware.passvault.view.PasswordPopup.java
com.measuredsoftware.passvault.view.PasswordRandomizerView.java
com.measuredsoftware.passvault.view.PressImageButton.java
com.measuredsoftware.passvault.view.TitleBar.java