Reorganize users screen

As per product/ux feedback, move around and rename the users.
Settings button for some users.

Fix crash in limited user when clicking on the user:
Bug: 8494377

Change-Id: I346d12646d32608b01f2c2c2c866b6da51408618
This commit is contained in:
Amith Yamasani
2013-04-17 18:27:01 -07:00
parent 4e8cbb32a2
commit d4abdd27ad
7 changed files with 149 additions and 95 deletions

View File

@@ -20,6 +20,9 @@ import android.app.Fragment;
import android.content.ContentResolver;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -31,11 +34,25 @@ import android.widget.CompoundButton.OnCheckedChangeListener;
import com.android.internal.widget.LockPatternUtils;
public class OwnerInfoSettings extends Fragment {
public static final String EXTRA_SHOW_NICKNAME = "show_nickname";
private View mView;
private CheckBox mCheckbox;
private EditText mEditText;
private int mUserId;
private LockPatternUtils mLockPatternUtils;
private EditText mOwnerInfo;
private EditText mNickname;
private boolean mShowNickname;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
if (args != null && args.containsKey(EXTRA_SHOW_NICKNAME)) {
mShowNickname = args.getBoolean(EXTRA_SHOW_NICKNAME);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -52,9 +69,16 @@ public class OwnerInfoSettings extends Fragment {
String info = mLockPatternUtils.getOwnerInfo(mUserId);
boolean enabled = mLockPatternUtils.isOwnerInfoEnabled();
mCheckbox = (CheckBox) mView.findViewById(R.id.show_owner_info_on_lockscreen_checkbox);
mEditText = (EditText) mView.findViewById(R.id.owner_info_edit_text);
mEditText.setText(info);
mEditText.setEnabled(enabled);
mOwnerInfo = (EditText) mView.findViewById(R.id.owner_info_edit_text);
mOwnerInfo.setText(info);
mOwnerInfo.setEnabled(enabled);
mNickname = (EditText) mView.findViewById(R.id.owner_info_nickname);
if (!mShowNickname) {
mNickname.setVisibility(View.GONE);
} else {
mNickname.setText(UserManager.get(getActivity()).getUserName());
mNickname.setSelected(true);
}
mCheckbox.setChecked(enabled);
if (UserHandle.myUserId() != UserHandle.USER_OWNER) {
mCheckbox.setText(R.string.show_user_info_on_lockscreen_label);
@@ -62,7 +86,7 @@ public class OwnerInfoSettings extends Fragment {
mCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mLockPatternUtils.setOwnerInfoEnabled(isChecked);
mEditText.setEnabled(isChecked); // disable text field if not enabled
mOwnerInfo.setEnabled(isChecked); // disable text field if not enabled
}
});
}
@@ -70,12 +94,21 @@ public class OwnerInfoSettings extends Fragment {
@Override
public void onPause() {
super.onPause();
saveToDb();
saveChanges();
}
void saveToDb() {
String info = mEditText.getText().toString();
void saveChanges() {
ContentResolver res = getActivity().getContentResolver();
String info = mOwnerInfo.getText().toString();
mLockPatternUtils.setOwnerInfo(info, mUserId);
if (mShowNickname) {
String oldName = UserManager.get(getActivity()).getUserName();
CharSequence newName = mNickname.getText();
if (!TextUtils.isEmpty(newName) && !newName.equals(oldName)) {
UserManager.get(getActivity()).setUserName(UserHandle.myUserId(),
newName.toString());
}
}
}
}