// Path: java/src/main/java/org/astonbitecode/rustkeylock/api/stubs/GuiResponse.java
// public class GuiResponse {
//     public static Map<String, Object> ChangePassword(String password, Integer number) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("password", password);
//         inner.put("number", number);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ProvidedPassword", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GoToMenu(Map<String, Object> m) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("menu", m);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GoToMenu", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GoToMenu(String m) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("menu", m);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GoToMenu", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> DeleteEntry(Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("DeleteEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> ReplaceEntry(JavaEntry entry, Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ReplaceEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GeneratePassphrase(JavaEntry entry, Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GeneratePassphrase", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> AddEntry(JavaEntry entry) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         Map<String, Object> map = new HashMap<>();
//         map.put("AddEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> SetConfiguration(java.util.List<String> strings) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("strings", strings);
//         Map<String, Object> map = new HashMap<>();
//         map.put("SetConfiguration", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> UserOptionSelected(JavaUserOption userOption) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("user_option", userOption);
//         Map<String, Object> map = new HashMap<>();
//         map.put("UserOptionSelected", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> ExportImport(String path, Integer mode, String password, Integer number) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("path", path);
//         inner.put("mode", mode);
//         inner.put("password", password);
//         inner.put("number", number);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ExportImport", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> Copy(String data) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("data", data);
//         Map<String, Object> map = new HashMap<>();
//         map.put("Copy", inner);
//         return map;
//     }
// 
//     public static String CheckPasswords() {
//         return Defs.CHECK_PASSWORDS;
//     }
// }


import android.app.Fragment;
import android.util.Log;
import org.astonbitecode.j4rs.api.Instance;
import org.astonbitecode.j4rs.api.invocation.NativeCallbackToRustChannelSupport;
import org.astonbitecode.rustkeylock.api.stubs.GuiResponse;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
    }

    public native void execute(Instance<String> certFilePath);

    private void call(Object obj) {
        callback.get().doCallback(obj);
    }

    public void set_password(String password, int number) {
        Map<String, Object> m = GuiResponse.ChangePassword(password, number);
        call(m);
    }

    public void go_to_menu(Map<String, Object> menu) {
        Map<String, Object> m = GuiResponse.GoToMenu(menu);
        call(m);
    }

    public void go_to_menu(String menu) {
        Map<String, Object> m = GuiResponse.GoToMenu(menu);
        call(m);
    }

    public void add_entry(JavaEntry javaEntry) {
        Map<String, Object> m = GuiResponse.AddEntry(javaEntry);
        call(m);
    }

    public void replace_entry(JavaEntry javaEntry, int index) {
        Map<String, Object> m = GuiResponse.ReplaceEntry(javaEntry, index);
// Path: java/src/main/java/org/astonbitecode/rustkeylock/api/stubs/GuiResponse.java
// public class GuiResponse {
//     public static Map<String, Object> ChangePassword(String password, Integer number) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("password", password);
//         inner.put("number", number);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ProvidedPassword", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GoToMenu(Map<String, Object> m) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("menu", m);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GoToMenu", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GoToMenu(String m) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("menu", m);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GoToMenu", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> DeleteEntry(Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("DeleteEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> ReplaceEntry(JavaEntry entry, Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ReplaceEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> GeneratePassphrase(JavaEntry entry, Integer index) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         inner.put("index", index);
//         Map<String, Object> map = new HashMap<>();
//         map.put("GeneratePassphrase", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> AddEntry(JavaEntry entry) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("entry", entry);
//         Map<String, Object> map = new HashMap<>();
//         map.put("AddEntry", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> SetConfiguration(java.util.List<String> strings) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("strings", strings);
//         Map<String, Object> map = new HashMap<>();
//         map.put("SetConfiguration", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> UserOptionSelected(JavaUserOption userOption) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("user_option", userOption);
//         Map<String, Object> map = new HashMap<>();
//         map.put("UserOptionSelected", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> ExportImport(String path, Integer mode, String password, Integer number) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("path", path);
//         inner.put("mode", mode);
//         inner.put("password", password);
//         inner.put("number", number);
//         Map<String, Object> map = new HashMap<>();
//         map.put("ExportImport", inner);
//         return map;
//     }
// 
//     public static Map<String, Object> Copy(String data) {
//         Map<String, Object> inner = new HashMap<>();
//         inner.put("data", data);
//         Map<String, Object> map = new HashMap<>();
//         map.put("Copy", inner);
//         return map;
//     }
// 
//     public static String CheckPasswords() {
//         return Defs.CHECK_PASSWORDS;
//     }
// }


// Path: java/src/main/java/org/astonbitecode/rustkeylock/api/InterfaceWithRust.java
import android.app.Fragment;
import android.util.Log;
import org.astonbitecode.j4rs.api.Instance;
import org.astonbitecode.j4rs.api.invocation.NativeCallbackToRustChannelSupport;
import org.astonbitecode.rustkeylock.api.stubs.GuiResponse;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;

    }

    public native void execute(Instance<String> certFilePath);

    private void call(Object obj) {
        callback.get().doCallback(obj);
    }

    public void set_password(String password, int number) {
        Map<String, Object> m = GuiResponse.ChangePassword(password, number);
        call(m);
    }

    public void go_to_menu(Map<String, Object> menu) {
        Map<String, Object> m = GuiResponse.GoToMenu(menu);
        call(m);
    }

    public void go_to_menu(String menu) {
        Map<String, Object> m = GuiResponse.GoToMenu(menu);
        call(m);
    }

    public void add_entry(JavaEntry javaEntry) {
        Map<String, Object> m = GuiResponse.AddEntry(javaEntry);
        call(m);
    }

    public void replace_entry(JavaEntry javaEntry, int index) {
        Map<String, Object> m = GuiResponse.ReplaceEntry(javaEntry, index);
        call(m);