Add identity sign-in service (#2130)

This commit is contained in:
DaVinci9196 2024-01-04 21:39:48 +08:00 • committed by Cuynu
commit 9890ccebbb
19 changed files with 604 additions and 26 deletions

View file

@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
parcelable BeginSignInRequest;

View file

@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
parcelable BeginSignInResult;

View file

@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
parcelable GetPhoneNumberHintIntentRequest;

View file

@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
parcelable GetSignInIntentRequest;

View file

@ -0,0 +1,8 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
parcelable SignInCredential;

View file

@ -0,0 +1,13 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity.internal;
import com.google.android.gms.auth.api.identity.BeginSignInResult;
import com.google.android.gms.common.api.Status;
interface IBeginSignInCallback {
void onResult(in Status status, in BeginSignInResult beginSignInResult);
}

View file

@ -0,0 +1,12 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity.internal;
import com.google.android.gms.common.api.Status;
interface IGetPhoneNumberHintIntentCallback {
void onResult(in Status status, in PendingIntent pendingIntent);
}

View file

@ -0,0 +1,12 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity.internal;
import com.google.android.gms.common.api.Status;
interface IGetSignInIntentCallback {
void onResult(in Status status, in PendingIntent pendingIntent);
}

View file

@ -0,0 +1,21 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity.internal;
import com.google.android.gms.common.api.internal.IStatusCallback;
import com.google.android.gms.auth.api.identity.internal.IBeginSignInCallback;
import com.google.android.gms.auth.api.identity.internal.IGetSignInIntentCallback;
import com.google.android.gms.auth.api.identity.internal.IGetPhoneNumberHintIntentCallback;
import com.google.android.gms.auth.api.identity.BeginSignInRequest;
import com.google.android.gms.auth.api.identity.GetSignInIntentRequest;
import com.google.android.gms.auth.api.identity.GetPhoneNumberHintIntentRequest;
interface ISignInService {
void beginSignIn(in IBeginSignInCallback callback, in BeginSignInRequest request) = 0;
void signOut(in IStatusCallback callback, String userId) = 1;
void getSignInIntent(in IGetSignInIntentCallback callback, in GetSignInIntentRequest request) = 2;
void getPhoneNumberHintIntent(in IGetPhoneNumberHintIntentCallback callback, in GetPhoneNumberHintIntentRequest request) = 3;
}

View file

@ -0,0 +1,35 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class BeginSignInRequest extends AbstractSafeParcelable {
@Field(1)
public PasswordRequestOptions passwordRequestOptions;
@Field(2)
public GoogleIdTokenRequestOptions googleIdTokenRequestOptions;
@Field(3)
public String score;
@Field(4)
public boolean isPrimary;
@Field(5)
public int code;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<BeginSignInRequest> CREATOR = findCreator(BeginSignInRequest.class);
}

View file

@ -0,0 +1,28 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.app.PendingIntent;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class BeginSignInResult extends AbstractSafeParcelable {
@Field(1)
public PendingIntent pendingIntent;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<BeginSignInResult> CREATOR = findCreator(BeginSignInResult.class);
}

View file

@ -0,0 +1,27 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class GetPhoneNumberHintIntentRequest extends AbstractSafeParcelable {
@Field(1)
public int code;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<GetPhoneNumberHintIntentRequest> CREATOR = findCreator(GetPhoneNumberHintIntentRequest.class);
}

View file

@ -0,0 +1,38 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class GetSignInIntentRequest extends AbstractSafeParcelable {
@Field(1)
public String clientId;
@Field(2)
public String scope;
@Field(3)
public String requestTag;
@Field(4)
public String requestToken;
@Field(5)
public boolean isPrimary;
@Field(6)
public int code;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<GetSignInIntentRequest> CREATOR = findCreator(GetSignInIntentRequest.class);
}

View file

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
import java.util.ArrayList;
@SafeParcelable.Class
public class GoogleIdTokenRequestOptions extends AbstractSafeParcelable {
@Field(1)
public boolean idTokenRequested;
@Field(2)
public String clientId;
@Field(3)
public String requestToken;
@Field(4)
public boolean serverAuthCodeRequested;
@Field(5)
public String serverClientId;
@Field(6)
public ArrayList<String> scopes;
@Field(7)
public boolean forceCodeForRefreshToken;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<GoogleIdTokenRequestOptions> CREATOR = findCreator(GoogleIdTokenRequestOptions.class);
}

View file

@ -0,0 +1,27 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class PasswordRequestOptions extends AbstractSafeParcelable {
@Field(1)
public boolean primary;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<PasswordRequestOptions> CREATOR = findCreator(PasswordRequestOptions.class);
}

View file

@ -0,0 +1,41 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package com.google.android.gms.auth.api.identity;
import android.os.Parcel;
import androidx.annotation.NonNull;
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
import com.google.android.gms.common.internal.safeparcel.SafeParcelableCreatorAndWriter;
@SafeParcelable.Class
public class SignInCredential extends AbstractSafeParcelable {
@Field(1)
public String email;
@Field(2)
public String displayName;
@Field(3)
public String familyName;
@Field(4)
public String givenName;
@Field(5)
public String avatar;
@Field(6)
public String serverAuthCode;
@Field(7)
public String idToken;
@Field(8)
public String obfuscatedIdentifier;
@Override
public void writeToParcel(@NonNull Parcel dest, int flags) {
CREATOR.writeToParcel(this, dest, flags);
}
public static final SafeParcelableCreatorAndWriter<SignInCredential> CREATOR = findCreator(SignInCredential.class);
}

View file

@ -1,26 +0,0 @@
/*
* Copyright (C) 2013-2017 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 org.microg.gms.auth;
public class AuthConstants {
public static final String SCOPE_GET_ACCOUNT_ID = "^^_account_id_^^";
public static final String PROVIDER_METHOD_GET_ACCOUNTS = "get_accounts";
public static final String PROVIDER_METHOD_CLEAR_PASSWORD = "clear_password";
public static final String PROVIDER_EXTRA_CLEAR_PASSWORD = "clear_password";
public static final String PROVIDER_EXTRA_ACCOUNTS = "accounts";
public static final String DEFAULT_ACCOUNT_TYPE = "com.mgoogle";
}

View file

@ -319,6 +319,119 @@
<!-- microG Settings shown in Launcher -->
<activity
<<<<<<< HEAD
=======
android:name="org.microg.gms.auth.signin.AuthSignInActivity"
android:theme="@style/Theme.AppCompat.DayNight.Dialog.Alert.NoActionBar"
android:process=":ui"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.GOOGLE_SIGN_IN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service android:name="org.microg.gms.signin.SignInService">
<intent-filter>
<action android:name="com.google.android.gms.signin.service.START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<service android:name="org.microg.gms.auth.signin.AuthSignInService">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.signin.service.START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<service
android:name="org.microg.gms.auth.signin.SignInConfigurationService"
android:exported="false" />
<service android:name="org.microg.gms.auth.credentials.identity.IdentitySignInService">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.identity.service.signin.START" />
</intent-filter>
</service>
<!-- Games -->
<activity
android:name="org.microg.gms.games.UpgradeActivity"
android:process=":ui"
android:theme="@style/Theme.AppCompat.DayNight.Dialog">
<intent-filter>
<action android:name="com.google.android.gms.games.PLAY_GAMES_UPGRADE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<service
android:name="org.microg.gms.games.GamesService"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.games.service.START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<service
android:name="org.microg.gms.games.GamesConnectService"
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.games.internal.connect.service.START" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<service
android:name="org.microg.gms.games.GamesConfigurationService"
android:exported="false" />
<!-- Chimera -->
<provider
android:name="org.microg.gms.chimera.ServiceProvider"
android:authorities="com.google.android.gms.chimera"
android:exported="true" />
<!-- Fonts -->
<provider
android:name="org.microg.gms.fonts.FontsProvider"
android:authorities="com.google.android.gms.fonts"
android:exported="true" />
<!-- microG Settings activity -->
<activity
android:name="org.microg.gms.ui.MainSettingsActivity"
android:icon="@mipmap/ic_app_settings"
android:label="@string/gms_settings_name"
android:process=":ui"
android:roundIcon="@mipmap/ic_app_settings"
android:taskAffinity="org.microg.gms.settings">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data
android:host="exposure-notifications-rpis"
android:scheme="x-gms-settings" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES" />
<action android:name="com.google.android.gms.settings.EXPOSURE_NOTIFICATION_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- microG Settings activity-alias shown in Launcher -->
<activity-alias
>>>>>>> 048a6e59 (Add identity sign-in service (#2130))
android:name="org.microg.gms.ui.SettingsActivity"
android:icon="@mipmap/ic_launcher"
android:label="@string/gms_settings_name"
@ -416,6 +529,73 @@
android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.accounts.ACCOUNT_SERVICE" />
<<<<<<< HEAD
=======
<action android:name="com.google.android.gms.ads.identifier.service.EVENT_ATTESTATION" />
<action android:name="com.google.android.gms.ads.service.CACHE" />
<action android:name="com.google.android.gms.ads.service.CONSENT_LOOKUP" />
<action android:name="com.google.android.gms.ads.service.HTTP" />
<action android:name="com.google.android.gms.appstate.service.START" />
<action android:name="com.google.android.gms.appusage.service.START" />
<action android:name="com.google.android.gms.asterism.service.START" />
<action android:name="com.google.android.gms.audiomodem.service.AudioModemService.START" />
<action android:name="com.google.android.gms.audit.service.START" />
<action android:name="com.google.android.gms.auth.account.authapi.START" />
<action android:name="com.google.android.gms.auth.account.authenticator.auto.service.START" />
<action android:name="com.google.android.gms.auth.account.authenticator.chromeos.START" />
<action android:name="com.google.android.gms.auth.account.authenticator.tv.service.START" />
<action android:name="com.google.android.gms.auth.account.data.service.START" />
<action android:name="com.google.android.gms.auth.api.identity.service.authorization.START" />
<action android:name="com.google.android.gms.auth.api.identity.service.credentialsaving.START" />
<action android:name="com.google.android.gms.auth.api.phone.service.InternalService.START" />
<action android:name="com.google.android.gms.auth.api.signin.service.START" />
<action android:name="com.google.android.gms.auth.config.service.START" />
<action android:name="com.google.android.gms.auth.cryptauth.cryptauthservice.START" />
<action android:name="com.google.android.gms.auth.proximity.devicesyncservice.START" />
<action android:name="com.google.android.gms.auth.proximity.securechannelservice.START" />
<action android:name="com.google.android.gms.auth.proximity.START" />
<action android:name="com.google.android.gms.auth.service.START" />
<action android:name="com.google.android.gms.backup.G1_BACKUP" />
<action android:name="com.google.android.gms.backup.G1_RESTORE" />
<action android:name="com.google.android.gms.backup.GMS_MODULE_RESTORE" />
<action android:name="com.google.android.gms.beacon.internal.IBleService.START" />
<action android:name="com.google.android.gms.carrierauth.service.START" />
<action android:name="com.google.android.gms.cast.firstparty.START" />
<action android:name="com.google.android.gms.cast_mirroring.service.START" />
<action android:name="com.google.android.gms.cast.remote_display.service.START" />
<action android:name="com.google.android.gms.chromesync.service.START" />
<action android:name="com.google.android.gms.common.download.START" />
<action android:name="com.google.android.gms.common.service.START" />
<action android:name="com.google.android.gms.common.telemetry.service.START" />
<action android:name="com.google.android.gms.config.START" />
<action android:name="com.google.android.gms.constellation.service.START" />
<action android:name="com.google.android.gms.deviceconnection.service.START" />
<action android:name="com.google.android.gms.enterprise.loader.service.START" />
<action android:name="com.google.android.gms.facs.internal.service.START" />
<action android:name="com.google.android.gms.fido.credentialstore.internal_service.START" />
<action android:name="com.google.android.gms.fido.fido2.regular.START" />
<action android:name="com.google.android.gms.fido.fido2.zeroparty.START" />
<action android:name="com.google.android.gms.fido.sourcedevice.service.START" />
<action android:name="com.google.android.gms.fido.targetdevice.internal_service.START" />
<action android:name="com.google.android.gms.fido.u2f.privileged.START" />
<action android:name="com.google.android.gms.fido.u2f.thirdparty.START" />
<action android:name="com.google.android.gms.fido.u2f.zeroparty.START" />
<action android:name="com.google.android.gms.fitness.BleApi" />
<action android:name="com.google.android.gms.fitness.ConfigApi" />
<action android:name="com.google.android.gms.fitness.GoalsApi" />
<action android:name="com.google.android.gms.fitness.GoogleFitnessService.START" />
<action android:name="com.google.android.gms.fitness.HistoryApi" />
<action android:name="com.google.android.gms.fitness.InternalApi" />
<action android:name="com.google.android.gms.fitness.RecordingApi" />
<action android:name="com.google.android.gms.fitness.SensorsApi" />
<action android:name="com.google.android.gms.fitness.SessionsApi" />
<action android:name="com.google.android.gms.fonts.service.START" />
<action android:name="com.google.android.gms.freighter.service.START" />
<action android:name="com.google.android.gms.gass.START" />
<action android:name="com.google.android.gms.growth.service.START" />
<action android:name="com.google.android.gms.googlehelp.service.GoogleHelpService.START" />
<action android:name="com.google.android.gms.herrevad.services.LightweightNetworkQualityAndroidService.START" />
>>>>>>> 048a6e59 (Add identity sign-in service (#2130))
<action android:name="com.google.android.gms.identity.service.BIND" />
<action android:name="com.google.android.gms.auth.service.START" />
<action android:name="com.google.android.gms.common.service.START" />

View file

@ -0,0 +1,89 @@
/*
* SPDX-FileCopyrightText: 2023 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
package org.microg.gms.auth.credentials.identity
import android.app.PendingIntent
import android.content.Context
import android.content.Intent
import android.util.Log
import com.google.android.gms.auth.api.identity.BeginSignInRequest
import com.google.android.gms.auth.api.identity.GetPhoneNumberHintIntentRequest
import com.google.android.gms.auth.api.identity.GetSignInIntentRequest
import com.google.android.gms.auth.api.identity.internal.IBeginSignInCallback
import com.google.android.gms.auth.api.identity.internal.IGetPhoneNumberHintIntentCallback
import com.google.android.gms.auth.api.identity.internal.IGetSignInIntentCallback
import com.google.android.gms.auth.api.identity.internal.ISignInService
import com.google.android.gms.auth.api.signin.GoogleSignInOptions
import com.google.android.gms.auth.api.signin.internal.SignInConfiguration
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.api.Status
import com.google.android.gms.common.api.internal.IStatusCallback
import com.google.android.gms.common.internal.ConnectionInfo
import com.google.android.gms.common.internal.GetServiceRequest
import com.google.android.gms.common.internal.IGmsCallbacks
import org.microg.gms.BaseService
import org.microg.gms.auth.credentials.FEATURES
import org.microg.gms.auth.signin.AuthSignInActivity
import org.microg.gms.common.Constants
import org.microg.gms.common.GmsService
const val TAG = "IdentitySignInService"
class IdentitySignInService : BaseService(TAG, GmsService.IDENTITY_SIGN_IN) {
override fun handleServiceRequest(callback: IGmsCallbacks, request: GetServiceRequest, service: GmsService) {
val connectionInfo = ConnectionInfo()
connectionInfo.features = FEATURES
callback.onPostInitCompleteWithConnectionInfo(
ConnectionResult.SUCCESS,
IdentitySignInServiceImpl(this, request.packageName).asBinder(),
connectionInfo
)
}
}
class IdentitySignInServiceImpl(private val mContext: Context, private val clientPackageName: String) :
ISignInService.Stub() {
override fun beginSignIn(callback: IBeginSignInCallback, request: BeginSignInRequest) {
Log.d(TAG, "method 'beginSignIn' not fully implemented, return status is CANCELED")
callback.onResult(Status.CANCELED, null)
}
override fun signOut(callback: IStatusCallback, requestTag: String) {
Log.d(TAG, "method signOut called, requestTag=$requestTag")
callback.onResult(Status.SUCCESS)
}
override fun getSignInIntent(
callback: IGetSignInIntentCallback,
request: GetSignInIntentRequest
) {
val signInConfiguration = SignInConfiguration().apply {
options = GoogleSignInOptions.Builder()
.requestIdToken(request.clientId)
.requestId()
.requestEmail()
.requestProfile()
.build()
packageName = clientPackageName
}
val intent = Intent(mContext, AuthSignInActivity::class.java).apply {
`package` = Constants.GMS_PACKAGE_NAME
putExtra("config", signInConfiguration)
}
val flags = PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_UPDATE_CURRENT
val activity = PendingIntent.getActivity(mContext, 0, intent, flags)
callback.onResult(Status.SUCCESS, activity)
}
override fun getPhoneNumberHintIntent(
callback: IGetPhoneNumberHintIntentCallback,
request: GetPhoneNumberHintIntentRequest
) {
Log.w(TAG, "method 'getPhoneNumberHintIntent' not fully implemented, return status is CANCELED.")
callback.onResult(Status.CANCELED, null)
}
}