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

Commit 12b6d29b authored by Deepanshu Gupta's avatar Deepanshu Gupta
Browse files

LayoutLib: Stub AM/PM keycodes in Time Picker.

TimePickerSpinnerDelegate doesn't need to deal with input when running
inside LayoutLib. So, we just return the keycodes as if it's running in
English locale.

Bug: http://b.android.com/79189
Change-Id: Ife0ae91a1e34a8dac379bc1dda1c1c8ed461c164
parent 2c5cddbd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -61,6 +61,8 @@ class TimePickerSpinnerDelegate extends TimePicker.AbstractTimePickerDelegate im
    // Also NOT a real index, just used for keyboard mode.
    private static final int ENABLE_PICKER_INDEX = 3;

    // LayoutLib relies on these constants. Change TimePickerSpinnerDelegate_Delegate if
    // modifying these.
    private static final int AM = 0;
    private static final int PM = 1;

+44 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2014 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 android.widget;

import com.android.tools.layoutlib.annotations.LayoutlibDelegate;

import android.view.KeyEvent;

/**
 * Delegate used to provide new implementation of few methods in {@link TimePickerSpinnerDelegate}.
 */
public class TimePickerSpinnerDelegate_Delegate {

    // Copied from TimePickerSpinnerDelegate.
    private static final int AM = 0;
    private static final int PM = 1;

    @LayoutlibDelegate
    static int getAmOrPmKeyCode(int amOrPm) {
        // We don't care about locales here.
        if (amOrPm == AM) {
            return KeyEvent.KEYCODE_A;
        } else if (amOrPm == PM) {
            return KeyEvent.KEYCODE_P;
        } else {
            assert false : "amOrPm value in TimePickerSpinnerDelegate can only be 0 or 1";
            return -1;
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -167,6 +167,7 @@ public final class CreateInfo implements ICreateInfo {
        "android.view.RenderNode#nSetElevation",
        "android.view.RenderNode#nGetElevation",
        "android.view.ViewGroup#drawChild",
        "android.widget.TimePickerSpinnerDelegate#getAmOrPmKeyCode",
        "com.android.internal.view.menu.MenuBuilder#createNewMenuItem",
        "com.android.internal.util.XmlUtils#convertValueToInt",
        "com.android.internal.textservice.ITextServicesManager$Stub#asInterface",