Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.android.tools.build:gradle:2.2.1'
classpath 'com.novoda:bintray-release:0.3.4'
}
}
Expand All @@ -17,12 +17,13 @@ repositories {
}

dependencies {
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:preference-v7:24.2.1'
}

android {
compileSdkVersion 24
buildToolsVersion "24.0.1"
buildToolsVersion "24.0.3"

defaultConfig {
versionName "1.3.0"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package org.wordpress.passcodelock;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceFragmentCompat;

public class PasscodePreferenceFragmentCompat extends PreferenceFragmentCompat
implements Preference.OnPreferenceClickListener {
public static final String KEY_SHOULD_INFLATE = "should-inflate";
public static final int ENABLE_PASSLOCK = 0;
public static final int DISABLE_PASSLOCK = 1;
public static final int CHANGE_PASSWORD = 2;

private Preference mTogglePasscodePreference;
private Preference mChangePasscodePreference;

@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
Bundle args = getArguments();

if (args != null && args.getBoolean(KEY_SHOULD_INFLATE, true)) {
addPreferencesFromResource(R.xml.passcode_preferences);
mTogglePasscodePreference = findPreference(getString(R.string.pref_key_passcode_toggle));
mChangePasscodePreference = findPreference(getString(R.string.pref_key_change_passcode));
}

refreshPreferenceState();
}

@Override
public boolean onPreferenceClick(Preference preference) {
String preferenceKey = preference.getKey() != null ? preference.getKey() : "";

if (preferenceKey.equals(getString(R.string.pref_key_passcode_toggle))) {
return handlePasscodeToggleClick();
} else if (preferenceKey.equals(getString(R.string.pref_key_change_passcode))) {
return handleChangePasscodeClick();
}

return false;
}

/**
* When the preferences are nested in a parent apps xml layout the inflated preferences will
* need to be set.
*/
public void setPreferences(Preference togglePreference, Preference changePreference) {
mTogglePasscodePreference = togglePreference;
mChangePasscodePreference = changePreference;

refreshPreferenceState();
}

/**
* Called when user requests to turn the passlock on or off.
*
* @return
* always true to indicate that the request was handled
*/
private boolean handlePasscodeToggleClick() {
int type = AppLockManager.getInstance().getAppLock().isPasswordLocked()
? DISABLE_PASSLOCK : ENABLE_PASSLOCK;
Intent i = new Intent(getActivity(), PasscodeManagePasswordActivity.class);
i.putExtra(PasscodeManagePasswordActivity.KEY_TYPE, type);
startActivityForResult(i, type);

return true;
}

/**
* Called when user requests to change passcode.
*
* @return
* always true to indicate that the request was handled
*/
private boolean handleChangePasscodeClick() {
Intent i = new Intent(getActivity(), PasscodeManagePasswordActivity.class);
i.putExtra(PasscodeManagePasswordActivity.KEY_TYPE, CHANGE_PASSWORD);
i.putExtra(AbstractPasscodeKeyboardActivity.KEY_MESSAGE,
getString(R.string.passcode_enter_old_passcode));
startActivityForResult(i, CHANGE_PASSWORD);

return true;
}

/**
* Helper method to setup preference properties
*/
private void refreshPreferenceState() {
if (mTogglePasscodePreference != null && mChangePasscodePreference != null) {
mTogglePasscodePreference.setOnPreferenceClickListener(this);
mChangePasscodePreference.setOnPreferenceClickListener(this);

if (AppLockManager.getInstance().getAppLock().isPasswordLocked()) {
mTogglePasscodePreference.setTitle(R.string.passcode_turn_off);
mChangePasscodePreference.setEnabled(true);
} else {
mTogglePasscodePreference.setTitle(R.string.passcode_turn_on);
mChangePasscodePreference.setEnabled(false);
}
}
}
}
14 changes: 7 additions & 7 deletions sample/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
compileSdkVersion 24
buildToolsVersion "24.0.3"

buildTypes {
release {
Expand All @@ -14,15 +14,15 @@ android {
defaultConfig {
applicationId "org.wordpress.passcodelock.sample"
minSdkVersion 14
targetSdkVersion 23
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
}

buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.android.tools.build:gradle:2.2.1'
}

repositories {
Expand All @@ -31,9 +31,9 @@ buildscript {
}

dependencies {
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'org.wordpress:passcodelock:1.+'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile project(path: ':library')
}

repositories {
Expand Down