setupUI function
Implementation
Future<void> setupUI({
String? openAiKey,
}) async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isIOS) {
VitGptFlutterConfiguration.logger
.d('Disabling colors on logs since we are in IOS');
VitGptDartConfiguration.logger = Logger(
printer: SimplePrinter(colors: false),
);
}
var sp = await SharedPreferences.getInstance();
GetIt.I.registerSingleton(sp);
// Setting up local storage
Directory appDocDir = await getApplicationDocumentsDirectory();
String dbPath = '${appDocDir.path}${Platform.pathSeparator}local_storage.db';
Database db = sqlite3.open(dbPath);
var localStorageRepository = LocalStorageRepository(sp, db);
await localStorageRepository.prepare();
GetIt.I.registerSingleton(localStorageRepository);
DynamicFactories.localStorage = () => LocalStorageRepository(sp, db);
// Setting input and output audio classes.
DynamicFactories.recorder = () => VitAudioRecorder();
DynamicFactories.simplePlayer = (file) {
return VitAudioPlayer(
audioPath: file.path,
randomizeVolumeStream: true,
).getPlayer();
};
VitGptDartConfiguration.internalFilesDirectory = appDocDir;
VitGptDartConfiguration.useHighQualityTts = false;
VitGptDartConfiguration.ttsFormat = AudioFormat.mp3;
// Setting the API token to the http client.
if (openAiKey != null) {
await updateApiToken(openAiKey);
}
}