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

Unverified Commit 40269aba authored by Marvin W.'s avatar Marvin W. 🐿️
Browse files

Games: Add initial basic support for Play Games

This puts the base to allow apps that allow/require sign in with Google Play Games to work.
Note that as the Play Games companion app is not functional (yet), many features of Play Games remain unusable.
parent 046218ee
Loading
Loading
Loading
Loading
+0 −47
Original line number Diff line number Diff line
package com.google.android.gms.games.internal;

import com.google.android.gms.common.data.DataHolder;
import com.google.android.gms.games.multiplayer.realtime.RealTimeMessage;

interface IGamesCallbacks {
  void onAuthTokenLoaded(int statusCode, String authToken) = 5000;
  void onAchievementsLoaded(in DataHolder data) = 5001;
  void onAchievementUpdated(int statusCode, String achievementId) = 5002;
  void onLeaderboardsLoaded(in DataHolder data) = 5003;
  void onLeaderboardScoresLoaded(in DataHolder leaderboard, in DataHolder scores) = 5004;
  void onScoreSubmitted(in DataHolder data) = 5005;
  void onPlayersLoaded(in DataHolder data) = 5006;
  void onExtendedPlayersLoaded(in DataHolder data) = 5007;
  void onGamesLoaded(in DataHolder data) = 5008;
  void onExtendedGamesLoaded(in DataHolder data) = 5009;
  void onGameInstancesLoaded(in DataHolder data) = 5010;
  void onGameplayAclLoaded(in DataHolder data) = 5011;
  void onGameplayAclUpdated(int statusCode) = 5012;
  void onFAclLoaded(in DataHolder data) = 5013;
  void onFAclUpdated(int statusCode) = 5014;
  void onSignOutComplete() = 5015;
  void onInvitationsLoaded(in DataHolder data) = 5016;
  void onRoomCreated(in DataHolder data) = 5017;
  void onJoinedRoom(in DataHolder data) = 5018;
  void onLeftRoom(int statusCode, String roomId) = 5019;
  void onRoomConnecting(in DataHolder data) = 5020;
  void onRoomAutoMatching(in DataHolder data) = 5021;
  void onRoomConnected(in DataHolder data) = 5022;
  void onConnectedToRoom(in DataHolder data) = 5023;
  void onDisconnectedFromRoom(in DataHolder data) = 5024;
  void onPeerInvitedToRoom(in DataHolder data, in String[] participantIds) = 5025;
  void onPeerJoinedRoom(in DataHolder data, in String[] participantIds) = 5026;
  void onPeerLeftRoom(in DataHolder data, in String[] participantIds) = 5027;
  void onPeerDeclined(in DataHolder data, in String[] participantIds) = 5028;
  void onPeerConnected(in DataHolder data, in String[] participantIds) = 5029;
  void onPeerDisconnected(in DataHolder data, in String[] participantIds) = 5030;
  void onRealTimeMessageReceived(in RealTimeMessage message) = 5031;
  void onMessageSent(int statusCode, int messageId, String recipientParticipantId) = 5032;
  void onGameMuteStatusChanged(int statusCode, String externalGameId, boolean isMuted) = 5033;
  void onNotifyAclLoaded(in DataHolder data) = 5034;
  void onNotifyAclUpdated(int statusCode) = 5035;
  void onInvitationReceived(in DataHolder data) = 5036;
  void onGameMuteStatusLoaded(in DataHolder data) = 5037;
  void onContactSettingsLoaded(in DataHolder data) = 5038;
  void onContactSettingsUpdated(int statusCode) = 5039;
}
+0 −80
Original line number Diff line number Diff line
package com.google.android.gms.games.internal;

import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
import com.google.android.gms.games.internal.IGamesCallbacks;
import com.google.android.gms.common.data.DataHolder;

