package io.lbry.browser.reactmodules;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

public class VersionInfoModule extends ReactContextBaseJavaModule {
    private Context context;

    public VersionInfoModule(ReactApplicationContext reactContext) {
        super(reactContext);
        this.context = reactContext;
    }

    @Override
    public String getName() {
        return "VersionInfo";
    }

    @ReactMethod
    public void getAppVersion(final Promise promise) {
        PackageManager packageManager = this.context.getPackageManager();
        String packageName = this.context.getPackageName();
        try {
            PackageInfo packageInfo = packageManager.getPackageInfo(packageName, 0);
            promise.resolve(packageInfo.versionName);
        } catch (PackageManager.NameNotFoundException e) {
            // normally shouldn't happen
            promise.resolve("Unknown");
        }
    }
}