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

Commit cae43346 authored by Christofer Åkersten's avatar Christofer Åkersten
Browse files

Initial commit of updatable media API

Test: Created instance & called method
Change-Id: Ie886936c50884636b33112e6d5e44b43cfe504ae
parent bf4637b5
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -25,4 +25,10 @@ LOCAL_PRIVILEGED_MODULE := true
# TODO: create a separate key for this package.
LOCAL_CERTIFICATE := platform

# TODO: Use System SDK once public APIs are approved
# LOCAL_SDK_VERSION := system_current

LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PROGUARD_FLAG_FILES := proguard.cfg

include $(BUILD_PACKAGE)
+20 −0
Original line number Diff line number Diff line
#
# Copyright 2017 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.
#

# Keep entry point for updatable Java classes
-keep public class com.android.media.update.ApiFactory {
   public static java.lang.Object initialize(android.content.Context);
}
+43 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.media.update;

import android.content.Context;
import android.media.update.MediaController2Provider;
import android.media.update.StaticProvider;
import android.media.update.ViewProvider;
import android.widget.MediaController2;

import com.android.widget.MediaController2Impl;

public class ApiFactory implements StaticProvider {
    private final Context mContext;

    public ApiFactory(Context context) {
        mContext = context;
    }

    public static Object initialize(Context context) throws ReflectiveOperationException {
        return new ApiFactory(context);
    }

    @Override
    public MediaController2Provider createMediaController2(
            MediaController2 instance, ViewProvider superProvider) {
        return new MediaController2Impl(instance, superProvider);
    }
}
+192 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2017 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.widget;

import android.graphics.Canvas;
import android.media.session.MediaController;
import android.media.update.MediaController2Provider;
import android.media.update.ViewProvider;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.MediaController2;

public class MediaController2Impl implements MediaController2Provider {
    private final MediaController2 mInstance;
    private final ViewProvider mSuperProvider;

    public MediaController2Impl(MediaController2 instance, ViewProvider superProvider) {
        mInstance = instance;
        mSuperProvider = superProvider;

        // TODO: Implement
    }

    @Override
    public void setController_impl(MediaController controller) {
        // TODO: Implement
    }

    @Override
    public void setAnchorView_impl(View view) {
        // TODO: Implement
    }

    @Override
    public void show_impl() {
        // TODO: Implement
    }

    @Override
    public void show_impl(int timeout) {
        // TODO: Implement
    }

    @Override
    public boolean isShowing_impl() {
        // TODO: Implement
        return false;
    }

    @Override
    public void hide_impl() {
        // TODO: Implement
    }

    @Override
    public void setPrevNextListeners_impl(OnClickListener next, OnClickListener prev) {
        // TODO: Implement
    }

    @Override
    public void showCCButton_impl() {
        // TODO: Implement
    }

    @Override
    public boolean isPlaying_impl() {
        // TODO: Implement
        return false;
    }

    @Override
    public int getCurrentPosition_impl() {
        // TODO: Implement
        return 0;
    }

    @Override
    public int getBufferPercentage_impl() {
        // TODO: Implement
        return 0;
    }

    @Override
    public boolean canPause_impl() {
        // TODO: Implement
        return false;
    }

    @Override
    public boolean canSeekBackward_impl() {
        // TODO: Implement
        return false;
    }

    @Override
    public boolean canSeekForward_impl() {
        // TODO: Implement
        return false;
    }

    @Override
    public void showSubtitle_impl() {
        // TODO: Implement
    }

    @Override
    public void hideSubtitle_impl() {
        // TODO: Implement
    }

    @Override
    public void onAttachedToWindow_impl() {
        mSuperProvider.onAttachedToWindow_impl();
        // TODO: Implement
    }

    @Override
    public void onDetachedFromWindow_impl() {
        mSuperProvider.onDetachedFromWindow_impl();
        // TODO: Implement
    }

    @Override
    public void onLayout_impl(boolean changed, int left, int top, int right, int bottom) {
        mSuperProvider.onLayout_impl(changed, left, top, right, bottom);
        // TODO: Implement
    }

    @Override
    public void draw_impl(Canvas canvas) {
        mSuperProvider.draw_impl(canvas);
        // TODO: Implement
    }

    @Override
    public CharSequence getAccessibilityClassName_impl() {
        // TODO: Implement
        return MediaController2.class.getName();
    }

    @Override
    public boolean onTouchEvent_impl(MotionEvent ev) {
        // TODO: Implement
        return mSuperProvider.onTouchEvent_impl(ev);
    }

    @Override
    public boolean onTrackballEvent_impl(MotionEvent ev) {
        // TODO: Implement
        return mSuperProvider.onTrackballEvent_impl(ev);
    }

    @Override
    public boolean onKeyDown_impl(int keyCode, KeyEvent event) {
        // TODO: Implement
        return mSuperProvider.onKeyDown_impl(keyCode, event);
    }

    @Override
    public void onFinishInflate_impl() {
        mSuperProvider.onFinishInflate_impl();
        // TODO: Implement
    }

    @Override
    public boolean dispatchKeyEvent_impl(KeyEvent event) {
        // TODO: Implement
        return mSuperProvider.dispatchKeyEvent_impl(event);
    }

    @Override
    public void setEnabled_impl(boolean enabled) {
        mSuperProvider.setEnabled_impl(enabled);
        // TODO: Implement
    }
}