diff options
author | Michael Bestas <mkbestas@lineageos.org> | 2018-01-23 20:44:51 +0200 |
---|---|---|
committer | Michael Bestas <mkbestas@lineageos.org> | 2018-01-24 02:43:12 +0200 |
commit | 498b79bb3a2778b26e01be4af037c222fd0dec9f (patch) | |
tree | 6d80287bbceba06f65cae1d6a3c3485cea55c9d6 | |
parent | 60aa859cbe68092497c2a98d1a756bab3f39ff85 (diff) | |
download | lineage-sdk-498b79bb3a2778b26e01be4af037c222fd0dec9f.tar.gz lineage-sdk-498b79bb3a2778b26e01be4af037c222fd0dec9f.tar.bz2 lineage-sdk-498b79bb3a2778b26e01be4af037c222fd0dec9f.zip |
lineage-sdk: Remove external views API
* It was only used by live lockscreen
Change-Id: I78408eefb03dcccbe095311bea78baf8e6d852eb
29 files changed, 1 insertions, 1046 deletions
@@ -25,7 +25,7 @@ LOCAL_PATH := $(call my-dir) lineage_platform_res := APPS/org.lineageos.platform-res_intermediates/src # List of packages used in lineage-api-stubs -lineage_stub_packages := lineageos.alarmclock:lineageos.app:lineageos.content:lineageos.externalviews:lineageos.hardware:lineageos.media:lineageos.os:lineageos.preference:lineageos.profiles:lineageos.providers:lineageos.platform:lineageos.power:lineageos.util:lineageos.weather:lineageos.weatherservice +lineage_stub_packages := lineageos.alarmclock:lineageos.app:lineageos.content:lineageos.hardware:lineageos.media:lineageos.os:lineageos.preference:lineageos.profiles:lineageos.providers:lineageos.platform:lineageos.power:lineageos.util:lineageos.weather:lineageos.weatherservice # The LineageOS Platform Framework Library # ============================================================ diff --git a/samples/externalviews/viewhost/.gitignore b/samples/externalviews/viewhost/.gitignore deleted file mode 100644 index 9c4de582..00000000 --- a/samples/externalviews/viewhost/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.gradle -/local.properties -/.idea/workspace.xml -/.idea/libraries -.DS_Store -/build -/captures diff --git a/samples/externalviews/viewhost/Android.mk b/samples/externalviews/viewhost/Android.mk deleted file mode 100644 index f914ba74..00000000 --- a/samples/externalviews/viewhost/Android.mk +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2015 The CyanogenMod 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. -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := \ - org.lineageos.platform.sdk - -LOCAL_SRC_FILES := $(call all-java-files-under, src/) - -LOCAL_PACKAGE_NAME := LineageExternalViewHost - -include $(BUILD_PACKAGE) diff --git a/samples/externalviews/viewhost/AndroidManifest.xml b/samples/externalviews/viewhost/AndroidManifest.xml deleted file mode 100644 index 770ff22f..00000000 --- a/samples/externalviews/viewhost/AndroidManifest.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.lineageos.samples.extviewhost" > - - <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="23" /> - - <application - android:allowBackup="true" - android:icon="@mipmap/ic_launcher" - android:label="@string/app_name" - android:theme="@style/AppTheme" > - <activity - android:name=".MainActivity" - android:label="@string/app_name" > - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> - -</manifest> diff --git a/samples/externalviews/viewhost/res/layout/activity_main.xml b/samples/externalviews/viewhost/res/layout/activity_main.xml deleted file mode 100644 index 10bbd91d..00000000 --- a/samples/externalviews/viewhost/res/layout/activity_main.xml +++ /dev/null @@ -1,48 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingLeft="@dimen/activity_horizontal_margin" - android:paddingRight="@dimen/activity_horizontal_margin" - android:paddingTop="@dimen/activity_vertical_margin" - android:paddingBottom="@dimen/activity_vertical_margin"> - - <LinearLayout - android:id="@+id/root" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> - <lineageos.externalviews.ExternalView - android:id="@+id/external_view" - android:layout_width="match_parent" - android:layout_height="200dp"/> - <View - android:layout_width="match_parent" - android:layout_height="200dp" - android:background="#FF0000"/> - <View - android:layout_width="match_parent" - android:layout_height="200dp" - android:background="#00FF00"/> - <View - android:layout_width="match_parent" - android:layout_height="200dp" - android:background="#0000FF"/> - </LinearLayout> - -</ScrollView>
\ No newline at end of file diff --git a/samples/externalviews/viewhost/res/mipmap-hdpi/ic_launcher.png b/samples/externalviews/viewhost/res/mipmap-hdpi/ic_launcher.png Binary files differdeleted file mode 100644 index cde69bcc..00000000 --- a/samples/externalviews/viewhost/res/mipmap-hdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewhost/res/mipmap-mdpi/ic_launcher.png b/samples/externalviews/viewhost/res/mipmap-mdpi/ic_launcher.png Binary files differdeleted file mode 100644 index c133a0cb..00000000 --- a/samples/externalviews/viewhost/res/mipmap-mdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewhost/res/mipmap-xhdpi/ic_launcher.png b/samples/externalviews/viewhost/res/mipmap-xhdpi/ic_launcher.png Binary files differdeleted file mode 100644 index bfa42f0e..00000000 --- a/samples/externalviews/viewhost/res/mipmap-xhdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewhost/res/mipmap-xxhdpi/ic_launcher.png b/samples/externalviews/viewhost/res/mipmap-xxhdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 324e72cd..00000000 --- a/samples/externalviews/viewhost/res/mipmap-xxhdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewhost/res/values-v21/styles.xml b/samples/externalviews/viewhost/res/values-v21/styles.xml deleted file mode 100644 index 9712f4b5..00000000 --- a/samples/externalviews/viewhost/res/values-v21/styles.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - <style name="AppTheme" parent="android:Theme.Material.Light"> - </style> -</resources> diff --git a/samples/externalviews/viewhost/res/values-w820dp/dimens.xml b/samples/externalviews/viewhost/res/values-w820dp/dimens.xml deleted file mode 100644 index 4784b6fd..00000000 --- a/samples/externalviews/viewhost/res/values-w820dp/dimens.xml +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - <!-- Example customization of dimensions originally defined in res/values/dimens.xml - (such as screen margins) for screens with more than 820dp of available width. This - would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> - <dimen name="activity_horizontal_margin">64dp</dimen> -</resources> diff --git a/samples/externalviews/viewhost/res/values/dimens.xml b/samples/externalviews/viewhost/res/values/dimens.xml deleted file mode 100644 index d9dcc26b..00000000 --- a/samples/externalviews/viewhost/res/values/dimens.xml +++ /dev/null @@ -1,20 +0,0 @@ -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - <!-- Default screen margins, per the Android Design guidelines. --> - <dimen name="activity_horizontal_margin">16dp</dimen> - <dimen name="activity_vertical_margin">16dp</dimen> -</resources> diff --git a/samples/externalviews/viewhost/res/values/strings.xml b/samples/externalviews/viewhost/res/values/strings.xml deleted file mode 100644 index 4762b189..00000000 --- a/samples/externalviews/viewhost/res/values/strings.xml +++ /dev/null @@ -1,21 +0,0 @@ -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - <string name="app_name">ExternalViewTest</string> - - <string name="hello_world">Hello world!</string> - <string name="action_settings">Settings</string> -</resources> diff --git a/samples/externalviews/viewhost/res/values/styles.xml b/samples/externalviews/viewhost/res/values/styles.xml deleted file mode 100644 index 9531e170..00000000 --- a/samples/externalviews/viewhost/res/values/styles.xml +++ /dev/null @@ -1,23 +0,0 @@ -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - - <!-- Base application theme. --> - <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> - <!-- Customize your theme here. --> - </style> - -</resources> diff --git a/samples/externalviews/viewhost/src/org/lineageos/samples/extviewhost/MainActivity.java b/samples/externalviews/viewhost/src/org/lineageos/samples/extviewhost/MainActivity.java deleted file mode 100644 index f13cece7..00000000 --- a/samples/externalviews/viewhost/src/org/lineageos/samples/extviewhost/MainActivity.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (C) 2015 The CyanogenMod 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 org.lineageos.samples.extviewhost; - -import android.app.Activity; -import android.content.ComponentName; -import android.os.Bundle; - -import lineageos.externalviews.ExternalView; - -public class MainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - ExternalView ev = (ExternalView) findViewById(R.id.external_view); - ComponentName cn = new ComponentName("org.lineageos.samples.extview", - "org.lineageos.samples.extview.SampleProviderService"); - ev.setProviderComponent(cn); - } - -} diff --git a/samples/externalviews/viewprovider/Android.mk b/samples/externalviews/viewprovider/Android.mk deleted file mode 100644 index dd297ab1..00000000 --- a/samples/externalviews/viewprovider/Android.mk +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2015 The CyanogenMod 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. -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_STATIC_JAVA_LIBRARIES := \ - org.lineageos.platform.sdk - -LOCAL_SRC_FILES := $(call all-java-files-under, src/) - -LOCAL_PACKAGE_NAME := LineageExternalViewProvider - -include $(BUILD_PACKAGE)
\ No newline at end of file diff --git a/samples/externalviews/viewprovider/AndroidManifest.xml b/samples/externalviews/viewprovider/AndroidManifest.xml deleted file mode 100644 index 83c8eaef..00000000 --- a/samples/externalviews/viewprovider/AndroidManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="org.lineageos.samples.extview" - android:versionCode="1" - android:versionName="1.0"> - - <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="23" /> - - <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> - <uses-permission android:name="android.permission.WRITE_SETTINGS" /> - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> - - <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> - <service android:name=".SampleProviderService" - android:exported="true"> - - </service> - </application> -</manifest> diff --git a/samples/externalviews/viewprovider/res/drawable-hdpi/ic_launcher.png b/samples/externalviews/viewprovider/res/drawable-hdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 96a442e5..00000000 --- a/samples/externalviews/viewprovider/res/drawable-hdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewprovider/res/drawable-ldpi/ic_launcher.png b/samples/externalviews/viewprovider/res/drawable-ldpi/ic_launcher.png Binary files differdeleted file mode 100644 index 99238729..00000000 --- a/samples/externalviews/viewprovider/res/drawable-ldpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewprovider/res/drawable-mdpi/ic_launcher.png b/samples/externalviews/viewprovider/res/drawable-mdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 359047df..00000000 --- a/samples/externalviews/viewprovider/res/drawable-mdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewprovider/res/drawable-xhdpi/ic_launcher.png b/samples/externalviews/viewprovider/res/drawable-xhdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 71c6d760..00000000 --- a/samples/externalviews/viewprovider/res/drawable-xhdpi/ic_launcher.png +++ /dev/null diff --git a/samples/externalviews/viewprovider/res/layout/main.xml b/samples/externalviews/viewprovider/res/layout/main.xml deleted file mode 100644 index c2742aaf..00000000 --- a/samples/externalviews/viewprovider/res/layout/main.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:gravity="center_horizontal"> - <Button - android:id="@+id/create_bluetooth_on_wifi_trigger_connect" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/bluetooth_on_wifi_trigger"/> - - <TextView - android:id="@+id/create_bt_on_wifi_status" - android:layout_width="match_parent" - android:layout_height="300dp" /> -</LinearLayout> - diff --git a/samples/externalviews/viewprovider/res/values/strings.xml b/samples/externalviews/viewprovider/res/values/strings.xml deleted file mode 100644 index 6d6780c6..00000000 --- a/samples/externalviews/viewprovider/res/values/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2015 The CyanogenMod 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. ---> -<resources> - <string name="app_name">Profiles Sample</string> - <string name="bluetooth_on_wifi_trigger">Create profile that triggers on top AP from WifiManager</string> -</resources> diff --git a/samples/externalviews/viewprovider/src/org/lineageos/samples/extview/SampleProviderService.java b/samples/externalviews/viewprovider/src/org/lineageos/samples/extview/SampleProviderService.java deleted file mode 100644 index 713a882a..00000000 --- a/samples/externalviews/viewprovider/src/org/lineageos/samples/extview/SampleProviderService.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2015 The CyanogenMod 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 org.lineageos.samples.extview; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import lineageos.externalviews.ExternalViewProviderService; - -public class SampleProviderService extends ExternalViewProviderService { - @Override - protected ExternalViewProviderService.Provider createExternalView(Bundle options) { - return new ProviderImpl(options); - } - - private class ProviderImpl extends Provider { - protected ProviderImpl(Bundle options) { - super(options); - } - - @Override - protected View onCreateView() { - return LayoutInflater.from(SampleProviderService.this).inflate(R.layout.main, null); - } - } -} diff --git a/sdk/src/java/lineageos/externalviews/ExternalView.java b/sdk/src/java/lineageos/externalviews/ExternalView.java deleted file mode 100644 index 2cb632fc..00000000 --- a/sdk/src/java/lineageos/externalviews/ExternalView.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * Copyright (C) 2015 The CyanogenMod 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 lineageos.externalviews; - -import android.app.Activity; -import android.app.Application; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.ServiceConnection; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.IBinder; -import android.os.RemoteException; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewTreeObserver; - -import java.util.LinkedList; - -/** - * TODO: unhide once documented and finalized - * @hide - */ -public class ExternalView extends View implements Application.ActivityLifecycleCallbacks, - ViewTreeObserver.OnPreDrawListener { - - private LinkedList<Runnable> mQueue = new LinkedList<Runnable>(); - - protected Context mContext; - protected final ExternalViewProperties mExternalViewProperties; - protected volatile IExternalViewProvider mExternalViewProvider; - - public ExternalView(Context context, AttributeSet attrs) { - this(context, attrs, null); - } - - public ExternalView(Context context, AttributeSet attrs, int defStyleAttr) { - this(context, attrs); - } - - public ExternalView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - this(context, attrs); - } - - public ExternalView(Context context, AttributeSet attributeSet, ComponentName componentName) { - super(context, attributeSet); - mContext = getContext(); - mExternalViewProperties = new ExternalViewProperties(this, mContext); - Application app = (mContext instanceof Activity) ? ((Activity) mContext).getApplication() - : (Application) mContext; - app.registerActivityLifecycleCallbacks(this); - if (componentName != null) { - mContext.bindService(new Intent().setComponent(componentName), - mServiceConnection, Context.BIND_AUTO_CREATE); - } - } - - private ServiceConnection mServiceConnection = new ServiceConnection() { - @Override - public void onServiceConnected(ComponentName name, IBinder service) { - try { - mExternalViewProvider = IExternalViewProvider.Stub.asInterface( - IExternalViewProviderFactory.Stub.asInterface(service).createExternalView(null)); - executeQueue(); - } catch (RemoteException e) { - e.printStackTrace(); - } - } - - @Override - public void onServiceDisconnected(ComponentName name) { - mExternalViewProvider = null; - } - }; - - private void executeQueue() { - while (!mQueue.isEmpty()) { - Runnable r = mQueue.pop(); - r.run(); - } - } - - protected void performAction(Runnable r) { - if (mExternalViewProvider != null) { - r.run(); - } else { - mQueue.add(r); - } - } - - // view overrides, for positioning - - @Override - public boolean onPreDraw() { - long cur = System.currentTimeMillis(); - if (!mExternalViewProperties.hasChanged()) { - return true; - } - final int x = mExternalViewProperties.getX(); - final int y = mExternalViewProperties.getY(); - final int width = mExternalViewProperties.getWidth(); - final int height = mExternalViewProperties.getHeight(); - final boolean visible = mExternalViewProperties.isVisible(); - final Rect clipRect = mExternalViewProperties.getHitRect(); - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.alterWindow(x, y, width, height, visible, - clipRect); - } catch (RemoteException e) { - } - } - }); - return true; - } - - // Activity lifecycle callbacks - - @Override - public void onActivityCreated(Activity activity, Bundle savedInstanceState) { - } - - @Override - public void onActivityStarted(Activity activity) { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onStart(); - } catch (RemoteException e) { - } - } - }); - } - - @Override - public void onActivityResumed(Activity activity) { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onResume(); - } catch (RemoteException e) { - } - getViewTreeObserver().addOnPreDrawListener(ExternalView.this); - } - }); - } - - @Override - public void onActivityPaused(Activity activity) { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onPause(); - } catch (RemoteException e) { - } - getViewTreeObserver().removeOnPreDrawListener(ExternalView.this); - } - }); - } - - @Override - public void onActivityStopped(Activity activity) { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onStop(); - } catch (RemoteException e) { - } - } - }); - } - - @Override - public void onActivitySaveInstanceState(Activity activity, Bundle outState) { - } - - @Override - public void onActivityDestroyed(Activity activity) { - mExternalViewProvider = null; - mContext.unbindService(mServiceConnection); - } - - // Placeholder callbacks - - @Override - public void onDetachedFromWindow() { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onDetach(); - } catch (RemoteException e) { - } - } - }); - } - - @Override - public void onAttachedToWindow() { - performAction(new Runnable() { - @Override - public void run() { - try { - mExternalViewProvider.onAttach(null); - } catch (RemoteException e) { - } - } - }); - } - - /** - * Sets the component of the ExternalViewProviderService to be used for this ExternalView. - * If a provider is already connected to this view, it is first unbound before binding to the - * new provider. - * @param componentName - */ - public void setProviderComponent(ComponentName componentName) { - // unbind any existing external view provider - if (mExternalViewProvider != null) { - mContext.unbindService(mServiceConnection); - } - if (componentName != null) { - mContext.bindService(new Intent().setComponent(componentName), - mServiceConnection, Context.BIND_AUTO_CREATE); - } - } -} diff --git a/sdk/src/java/lineageos/externalviews/ExternalViewProperties.java b/sdk/src/java/lineageos/externalviews/ExternalViewProperties.java deleted file mode 100644 index 998962c4..00000000 --- a/sdk/src/java/lineageos/externalviews/ExternalViewProperties.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2015 The CyanogenMod 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 lineageos.externalviews; - -import android.app.Activity; -import android.app.Application; -import android.content.Context; -import android.graphics.Rect; -import android.view.View; - -/** - * TODO: unhide once documented and finalized - * @hide - */ -public class ExternalViewProperties { - - private final int[] mScreenCoords = new int[2]; - private final View mView; - private final View mDecorView; - private int mWidth, mHeight; - private boolean mVisible; - private Rect mHitRect = new Rect(); - - ExternalViewProperties(View view, Context context) { - mView = view; - if (context instanceof Activity) { - mDecorView = ((Activity) context).getWindow().getDecorView(); - } else { - mDecorView = null; - } - } - - public Rect getHitRect() { - return mHitRect; - } - - public int getX() { - return mScreenCoords[0]; - } - - public int getY() { - return mScreenCoords[1]; - } - - public int getWidth() { - return mWidth; - } - - public int getHeight() { - return mHeight; - } - - public boolean isVisible() { - return mVisible; - } - - public boolean hasChanged() { - int previousWidth = mWidth; - int previousHeight = mHeight; - mWidth = mView.getWidth(); - mHeight = mView.getHeight(); - - int previousX = mScreenCoords[0]; - int previousY = mScreenCoords[1]; - mView.getLocationOnScreen(mScreenCoords); - int newX = mScreenCoords[0]; - int newY = mScreenCoords[1]; - - mHitRect.setEmpty(); - if (mDecorView != null) { - mDecorView.getHitRect(mHitRect); - } - boolean wasVisible = mVisible; - mVisible = mView.getLocalVisibleRect(mHitRect); - - // Check if anything actually changed - return previousX != newX || previousY != newY - || previousWidth != mWidth || previousHeight != mHeight - || mVisible != wasVisible; - } -} diff --git a/sdk/src/java/lineageos/externalviews/ExternalViewProviderService.java b/sdk/src/java/lineageos/externalviews/ExternalViewProviderService.java deleted file mode 100644 index c0a4aa84..00000000 --- a/sdk/src/java/lineageos/externalviews/ExternalViewProviderService.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (C) 2015 The CyanogenMod 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 lineageos.externalviews; - -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.Handler; -import android.os.IBinder; -import android.os.RemoteException; -import android.util.Log; -import android.view.Gravity; -import android.view.View; -import android.view.ViewGroup; -import android.view.Window; -import android.view.WindowManager; - -import com.android.internal.policy.PhoneWindow; - -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.FutureTask; - -/** - * TODO: unhide once documented and finalized - * @hide - */ -public abstract class ExternalViewProviderService extends Service { - - private static final String TAG = "ExternalViewProvider"; - private static final boolean DEBUG = false; - - private WindowManager mWindowManager; - private final Handler mHandler = new Handler(); - - @Override - public void onCreate() { - super.onCreate(); - - mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); - } - - @Override - public final IBinder onBind(Intent intent) { - return new IExternalViewProviderFactory.Stub() { - @Override public IBinder createExternalView(final Bundle options) { - FutureTask<IBinder> c = new FutureTask<IBinder>(new Callable<IBinder>() { - @Override - public IBinder call() throws Exception { - return ExternalViewProviderService.this.createExternalView(options).mImpl; - } - }); - mHandler.post(c); - try { - return c.get(); - } catch (InterruptedException | ExecutionException e) { - Log.e(TAG, "error: ", e); - return null; - } - } - }; - } - - protected abstract Provider createExternalView(Bundle options); - - protected abstract class Provider { - public static final int DEFAULT_WINDOW_TYPE = WindowManager.LayoutParams.TYPE_PHONE; - public static final int DEFAULT_WINDOW_FLAGS = - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | - WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | - WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;; - - private final class ProviderImpl extends IExternalViewProvider.Stub { - private final Window mWindow; - private final WindowManager.LayoutParams mParams; - - private boolean mShouldShow = true; - private boolean mAskedShow = false; - - public ProviderImpl(Provider provider) { - mWindow = new PhoneWindow(ExternalViewProviderService.this); - ((ViewGroup) mWindow.getDecorView()).addView(onCreateView()); - - mParams = new WindowManager.LayoutParams(); - mParams.type = provider.getWindowType(); - mParams.flags = provider.getWindowFlags(); - mParams.gravity = Gravity.LEFT | Gravity.TOP; - mParams.format = PixelFormat.TRANSPARENT; - } - - @Override - public void onAttach(IBinder windowToken) throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - mWindowManager.addView(mWindow.getDecorView(), mParams); - Provider.this.onAttach(); - } - }); - } - - @Override - public void onStart() throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - Provider.this.onStart(); - } - }); - } - - @Override - public void onResume() throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - mShouldShow = true; - updateVisibility(); - Provider.this.onResume(); - } - }); - } - - @Override - public void onPause() throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - mShouldShow = false; - updateVisibility(); - Provider.this.onPause(); - } - }); - } - - @Override - public void onStop() throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - Provider.this.onStop(); - } - }); - } - - @Override - public void onDetach() throws RemoteException { - mHandler.post(new Runnable() { - @Override - public void run() { - mWindowManager.removeView(mWindow.getDecorView()); - Provider.this.onDetach(); - } - }); - } - - @Override - public void alterWindow(final int x, final int y, final int width, final int height, - final boolean visible, final Rect clipRect) { - mHandler.post(new Runnable() { - @Override - public void run() { - mParams.x = x; - mParams.y = y; - mParams.width = width; - mParams.height = height; - - if (DEBUG) Log.d(TAG, mParams.toString()); - - mAskedShow = visible; - - updateVisibility(); - - View decorView = mWindow.getDecorView(); - if (decorView.getVisibility() == View.VISIBLE) { - decorView.setClipBounds(clipRect); - } - - if (mWindow.getDecorView().getVisibility() != View.GONE) - mWindowManager.updateViewLayout(mWindow.getDecorView(), mParams); - } - }); - } - - private void updateVisibility() { - if (DEBUG) Log.d(TAG, "shouldShow = " + mShouldShow + " askedShow = " + mAskedShow); - mWindow.getDecorView().setVisibility(mShouldShow && mAskedShow ? - View.VISIBLE : View.GONE); - } - } - - private final ProviderImpl mImpl = new ProviderImpl(this); - private final Bundle mOptions; - - protected Provider(Bundle options) { - mOptions = options; - } - - protected Bundle getOptions() { - return mOptions; - } - - protected void onAttach() {} - protected abstract View onCreateView(); - protected void onStart() {} - protected void onResume() {} - protected void onPause() {} - protected void onStop() {} - protected void onDetach() {} - - /*package*/ int getWindowType() { - return DEFAULT_WINDOW_TYPE; - } - - /*package*/ int getWindowFlags() { - return DEFAULT_WINDOW_FLAGS; - } - } -}
\ No newline at end of file diff --git a/sdk/src/java/lineageos/externalviews/IExternalViewProvider.aidl b/sdk/src/java/lineageos/externalviews/IExternalViewProvider.aidl deleted file mode 100644 index 48de0fd4..00000000 --- a/sdk/src/java/lineageos/externalviews/IExternalViewProvider.aidl +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2015, The CyanogenMod 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 lineageos.externalviews; - -import android.graphics.Rect; - -/** @hide */ -interface IExternalViewProvider -{ - oneway void onAttach(in IBinder windowToken); - oneway void onStart(); - oneway void onResume(); - oneway void onPause(); - oneway void onStop(); - oneway void onDetach(); - - void alterWindow(in int x, in int y, in int width, in int height, in boolean visible, in Rect clipRect); -} diff --git a/sdk/src/java/lineageos/externalviews/IExternalViewProviderFactory.aidl b/sdk/src/java/lineageos/externalviews/IExternalViewProviderFactory.aidl deleted file mode 100644 index 2131abd8..00000000 --- a/sdk/src/java/lineageos/externalviews/IExternalViewProviderFactory.aidl +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Copyright (c) 2015, The CyanogenMod 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 lineageos.externalviews; - -import android.os.Bundle; - -/** @hide */ -interface IExternalViewProviderFactory -{ - IBinder createExternalView(in Bundle options); -} |