
package com.pro100svitlo.fingerprintauthdemo;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.pro100svitlo.fingerprintAuthHelper.FahErrorType;
import com.pro100svitlo.fingerprintAuthHelper.FahListener;
import com.pro100svitlo.fingerprintAuthHelper.FahSecureSettingsDialog;
import com.pro100svitlo.fingerprintAuthHelper.FingerprintAuthHelper;
import java.util.concurrent.TimeUnit;
public class MainActivity extends AppCompatActivity implements FahListener {
private final int TIME_OUT = 500;
private FingerprintAuthHelper mFAH;
private FahSecureSettingsDialog mSecureSettingsDialog;
private ImageView mFingerprintIcon;
private TextView mFingerprintText;
private String mFingerprintRetryStr;
private int mFpColorError;
private int mFpColorNormal;
private int mFpColorSuccess;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mFingerprintIcon = (ImageView) findViewById(R.id.iv_fingerprint);
mFingerprintText = (TextView) findViewById(R.id.tv_fingerprintText);
mFAH = new FingerprintAuthHelper.Builder(this, this)
.setTryTimeOut(2 * 60 * 1000)
.setKeyName(MainActivity.class.getSimpleName())
.setLoggingEnable(true)
.setMaxTryCount(1)
.build();
boolean isHardwareEnable = mFAH.isHardwareEnable();
//in case if user want to disable usage fingerprint u can turn if off
// mFAH.setCanListenByUser(false);
if (isHardwareEnable && mFAH.canListenByUser()){
mFpColorError = ContextCompat.getColor(this, android.R.color.holo_red_dark);
mFpColorNormal = ContextCompat.getColor(this, R.color.colorPrimary);
mFpColorSuccess = ContextCompat.getColor(this, android.R.color.holo_green_dark);
mFingerprintRetryStr = getString(R.string.fingerprintTryIn);
} else {
mFingerprintText.setText(getString(R.string.notSupport));
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
return super.onOptionsItemSelected(item);
}
@Override
protected void onResume() {
super.onResume();
mFAH.startListening();
}
@Override
protected void onPause() {
super.onPause();
mFAH.stopListening();
}
@Override
protected void onDestroy() {
super.onDestroy();
mFAH.onDestroy();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mFAH.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
mFAH.onRestoreInstanceState(savedInstanceState);
}
@Override
public void onFingerprintStatus(boolean authSuccessful, int errorType, CharSequence errorMess) {
if (authSuccessful){
DrawableCompat.setTint(mFingerprintIcon.getDrawable(), mFpColorSuccess);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
}, TIME_OUT);
} else if (mFAH != null){
errorMess = String.format(getString(R.string.appCodeActivity_tv_fingerprintTryCount),
errorMess, mFAH.getTryCountLeft());
Toast.makeText(this, errorMess, Toast.LENGTH_SHORT).show();
switch (errorType){
case FahErrorType.General.LOCK_SCREEN_DISABLED:
case FahErrorType.General.NO_FINGERPRINTS:
mFAH.showSecuritySettingsDialog();
break;
case FahErrorType.Auth.AUTH_NOT_RECOGNIZED:
DrawableCompat.setTint(mFingerprintIcon.getDrawable(), mFpColorError);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
DrawableCompat.setTint(mFingerprintIcon.getDrawable(), mFpColorNormal);
}
}, TIME_OUT);
break;
}
}
}
@Override
public void onFingerprintListening(boolean listening, long milliseconds) {
if (listening){
setFingerprintListening();
} else {
setFingerprintNotListening();
}
if (milliseconds > 0) {
mFingerprintText.setTextColor(mFpColorError);
mFingerprintText.setText(getPrettyTime(mFingerprintRetryStr ,milliseconds));
}
}
private void setFingerprintListening(){
DrawableCompat.setTint(mFingerprintIcon.getDrawable(), mFpColorNormal);
mFingerprintText.setTextColor(mFpColorNormal);
mFingerprintText.setText(getString(R.string.touch_sensor));
}
private void setFingerprintNotListening(){
mFingerprintText.setTextColor(mFpColorError);
DrawableCompat.setTint(mFingerprintIcon.getDrawable(), mFpColorError);
}
private String getPrettyTime(String coreStr, long millis){
return String.format(coreStr,
TimeUnit.MILLISECONDS.toMinutes(millis),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
}
}
资源文件列表
FingerprintAuthHelper-master/.gitignore , 575
FingerprintAuthHelper-master/.idea/.name , 19
FingerprintAuthHelper-master/.idea/compiler.xml , 686
FingerprintAuthHelper-master/.idea/copyright/profiles_settings.xml , 74
FingerprintAuthHelper-master/.idea/encodings.xml , 159
FingerprintAuthHelper-master/.idea/gradle.xml , 879
FingerprintAuthHelper-master/.idea/inspectionProfiles/Project_Default.xml , 257
FingerprintAuthHelper-master/.idea/inspectionProfiles/profiles_settings.xml , 235
FingerprintAuthHelper-master/.idea/misc.xml , 6321
FingerprintAuthHelper-master/.idea/modules.xml , 556
FingerprintAuthHelper-master/.idea/runConfigurations.xml , 564
FingerprintAuthHelper-master/Docs.md , 11144
FingerprintAuthHelper-master/README.md , 5072
FingerprintAuthHelper-master/build.gradle , 551
FingerprintAuthHelper-master/build/generated/mockable-android-24.jar , 33510908
FingerprintAuthHelper-master/build/intermediates/lint-cache/api-versions-8-24.0.2.bin , 2618025
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-de.txt-2.bin , 51872
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-en.txt-2.bin , 103790
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-es.txt-2.bin , 8769
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-hu.txt-2.bin , 1313
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-it.txt-2.bin , 7361
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-nb.txt-2.bin , 2397
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-pt.txt-2.bin , 32373
FingerprintAuthHelper-master/build/intermediates/lint-cache/typos-tr.txt-2.bin , 5440
FingerprintAuthHelper-master/fingerprintauthhelper/.gitignore , 7
FingerprintAuthHelper-master/fingerprintauthhelper/build.gradle , 1041
FingerprintAuthHelper-master/fingerprintauthhelper/proguard-rules.pro , 662
FingerprintAuthHelper-master/fingerprintauthhelper/src/androidTest/java/com/pro100svitlo/fingerprintAuthHelper/ApplicationTest.java , 369
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/AndroidManifest.xml , 485
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FahErrorType.java , 2455
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FahListener.java , 293
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FahManager.java , 20015
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FahSecureSettingsDialog.java , 3876
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FahTimeOutService.java , 1590
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/java/com/pro100svitlo/fingerprintAuthHelper/FingerprintAuthHelper.java , 8489
FingerprintAuthHelper-master/fingerprintauthhelper/src/main/res/values/strings.xml , 1557
FingerprintAuthHelper-master/fingerprintauthhelper/src/test/java/com/pro100svitlo/fingerprintAuthHelper/ExampleUnitTest.java , 331
FingerprintAuthHelper-master/gradle.properties , 855
FingerprintAuthHelper-master/gradle/wrapper/gradle-wrapper.jar , 53636
FingerprintAuthHelper-master/gradle/wrapper/gradle-wrapper.properties , 234
FingerprintAuthHelper-master/gradlew , 4971
FingerprintAuthHelper-master/gradlew.bat , 2404
FingerprintAuthHelper-master/sample/.gitignore , 7
FingerprintAuthHelper-master/sample/build.gradle , 801
FingerprintAuthHelper-master/sample/proguard-rules.pro , 662
FingerprintAuthHelper-master/sample/sample-release.apk , 1656183
FingerprintAuthHelper-master/sample/src/androidTest/java/com/pro100svitlo/fingerprintauthdemo/ApplicationTest.java , 367
FingerprintAuthHelper-master/sample/src/main/AndroidManifest.xml , 909
FingerprintAuthHelper-master/sample/src/main/ic_launcher-web.png , 58488
FingerprintAuthHelper-master/sample/src/main/java/com/pro100svitlo/fingerprintauthdemo/MainActivity.java , 6562
FingerprintAuthHelper-master/sample/src/main/java/com/pro100svitlo/fingerprintauthdemo/SecondActivity.java , 584
FingerprintAuthHelper-master/sample/src/main/res/drawable/ic_fingerprint.xml , 2325
FingerprintAuthHelper-master/sample/src/main/res/layout/activity_main.xml , 1086
FingerprintAuthHelper-master/sample/src/main/res/layout/activity_second.xml , 1054
FingerprintAuthHelper-master/sample/src/main/res/layout/content_main.xml , 1867
FingerprintAuthHelper-master/sample/src/main/res/layout/content_second.xml , 937
FingerprintAuthHelper-master/sample/src/main/res/menu/menu_main.xml , 252
FingerprintAuthHelper-master/sample/src/main/res/mipmap-hdpi/ic_launcher.png , 4970
FingerprintAuthHelper-master/sample/src/main/res/mipmap-mdpi/ic_launcher.png , 3001
FingerprintAuthHelper-master/sample/src/main/res/mipmap-xhdpi/ic_launcher.png , 7280
FingerprintAuthHelper-master/sample/src/main/res/mipmap-xxhdpi/ic_launcher.png , 12638
FingerprintAuthHelper-master/sample/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 18573
FingerprintAuthHelper-master/sample/src/main/res/values-v21/styles.xml , 327
FingerprintAuthHelper-master/sample/src/main/res/values-w820dp/dimens.xml , 358
FingerprintAuthHelper-master/sample/src/main/res/values/colors.xml , 208
FingerprintAuthHelper-master/sample/src/main/res/values/dimens.xml , 253
FingerprintAuthHelper-master/sample/src/main/res/values/strings.xml , 542
FingerprintAuthHelper-master/sample/src/main/res/values/styles.xml , 708
FingerprintAuthHelper-master/sample/src/test/java/com/pro100svitlo/fingerprintauthdemo/ExampleUnitTest.java , 329
FingerprintAuthHelper-master/screenshots/sc_0.png , 13106
FingerprintAuthHelper-master/screenshots/sc_1.png , 13528
FingerprintAuthHelper-master/settings.gradle , 44
