1 /* 2 * Copyright (C) 2008 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 android.view; 18 19 import android.content.Context; 20 import android.hardware.SensorListener; 21 22 /** 23 * Helper class for receiving notifications from the SensorManager when 24 * the orientation of the device has changed. 25 * @deprecated use {@link android.view.OrientationEventListener} instead. 26 * This class internally uses the OrientationEventListener. 27 */ 28 @Deprecated 29 public abstract class OrientationListener implements SensorListener { 30 private OrientationEventListener mOrientationEventLis; 31 32 /** 33 * Returned from onOrientationChanged when the device orientation cannot be determined 34 * (typically when the device is in a close to flat position). 35 * 36 * @see #onOrientationChanged 37 */ 38 public static final int ORIENTATION_UNKNOWN = OrientationEventListener.ORIENTATION_UNKNOWN; 39 40 /** 41 * Creates a new OrientationListener. 42 * 43 * @param context for the OrientationListener. 44 */ OrientationListener(Context context)45 public OrientationListener(Context context) { 46 mOrientationEventLis = new OrientationEventListenerInternal(context); 47 } 48 49 /** 50 * Creates a new OrientationListener. 51 * 52 * @param context for the OrientationListener. 53 * @param rate at which sensor events are processed (see also 54 * {@link android.hardware.SensorManager SensorManager}). Use the default 55 * value of {@link android.hardware.SensorManager#SENSOR_DELAY_NORMAL 56 * SENSOR_DELAY_NORMAL} for simple screen orientation change detection. 57 */ OrientationListener(Context context, int rate)58 public OrientationListener(Context context, int rate) { 59 mOrientationEventLis = new OrientationEventListenerInternal(context, rate); 60 } 61 62 class OrientationEventListenerInternal extends OrientationEventListener { OrientationEventListenerInternal(Context context)63 OrientationEventListenerInternal(Context context) { 64 super(context); 65 } 66 OrientationEventListenerInternal(Context context, int rate)67 OrientationEventListenerInternal(Context context, int rate) { 68 super(context, rate); 69 // register so that onSensorChanged gets invoked 70 registerListener(OrientationListener.this); 71 } 72 onOrientationChanged(int orientation)73 public void onOrientationChanged(int orientation) { 74 OrientationListener.this.onOrientationChanged(orientation); 75 } 76 } 77 78 /** 79 * Enables the OrientationListener so it will monitor the sensor and call 80 * {@link #onOrientationChanged} when the device orientation changes. 81 */ enable()82 public void enable() { 83 mOrientationEventLis.enable(); 84 } 85 86 /** 87 * Disables the OrientationListener. 88 */ disable()89 public void disable() { 90 mOrientationEventLis.disable(); 91 } 92 onAccuracyChanged(int sensor, int accuracy)93 public void onAccuracyChanged(int sensor, int accuracy) { 94 } 95 onSensorChanged(int sensor, float[] values)96 public void onSensorChanged(int sensor, float[] values) { 97 // just ignore the call here onOrientationChanged is invoked anyway 98 } 99 100 101 /** 102 * Look at {@link android.view.OrientationEventListener#onOrientationChanged} 103 * for method description and usage 104 * @param orientation The new orientation of the device. 105 * 106 * @see #ORIENTATION_UNKNOWN 107 */ onOrientationChanged(int orientation)108 abstract public void onOrientationChanged(int orientation); 109 110 } 111