Loading GmsApi @ 0890bf45 Compare f77b09dc to 0890bf45 Original line number Diff line number Diff line Subproject commit f77b09dc0c3c750f7c99d901b6e5ced5f17d9465 Subproject commit 0890bf454651e90274949af9dca09fbcfbf50d36 play-services-core/src/main/AndroidManifest.xml +3 −2 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.google.android.c2dm.permission.SEND" /> <uses-permission android:name="org.microg.gms.STATUS_BROADCAST" /> Loading Loading @@ -174,8 +175,8 @@ <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" android:path="com.google.android.gms" /> android:path="com.google.android.gms" android:scheme="package" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> Loading play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java +44 −31 Original line number Diff line number Diff line Loading @@ -19,18 +19,24 @@ package com.google.android.gms.maps.internal; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.dynamic.IObjectWrapper; import com.google.android.gms.dynamic.ObjectWrapper; import com.google.android.gms.maps.GoogleMapOptions; import org.microg.gms.maps.bitmap.BitmapDescriptorFactoryImpl; import com.google.android.gms.maps.model.internal.IBitmapDescriptorFactoryDelegate; import org.microg.gms.maps.camera.CameraUpdateFactoryImpl; import org.microg.gms.maps.MapFragmentImpl; import org.microg.gms.maps.MapViewImpl; import org.microg.gms.maps.ResourcesContainer; import org.microg.gms.maps.bitmap.BitmapDescriptorFactoryImpl; import org.microg.gms.maps.camera.CameraUpdateFactoryImpl; public class CreatorImpl extends ICreator.Stub { private static final String TAG = "GmsMapCreator"; @Override public void init(IObjectWrapper resources) throws RemoteException { initV2(resources, 0); Loading Loading @@ -60,4 +66,11 @@ public class CreatorImpl extends ICreator.Stub { public void initV2(IObjectWrapper resources, int flags) throws RemoteException { ResourcesContainer.set((Resources) ObjectWrapper.unwrap(resources)); } @Override public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { if (super.onTransact(code, data, reply, flags)) return true; Log.d(TAG, "onTransact [unknown]: " + code + ", " + data + ", " + flags); return false; } } play-services-core/src/main/java/org/microg/gms/gcm/Constants.java +9 −0 Original line number Diff line number Diff line Loading @@ -26,4 +26,13 @@ public class Constants { public static final int MCS_DATA_MESSAGE_STANZA_TAG = 8; public static final int MCS_VERSION_CODE = 41; public static final int MSG_INPUT = 10; public static final int MSG_INPUT_ERROR = 11; public static final int MSG_OUTPUT = 20; public static final int MSG_OUTPUT_ERROR = 21; public static final int MSG_OUTPUT_READY = 22; public static final int MSG_TEARDOWN = 30; public static final int MSG_CONNECT = 40; public static final int MSG_HEARTBEAT = 41; } play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java +39 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package org.microg.gms.gcm; import android.os.Handler; import android.util.Log; import com.squareup.wire.Message; Loading @@ -39,8 +40,10 @@ import static org.microg.gms.gcm.Constants.MCS_HEARTBEAT_PING_TAG; import static org.microg.gms.gcm.Constants.MCS_IQ_STANZA_TAG; import static org.microg.gms.gcm.Constants.MCS_LOGIN_REQUEST_TAG; import static org.microg.gms.gcm.Constants.MCS_LOGIN_RESPONSE_TAG; import static org.microg.gms.gcm.Constants.MSG_INPUT; import static org.microg.gms.gcm.Constants.MSG_INPUT_ERROR; public class McsInputStream { public class McsInputStream extends Thread { private static final String TAG = "GmsGcmMcsInput"; private final InputStream is; Loading @@ -48,14 +51,41 @@ public class McsInputStream { private int version = -1; private int lastStreamIdReported = -1; private int streamId = 0; private long lastMsgTime = 0; private Handler mainHandler; public McsInputStream(InputStream is) { this(is, false); public McsInputStream(InputStream is, Handler mainHandler) { this(is, mainHandler, false); } public McsInputStream(InputStream is, boolean initialized) { public McsInputStream(InputStream is, Handler mainHandler, boolean initialized) { this.is = is; this.mainHandler = mainHandler; this.initialized = initialized; setName("McsInputStream"); } @Override public void run() { try { while (!Thread.currentThread().isInterrupted()) { Message message = read(); if (message != null) { lastMsgTime = System.currentTimeMillis(); mainHandler.dispatchMessage(mainHandler.obtainMessage(MSG_INPUT, message)); } } } catch (IOException e) { try { is.close(); } catch (IOException ignored) { } mainHandler.dispatchMessage(mainHandler.obtainMessage(MSG_INPUT_ERROR, e)); } } public void close() { interrupt(); } public int getStreamId() { Loading @@ -63,6 +93,10 @@ public class McsInputStream { return streamId; } public long getLastMsgTime() { return lastMsgTime; } public boolean newStreamIdAvailable() { return lastStreamIdReported != streamId; } Loading @@ -88,14 +122,12 @@ public class McsInputStream { ensureVersionRead(); int mcsTag = is.read(); int mcsSize = readVarint(); Log.d(TAG, "Reading from MCS tag=" + mcsTag + " size=" + mcsSize); byte[] bytes = new byte[mcsSize]; int len = 0; while (len < mcsSize) { len += is.read(bytes, len, mcsSize - len); } Message read = read(mcsTag, bytes, len); Log.d(TAG, "Read from MCS: " + read); streamId++; return read; } Loading @@ -118,6 +150,7 @@ public class McsInputStream { case MCS_DATA_MESSAGE_STANZA_TAG: return wire.parseFrom(bytes, 0, len, DataMessageStanza.class); default: Log.w(TAG, "Unknown tag: " + mcsTag); return null; } } Loading Loading
GmsApi @ 0890bf45 Compare f77b09dc to 0890bf45 Original line number Diff line number Diff line Subproject commit f77b09dc0c3c750f7c99d901b6e5ced5f17d9465 Subproject commit 0890bf454651e90274949af9dca09fbcfbf50d36
play-services-core/src/main/AndroidManifest.xml +3 −2 Original line number Diff line number Diff line Loading @@ -67,6 +67,7 @@ <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.google.android.c2dm.permission.SEND" /> <uses-permission android:name="org.microg.gms.STATUS_BROADCAST" /> Loading Loading @@ -174,8 +175,8 @@ <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <data android:scheme="package" android:path="com.google.android.gms" /> android:path="com.google.android.gms" android:scheme="package" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MY_PACKAGE_REPLACED" /> Loading
play-services-core/src/main/java/com/google/android/gms/maps/internal/CreatorImpl.java +44 −31 Original line number Diff line number Diff line Loading @@ -19,18 +19,24 @@ package com.google.android.gms.maps.internal; import android.app.Activity; import android.content.Context; import android.content.res.Resources; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.dynamic.IObjectWrapper; import com.google.android.gms.dynamic.ObjectWrapper; import com.google.android.gms.maps.GoogleMapOptions; import org.microg.gms.maps.bitmap.BitmapDescriptorFactoryImpl; import com.google.android.gms.maps.model.internal.IBitmapDescriptorFactoryDelegate; import org.microg.gms.maps.camera.CameraUpdateFactoryImpl; import org.microg.gms.maps.MapFragmentImpl; import org.microg.gms.maps.MapViewImpl; import org.microg.gms.maps.ResourcesContainer; import org.microg.gms.maps.bitmap.BitmapDescriptorFactoryImpl; import org.microg.gms.maps.camera.CameraUpdateFactoryImpl; public class CreatorImpl extends ICreator.Stub { private static final String TAG = "GmsMapCreator"; @Override public void init(IObjectWrapper resources) throws RemoteException { initV2(resources, 0); Loading Loading @@ -60,4 +66,11 @@ public class CreatorImpl extends ICreator.Stub { public void initV2(IObjectWrapper resources, int flags) throws RemoteException { ResourcesContainer.set((Resources) ObjectWrapper.unwrap(resources)); } @Override public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { if (super.onTransact(code, data, reply, flags)) return true; Log.d(TAG, "onTransact [unknown]: " + code + ", " + data + ", " + flags); return false; } }
play-services-core/src/main/java/org/microg/gms/gcm/Constants.java +9 −0 Original line number Diff line number Diff line Loading @@ -26,4 +26,13 @@ public class Constants { public static final int MCS_DATA_MESSAGE_STANZA_TAG = 8; public static final int MCS_VERSION_CODE = 41; public static final int MSG_INPUT = 10; public static final int MSG_INPUT_ERROR = 11; public static final int MSG_OUTPUT = 20; public static final int MSG_OUTPUT_ERROR = 21; public static final int MSG_OUTPUT_READY = 22; public static final int MSG_TEARDOWN = 30; public static final int MSG_CONNECT = 40; public static final int MSG_HEARTBEAT = 41; }
play-services-core/src/main/java/org/microg/gms/gcm/McsInputStream.java +39 −6 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package org.microg.gms.gcm; import android.os.Handler; import android.util.Log; import com.squareup.wire.Message; Loading @@ -39,8 +40,10 @@ import static org.microg.gms.gcm.Constants.MCS_HEARTBEAT_PING_TAG; import static org.microg.gms.gcm.Constants.MCS_IQ_STANZA_TAG; import static org.microg.gms.gcm.Constants.MCS_LOGIN_REQUEST_TAG; import static org.microg.gms.gcm.Constants.MCS_LOGIN_RESPONSE_TAG; import static org.microg.gms.gcm.Constants.MSG_INPUT; import static org.microg.gms.gcm.Constants.MSG_INPUT_ERROR; public class McsInputStream { public class McsInputStream extends Thread { private static final String TAG = "GmsGcmMcsInput"; private final InputStream is; Loading @@ -48,14 +51,41 @@ public class McsInputStream { private int version = -1; private int lastStreamIdReported = -1; private int streamId = 0; private long lastMsgTime = 0; private Handler mainHandler; public McsInputStream(InputStream is) { this(is, false); public McsInputStream(InputStream is, Handler mainHandler) { this(is, mainHandler, false); } public McsInputStream(InputStream is, boolean initialized) { public McsInputStream(InputStream is, Handler mainHandler, boolean initialized) { this.is = is; this.mainHandler = mainHandler; this.initialized = initialized; setName("McsInputStream"); } @Override public void run() { try { while (!Thread.currentThread().isInterrupted()) { Message message = read(); if (message != null) { lastMsgTime = System.currentTimeMillis(); mainHandler.dispatchMessage(mainHandler.obtainMessage(MSG_INPUT, message)); } } } catch (IOException e) { try { is.close(); } catch (IOException ignored) { } mainHandler.dispatchMessage(mainHandler.obtainMessage(MSG_INPUT_ERROR, e)); } } public void close() { interrupt(); } public int getStreamId() { Loading @@ -63,6 +93,10 @@ public class McsInputStream { return streamId; } public long getLastMsgTime() { return lastMsgTime; } public boolean newStreamIdAvailable() { return lastStreamIdReported != streamId; } Loading @@ -88,14 +122,12 @@ public class McsInputStream { ensureVersionRead(); int mcsTag = is.read(); int mcsSize = readVarint(); Log.d(TAG, "Reading from MCS tag=" + mcsTag + " size=" + mcsSize); byte[] bytes = new byte[mcsSize]; int len = 0; while (len < mcsSize) { len += is.read(bytes, len, mcsSize - len); } Message read = read(mcsTag, bytes, len); Log.d(TAG, "Read from MCS: " + read); streamId++; return read; } Loading @@ -118,6 +150,7 @@ public class McsInputStream { case MCS_DATA_MESSAGE_STANZA_TAG: return wire.parseFrom(bytes, 0, len, DataMessageStanza.class); default: Log.w(TAG, "Unknown tag: " + mcsTag); return null; } } Loading