interface IGamesService {
  void clientDisconnecting(long clientId) = 5000;
  void signOut(IGamesCallbacks callbacks) = 5001;
  String getAppId() = 5002;
  Bundle getConnectionHint() = 5003;
  void showWelcomePopup(IBinder windowToken, in Bundle extraArgs) = 5004;
  void cancelPopups() = 5005;
  String getCurrentAccountName() = 5006;
  void loadGameplayAclInternal(IGamesCallbacks callbacks, String gameId) = 5007;
  void updateGameplayAclInternal(IGamesCallbacks callbacks, String gameId, String aclData) = 5008;
  void loadFAclInternal(IGamesCallbacks callbacks, String gameId) = 5009;
  void updateFAclInternal(IGamesCallbacks callbacks, String gameId, boolean allCirclesVisible, in long[] circleIds) = 5010;
  String getCurrentPlayerId() = 5011;
  DataHolder getCurrentPlayer() = 5012;
  void loadPlayer(IGamesCallbacks callbacks, String playerId) = 5013;
  void loadInvitablePlayers(IGamesCallbacks callbacks, int pageSize, boolean expandCachedData, boolean forceReload) = 5014;
  void submitScore(IGamesCallbacks callbacks, String leaderboardId, long score) = 5015;
  void loadLeaderboards(IGamesCallbacks callbacks) = 5016;
  void loadLeaderboard(IGamesCallbacks callbacks, String leaderboardId) = 5017;
  void loadTopScores(IGamesCallbacks callbacks, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload) = 5018;
  void loadPlayerCenteredScores(IGamesCallbacks callbacks, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload) = 5019;
  void loadMoreScores(IGamesCallbacks callbacks, in Bundle previousheader, int maxResults, int pageDirection) = 5020;
  void loadAchievements(IGamesCallbacks callbacks) = 5021;
  void revealAchievement(IGamesCallbacks callbacks, String achievementId, IBinder windowToken, in Bundle extraArgs) = 5022;
  void unlockAchievement(IGamesCallbacks callbacks, String achievementId, IBinder windowToken, in Bundle extraArgs) = 5023;
  void incrementAchievement(IGamesCallbacks callbacks, String achievementId, int numSteps, IBinder windowToken, in Bundle extraArgs) = 5024;
  void loadGame(IGamesCallbacks callbacks) = 5025;
  void loadInvitations(IGamesCallbacks callbacks) = 5026;
  void declineInvitation(String invitationId, int invitationType) = 5027;
  void dismissInvitation(String invitationId, int invitationType) = 5028;
  void createRoom(IGamesCallbacks callbacks, IBinder processBinder, int variant, in String[] invitedPlayerIds, in Bundle autoMatchCriteria, boolean enableSockets, long clientId) = 5029;
  void joinRoom(IGamesCallbacks callbacks, IBinder processBinder, String matchId, boolean enableSockets, long clientId) = 5030;
  void leaveRoom(IGamesCallbacks callbacks, String matchId) = 5031;
  int sendReliableMessage(IGamesCallbacks callbacks, in byte[] messageData, String matchId, String recipientParticipantId) = 5032;
  int sendUnreliableMessage(in byte[] messageData, String matchId, in String[] recipientParticipantIds) = 5033;
  String createSocketConnection(String participantId) = 5034;
  void clearNotifications(int notificationTypes) = 5035;
  void loadLeaderboardsFirstParty(IGamesCallbacks callbacks, String gameId) = 5036;
  void loadLeaderboardFirstParty(IGamesCallbacks callbacks, String gameId, String leaderboardId) = 5037;
  void loadTopScoresFirstParty(IGamesCallbacks callbacks, String gameId, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload) = 5038;
  void loadPlayerCenteredScoresFirstParty(IGamesCallbacks callbacks, String gameId, String leaderboardId, int span, int leaderboardCollection, int maxResults, boolean forceReload) = 5039;
  void loadAchievementsFirstParty(IGamesCallbacks callbacks, String playerId, String gameId) = 5040;
  void loadGameFirstParty(IGamesCallbacks callbacks, String gameId) = 5041;
  void loadGameInstancesFirstParty(IGamesCallbacks callbacks, String gameId) = 5042;
  void loadGameCollectionFirstParty(IGamesCallbacks callbacks, int pageSize, int collectionType, boolean expandCachedData, boolean forceReload) = 5043;
  void loadRecentlyPlayedGamesFirstParty(IGamesCallbacks callbacks, String externalPlayerId, int pageSize, boolean expandCachedData, boolean forceReload) = 5044;
  void loadInvitablePlayersFirstParty(IGamesCallbacks callbacks, int pageSize, boolean expandCachedData, boolean forceReload) = 5045;
  void loadRecentPlayersFirstParty(IGamesCallbacks callbacks) = 5046;
  void loadCircledPlayersFirstParty(IGamesCallbacks callbacks, int pageSize, boolean expandCachedData, boolean forceReload) = 5047;
  void loadSuggestedPlayersFirstParty(IGamesCallbacks callbacks) = 5048;
  void dismissPlayerSuggestionFirstParty(String playerIdToDismiss) = 5049;
  void declineInvitationFirstParty(String gameId, String invitationId, int invitationType) = 5050;
  void loadInvitationsFirstParty(IGamesCallbacks callbacks, String gameId) = 5051;
  int registerWaitingRoomListenerRestricted(IGamesCallbacks callbacks, String roomId) = 5052;
  void setGameMuteStatusInternal(IGamesCallbacks callbacks, String gameId, boolean muted) = 5053;
  void clearNotificationsFirstParty(String gameId, int notificationTypes) = 5054;
  void loadNotifyAclInternal(IGamesCallbacks callbacks) = 5055;
  void updateNotifyAclInternal(IGamesCallbacks callbacks, String aclData) = 5056;
  void registerInvitationListener(IGamesCallbacks callbacks, long clientId) = 5057;
  void unregisterInvitationListener(long clientId) = 5058;
  int unregisterWaitingRoomListenerRestricted(String roomId) = 5059;
  void isGameMutedInternal(IGamesCallbacks callbacks, String gameId) = 5060;
  void loadContactSettingsInternal(IGamesCallbacks callbacks) = 5061;
  void updateContactSettingsInternal(IGamesCallbacks callbacks, boolean enableMobileNotifications) = 5062;
  String getSelectedAccountForGameFirstParty(String gamePackageName) = 5063;
  void updateSelectedAccountForGameFirstParty(String gamePackageName, String accountName) = 5064;
  Uri getGamesContentUriRestricted(String gameId) = 5065;
  boolean shouldUseNewPlayerNotificationsFirstParty() = 5066;
  void setUseNewPlayerNotificationsFirstParty(boolean newPlayerStyle) = 5067;
  void searchForPlayersFirstParty(IGamesCallbacks callbacks, String query, int pageSize, boolean expandCachedData, boolean forceReload) = 5500;
  DataHolder getCurrentGame() = 5501;
}
+8 −0
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@

