Home | History | Annotate | Download | only in view
      1 /*
      2  * Copyright (C) 2015 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.internal.view;
     18 
     19 import android.annotation.IntDef;
     20 
     21 import java.lang.annotation.Retention;
     22 
     23 import static java.lang.annotation.RetentionPolicy.SOURCE;
     24 
     25 public final class InputMethodClient {
     26     public static final int START_INPUT_REASON_UNSPECIFIED = 0;
     27     public static final int START_INPUT_REASON_WINDOW_FOCUS_GAIN = 1;
     28     public static final int START_INPUT_REASON_WINDOW_FOCUS_GAIN_REPORT_ONLY = 2;
     29     public static final int START_INPUT_REASON_APP_CALLED_RESTART_INPUT_API = 3;
     30     public static final int START_INPUT_REASON_CHECK_FOCUS = 4;
     31     public static final int START_INPUT_REASON_BOUND_TO_IMMS = 5;
     32     public static final int START_INPUT_REASON_UNBOUND_FROM_IMMS = 6;
     33     public static final int START_INPUT_REASON_ACTIVATED_BY_IMMS = 7;
     34     public static final int START_INPUT_REASON_DEACTIVATED_BY_IMMS = 8;
     35 
     36     @Retention(SOURCE)
     37     @IntDef({START_INPUT_REASON_UNSPECIFIED, START_INPUT_REASON_WINDOW_FOCUS_GAIN,
     38             START_INPUT_REASON_WINDOW_FOCUS_GAIN_REPORT_ONLY,
     39             START_INPUT_REASON_APP_CALLED_RESTART_INPUT_API, START_INPUT_REASON_CHECK_FOCUS,
     40             START_INPUT_REASON_BOUND_TO_IMMS, START_INPUT_REASON_ACTIVATED_BY_IMMS,
     41             START_INPUT_REASON_DEACTIVATED_BY_IMMS})
     42     public @interface StartInputReason {}
     43 
     44     public static String getStartInputReason(@StartInputReason final int reason) {
     45         switch (reason) {
     46             case START_INPUT_REASON_UNSPECIFIED:
     47                 return "UNSPECIFIED";
     48             case START_INPUT_REASON_WINDOW_FOCUS_GAIN:
     49                 return "WINDOW_FOCUS_GAIN";
     50             case START_INPUT_REASON_WINDOW_FOCUS_GAIN_REPORT_ONLY:
     51                 return "WINDOW_FOCUS_GAIN_REPORT_ONLY";
     52             case START_INPUT_REASON_APP_CALLED_RESTART_INPUT_API:
     53                 return "APP_CALLED_RESTART_INPUT_API";
     54             case START_INPUT_REASON_CHECK_FOCUS:
     55                 return "CHECK_FOCUS";
     56             case START_INPUT_REASON_BOUND_TO_IMMS:
     57                 return "BOUND_TO_IMMS";
     58             case START_INPUT_REASON_UNBOUND_FROM_IMMS:
     59                 return "UNBOUND_FROM_IMMS";
     60             case START_INPUT_REASON_ACTIVATED_BY_IMMS:
     61                 return "ACTIVATED_BY_IMMS";
     62             case START_INPUT_REASON_DEACTIVATED_BY_IMMS:
     63                 return "DEACTIVATED_BY_IMMS";
     64             default:
     65                 return "Unknown=" + reason;
     66         }
     67     }
     68 
     69     public static final int UNBIND_REASON_UNSPECIFIED = 0;
     70     public static final int UNBIND_REASON_SWITCH_CLIENT = 1;
     71     public static final int UNBIND_REASON_SWITCH_IME = 2;
     72     public static final int UNBIND_REASON_DISCONNECT_IME = 3;
     73     public static final int UNBIND_REASON_NO_IME = 4;
     74     public static final int UNBIND_REASON_SWITCH_IME_FAILED = 5;
     75     public static final int UNBIND_REASON_RESET_IME = 6;
     76 
     77     @Retention(SOURCE)
     78     @IntDef({UNBIND_REASON_UNSPECIFIED, UNBIND_REASON_SWITCH_CLIENT, UNBIND_REASON_SWITCH_IME,
     79             UNBIND_REASON_DISCONNECT_IME, UNBIND_REASON_NO_IME, UNBIND_REASON_SWITCH_IME_FAILED,
     80             UNBIND_REASON_RESET_IME})
     81     public @interface UnbindReason {}
     82 
     83     public static String getUnbindReason(@UnbindReason final int reason) {
     84         switch (reason) {
     85             case UNBIND_REASON_UNSPECIFIED:
     86                 return "UNSPECIFIED";
     87             case UNBIND_REASON_SWITCH_CLIENT:
     88                 return "SWITCH_CLIENT";
     89             case UNBIND_REASON_SWITCH_IME:
     90                 return "SWITCH_IME";
     91             case UNBIND_REASON_DISCONNECT_IME:
     92                 return "DISCONNECT_IME";
     93             case UNBIND_REASON_NO_IME:
     94                 return "NO_IME";
     95             case UNBIND_REASON_SWITCH_IME_FAILED:
     96                 return "SWITCH_IME_FAILED";
     97             case UNBIND_REASON_RESET_IME:
     98                 return "RESET_IME";
     99             default:
    100                 return "Unknown=" + reason;
    101         }
    102     }
    103 }
    104