diff --git a/play-services-api/build.gradle b/play-services-api/build.gradle
index 33871ca2..972d5ad2 100644
--- a/play-services-api/build.gradle
+++ b/play-services-api/build.gradle
@@ -44,6 +44,7 @@ android {
dependencies {
compile project(':play-services-basement')
compile project(':play-services-cast-api')
+ compile project(':play-services-cast-framework-api')
compile project(':play-services-iid-api')
compile project(':play-services-location-api')
compile project(':play-services-wearable-api')
diff --git a/play-services-basement/build.gradle b/play-services-basement/build.gradle
index 3fb7414a..8358b839 100644
--- a/play-services-basement/build.gradle
+++ b/play-services-basement/build.gradle
@@ -47,6 +47,6 @@ android {
}
dependencies {
- compile 'com.android.support:support-v4:23.4.0'
+ compile 'com.android.support:support-v4:24.2.1'
compile 'org.microg:safe-parcel:1.4.0'
}
diff --git a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java
index 6cb9f7cc..9fadb62b 100644
--- a/play-services-basement/src/main/java/org/microg/gms/common/Constants.java
+++ b/play-services-basement/src/main/java/org/microg/gms/common/Constants.java
@@ -17,7 +17,7 @@
package org.microg.gms.common;
public class Constants {
- public static final int MAX_REFERENCE_VERSION = 9683000;
+ public static final int MAX_REFERENCE_VERSION = 10084000;
public static final String GMS_PACKAGE_NAME = "com.google.android.gms";
public static final String GSF_PACKAGE_NAME = "com.google.android.gsf";
public static final String GMS_PACKAGE_SIGNATURE_SHA1 = "38918a453d07199354f8b19af05ec6562ced5788";
diff --git a/play-services-cast-framework-api/build.gradle b/play-services-cast-framework-api/build.gradle
new file mode 100644
index 00000000..b4ddb5c3
--- /dev/null
+++ b/play-services-cast-framework-api/build.gradle
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2013-2015 microG Project Team
+ *
+ * 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.
+ */
+
+apply plugin: 'com.android.library'
+
+String getMyVersionName() {
+ def stdout = new ByteArrayOutputStream()
+ if (rootProject.file("gradlew").exists())
+ exec { commandLine 'git', 'describe', '--tags', '--always', '--dirty'; standardOutput = stdout }
+ else // automatic build system, don't tag dirty
+ exec { commandLine 'git', 'describe', '--tags', '--always'; standardOutput = stdout }
+ return stdout.toString().trim().substring(1)
+}
+
+group = 'org.microg'
+version = getMyVersionName()
+
+android {
+ compileSdkVersion androidCompileSdk()
+ buildToolsVersion "$androidBuildVersionTools"
+
+ defaultConfig {
+ versionName getMyVersionName()
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_6
+ }
+}
+
+dependencies {
+ compile project(':play-services-basement')
+}
diff --git a/play-services-cast-framework-api/src/main/AndroidManifest.xml b/play-services-cast-framework-api/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..d4913c98
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl
new file mode 100644
index 00000000..e867d59d
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/CastOptions.aidl
@@ -0,0 +1,3 @@
+package com.google.android.gms.cast.framework;
+
+parcelable CastOptions;
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl
new file mode 100644
index 00000000..6857ad18
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastConnectionController.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework;
+
+interface ICastConnectionController {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl
new file mode 100644
index 00000000..25c4ec51
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastContext.aidl
@@ -0,0 +1,15 @@
+package com.google.android.gms.cast.framework;
+
+import com.google.android.gms.cast.framework.ISessionManager;
+import com.google.android.gms.dynamic.IObjectWrapper;
+
+interface ICastContext {
+ Bundle getMergedSelectorAsBundle() = 0;
+ boolean isApplicationVisible() = 1;
+ //void addAppVisibilityListener(IAppVisibilityListener listener) = 2;
+ //void removeAppVisibilityListener(IAppVisibilityListener listener) = 3;
+ ISessionManager getSessionManager() = 4;
+ void destroy() = 5;
+ void onActivityResumed(in IObjectWrapper activity) = 6;
+ void onActivityPaused(in IObjectWrapper activity) = 7;
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl
new file mode 100644
index 00000000..848fb6b5
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ICastSession.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework;
+
+interface ICastSession {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl
new file mode 100644
index 00000000..33f19574
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/IReconnectionService.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework;
+
+interface IReconnectionService {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl
new file mode 100644
index 00000000..51602ea7
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISession.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework;
+
+interface ISession {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl
new file mode 100644
index 00000000..c2cc3e66
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionManager.aidl
@@ -0,0 +1,13 @@
+package com.google.android.gms.cast.framework;
+
+import com.google.android.gms.dynamic.IObjectWrapper;
+
+interface ISessionManager {
+ IObjectWrapper getWrappedCurrentSession() = 0;
+ //void addSessionManagerListener(ISessionManagerListener listener) = 1;
+ //void removeSessionManagerListener(ISessionManagerListener listener) = 2;
+ //void addCastStateListener(ICastStateListener listener) = 3;
+ //void removeCastStateListener(ICastStateListener listener) = 4;
+ void endCurrentSession(boolean b, boolean stopCasting) = 5;
+ IObjectWrapper getWrappedThis() = 6;
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl
new file mode 100644
index 00000000..7d0a4fad
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/ISessionProxy.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework;
+
+interface ISessionProxy {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl
new file mode 100644
index 00000000..e62d1a67
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/ICastDynamiteModule.aidl
@@ -0,0 +1,24 @@
+package com.google.android.gms.cast.framework.internal;
+
+import com.google.android.gms.cast.framework.CastOptions;
+import com.google.android.gms.cast.framework.ICastConnectionController;
+import com.google.android.gms.cast.framework.ICastContext;
+import com.google.android.gms.cast.framework.ICastSession;
+import com.google.android.gms.cast.framework.IReconnectionService;
+import com.google.android.gms.cast.framework.ISession;
+import com.google.android.gms.cast.framework.ISessionProxy;
+import com.google.android.gms.cast.framework.internal.IMediaRouter;
+import com.google.android.gms.cast.framework.media.CastMediaOptions;
+import com.google.android.gms.cast.framework.media.IMediaNotificationService;
+import com.google.android.gms.cast.framework.media.internal.IFetchBitmapTask;
+import com.google.android.gms.cast.framework.media.internal.IFetchBitmapTaskProgressPublisher;
+import com.google.android.gms.dynamic.IObjectWrapper;
+
+interface ICastDynamiteModule {
+ ICastContext newCastContextImpl(in IObjectWrapper context, in CastOptions options, IMediaRouter router, in Map map) = 0;
+ ISession newSessionImpl(String s1, String s2, ISessionProxy proxy) = 1;
+ ICastSession newCastSessionImpl(in CastOptions options, in IObjectWrapper session, ICastConnectionController controller) = 2;
+ IMediaNotificationService newMediaNotificationServiceImpl(in IObjectWrapper service, in IObjectWrapper castContext, in IObjectWrapper resources, in CastMediaOptions options) = 3;
+ IReconnectionService newReconnectionServiceImpl(in IObjectWrapper service, in IObjectWrapper sessionManager, in IObjectWrapper discoveryManager) = 4;
+ IFetchBitmapTask newFetchBitmapTaskImpl(in IObjectWrapper asyncTask, IFetchBitmapTaskProgressPublisher progressPublisher, int i1, int i2, boolean b1, long l1, int i3, int i4, int i5) = 5;
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl
new file mode 100644
index 00000000..73fd0506
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/internal/IMediaRouter.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework.internal;
+
+interface IMediaRouter {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl
new file mode 100644
index 00000000..4186fc4b
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/CastMediaOptions.aidl
@@ -0,0 +1,3 @@
+package com.google.android.gms.cast.framework.media;
+
+parcelable CastMediaOptions;
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl
new file mode 100644
index 00000000..03e48729
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/IMediaNotificationService.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework.media;
+
+interface IMediaNotificationService {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl
new file mode 100644
index 00000000..c9f2286d
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTask.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework.media.internal;
+
+interface IFetchBitmapTask {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl
new file mode 100644
index 00000000..58b80c08
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/aidl/com/google/android/gms/cast/framework/media/internal/IFetchBitmapTaskProgressPublisher.aidl
@@ -0,0 +1,5 @@
+package com.google.android.gms.cast.framework.media.internal;
+
+interface IFetchBitmapTaskProgressPublisher {
+
+}
\ No newline at end of file
diff --git a/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java
new file mode 100644
index 00000000..7510362a
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/CastOptions.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2013-2016 microG Project Team
+ *
+ * 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.google.android.gms.cast.framework;
+
+import org.microg.safeparcel.AutoSafeParcelable;
+
+public class CastOptions extends AutoSafeParcelable {
+
+
+ public static Creator CREATOR = new AutoCreator(CastOptions.class);
+}
diff --git a/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java
new file mode 100644
index 00000000..362e89f2
--- /dev/null
+++ b/play-services-cast-framework-api/src/main/java/com/google/android/gms/cast/framework/media/CastMediaOptions.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2013-2016 microG Project Team
+ *
+ * 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.google.android.gms.cast.framework.media;
+
+import org.microg.safeparcel.AutoSafeParcelable;
+
+public class CastMediaOptions extends AutoSafeParcelable {
+
+
+ public static Creator CREATOR = new AutoCreator(CastMediaOptions.class);
+}
diff --git a/settings.gradle b/settings.gradle
index 99da0fb4..aed59ec3 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,6 +1,7 @@
include ':play-services-basement'
include ':play-services-api'
include ':play-services-cast-api'
+include ':play-services-cast-framework-api'
include ':play-services-iid-api'
include ':play-services-location-api'
include ':play-services-wearable-api'