package com.google.android.gms.auth.api.signin;

import androidx.annotation.NonNull;
import org.microg.gms.common.Hide;
import org.microg.gms.utils.ToStringHelper;
import org.microg.safeparcel.AutoSafeParcelable;

@Hide
@@ -17,5 +19,11 @@ public class SignInAccount extends AutoSafeParcelable {
    @Field(8)
    public String userId;

    @NonNull
    @Override
    public String toString() {
        return ToStringHelper.name("SignInAccount").field("email", email).field("account", googleSignInAccount).field("userId", userId).end();
    }

    public static final Creator<SignInAccount> CREATOR = findCreator(SignInAccount.class);
}
+8 −0
Original line number Diff line number Diff line
@@ -5,8 +5,10 @@

package com.google.android.gms.auth.api.signin.internal;

import androidx.annotation.NonNull;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import org.microg.gms.common.Hide;
import org.microg.gms.utils.ToStringHelper;
import org.microg.safeparcel.AutoSafeParcelable;

@Hide
@@ -16,5 +18,11 @@ public class SignInConfiguration extends AutoSafeParcelable {
    @Field(5)
    public GoogleSignInOptions options;

    @NonNull
    @Override
    public String toString() {
        return ToStringHelper.name("SignInConfiguration").field("packageName", packageName).field("options", options).end();
    }

    public static final Creator<SignInConfiguration> CREATOR = findCreator(SignInConfiguration.class);
}
+2 −5
Original line number Diff line number Diff line
@@ -24,10 +24,7 @@ import android.os.RemoteException;
import android.util.Log;

import com.google.android.gms.common.api.Scope;
import com.google.android.gms.common.internal.GetServiceRequest;
import com.google.android.gms.common.internal.IGmsCallbacks;
import com.google.android.gms.common.internal.IGmsServiceBroker;
import com.google.android.gms.common.internal.ValidateAccountRequest;
import com.google.android.gms.common.internal.*;

import org.microg.gms.common.GmsService;

@@ -108,7 +105,7 @@ public abstract class AbstractGmsServiceBroker extends IGmsServiceBroker.Stub {
        Bundle extras = params == null ? new Bundle() : params;
        extras.putString("com.google.android.gms.games.key.gamePackageName", gamePackageName);
        extras.putString("com.google.android.gms.games.key.desiredLocale", desiredLocale);
        //extras.putParcelable("com.google.android.gms.games.key.popupWindowToken", popupWindowToken);
        extras.putParcelable("com.google.android.gms.games.key.popupWindowToken", new BinderWrapper(popupWindowToken));
        callGetService(GmsService.GAMES, callback, versionCode, packageName, extras, accountName, scopes);
    }

Loading