| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 |
- #include <alloc/flip_social_alloc.h>
- FlipSocialApp *flip_social_app_alloc()
- {
- // Initiailize the app
- FlipSocialApp *app = (FlipSocialApp *)malloc(sizeof(FlipSocialApp));
- // Initialize gui
- Gui *gui = furi_record_open(RECORD_GUI);
- // Allocate ViewDispatcher
- if (!easy_flipper_set_view_dispatcher(&app->view_dispatcher, gui, app))
- {
- return NULL;
- }
- view_dispatcher_set_custom_event_callback(app->view_dispatcher, flip_social_custom_event_callback);
- // Main view
- if (!easy_flipper_set_view(&app->view_loader, FlipSocialViewLoader, flip_social_loader_draw_callback, NULL, flip_social_callback_to_submenu_logged_out, &app->view_dispatcher, app))
- {
- return NULL;
- }
- flip_social_loader_init(app->view_loader);
- if (!easy_flipper_set_widget(&app->widget_result, FlipSocialViewWidgetResult, "", flip_social_callback_to_submenu_logged_out, &app->view_dispatcher))
- {
- return NULL;
- }
- // Allocate the text input buffers
- app->wifi_ssid_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->wifi_password_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->login_username_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->login_password_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->register_username_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->register_password_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->register_password_2_logged_out_temp_buffer_size = MAX_USER_LENGTH;
- app->change_password_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- app->change_bio_logged_in_temp_buffer_size = MAX_MESSAGE_LENGTH;
- app->compose_pre_save_logged_in_temp_buffer_size = MAX_MESSAGE_LENGTH;
- app->wifi_ssid_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- app->wifi_password_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- app->is_logged_in_size = 8;
- app->login_username_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- app->messages_new_message_logged_in_temp_buffer_size = MAX_MESSAGE_LENGTH;
- app->message_user_choice_logged_in_temp_buffer_size = MAX_MESSAGE_LENGTH;
- app->explore_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- app->message_users_logged_in_temp_buffer_size = MAX_USER_LENGTH;
- if (!easy_flipper_set_buffer(&app->wifi_ssid_logged_out_temp_buffer, app->wifi_ssid_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_password_logged_out_temp_buffer, app->wifi_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_username_logged_out_temp_buffer, app->login_username_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_password_logged_out_temp_buffer, app->login_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_username_logged_out_temp_buffer, app->register_username_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_password_logged_out_temp_buffer, app->register_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_password_2_logged_out_temp_buffer, app->register_password_2_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->change_password_logged_in_temp_buffer, app->change_password_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->change_bio_logged_in_temp_buffer, app->change_bio_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->compose_pre_save_logged_in_temp_buffer, app->compose_pre_save_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_ssid_logged_in_temp_buffer, app->wifi_ssid_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_password_logged_in_temp_buffer, app->wifi_password_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->is_logged_in, app->is_logged_in_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_username_logged_in_temp_buffer, app->login_username_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_ssid_logged_out, app->wifi_ssid_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_password_logged_out, app->wifi_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_username_logged_out, app->login_username_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_password_logged_out, app->login_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_username_logged_out, app->register_username_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_password_logged_out, app->register_password_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->register_password_2_logged_out, app->register_password_2_logged_out_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->change_password_logged_in, app->change_password_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->change_bio_logged_in, app->change_bio_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->compose_pre_save_logged_in, app->compose_pre_save_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_ssid_logged_in, app->wifi_ssid_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->wifi_password_logged_in, app->wifi_password_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->login_username_logged_in, app->login_username_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- //
- if (!easy_flipper_set_buffer(&app->messages_new_message_logged_in, app->messages_new_message_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->messages_new_message_logged_in_temp_buffer, app->messages_new_message_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->message_user_choice_logged_in, app->message_user_choice_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->message_user_choice_logged_in_temp_buffer, app->message_user_choice_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&selected_message, app->message_user_choice_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->explore_logged_in, app->explore_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->explore_logged_in_temp_buffer, app->explore_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->message_users_logged_in, app->message_users_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- if (!easy_flipper_set_buffer(&app->message_users_logged_in_temp_buffer, app->message_users_logged_in_temp_buffer_size))
- {
- return NULL;
- }
- // Allocate Submenu(s)
- if (!easy_flipper_set_submenu(&app->submenu_logged_out, FlipSocialViewLoggedOutSubmenu, VERSION_TAG, flip_social_callback_exit_app, &app->view_dispatcher))
- {
- return NULL;
- }
- if (!easy_flipper_set_submenu(&app->submenu_logged_in, FlipSocialViewLoggedInSubmenu, VERSION_TAG, flip_social_callback_exit_app, &app->view_dispatcher))
- {
- return NULL;
- }
- submenu_add_item(app->submenu_logged_out, "Login", FlipSocialSubmenuLoggedOutIndexLogin, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_out, "Register", FlipSocialSubmenuLoggedOutIndexRegister, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_out, "About", FlipSocialSubmenuLoggedOutIndexAbout, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_out, "Settings", FlipSocialSubmenuLoggedOutIndexWifiSettings, flip_social_callback_submenu_choices, app);
- //
- submenu_add_item(app->submenu_logged_in, "Explore", FlipSocialSubmenuExploreIndex, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Feed", FlipSocialSubmenuLoggedInIndexFeed, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Post", FlipSocialSubmenuLoggedInIndexCompose, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Messages", FlipSocialSubmenuLoggedInIndexMessages, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Profile", FlipSocialSubmenuLoggedInIndexProfile, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Settings", FlipSocialSubmenuLoggedInIndexSettings, flip_social_callback_submenu_choices, app);
- submenu_add_item(app->submenu_logged_in, "Sign Out", FlipSocialSubmenuLoggedInSignOutButton, flip_social_callback_submenu_choices, app);
- // Load the settings
- if (!load_settings(app->wifi_ssid_logged_out,
- app->wifi_ssid_logged_out_temp_buffer_size,
- app->wifi_password_logged_out,
- app->wifi_password_logged_out_temp_buffer_size,
- app->login_username_logged_out,
- app->login_username_logged_out_temp_buffer_size,
- app->login_username_logged_in,
- app->login_username_logged_in_temp_buffer_size,
- app->login_password_logged_out,
- app->login_password_logged_out_temp_buffer_size,
- app->change_password_logged_in,
- app->change_password_logged_in_temp_buffer_size,
- app->change_bio_logged_in,
- app->change_bio_logged_in_temp_buffer_size,
- app->is_logged_in,
- app->is_logged_in_size))
- {
- FURI_LOG_E(TAG, "Failed to load settings");
- if (app->is_logged_in == NULL)
- {
- app->is_logged_in = (char *)malloc(app->is_logged_in_size);
- app->is_logged_in = "false";
- }
- app_instance = app;
- view_dispatcher_switch_to_view(app->view_dispatcher, FlipSocialViewLoggedOutSubmenu);
- }
- else
- {
- // Copy items into their temp buffers with safety checks
- if (app->wifi_ssid_logged_out && app->wifi_ssid_logged_out_temp_buffer)
- {
- strncpy(app->wifi_ssid_logged_out_temp_buffer, app->wifi_ssid_logged_out, app->wifi_ssid_logged_out_temp_buffer_size - 1);
- app->wifi_ssid_logged_out_temp_buffer[app->wifi_ssid_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->wifi_password_logged_out && app->wifi_password_logged_out_temp_buffer)
- {
- strncpy(app->wifi_password_logged_out_temp_buffer, app->wifi_password_logged_out, app->wifi_password_logged_out_temp_buffer_size - 1);
- app->wifi_password_logged_out_temp_buffer[app->wifi_password_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->login_username_logged_out && app->login_username_logged_out_temp_buffer)
- {
- strncpy(app->login_username_logged_out_temp_buffer, app->login_username_logged_out, app->login_username_logged_out_temp_buffer_size - 1);
- app->login_username_logged_out_temp_buffer[app->login_username_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->login_password_logged_out && app->login_password_logged_out_temp_buffer)
- {
- strncpy(app->login_password_logged_out_temp_buffer, app->login_password_logged_out, app->login_password_logged_out_temp_buffer_size - 1);
- app->login_password_logged_out_temp_buffer[app->login_password_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->register_username_logged_out && app->register_username_logged_out_temp_buffer)
- {
- strncpy(app->register_username_logged_out_temp_buffer, app->register_username_logged_out, app->register_username_logged_out_temp_buffer_size - 1);
- app->register_username_logged_out_temp_buffer[app->register_username_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->register_password_logged_out && app->register_password_logged_out_temp_buffer)
- {
- strncpy(app->register_password_logged_out_temp_buffer, app->register_password_logged_out, app->register_password_logged_out_temp_buffer_size - 1);
- app->register_password_logged_out_temp_buffer[app->register_password_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->register_password_2_logged_out && app->register_password_2_logged_out_temp_buffer)
- {
- strncpy(app->register_password_2_logged_out_temp_buffer, app->register_password_2_logged_out, app->register_password_2_logged_out_temp_buffer_size - 1);
- app->register_password_2_logged_out_temp_buffer[app->register_password_2_logged_out_temp_buffer_size - 1] = '\0';
- }
- if (app->change_password_logged_in && app->change_password_logged_in_temp_buffer)
- {
- strncpy(app->change_password_logged_in_temp_buffer, app->change_password_logged_in, app->change_password_logged_in_temp_buffer_size - 1);
- app->change_password_logged_in_temp_buffer[app->change_password_logged_in_temp_buffer_size - 1] = '\0';
- }
- if (app->change_bio_logged_in && app->change_bio_logged_in_temp_buffer)
- {
- strncpy(app->change_bio_logged_in_temp_buffer, app->change_bio_logged_in, app->change_bio_logged_in_temp_buffer_size - 1);
- app->change_bio_logged_in_temp_buffer[app->change_bio_logged_in_temp_buffer_size - 1] = '\0';
- }
- if (app->compose_pre_save_logged_in && app->compose_pre_save_logged_in_temp_buffer)
- {
- strncpy(app->compose_pre_save_logged_in_temp_buffer, app->compose_pre_save_logged_in, app->compose_pre_save_logged_in_temp_buffer_size - 1);
- app->compose_pre_save_logged_in_temp_buffer[app->compose_pre_save_logged_in_temp_buffer_size - 1] = '\0';
- }
- if (app->wifi_ssid_logged_in && app->wifi_ssid_logged_in_temp_buffer)
- {
- strncpy(app->wifi_ssid_logged_in_temp_buffer, app->wifi_ssid_logged_in, app->wifi_ssid_logged_in_temp_buffer_size - 1);
- app->wifi_ssid_logged_in_temp_buffer[app->wifi_ssid_logged_in_temp_buffer_size - 1] = '\0';
- }
- if (app->wifi_password_logged_in && app->wifi_password_logged_in_temp_buffer)
- {
- strncpy(app->wifi_password_logged_in_temp_buffer, app->wifi_password_logged_in, app->wifi_password_logged_in_temp_buffer_size - 1);
- app->wifi_password_logged_in_temp_buffer[app->wifi_password_logged_in_temp_buffer_size - 1] = '\0';
- }
- if (app->login_username_logged_in && app->login_username_logged_in_temp_buffer)
- {
- strncpy(app->login_username_logged_in_temp_buffer, app->login_username_logged_in, app->login_username_logged_in_temp_buffer_size - 1);
- app->login_username_logged_in_temp_buffer[app->login_username_logged_in_temp_buffer_size - 1] = '\0';
- }
- // if login username is empty but logged out isnt, copy it over
- if (strlen(app->login_username_logged_out) > 0 && strlen(app->login_username_logged_in) == 0)
- {
- strncpy(app->login_username_logged_in, app->login_username_logged_out, app->login_username_logged_in_temp_buffer_size - 1);
- strncpy(app->login_username_logged_in_temp_buffer, app->login_username_logged_out, app->login_username_logged_in_temp_buffer_size - 1);
- app->login_username_logged_in[app->login_username_logged_in_temp_buffer_size - 1] = '\0';
- app->login_username_logged_in_temp_buffer[app->login_username_logged_in_temp_buffer_size - 1] = '\0';
- }
- // logout username is empty but logged in isnt, copy it over
- if (strlen(app->login_username_logged_in) > 0 && strlen(app->login_username_logged_out) == 0)
- {
- strncpy(app->login_username_logged_out, app->login_username_logged_in, app->login_username_logged_in_temp_buffer_size - 1);
- strncpy(app->login_username_logged_out_temp_buffer, app->login_username_logged_in, app->login_username_logged_in_temp_buffer_size - 1);
- app->login_username_logged_out[app->login_username_logged_in_temp_buffer_size - 1] = '\0';
- app->login_username_logged_out_temp_buffer[app->login_username_logged_in_temp_buffer_size - 1] = '\0';
- }
- // if login password is empty but logged out isnt, copy it over
- if (strlen(app->login_password_logged_out) > 0 && strlen(app->change_password_logged_in) == 0)
- {
- strncpy(app->change_password_logged_in, app->login_password_logged_out, app->login_password_logged_out_temp_buffer_size - 1);
- strncpy(app->change_password_logged_in_temp_buffer, app->login_password_logged_out, app->login_password_logged_out_temp_buffer_size - 1);
- app->change_password_logged_in[app->login_password_logged_out_temp_buffer_size - 1] = '\0';
- app->change_password_logged_in_temp_buffer[app->login_password_logged_out_temp_buffer_size - 1] = '\0';
- }
- // if logout password is empty but logged in isnt, copy it over
- if (strlen(app->change_password_logged_in) > 0 && strlen(app->login_password_logged_out) == 0)
- {
- strncpy(app->login_password_logged_out, app->change_password_logged_in, app->login_password_logged_out_temp_buffer_size - 1);
- strncpy(app->login_password_logged_out_temp_buffer, app->change_password_logged_in, app->login_password_logged_out_temp_buffer_size - 1);
- app->login_password_logged_out[app->login_password_logged_out_temp_buffer_size - 1] = '\0';
- app->login_password_logged_out_temp_buffer[app->login_password_logged_out_temp_buffer_size - 1] = '\0';
- }
- // if wifi password is empty but logged out isnt, copy it over
- if (strlen(app->wifi_password_logged_out) > 0 && strlen(app->wifi_password_logged_in) == 0)
- {
- strncpy(app->wifi_password_logged_in, app->wifi_password_logged_out, app->wifi_password_logged_in_temp_buffer_size - 1);
- strncpy(app->wifi_password_logged_in_temp_buffer, app->wifi_password_logged_out, app->wifi_password_logged_in_temp_buffer_size - 1);
- app->wifi_password_logged_in[app->wifi_password_logged_in_temp_buffer_size - 1] = '\0';
- app->wifi_password_logged_in_temp_buffer[app->wifi_password_logged_in_temp_buffer_size - 1] = '\0';
- }
- // ifi wifi password is empty but logged in isnt, copy it over
- if (strlen(app->wifi_password_logged_in) > 0 && strlen(app->wifi_password_logged_out) == 0)
- {
- strncpy(app->wifi_password_logged_out, app->wifi_password_logged_in, app->wifi_password_logged_in_temp_buffer_size - 1);
- strncpy(app->wifi_password_logged_out_temp_buffer, app->wifi_password_logged_in, app->wifi_password_logged_in_temp_buffer_size - 1);
- app->wifi_password_logged_out[app->wifi_password_logged_in_temp_buffer_size - 1] = '\0';
- app->wifi_password_logged_out_temp_buffer[app->wifi_password_logged_in_temp_buffer_size - 1] = '\0';
- }
- // if wifi ssid is empty but logged out isnt, copy it over
- if (strlen(app->wifi_ssid_logged_out) > 0 && strlen(app->wifi_ssid_logged_in) == 0)
- {
- strncpy(app->wifi_ssid_logged_in, app->wifi_ssid_logged_out, app->wifi_ssid_logged_in_temp_buffer_size - 1);
- strncpy(app->wifi_ssid_logged_in_temp_buffer, app->wifi_ssid_logged_out, app->wifi_ssid_logged_in_temp_buffer_size - 1);
- app->wifi_ssid_logged_in[app->wifi_ssid_logged_in_temp_buffer_size - 1] = '\0';
- app->wifi_ssid_logged_in_temp_buffer[app->wifi_ssid_logged_in_temp_buffer_size - 1] = '\0';
- }
- // if wifi ssid is empty but logged in isnt, copy it over
- if (strlen(app->wifi_ssid_logged_in) > 0 && strlen(app->wifi_ssid_logged_out) == 0)
- {
- strncpy(app->wifi_ssid_logged_out, app->wifi_ssid_logged_in, app->wifi_ssid_logged_in_temp_buffer_size - 1);
- strncpy(app->wifi_ssid_logged_out_temp_buffer, app->wifi_ssid_logged_in, app->wifi_ssid_logged_in_temp_buffer_size - 1);
- app->wifi_ssid_logged_out[app->wifi_ssid_logged_in_temp_buffer_size - 1] = '\0';
- app->wifi_ssid_logged_out_temp_buffer[app->wifi_ssid_logged_in_temp_buffer_size - 1] = '\0';
- }
- auth_headers_alloc();
- if (app->is_logged_in != NULL && strcmp(app->is_logged_in, "true") == 0)
- {
- save_char("is_logged_in", "true");
- view_dispatcher_switch_to_view(app->view_dispatcher, FlipSocialViewLoggedInSubmenu);
- }
- else
- {
- save_char("is_logged_in", "false");
- view_dispatcher_switch_to_view(app->view_dispatcher, FlipSocialViewLoggedOutSubmenu);
- }
- }
- return app;
- }
|