Bläddra i källkod

FlipLibrary - v1.3.1

- Added Wikipedia API (provides a basic description of the queried word or phrase)
jblanked 1 år sedan
förälder
incheckning
c6bc0242bf
5 ändrade filer med 527 tillägg och 458 borttagningar
  1. 1 0
      CHANGELOG.md
  2. 71 70
      alloc/flip_library_alloc.c
  3. 1 1
      application.fam
  4. 430 364
      callback/flip_library_callback.c
  5. 24 23
      flip_library.h

+ 1 - 0
CHANGELOG.md

@@ -2,6 +2,7 @@
 Refactored by Derek Jamison:  
 Refactored by Derek Jamison:  
 - Improved progress display.  
 - Improved progress display.  
 - Added connectivity check on startup.
 - Added connectivity check on startup.
+- Added Wikipedia API.
 
 
 ## v1.2
 ## v1.2
 - Improved memory allocation.
 - Improved memory allocation.

+ 71 - 70
alloc/flip_library_alloc.c

@@ -8,83 +8,83 @@ FlipLibraryApp *flip_library_app_alloc()
     Gui *gui = furi_record_open(RECORD_GUI);
     Gui *gui = furi_record_open(RECORD_GUI);
 
 
     if (!flipper_http_init(flipper_http_rx_callback, app))
     if (!flipper_http_init(flipper_http_rx_callback, app))
