Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71aed47c authored by Roman Birg's avatar Roman Birg
Browse files

frameworks: allow Keyguard package to be defined in overlay



This way, custom keyguards can have their own namespace.

Change-Id: Ia2dfa57652c6f3d3404963897fb2f20a265e5c76
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 4d25afe5
Loading
Loading
Loading
Loading
+14 −6
Original line number Diff line number Diff line
@@ -121,8 +121,11 @@ public final class LockscreenTargetUtils {
        InsetDrawable[] inactivelayer = new InsetDrawable[2];
        InsetDrawable[] activelayer = new InsetDrawable[2];

        final String keyguardPackage = context.getString(
                com.android.internal.R.string.config_keyguardPackage);

        inactivelayer[0] = new InsetDrawable(getDrawableFromResources(context,
            "com.android.keyguard", "ic_lockscreen_lock_pressed", false), 0, 0, 0, 0);
                keyguardPackage, "ic_lockscreen_lock_pressed", false), 0, 0, 0, 0);
        inactivelayer[1] = new InsetDrawable(front, inset, inset, inset, inset);

        activelayer[0] = new InsetDrawable(back, 0, 0, 0, 0);
@@ -182,18 +185,21 @@ public final class LockscreenTargetUtils {

        int inset = 0;

        final String keyguardPackage = context.getString(
                com.android.internal.R.string.config_keyguardPackage);

        try {
            Context packageContext = context.createPackageContext("com.android.keyguard", 0);
            Context packageContext = context.createPackageContext(keyguardPackage, 0);
            Resources res = packageContext.getResources();
            int targetInsetIdentifier = res.getIdentifier("lockscreen_target_inset", "dimen", "com.android.keyguard");
            int targetInsetIdentifier = res.getIdentifier("lockscreen_target_inset", "dimen", keyguardPackage);
            inset = res.getDimensionPixelSize(targetInsetIdentifier);
            if (TextUtils.equals(type, ICON_FILE)) {
                int targetIconFileInsetIdentifier = res.getIdentifier(
                    "lockscreen_target_icon_file_inset", "dimen", "com.android.keyguard");
                    "lockscreen_target_icon_file_inset", "dimen", keyguardPackage);
                inset += res.getDimensionPixelSize(targetIconFileInsetIdentifier);
            }
        } catch (PackageManager.NameNotFoundException e) {
            Log.w(TAG, "Could not fetch icons from com.android.keyguard");
            Log.w(TAG, "Could not fetch icons from " + keyguardPackage);
        } catch (Resources.NotFoundException e) {
            Log.w(TAG, "Could not resolve lockscreen_target_inset", e);
        }
@@ -206,7 +212,9 @@ public final class LockscreenTargetUtils {
        Resources res;

        if (TextUtils.isEmpty(packageName)) {
            packageName = "com.android.keyguard";
            final String keyguardPackage = context.getString(
                    com.android.internal.R.string.config_keyguardPackage);
            packageName = keyguardPackage;
        }

        try {
+6 −0
Original line number Diff line number Diff line
@@ -504,6 +504,12 @@
    <!-- Class name for default keyguard appwidget [DO NOT TRANSLATE] -->
    <string name="widget_default_class_name"></string>

    <!-- Package name for keyguard to use -->
    <string name="config_keyguardPackage">com.android.keyguard</string>

    <!-- Class name for keyguard service to use -->
    <string name="config_keyguardService">com.android.keyguard.KeyguardService</string>

    <!-- Indicate whether the SD card is accessible without removing the battery. -->
    <bool name="config_batterySdCardAccessibility">false</bool>

+2 −0
Original line number Diff line number Diff line
@@ -533,6 +533,8 @@
  <java-symbol type="string" name="emergency_call_dialog_number_for_display" />
  <java-symbol type="string" name="widget_default_package_name" />
  <java-symbol type="string" name="widget_default_class_name" />
  <java-symbol type="string" name="config_keyguardPackage" />
  <java-symbol type="string" name="config_keyguardService" />
  <java-symbol type="string" name="emergency_calls_only" />
  <java-symbol type="string" name="enable_accessibility_canceled" />
  <java-symbol type="string" name="eventTypeAnniversary" />
+7 −5
Original line number Diff line number Diff line
@@ -37,9 +37,6 @@ import com.android.internal.policy.IKeyguardService;
 *
 */
public class KeyguardTouchDelegate {
    // TODO: propagate changes to these to {@link KeyguardServiceDelegate}
    static final String KEYGUARD_PACKAGE = "com.android.keyguard";
    static final String KEYGUARD_CLASS = "com.android.keyguard.KeyguardService";

    private static KeyguardTouchDelegate sInstance;

@@ -66,11 +63,16 @@ public class KeyguardTouchDelegate {
    };

    private KeyguardTouchDelegate(Context context) {
        final String keyguardPackage = context.getString(
                com.android.internal.R.string.config_keyguardPackage);
        final String keyguardClass = context.getString(
                com.android.internal.R.string.config_keyguardService);

        Intent intent = new Intent();
        intent.setClassName(KEYGUARD_PACKAGE, KEYGUARD_CLASS);
        intent.setClassName(keyguardPackage, keyguardClass);
        if (!context.bindServiceAsUser(intent, mKeyguardConnection,
                Context.BIND_AUTO_CREATE, UserHandle.OWNER)) {
            if (DEBUG) Slog.v(TAG, "*** Keyguard: can't bind to " + KEYGUARD_CLASS);
            if (DEBUG) Slog.v(TAG, "*** Keyguard: can't bind to " + keyguardClass);
        } else {
            if (DEBUG) Slog.v(TAG, "*** Keyguard started");
        }
+3 −1
Original line number Diff line number Diff line
@@ -607,8 +607,10 @@ public class NavigationBarView extends LinearLayout {
    public void onAttachedToWindow() {
        super.onAttachedToWindow();

        final String keyguardPackage = mContext.getString(
                com.android.internal.R.string.config_keyguardPackage);
        final Bundle keyguard_metadata = NavigationBarView
                .getApplicationMetadata(mContext, "com.android.keyguard");
                .getApplicationMetadata(mContext, keyguardPackage);
        if (null != keyguard_metadata &&
                keyguard_metadata.getBoolean("com.cyanogenmod.keyguard", false)) {
            mObserver.observe();
Loading