summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Android.mk2
-rw-r--r--AndroidManifest.xml1
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java20
3 files changed, 22 insertions, 1 deletions
diff --git a/Android.mk b/Android.mk
index 84eb1a6..7b7962e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -18,6 +18,6 @@ LOCAL_PRIVILEGED_MODULE := true
LOCAL_STATIC_JAVA_LIBRARIES := \
android-support-v4 \
- org.cyanogenmod.platform.sdk
+ org.cyanogenmod.platform.internal
include $(BUILD_PACKAGE)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f3d37ba..a3ab8b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -15,6 +15,7 @@
<uses-permission android:name="android.permission.ACCESS_NOTIFICATIONS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
+ <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" />
<!-- Used to see if we are resuming from the launcher -->
<uses-permission android:name="android.permission.REAL_GET_TASKS" />
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 2e8137f..3faa529 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -72,6 +72,7 @@ import android.widget.ProgressBar;
import android.widget.Space;
import android.widget.TextView;
+import com.android.internal.widget.LockPatternUtils;
import com.cyngn.theme.chooser.ComponentSelector.OnItemClickedListener;
import com.cyngn.theme.util.AudioUtils;
import com.cyngn.theme.util.BootAnimationHelper;
@@ -88,6 +89,7 @@ import com.cyngn.theme.widget.LockableScrollView;
import com.cyngn.theme.widget.ThemeTagLayout;
import cyanogenmod.app.ThemeVersion;
+import org.cyanogenmod.internal.widget.CmLockPatternUtils;
import java.io.File;
import java.io.IOException;
@@ -182,6 +184,10 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
protected static final String ARG_COMPONENT_ID = "cmpntId";
protected static final String ARG_SKIP_LOADING_ANIM = "skipLoadingAnim";
+ private static final String LLS_PACKAGE_NAME = "com.cyngn.lockscreen.live";
+ private static final String LLS_PROVIDER_NAME =
+ "com.cyngn.lockscreen.live.LockScreenProviderService";
+
protected static ComponentName[] sIconComponents;
protected static TypefaceHelperCache sTypefaceHelperCache;
@@ -570,6 +576,16 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
mProgress.setProgress(progress);
}
+ private void setLiveLockScreenAsKeyguard() {
+ CmLockPatternUtils lockPatternUtils = new CmLockPatternUtils(getActivity());
+ try {
+ lockPatternUtils.setThirdPartyKeyguard(
+ new ComponentName(LLS_PACKAGE_NAME, LLS_PROVIDER_NAME));
+ } catch (PackageManager.NameNotFoundException e) {
+ // we should not be here!
+ }
+ }
+
@Override
public void onFinish(boolean isSuccess) {
// We post a runnable to mHandler so the client is removed from the same thread
@@ -581,6 +597,10 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
}
});
if (isSuccess) {
+ Map<String, String> appliedComponents = getComponentsToApply();
+ if (appliedComponents.get(MODIFIES_LIVE_LOCK_SCREEN) != null) {
+ setLiveLockScreenAsKeyguard();
+ }
mProgress.setProgress(100);
animateProgressOut();
}