package com.google.firebase.example.predictions;

import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.remoteconfig.FirebaseRemoteConfig;

import java.util.HashMap;
import java.util.Map;

public class OptimizePromotionsActivity extends AppCompatActivity {

    private FirebaseRemoteConfig mConfig;
    private String mPromotedBundle;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    private void initConfig() {
        // [START pred_optimize_promotions_init]
        mConfig = FirebaseRemoteConfig.getInstance();

        Map<String, Object> remoteConfigDefaults = new HashMap<>();
        remoteConfigDefaults.put("promoted_bundle", "basic");
        mConfig.setDefaultsAsync(remoteConfigDefaults)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            // Default value successfully set
                        } else {
                            // Failed to set default value
                        }
                    }
                });
        // [END pred_optimize_promotions_init]
    }

    private void fetchConfig() {
        // [START pred_optimize_promotions_fetch]
        mConfig.fetchAndActivate()
                .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                    @Override
                    public void onComplete(@NonNull Task<Boolean> task) {
                        if (task.isSuccessful()) {
                            // Act on the retrieved parameters

                            // Set the bundle to promote based on parameters retrieved with
                            // Remote Config. This depends entirely on your app, but for
                            // example, you might retrieve and use image assets based on the
                            // specified bundle name.
                            mPromotedBundle = mConfig.getString("promoted_bundle");
                            // ...
                        }
                    }
                });
        // [END pred_optimize_promotions_fetch]
    }
}