Loading AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -238,5 +238,13 @@ <action android:name="com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE" /> </intent-filter> </service> <service android:name="org.microg.gms.icing.IndexService" android:exported="true"> <intent-filter> <action android:name="com.google.android.gms.icing.INDEX_SERVICE" /> </intent-filter> </service> </application> </manifest> GmsApi @ 1510aa1b Compare cee8188d to 1510aa1b Original line number Diff line number Diff line Subproject commit cee8188daef20716b4879be8f34c3ad730161e17 Subproject commit 1510aa1b0adeeed9dbe591b25ad75b015f968d82 src/org/microg/gms/AbstractGmsServiceBroker.java +33 −21 Original line number Diff line number Diff line Loading @@ -18,11 +18,16 @@ package org.microg.gms; import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.common.internal.IGmsCallbacks; import com.google.android.gms.common.internal.IGmsServiceBroker; public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { private static final String TAG = "GmsServiceBroker"; @Override public void getPlusService(IGmsCallbacks callback, int versionCode, String packageName, String str2, String[] paramArrayOfString, String str3, Bundle params) Loading Loading @@ -167,4 +172,11 @@ public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { throws RemoteException { throw new IllegalArgumentException("Address service not supported"); } @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; } } src/org/microg/gms/auth/loginservice/GoogleLoginService.java +18 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package org.microg.gms.auth.loginservice; import android.accounts.AbstractAccountAuthenticator; import android.accounts.Account; import android.accounts.AccountAuthenticatorResponse; import android.accounts.AccountManager; import android.accounts.NetworkErrorException; import android.app.Service; import android.content.Intent; Loading @@ -36,6 +37,7 @@ import org.microg.gms.auth.login.LoginActivity; import org.microg.gms.common.PackageUtils; import java.util.Arrays; import java.util.List; import static android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT; import static android.accounts.AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE; Loading Loading @@ -95,21 +97,33 @@ public class GoogleLoginService extends Service { @Override public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException { Log.d(TAG, "updateCredentials: " + account + ", " + authTokenType + ", " + options); return null; } @Override public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features) throws NetworkErrorException { Log.d(TAG, "hasFeatures: " + account + ", " + Arrays.toString(features)); Bundle result = new Bundle(); result.putBoolean(KEY_BOOLEAN_RESULT, true); return result; return GoogleLoginService.this.hasFeatures(account, features); } }.getIBinder(); } return null; } private Bundle hasFeatures(Account account, String[] features) { Log.d(TAG, "hasFeatures: " + account + ", " + Arrays.toString(features)); AccountManager accountManager = AccountManager.get(this); List<String> services = Arrays.asList(accountManager.getUserData(account, "services").split(",")); boolean res = true; for (String feature : features) { if (feature.startsWith("service_") && !services.contains(feature.substring(8))) res = false; } Bundle result = new Bundle(); result.putBoolean(KEY_BOOLEAN_RESULT, res); return result; } private Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) { options.keySet(); Log.d(TAG, "getAuthToken: " + account + ", " + authTokenType + ", " + options); Loading src/org/microg/gms/icing/AppDataSearchImpl.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 2013-2015 µg 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 org.microg.gms.icing; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.appdatasearch.CorpusStatus; import com.google.android.gms.appdatasearch.SuggestSpecification; import com.google.android.gms.appdatasearch.SuggestionResults; import com.google.android.gms.appdatasearch.internal.IAppDataSearch; public class AppDataSearchImpl extends IAppDataSearch.Stub { private static final String TAG = "GmsIcingSearchImpl"; @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; } @Override public SuggestionResults getSuggestions(String var1, String packageName, String[] accounts, int maxNum, SuggestSpecification specs) throws RemoteException { return new SuggestionResults("Unknown error"); } @Override public CorpusStatus getStatus(String packageName, String accountName) throws RemoteException { return new CorpusStatus(); } } Loading
AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -238,5 +238,13 @@ <action android:name="com.google.android.gms.icing.LIGHTWEIGHT_INDEX_SERVICE" /> </intent-filter> </service> <service android:name="org.microg.gms.icing.IndexService" android:exported="true"> <intent-filter> <action android:name="com.google.android.gms.icing.INDEX_SERVICE" /> </intent-filter> </service> </application> </manifest>
GmsApi @ 1510aa1b Compare cee8188d to 1510aa1b Original line number Diff line number Diff line Subproject commit cee8188daef20716b4879be8f34c3ad730161e17 Subproject commit 1510aa1b0adeeed9dbe591b25ad75b015f968d82
src/org/microg/gms/AbstractGmsServiceBroker.java +33 −21 Original line number Diff line number Diff line Loading @@ -18,11 +18,16 @@ package org.microg.gms; import android.os.Bundle; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.common.internal.IGmsCallbacks; import com.google.android.gms.common.internal.IGmsServiceBroker; public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { private static final String TAG = "GmsServiceBroker"; @Override public void getPlusService(IGmsCallbacks callback, int versionCode, String packageName, String str2, String[] paramArrayOfString, String str3, Bundle params) Loading Loading @@ -167,4 +172,11 @@ public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub { throws RemoteException { throw new IllegalArgumentException("Address service not supported"); } @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; } }
src/org/microg/gms/auth/loginservice/GoogleLoginService.java +18 −4 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package org.microg.gms.auth.loginservice; import android.accounts.AbstractAccountAuthenticator; import android.accounts.Account; import android.accounts.AccountAuthenticatorResponse; import android.accounts.AccountManager; import android.accounts.NetworkErrorException; import android.app.Service; import android.content.Intent; Loading @@ -36,6 +37,7 @@ import org.microg.gms.auth.login.LoginActivity; import org.microg.gms.common.PackageUtils; import java.util.Arrays; import java.util.List; import static android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT; import static android.accounts.AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE; Loading Loading @@ -95,21 +97,33 @@ public class GoogleLoginService extends Service { @Override public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException { Log.d(TAG, "updateCredentials: " + account + ", " + authTokenType + ", " + options); return null; } @Override public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features) throws NetworkErrorException { Log.d(TAG, "hasFeatures: " + account + ", " + Arrays.toString(features)); Bundle result = new Bundle(); result.putBoolean(KEY_BOOLEAN_RESULT, true); return result; return GoogleLoginService.this.hasFeatures(account, features); } }.getIBinder(); } return null; } private Bundle hasFeatures(Account account, String[] features) { Log.d(TAG, "hasFeatures: " + account + ", " + Arrays.toString(features)); AccountManager accountManager = AccountManager.get(this); List<String> services = Arrays.asList(accountManager.getUserData(account, "services").split(",")); boolean res = true; for (String feature : features) { if (feature.startsWith("service_") && !services.contains(feature.substring(8))) res = false; } Bundle result = new Bundle(); result.putBoolean(KEY_BOOLEAN_RESULT, res); return result; } private Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) { options.keySet(); Log.d(TAG, "getAuthToken: " + account + ", " + authTokenType + ", " + options); Loading
src/org/microg/gms/icing/AppDataSearchImpl.java 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * Copyright 2013-2015 µg 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 org.microg.gms.icing; import android.os.Parcel; import android.os.RemoteException; import android.util.Log; import com.google.android.gms.appdatasearch.CorpusStatus; import com.google.android.gms.appdatasearch.SuggestSpecification; import com.google.android.gms.appdatasearch.SuggestionResults; import com.google.android.gms.appdatasearch.internal.IAppDataSearch; public class AppDataSearchImpl extends IAppDataSearch.Stub { private static final String TAG = "GmsIcingSearchImpl"; @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; } @Override public SuggestionResults getSuggestions(String var1, String packageName, String[] accounts, int maxNum, SuggestSpecification specs) throws RemoteException { return new SuggestionResults("Unknown error"); } @Override public CorpusStatus getStatus(String packageName, String accountName) throws RemoteException { return new CorpusStatus(); } }