-        {
-            FURI_LOG_E(TAG, "Failed to initialize flipper http");
-            return NULL;
-        }
+    {
+        FURI_LOG_E(TAG, "Failed to initialize flipper http");
+        return NULL;
+    }
 
 
     // Allocate the text input buffer
     // Allocate the text input buffer
     app->uart_text_input_buffer_size_ssid = 64;
     app->uart_text_input_buffer_size_ssid = 64;
     app->uart_text_input_buffer_size_password = 64;
     app->uart_text_input_buffer_size_password = 64;
     app->uart_text_input_buffer_size_query = 64;
     app->uart_text_input_buffer_size_query = 64;
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid))
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_size_ssid))
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_size_ssid))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password))
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_size_password))
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_size_password))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_query, app->uart_text_input_buffer_size_query))
     if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_query, app->uart_text_input_buffer_size_query))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_query, app->uart_text_input_buffer_size_query))
     if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_query, app->uart_text_input_buffer_size_query))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
 
 
     // Allocate ViewDispatcher
     // Allocate ViewDispatcher
     if (!easy_flipper_set_view_dispatcher(&app->view_dispatcher, gui, app))
     if (!easy_flipper_set_view_dispatcher(&app->view_dispatcher, gui, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     view_dispatcher_set_custom_event_callback(app->view_dispatcher, flip_library_custom_event_callback);
     view_dispatcher_set_custom_event_callback(app->view_dispatcher, flip_library_custom_event_callback);
 
 
     // Main view
     // Main view
     if (!easy_flipper_set_view(&app->view_loader, FlipLibraryViewLoader, flip_library_loader_draw_callback, NULL, callback_to_random_facts, &app->view_dispatcher, app))
     if (!easy_flipper_set_view(&app->view_loader, FlipLibraryViewLoader, flip_library_loader_draw_callback, NULL, callback_to_random_facts, &app->view_dispatcher, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     flip_library_loader_init(app->view_loader);
     flip_library_loader_init(app->view_loader);
 
 
     // Widget
     // Widget
     if (!easy_flipper_set_widget(&app->widget_about, FlipLibraryViewAbout, "FlipLibrary v1.3\n-----\nDictionary, random facts, and\nmore.\n-----\nwww.github.com/jblanked", callback_to_submenu, &app->view_dispatcher))
     if (!easy_flipper_set_widget(&app->widget_about, FlipLibraryViewAbout, "FlipLibrary v1.3\n-----\nDictionary, random facts, and\nmore.\n-----\nwww.github.com/jblanked", callback_to_submenu, &app->view_dispatcher))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_widget(&app->widget_result, FlipLibraryViewWidgetResult, "Error, try again.", callback_to_random_facts, &app->view_dispatcher))
     if (!easy_flipper_set_widget(&app->widget_result, FlipLibraryViewWidgetResult, "Error, try again.", callback_to_random_facts, &app->view_dispatcher))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
 
 
     // Text Input
     // Text Input
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_ssid, FlipLibraryViewTextInputSSID, "Enter SSID", app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_size_ssid, text_updated_ssid, callback_to_wifi_settings, &app->view_dispatcher, app))
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_ssid, FlipLibraryViewTextInputSSID, "Enter SSID", app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_size_ssid, text_updated_ssid, callback_to_wifi_settings, &app->view_dispatcher, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_password, FlipLibraryViewTextInputPassword, "Enter Password", app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_size_password, text_updated_password, callback_to_wifi_settings, &app->view_dispatcher, app))
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_password, FlipLibraryViewTextInputPassword, "Enter Password", app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_size_password, text_updated_password, callback_to_wifi_settings, &app->view_dispatcher, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_query, FlipLibraryViewTextInputQuery, "Enter Query", app->uart_text_input_temp_buffer_query, app->uart_text_input_buffer_size_query, text_updated_query, callback_to_submenu, &app->view_dispatcher, app))
     if (!easy_flipper_set_uart_text_input(&app->uart_text_input_query, FlipLibraryViewTextInputQuery, "Enter Query", app->uart_text_input_temp_buffer_query, app->uart_text_input_buffer_size_query, text_updated_query, callback_to_submenu, &app->view_dispatcher, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
 
 
     // Variable Item List
     // Variable Item List
     if (!easy_flipper_set_variable_item_list(&app->variable_item_list_wifi, FlipLibraryViewSettings, settings_item_selected, callback_to_submenu, &app->view_dispatcher, app))
     if (!easy_flipper_set_variable_item_list(&app->variable_item_list_wifi, FlipLibraryViewSettings, settings_item_selected, callback_to_submenu, &app->view_dispatcher, app))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
 
 
     app->variable_item_ssid = variable_item_list_add(app->variable_item_list_wifi, "SSID", 0, NULL, NULL);
     app->variable_item_ssid = variable_item_list_add(app->variable_item_list_wifi, "SSID", 0, NULL, NULL);
     app->variable_item_password = variable_item_list_add(app->variable_item_list_wifi, "Password", 0, NULL, NULL);
     app->variable_item_password = variable_item_list_add(app->variable_item_list_wifi, "Password", 0, NULL, NULL);
@@ -93,15 +93,16 @@ FlipLibraryApp *flip_library_app_alloc()
 
 
     // Submenu
     // Submenu
     if (!easy_flipper_set_submenu(&app->submenu_main, FlipLibraryViewSubmenuMain, "FlipLibrary v1.3", callback_exit_app, &app->view_dispatcher))
     if (!easy_flipper_set_submenu(&app->submenu_main, FlipLibraryViewSubmenuMain, "FlipLibrary v1.3", callback_exit_app, &app->view_dispatcher))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
     if (!easy_flipper_set_submenu(&app->submenu_random_facts, FlipLibraryViewRandomFacts, "Random Facts", callback_to_submenu, &app->view_dispatcher))
     if (!easy_flipper_set_submenu(&app->submenu_random_facts, FlipLibraryViewRandomFacts, "Random Facts", callback_to_submenu, &app->view_dispatcher))
-        {
-            return NULL;
-        }
+    {
+        return NULL;
+    }
 
 
     submenu_add_item(app->submenu_main, "Random Fact", FlipLibrarySubmenuIndexRandomFacts, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "Random Fact", FlipLibrarySubmenuIndexRandomFacts, callback_submenu_choices, app);
+    submenu_add_item(app->submenu_main, "Wikipedia", FlipLibrarySubmenuIndexRandomFactsWiki, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "Dictionary", FlipLibrarySubmenuIndexDictionary, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "Dictionary", FlipLibrarySubmenuIndexDictionary, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "About", FlipLibrarySubmenuIndexAbout, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "About", FlipLibrarySubmenuIndexAbout, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "WiFi", FlipLibrarySubmenuIndexSettings, callback_submenu_choices, app);
     submenu_add_item(app->submenu_main, "WiFi", FlipLibrarySubmenuIndexSettings, callback_submenu_choices, app);
@@ -113,26 +114,26 @@ FlipLibraryApp *flip_library_app_alloc()
 
 
     // load settings
     // load settings
     if (load_settings(app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid, app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password))
     if (load_settings(app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid, app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password))
+    {
+        // Update variable items
+        if (app->variable_item_ssid)
+        {
+            variable_item_set_current_value_text(app->variable_item_ssid, app->uart_text_input_buffer_ssid);
+        }
+        // dont show password
+
+        // Copy items into their temp buffers with safety checks
+        if (app->uart_text_input_buffer_ssid && app->uart_text_input_temp_buffer_ssid)
+        {
+            strncpy(app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid - 1);
+            app->uart_text_input_temp_buffer_ssid[app->uart_text_input_buffer_size_ssid - 1] = '\0';
+        }
+        if (app->uart_text_input_buffer_password && app->uart_text_input_temp_buffer_password)
         {
         {
-            // Update variable items
-            if (app->variable_item_ssid)
-                {
-                    variable_item_set_current_value_text(app->variable_item_ssid, app->uart_text_input_buffer_ssid);
-                }
-            // dont show password
-
-            // Copy items into their temp buffers with safety checks
-            if (app->uart_text_input_buffer_ssid && app->uart_text_input_temp_buffer_ssid)
-                {
-                    strncpy(app->uart_text_input_temp_buffer_ssid, app->uart_text_input_buffer_ssid, app->uart_text_input_buffer_size_ssid - 1);
-                    app->uart_text_input_temp_buffer_ssid[app->uart_text_input_buffer_size_ssid - 1] = '\0';
-                }
-            if (app->uart_text_input_buffer_password && app->uart_text_input_temp_buffer_password)
-                {
-                    strncpy(app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password - 1);
-                    app->uart_text_input_temp_buffer_password[app->uart_text_input_buffer_size_password - 1] = '\0';
-                }
+            strncpy(app->uart_text_input_temp_buffer_password, app->uart_text_input_buffer_password, app->uart_text_input_buffer_size_password - 1);
+            app->uart_text_input_temp_buffer_password[app->uart_text_input_buffer_size_password - 1] = '\0';
         }
         }
+    }
 
 
     // assign app instance
     // assign app instance
     app_instance = app;
     app_instance = app;

+ 1 - 1
application.fam

@@ -10,5 +10,5 @@ App(
     fap_description="Dictionary, random facts, and more.",
     fap_description="Dictionary, random facts, and more.",
     fap_author="JBlanked",
     fap_author="JBlanked",
     fap_weburl="https://github.com/jblanked/FlipLibrary",
     fap_weburl="https://github.com/jblanked/FlipLibrary",
-    fap_version = "1.3",
+    fap_version = "1.3.1",
 )
 )

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 430 - 364
callback/flip_library_callback.c


+ 24 - 23
flip_library.h

@@ -27,38 +27,39 @@ typedef enum
     FlipLibrarySubmenuIndexRandomFactsDogs,   // Click to view the random facts (dogs)
     FlipLibrarySubmenuIndexRandomFactsDogs,   // Click to view the random facts (dogs)
     FlipLibrarySubmenuIndexRandomFactsQuotes, // Click to view the random facts (quotes)
     FlipLibrarySubmenuIndexRandomFactsQuotes, // Click to view the random facts (quotes)
     FlipLibrarySubmenuIndexRandomFactsAll,    // Click to view the random facts (all)
     FlipLibrarySubmenuIndexRandomFactsAll,    // Click to view the random facts (all)
+    FlipLibrarySubmenuIndexRandomFactsWiki,   // Click to view the random facts (wiki)
 } FlipLibrarySubmenuIndex;
 } FlipLibrarySubmenuIndex;
 
 
 // Define a single view for our FlipLibrary application
 // Define a single view for our FlipLibrary application
 typedef enum
 typedef enum
 {
 {
-    FlipLibraryViewRandomFacts = 7,        // The random facts main screen
-    FlipLibraryViewLoader,                // The loader screen retrieves data from the internet
-    FlipLibraryViewSubmenuMain,           // The submenu screen
-    FlipLibraryViewAbout,                 // The about screen
-    FlipLibraryViewSettings,              // The settings screen
-    FlipLibraryViewTextInputSSID,         // The text input screen (SSID)
-    FlipLibraryViewTextInputPassword,     // The text input screen (password)
-    FlipLibraryViewTextInputQuery,        // Query the user for information
-    FlipLibraryViewWidgetResult,          // The text box that displays the random fact
+    FlipLibraryViewRandomFacts = 7,   // The random facts main screen
+    FlipLibraryViewLoader,            // The loader screen retrieves data from the internet
+    FlipLibraryViewSubmenuMain,       // The submenu screen
+    FlipLibraryViewAbout,             // The about screen
+    FlipLibraryViewSettings,          // The settings screen
+    FlipLibraryViewTextInputSSID,     // The text input screen (SSID)
+    FlipLibraryViewTextInputPassword, // The text input screen (password)
+    FlipLibraryViewTextInputQuery,    // Query the user for information
+    FlipLibraryViewWidgetResult,      // The text box that displays the random fact
 } FlipLibraryView;
 } FlipLibraryView;
 
 
 // Each screen will have its own view
 // Each screen will have its own view
 typedef struct
 typedef struct
 {
 {
-    ViewDispatcher *view_dispatcher;            // Switches between our views
-    View *view_loader;                          // The screen that loads data from internet
-    Submenu *submenu_main;                      // The submenu for the main screen
-    Submenu *submenu_random_facts;              // The submenu for the random facts screen
-    Widget *widget_about;                       // The widget for the about screen
-    VariableItemList *variable_item_list_wifi;  // The variable item list (WiFi settings)
-    VariableItem *variable_item_ssid;           // The variable item (SSID)
-    VariableItem *variable_item_password;       // The variable item (password)
-    UART_TextInput *uart_text_input_ssid;       // The text input for the SSID
-    UART_TextInput *uart_text_input_password;   // The text input for the password
-    UART_TextInput *uart_text_input_query;      // The text input for querying information
+    ViewDispatcher *view_dispatcher;           // Switches between our views
+    View *view_loader;                         // The screen that loads data from internet
+    Submenu *submenu_main;                     // The submenu for the main screen
+    Submenu *submenu_random_facts;             // The submenu for the random facts screen
+    Widget *widget_about;                      // The widget for the about screen
+    VariableItemList *variable_item_list_wifi; // The variable item list (WiFi settings)
+    VariableItem *variable_item_ssid;          // The variable item (SSID)
+    VariableItem *variable_item_password;      // The variable item (password)
+    UART_TextInput *uart_text_input_ssid;      // The text input for the SSID
+    UART_TextInput *uart_text_input_password;  // The text input for the password
+    UART_TextInput *uart_text_input_query;     // The text input for querying information
     //
     //
-    Widget *widget_result;      // The text box that displays the result
+    Widget *widget_result; // The text box that displays the result
 
 
     char *uart_text_input_buffer_ssid;         // Buffer for the text input (SSID)
     char *uart_text_input_buffer_ssid;         // Buffer for the text input (SSID)
     char *uart_text_input_temp_buffer_ssid;    // Temporary buffer for the text input (SSID)
     char *uart_text_input_temp_buffer_ssid;    // Temporary buffer for the text input (SSID)
@@ -68,8 +69,8 @@ typedef struct
     char *uart_text_input_temp_buffer_password;    // Temporary buffer for the text input (password)
     char *uart_text_input_temp_buffer_password;    // Temporary buffer for the text input (password)
     uint32_t uart_text_input_buffer_size_password; // Size of the text input buffer (password)
     uint32_t uart_text_input_buffer_size_password; // Size of the text input buffer (password)
 
 
-    char *uart_text_input_buffer_query; // Buffer for the text input (query)
-    char *uart_text_input_temp_buffer_query; // Temporary buffer for the text input (query)
+    char *uart_text_input_buffer_query;         // Buffer for the text input (query)
+    char *uart_text_input_temp_buffer_query;    // Temporary buffer for the text input (query)
     uint32_t uart_text_input_buffer_size_query; // Size of the text input buffer (query)
     uint32_t uart_text_input_buffer_size_query; // Size of the text input buffer (query)
 } FlipLibraryApp;
 } FlipLibraryApp;
 
 

Vissa filer visades inte eftersom för många filer har ändrats