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

Commit 3957091b authored by Jae Seo's avatar Jae Seo
Browse files

Initial round of Television Input Framework

This provides APIs to control and create individual television inputs on
the system which will later be hosted by television applications.

Change-Id: I6866d28e78175a1bff2c32a85c5d77e94d0cd60c
parent 53c2cf79
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -197,6 +197,12 @@ LOCAL_SRC_FILES += \
	core/java/android/service/wallpaper/IWallpaperConnection.aidl \
	core/java/android/service/wallpaper/IWallpaperEngine.aidl \
	core/java/android/service/wallpaper/IWallpaperService.aidl \
	core/java/android/tv/ITvInputClient.aidl \
	core/java/android/tv/ITvInputManager.aidl \
	core/java/android/tv/ITvInputService.aidl \
	core/java/android/tv/ITvInputServiceCallback.aidl \
	core/java/android/tv/ITvInputSession.aidl \
	core/java/android/tv/ITvInputSessionCallback.aidl \
	core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl\
	core/java/android/view/accessibility/IAccessibilityInteractionConnectionCallback.aidl\
	core/java/android/view/accessibility/IAccessibilityManager.aidl \
+1 −0
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framew
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/media/java/android/media/IMedia*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/view/IMagnificationCallbacks*)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/tv/)

# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
+56 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ package android {
    field public static final java.lang.String BIND_REMOTEVIEWS = "android.permission.BIND_REMOTEVIEWS";
    field public static final java.lang.String BIND_TEXT_SERVICE = "android.permission.BIND_TEXT_SERVICE";
    field public static final java.lang.String BIND_TRUST_AGENT_SERVICE = "android.permission.BIND_TRUST_AGENT_SERVICE";
    field public static final java.lang.String BIND_TV_INPUT = "android.permission.BIND_TV_INPUT";
    field public static final java.lang.String BIND_VPN_SERVICE = "android.permission.BIND_VPN_SERVICE";
    field public static final java.lang.String BIND_WALLPAPER = "android.permission.BIND_WALLPAPER";
    field public static final java.lang.String BLUETOOTH = "android.permission.BLUETOOTH";
@@ -6497,6 +6498,7 @@ package android.content {
    field public static final java.lang.String STORAGE_SERVICE = "storage";
    field public static final java.lang.String TELEPHONY_SERVICE = "phone";
    field public static final java.lang.String TEXT_SERVICES_MANAGER_SERVICE = "textservices";
    field public static final java.lang.String TV_INPUT_SERVICE = "tv_input";
    field public static final java.lang.String UI_MODE_SERVICE = "uimode";
    field public static final java.lang.String USB_SERVICE = "usb";
    field public static final java.lang.String USER_SERVICE = "user";
@@ -27614,6 +27616,60 @@ package android.transition {
}
package android.tv {
  public final class TvInputInfo implements android.os.Parcelable {
    method public int describeContents();
    method public android.content.ComponentName getComponent();
    method public java.lang.String getId();
    method public java.lang.String getPackageName();
    method public java.lang.String getServiceName();
    method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
    method public void writeToParcel(android.os.Parcel, int);
  }
  public final class TvInputManager {
    method public void createSession(android.content.ComponentName, android.tv.TvInputManager.SessionCreateCallback, android.os.Handler);
    method public boolean getAvailability(android.content.ComponentName);
    method public java.util.List<android.tv.TvInputInfo> getTvInputList();
    method public void registerListener(android.content.ComponentName, android.tv.TvInputManager.TvInputListener, android.os.Handler);
    method public void unregisterListener(android.content.ComponentName, android.tv.TvInputManager.TvInputListener);
  }
  public static final class TvInputManager.Session {
    method public void release();
    method public void setSurface(android.view.Surface);
    method public void setVolume(float);
    method public void tune(android.net.Uri);
  }
  public static abstract interface TvInputManager.SessionCreateCallback {
    method public abstract void onSessionCreated(android.tv.TvInputManager.Session);
  }
  public static abstract class TvInputManager.TvInputListener {
    ctor public TvInputManager.TvInputListener();
    method public void onAvailabilityChanged(android.content.ComponentName, boolean);
  }
  public abstract class TvInputService extends android.app.Service {
    ctor public TvInputService();
    method public final android.os.IBinder onBind(android.content.Intent);
    method public abstract android.tv.TvInputService.TvInputSessionImpl onCreateSession();
    method public final void setAvailable(boolean);
    field public static final java.lang.String SERVICE_INTERFACE = "android.tv.TvInputService";
  }
  public static abstract class TvInputService.TvInputSessionImpl {
    ctor public TvInputService.TvInputSessionImpl();
    method public abstract void onRelease();
    method public abstract boolean onSetSurface(android.view.Surface);
    method public abstract void onSetVolume(float);
    method public abstract boolean onTune(android.net.Uri);
  }
}
package android.util {
  public class AndroidException extends java.lang.Exception {
+9 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ import android.os.storage.StorageManager;
import android.print.IPrintManager;
import android.print.PrintManager;
import android.telephony.TelephonyManager;
import android.tv.ITvInputManager;
import android.tv.TvInputManager;
import android.content.ClipboardManager;
import android.util.AndroidRuntimeException;
import android.util.ArrayMap;
@@ -629,6 +631,13 @@ class ContextImpl extends Context {
                return new TrustManager(b);
            }
        });

        registerService(TV_INPUT_SERVICE, new ServiceFetcher() {
            public Object createService(ContextImpl ctx) {
                IBinder iBinder = ServiceManager.getService(TV_INPUT_SERVICE);
                ITvInputManager service = ITvInputManager.Stub.asInterface(iBinder);
                return new TvInputManager(service, UserHandle.myUserId());
            }});
    }

    static ContextImpl getImpl(Context context) {
+10 −0
Original line number Diff line number Diff line
@@ -2608,6 +2608,16 @@ public abstract class Context {
     */
    public static final String TRUST_SERVICE = "trust";

    /**
     * Use with {@link #getSystemService} to retrieve a
     * {@link android.tv.TvInputManager} for interacting with TV inputs on the
     * device.
     *
     * @see #getSystemService
     * @see android.tv.TvInputManager
     */
    public static final String TV_INPUT_SERVICE = "tv_input";

    /**
     * Determine whether the given permission is allowed for a particular
     * process and user ID running in the system.
Loading