Skip to content

Instantly share code, notes, and snippets.

View FStranieri's full-sized avatar

Francesco Stranieri FStranieri

View GitHub Profile
@FStranieri
FStranieri / GameServiceActivity.java
Last active July 29, 2020 20:21
HuaweiGameServiceClient functions
...
//ACCOUNT KIT
gsClient.logIn();
gsClient.logOff();
//GAME SERVICE
//achievements
gsClient.showAchievements();
gsClient.unlockAchievement("id");
gsClient.incrementAchievement("id", increment, completionPercentage);
@FStranieri
FStranieri / GameServiceActivity.java
Last active November 4, 2020 10:23
Example implementation of HuaweiGameServicesClient for libGDX
public class GameServiceActivity extends AndroidApplication implements IGameServiceListener {
...
private IGameServiceClient gsClient = null;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//true if You want to manage data on Cloud
this.gsClient = HuaweiGameServicesClient(this, true);
@FStranieri
FStranieri / Example.java
Created July 12, 2020 20:18
GDX-Pay-Huawei #3: HuaweiPurchaseManager actions!
...
//to get product information
Information skuInfo = purchaseManager.getInformation(sku);
if (skuInfo == null || skuInfo.equals(Information.UNAVAILABLE)) {
// the item is not available...
} else {
// the item is available...
}
...
@FStranieri
FStranieri / IAPActivity.java
Last active August 18, 2020 08:02
GDX-Pay-Huawei #2: HuaweiPurchaseManager
public class IAPActivity extends AndroidApplication {
...
//set a HuaweiPurchaseManager as PurchaseManager of your Game instance
game.purchaseManager = new HuaweiPurchaseManager(this);
//configure the HuaweiPurchaseManager
PurchaseManagerConfig pmc = new PurchaseManagerConfig();
pmc.addOffer(new Offer().setType(OfferType.ENTITLEMENT).setIdentifier("YOUR_ITEM_SKU"));
pmc.addOffer(new Offer().setType(OfferType.CONSUMABLE).setIdentifier("YOUR_ITEM_SKU"));
pmc.addOffer(new Offer().setType(OfferType.SUBSCRIPTION).setIdentifier("YOUR_ITEM_SKU"));
@FStranieri
FStranieri / IAPActivity.java
Created July 12, 2020 19:44
GDX-Pay-Huawei #1: onActivityResult management
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case PURCHASE_STATUS_RESULT_CODE:
if (resultCode == RESULT_OK) {
if (data == null) {
Log.e("onActivityResult", "data is null");
return;
@FStranieri
FStranieri / IAPActivity.java
Created July 12, 2020 18:48
GDX-Pay-Huawei #0: Implement IAPListener
public class IAPActivity implements IAPListener {
@Override
public void onRegionNotSupported() {
}
@Override
public void onLoginRequired() {
}
@Override
@FStranieri
FStranieri / AnkoActivity3.kt
Created May 20, 2018 11:36
Example activity with anko and databinding
class AnkoActivity : AppCompatActivity() {
lateinit var binding: ActivityAnkoBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val ankoComponent = ToolbarNBottombarTemplateLayout<AnkoActivity>(object : ToolbarNBottombarTemplateLayout.ToolbarNBottombarTemplateLayoutInterface {
override fun toolbarStyleId(): Int = R.style.ToolbarStyle
override fun includedLayoutId(): Int = R.layout.activity_anko
@FStranieri
FStranieri / ToolbarNBottombarTemplateLayout2.kt
Created May 20, 2018 10:52
Template layout example with anko (3)
class ToolbarNBottombarTemplateLayout<A : Activity>(private val layoutInterface: ToolbarNBottombarTemplateLayoutInterface) : AnkoComponent<A> {
var binding: ViewDataBinding? = null
override fun createView(ui: AnkoContext<A>): View {
return ui.constraintLayout {
val toolbar = themedToolbar(layoutInterface.toolbarStyleId())
toolbar.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT)
@FStranieri
FStranieri / ToolbarNBottombarTemplateLayout.kt
Created May 20, 2018 10:50
Template layout example with anko (2)
class ToolbarNBottombarTemplateLayout<A : Activity>(private val layoutInterface: ToolbarNBottombarTemplateLayoutInterface) : AnkoComponent<A> {
override fun createView(ui: AnkoContext<A>): View {
return ui.constraintLayout {
val toolbar = themedToolbar(layoutInterface.toolbarStyleId())
toolbar.layoutParams = ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.WRAP_CONTENT)
val included = include<View>(layoutInterface.includedLayoutId()) {
@FStranieri
FStranieri / ToolbarTemplateLayout.kt
Created May 20, 2018 10:48
Template layout example with anko
class ToolbarTemplateLayout<A: Activity>(private val layoutInterface: ToolbarTemplateLayoutInterface): AnkoComponent<A> {
override fun createView(ui: AnkoContext<A>): View {
return ui.verticalLayout {
themedToolbar(layoutInterface.toolbarStyleId())
include<View>(layoutInterface.includedLayoutId())
}
}
interface ToolbarTemplateLayoutInterface{