Loading src/com/android/settings/Utils.java +26 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.app.AppGlobals; import android.app.Dialog; import android.app.Fragment; import android.app.IActivityManager; import android.app.KeyguardManager; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.ContentResolver; Loading @@ -49,8 +50,6 @@ import android.net.LinkProperties; import android.net.Uri; import android.os.BatteryManager; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; import android.os.INetworkManagementService; import android.os.Looper; Loading Loading @@ -92,6 +91,7 @@ import android.widget.TabWidget; import com.android.internal.app.UnlaunchableAppActivity; import com.android.internal.util.ArrayUtils; import com.android.internal.util.UserIcons; import com.android.internal.widget.LockPatternUtils; import java.io.IOException; import java.io.InputStream; Loading Loading @@ -1129,6 +1129,30 @@ public final class Utils extends com.android.settingslib.Utils { return false; } public static boolean unlockWorkProfileIfNecessary(Context context, int userId) { try { if (!ActivityManagerNative.getDefault().isUserRunning(userId, ActivityManager.FLAG_AND_LOCKED)) { return false; } } catch (RemoteException e) { return false; } if (!(new LockPatternUtils(context)).isSecure(userId)) { return false; } final KeyguardManager km = (KeyguardManager) context.getSystemService( Context.KEYGUARD_SERVICE); final Intent unlockIntent = km.createConfirmDeviceCredentialIntent(null, null, userId); if (unlockIntent != null) { context.startActivity(unlockIntent); return true; } else { return false; } } public static CharSequence getApplicationLabel(Context context, String packageName) { try { final ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo( Loading src/com/android/settings/accounts/AccountSettings.java +8 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,14 @@ public class AccountSettings extends SettingsPreferenceFragment @Override public boolean onPreferenceClick(Preference preference) { if (mFragment != null) { UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER); if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), mUm, user.getIdentifier())) { return true; } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(), user.getIdentifier())) { return true; } Utils.startWithFragment(getContext(), mFragment, mFragmentArguments, null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName, mTitleResId, null /* title */); Loading Loading
src/com/android/settings/Utils.java +26 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.app.AppGlobals; import android.app.Dialog; import android.app.Fragment; import android.app.IActivityManager; import android.app.KeyguardManager; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.ContentResolver; Loading @@ -49,8 +50,6 @@ import android.net.LinkProperties; import android.net.Uri; import android.os.BatteryManager; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.IBinder; import android.os.INetworkManagementService; import android.os.Looper; Loading Loading @@ -92,6 +91,7 @@ import android.widget.TabWidget; import com.android.internal.app.UnlaunchableAppActivity; import com.android.internal.util.ArrayUtils; import com.android.internal.util.UserIcons; import com.android.internal.widget.LockPatternUtils; import java.io.IOException; import java.io.InputStream; Loading Loading @@ -1129,6 +1129,30 @@ public final class Utils extends com.android.settingslib.Utils { return false; } public static boolean unlockWorkProfileIfNecessary(Context context, int userId) { try { if (!ActivityManagerNative.getDefault().isUserRunning(userId, ActivityManager.FLAG_AND_LOCKED)) { return false; } } catch (RemoteException e) { return false; } if (!(new LockPatternUtils(context)).isSecure(userId)) { return false; } final KeyguardManager km = (KeyguardManager) context.getSystemService( Context.KEYGUARD_SERVICE); final Intent unlockIntent = km.createConfirmDeviceCredentialIntent(null, null, userId); if (unlockIntent != null) { context.startActivity(unlockIntent); return true; } else { return false; } } public static CharSequence getApplicationLabel(Context context, String packageName) { try { final ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo( Loading
src/com/android/settings/accounts/AccountSettings.java +8 −0 Original line number Diff line number Diff line Loading @@ -554,6 +554,14 @@ public class AccountSettings extends SettingsPreferenceFragment @Override public boolean onPreferenceClick(Preference preference) { if (mFragment != null) { UserHandle user = mFragmentArguments.getParcelable(EXTRA_USER); if (user != null && Utils.startQuietModeDialogIfNecessary(getContext(), mUm, user.getIdentifier())) { return true; } else if (user != null && Utils.unlockWorkProfileIfNecessary(getContext(), user.getIdentifier())) { return true; } Utils.startWithFragment(getContext(), mFragment, mFragmentArguments, null /* resultTo */, 0 /* resultRequestCode */, mTitleResPackageName, mTitleResId, null /* title */); Loading