درود به همه عزیزان ورود با بازار توی کاتلین پیاده سازی شده. برای راحتی کار جاواکاران عزیز یه کلاس واسط نوشتم که بدون دردسر میتونید ازش استفاده کنید
اول کلاس کاتلین زیر رو به پروژه تون اضافه کنید
package com.poolakey.wrapper
import android.content.Intent
import androidx.fragment.app.FragmentActivity
import com.farsitel.bazaar.BazaarClientProxy
import com.farsitel.bazaar.core.BazaarSignIn
import com.farsitel.bazaar.core.BazaarSignInClient
import com.farsitel.bazaar.core.callback.BazaarSignInCallback
import com.farsitel.bazaar.core.model.BazaarSignInOptions
import com.farsitel.bazaar.core.model.SignInOption
import com.farsitel.bazaar.storage.BazaarStorage
import com.farsitel.bazaar.storage.callback.BazaarStorageCallback
/**
* Created by Mohamadreza Shahpiri on 11/22/2024.
* Answercenter.ir
***************************************************
*/
class BazaarSignInWrapper {
private var client: BazaarSignInClient? = null
private var activity: FragmentActivity? = null
fun initialize(activity: FragmentActivity) {
val signInOption = BazaarSignInOptions.Builder(SignInOption.DEFAULT_SIGN_IN).build()
client = BazaarSignIn.getClient(activity, signInOption)
}
fun startSignInIntent() {
val intent = client?.getSignInIntent()
activity?.startActivityForResult(intent, 1)
}
fun getAccountFromIntent(intent: Intent) =
BazaarSignIn.getSignedInAccountFromIntent(intent)
fun getLastSignedInAccount(callback: BazaarSignInCallback) =
BazaarSignIn.getLastSignedInAccount(activity!!, activity, callback)
fun getLastSignedInAccountSync() =
BazaarSignIn.getLastSignedInAccountSync(activity!!, activity)
fun saveData(
data: ByteArray,
callback: BazaarStorageCallback
) {
BazaarStorage.saveData(
context = activity!!, owner = activity,
data = data, callback = callback
)
}
fun getSavedData(
callback: BazaarStorageCallback
) {
BazaarStorage.getSavedData(
context = activity!!, owner = activity,
callback = callback
)
}
fun isNeededToUpdateBazaar() = BazaarClientProxy.isNeededToUpdateBazaar(activity!!)
fun showInstallBazaarView() = BazaarClientProxy.showInstallBazaarView(activity!!)
fun showUpdateBazaarView() = BazaarClientProxy.showUpdateBazaarView(activity!!)
}
به شکل زیر هم توی جاوا میتونید استفاده کنید
package com.poolakey.core;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import com.farsitel.bazaar.BazaarResponse;
import com.farsitel.bazaar.core.callback.BazaarSignInCallback;
import com.farsitel.bazaar.core.model.BazaarSignInAccount;
import com.farsitel.bazaar.storage.callback.BazaarStorageCallback;
import com.poolakey.wrapper.BazaarSignInWrapper;
public class MainActivity extends FragmentActivity {
private BazaarSignInWrapper bazaarSignInWrapper;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bazaarSignInWrapper.initialize(this);
bazaarSignInWrapper.startSignInIntent();
bazaarSignInWrapper.getLastSignedInAccount(new BazaarSignInCallback() {
@Override
public void onAccountReceived(BazaarResponse<BazaarSignInAccount> account) {
}
});
bazaarSignInWrapper.saveData("test data".getBytes(), new BazaarStorageCallback() {
@Override
public void onDataReceived(@Nullable BazaarResponse<byte[]> response) {
if (response!=null){
String data= new String(response.getData());
}
}
});
bazaarSignInWrapper.getSavedData(new BazaarStorageCallback() {
@Override
public void onDataReceived(@Nullable BazaarResponse<byte[]> response) {
if (response!=null){
String data= new String(response.getData());
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
BazaarSignInAccount account = bazaarSignInWrapper.getAccountFromIntent(data);
if (account != null) {
String accountId = account.getAccountId();
}
}
}
بقیه متدها رو هم به راحتی میتونید استفاده کنید.
مانا باشید