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

Commit 7f9ca285 authored by Evan Millar's avatar Evan Millar
Browse files
Use a subclass of ListView that explicitly requests focus after the
first time it is layed out.
parent b763c904
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
        android:layout_height="fill_parent"
        android:orientation="vertical">

    <ListView android:id="@android:id/list"
    <com.android.contacts.FocusRequestingListView android:id="@android:id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fastScrollEnabled="true"
+48 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2009 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.contacts;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

/* Subclass of ListView that requests focus after it is layed out for the first time. */
public class FocusRequestingListView extends ListView {

    private boolean mFirstLayoutDone = false;

    public FocusRequestingListView(Context context) {
        super(context);
    }

    public FocusRequestingListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public FocusRequestingListView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        if (!mFirstLayoutDone) {
            setFocusable(true);
            requestFocus();
        }
        mFirstLayoutDone = true;
    }
}