fix UI bug when opening read-only databases (checkmarks were visible in Group list)
This commit is contained in:
@@ -1108,16 +1108,22 @@ namespace keepass2android
|
||||
public override void OnActivityCreated(Bundle savedInstanceState)
|
||||
{
|
||||
base.OnActivityCreated(savedInstanceState);
|
||||
|
||||
ListView.SetMultiChoiceModeListener(this);
|
||||
if (App.Kp2a.GetDb().CanWrite)
|
||||
{
|
||||
ListView.ChoiceMode = ChoiceMode.MultipleModal;
|
||||
ListView.SetMultiChoiceModeListener(this);
|
||||
ListView.ItemLongClick += delegate (object sender, AdapterView.ItemLongClickEventArgs args)
|
||||
|
||||
ListView.ItemLongClick += delegate(object sender, AdapterView.ItemLongClickEventArgs args)
|
||||
{
|
||||
ListView.SetItemChecked(args.Position, true);
|
||||
};
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ListView.ChoiceMode = ChoiceMode.None;
|
||||
}
|
||||
|
||||
ListView.ItemClick += (sender, args) => ((GroupListItemView)args.View).OnClick();
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@ namespace keepass2android
|
||||
// If the service is killed, then lock the database immediately
|
||||
if (App.Kp2a.DatabaseIsUnlocked)
|
||||
{
|
||||
App.Kp2a.LockDatabase();
|
||||
App.Kp2a.LockDatabase(false);
|
||||
}
|
||||
|
||||
UnregisterReceiver(_screenOffReceiver);
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace keepass2android.view
|
||||
: base(context)
|
||||
{
|
||||
_groupBaseActivity = context;
|
||||
|
||||
}
|
||||
|
||||
public GroupListItemView(Context context, IAttributeSet attrs)
|
||||
|
||||
@@ -103,8 +103,11 @@ namespace keepass2android.view
|
||||
{
|
||||
_entry = pw;
|
||||
_pos = pos;
|
||||
|
||||
ImageView iv = (ImageView)ev.FindViewById(Resource.Id.icon);
|
||||
ev.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible;
|
||||
ev.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;
|
||||
|
||||
|
||||
ImageView iv = (ImageView)ev.FindViewById(Resource.Id.icon);
|
||||
bool isExpired = pw.Expires && pw.ExpiryTime < DateTime.Now;
|
||||
if (isExpired)
|
||||
{
|
||||
|
||||
@@ -65,7 +65,10 @@ namespace keepass2android.view
|
||||
|
||||
gv.FindViewById(Resource.Id.group_icon_bkg).Visibility = App.Kp2a.GetDb().DrawableFactory.IsWhiteIconSet ? ViewStates.Visible : ViewStates.Gone;
|
||||
|
||||
PopulateView(gv, pw);
|
||||
gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible;
|
||||
gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;
|
||||
|
||||
PopulateView(gv, pw);
|
||||
|
||||
LayoutParams lp = new LayoutParams(ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.WrapContent);
|
||||
|
||||
@@ -77,8 +80,11 @@ namespace keepass2android.view
|
||||
|
||||
ImageView iv = (ImageView) gv.FindViewById(Resource.Id.icon);
|
||||
App.Kp2a.GetDb().DrawableFactory.AssignDrawableTo(iv, _groupBaseActivity, App.Kp2a.GetDb().KpDatabase, pw.IconId, pw.CustomIconUuid, true);
|
||||
|
||||
_textview.Text = pw.Name;
|
||||
gv.FindViewById(Resource.Id.icon).Visibility = ViewStates.Visible;
|
||||
gv.FindViewById(Resource.Id.check_mark).Visibility = ViewStates.Invisible;
|
||||
|
||||
|
||||
_textview.Text = pw.Name;
|
||||
|
||||
if (_defaultTextColor == null)
|
||||
_defaultTextColor = _textview.TextColors.DefaultColor;
|
||||
|
||||
Reference in New Issue
Block a user