M phms/MainActivity.cs => phms/MainActivity.cs +25 -1
@@ 4,11 4,15 @@ using System;
using Android.App;
using Android.Content;
using Android.OS;
+using Android.Support.Design.Widget;
using Android.Support.V7.App;
using Android.Widget;
+using Npgsql;
namespace phms
{
+ using R = Resource;
+
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
@@ 23,7 27,7 @@ namespace phms
var prefs = GetPreferences(FileCreationMode.Private) ??
throw new Exception("Couldn't GetPreferences.");
- var databaseUri = FindViewById<EditText>(Resource.Id.databaseUri) ??
+ var databaseUri = FindViewById<EditText>(R.Id.databaseUri) ??
throw new Exception("Couldn't FindViewById.");
databaseUri.Text = prefs.GetString(DatabaseUriPref, "");
databaseUri.AfterTextChanged += (sender, e) =>
@@ 34,6 38,26 @@ namespace phms
prefsEditor.PutString(DatabaseUriPref, newValue);
prefsEditor.Apply();
};
+
+ var connect = FindViewById<Button>(R.Id.connect) ??
+ throw new Exception("Couldn't FindViewById.");
+ connect.Click += (sender, e) =>
+ {
+ try
+ {
+ using var conn = new NpgsqlConnection(databaseUri.Text);
+ conn.Open();
+ using var cmd = new NpgsqlCommand("SHOW server_version", conn);
+ var result = cmd.ExecuteScalar();
+ Snackbar.Make(connect, $"Success, {result}", Snackbar.LengthShort).Show();
+ }
+ catch
+ {
+ Console.WriteLine();
+ Snackbar.Make(connect, "Failure", Snackbar.LengthShort).Show();
+ throw;
+ }
+ };
}
}
}=
\ No newline at end of file
M phms/Resources/Resource.Designer.cs => phms/Resources/Resource.Designer.cs +168 -165
@@ 3131,448 3131,451 @@ namespace phms
public const int collapseActionView = 2131230762;
// aapt resource value: 0x7F08002B
- public const int container = 2131230763;
+ public const int connect = 2131230763;
// aapt resource value: 0x7F08002C
- public const int content = 2131230764;
+ public const int container = 2131230764;
// aapt resource value: 0x7F08002D
- public const int contentPanel = 2131230765;
+ public const int content = 2131230765;
// aapt resource value: 0x7F08002E
- public const int coordinator = 2131230766;
+ public const int contentPanel = 2131230766;
+
+ // aapt resource value: 0x7F08002F
+ public const int coordinator = 2131230767;
// aapt resource value: 0x7F080001
public const int CTRL = 2131230721;
- // aapt resource value: 0x7F08002F
- public const int custom = 2131230767;
-
// aapt resource value: 0x7F080030
- public const int customPanel = 2131230768;
+ public const int custom = 2131230768;
// aapt resource value: 0x7F080031
- public const int databaseUri = 2131230769;
+ public const int customPanel = 2131230769;
// aapt resource value: 0x7F080032
- public const int decor_content_parent = 2131230770;
+ public const int databaseUri = 2131230770;
// aapt resource value: 0x7F080033
- public const int default_activity_button = 2131230771;
+ public const int decor_content_parent = 2131230771;
// aapt resource value: 0x7F080034
- public const int design_bottom_sheet = 2131230772;
+ public const int default_activity_button = 2131230772;
// aapt resource value: 0x7F080035
- public const int design_menu_item_action_area = 2131230773;
+ public const int design_bottom_sheet = 2131230773;
// aapt resource value: 0x7F080036
- public const int design_menu_item_action_area_stub = 2131230774;
+ public const int design_menu_item_action_area = 2131230774;
// aapt resource value: 0x7F080037
- public const int design_menu_item_text = 2131230775;
+ public const int design_menu_item_action_area_stub = 2131230775;
// aapt resource value: 0x7F080038
- public const int design_navigation_view = 2131230776;
+ public const int design_menu_item_text = 2131230776;
// aapt resource value: 0x7F080039
- public const int disableHome = 2131230777;
+ public const int design_navigation_view = 2131230777;
// aapt resource value: 0x7F08003A
- public const int edit_query = 2131230778;
+ public const int disableHome = 2131230778;
// aapt resource value: 0x7F08003B
- public const int end = 2131230779;
+ public const int edit_query = 2131230779;
// aapt resource value: 0x7F08003C
- public const int enterAlways = 2131230780;
+ public const int end = 2131230780;
// aapt resource value: 0x7F08003D
- public const int enterAlwaysCollapsed = 2131230781;
+ public const int enterAlways = 2131230781;
// aapt resource value: 0x7F08003E
- public const int exitUntilCollapsed = 2131230782;
-
- // aapt resource value: 0x7F080040
- public const int expanded_menu = 2131230784;
+ public const int enterAlwaysCollapsed = 2131230782;
// aapt resource value: 0x7F08003F
- public const int expand_activities_button = 2131230783;
+ public const int exitUntilCollapsed = 2131230783;
// aapt resource value: 0x7F080041
- public const int fill = 2131230785;
+ public const int expanded_menu = 2131230785;
- // aapt resource value: 0x7F080044
- public const int filled = 2131230788;
+ // aapt resource value: 0x7F080040
+ public const int expand_activities_button = 2131230784;
// aapt resource value: 0x7F080042
- public const int fill_horizontal = 2131230786;
+ public const int fill = 2131230786;
+
+ // aapt resource value: 0x7F080045
+ public const int filled = 2131230789;
// aapt resource value: 0x7F080043
- public const int fill_vertical = 2131230787;
+ public const int fill_horizontal = 2131230787;
- // aapt resource value: 0x7F080045
- public const int @fixed = 2131230789;
+ // aapt resource value: 0x7F080044
+ public const int fill_vertical = 2131230788;
// aapt resource value: 0x7F080046
- public const int forever = 2131230790;
+ public const int @fixed = 2131230790;
+
+ // aapt resource value: 0x7F080047
+ public const int forever = 2131230791;
// aapt resource value: 0x7F080002
public const int FUNCTION = 2131230722;
- // aapt resource value: 0x7F080047
- public const int ghost_view = 2131230791;
-
// aapt resource value: 0x7F080048
- public const int group_divider = 2131230792;
+ public const int ghost_view = 2131230792;
// aapt resource value: 0x7F080049
- public const int home = 2131230793;
+ public const int group_divider = 2131230793;
// aapt resource value: 0x7F08004A
- public const int homeAsUp = 2131230794;
+ public const int home = 2131230794;
// aapt resource value: 0x7F08004B
- public const int icon = 2131230795;
+ public const int homeAsUp = 2131230795;
// aapt resource value: 0x7F08004C
- public const int icon_group = 2131230796;
+ public const int icon = 2131230796;
// aapt resource value: 0x7F08004D
- public const int ifRoom = 2131230797;
+ public const int icon_group = 2131230797;
// aapt resource value: 0x7F08004E
- public const int image = 2131230798;
+ public const int ifRoom = 2131230798;
// aapt resource value: 0x7F08004F
- public const int info = 2131230799;
+ public const int image = 2131230799;
// aapt resource value: 0x7F080050
- public const int italic = 2131230800;
+ public const int info = 2131230800;
// aapt resource value: 0x7F080051
- public const int item_touch_helper_previous_elevation = 2131230801;
+ public const int italic = 2131230801;
// aapt resource value: 0x7F080052
- public const int labeled = 2131230802;
+ public const int item_touch_helper_previous_elevation = 2131230802;
// aapt resource value: 0x7F080053
- public const int largeLabel = 2131230803;
+ public const int labeled = 2131230803;
// aapt resource value: 0x7F080054
- public const int left = 2131230804;
+ public const int largeLabel = 2131230804;
// aapt resource value: 0x7F080055
- public const int line1 = 2131230805;
+ public const int left = 2131230805;
// aapt resource value: 0x7F080056
- public const int line3 = 2131230806;
+ public const int line1 = 2131230806;
// aapt resource value: 0x7F080057
- public const int listMode = 2131230807;
+ public const int line3 = 2131230807;
// aapt resource value: 0x7F080058
- public const int list_item = 2131230808;
+ public const int listMode = 2131230808;
// aapt resource value: 0x7F080059
- public const int masked = 2131230809;
+ public const int list_item = 2131230809;
// aapt resource value: 0x7F08005A
- public const int message = 2131230810;
+ public const int masked = 2131230810;
+
+ // aapt resource value: 0x7F08005B
+ public const int message = 2131230811;
// aapt resource value: 0x7F080003
public const int META = 2131230723;
- // aapt resource value: 0x7F08005B
- public const int middle = 2131230811;
-
// aapt resource value: 0x7F08005C
- public const int mini = 2131230812;
+ public const int middle = 2131230812;
// aapt resource value: 0x7F08005D
- public const int mtrl_child_content_container = 2131230813;
+ public const int mini = 2131230813;
// aapt resource value: 0x7F08005E
- public const int mtrl_internal_children_alpha_tag = 2131230814;
+ public const int mtrl_child_content_container = 2131230814;
// aapt resource value: 0x7F08005F
- public const int multiply = 2131230815;
+ public const int mtrl_internal_children_alpha_tag = 2131230815;
// aapt resource value: 0x7F080060
- public const int navigation_header_container = 2131230816;
+ public const int multiply = 2131230816;
// aapt resource value: 0x7F080061
- public const int never = 2131230817;
+ public const int navigation_header_container = 2131230817;
// aapt resource value: 0x7F080062
- public const int none = 2131230818;
+ public const int never = 2131230818;
// aapt resource value: 0x7F080063
- public const int normal = 2131230819;
+ public const int none = 2131230819;
// aapt resource value: 0x7F080064
- public const int notification_background = 2131230820;
+ public const int normal = 2131230820;
// aapt resource value: 0x7F080065
- public const int notification_main_column = 2131230821;
+ public const int notification_background = 2131230821;
// aapt resource value: 0x7F080066
- public const int notification_main_column_container = 2131230822;
+ public const int notification_main_column = 2131230822;
// aapt resource value: 0x7F080067
- public const int outline = 2131230823;
+ public const int notification_main_column_container = 2131230823;
// aapt resource value: 0x7F080068
- public const int parallax = 2131230824;
+ public const int outline = 2131230824;
// aapt resource value: 0x7F080069
- public const int parentPanel = 2131230825;
+ public const int parallax = 2131230825;
// aapt resource value: 0x7F08006A
- public const int parent_matrix = 2131230826;
+ public const int parentPanel = 2131230826;
// aapt resource value: 0x7F08006B
- public const int pin = 2131230827;
+ public const int parent_matrix = 2131230827;
// aapt resource value: 0x7F08006C
- public const int progress_circular = 2131230828;
+ public const int pin = 2131230828;
// aapt resource value: 0x7F08006D
- public const int progress_horizontal = 2131230829;
+ public const int progress_circular = 2131230829;
// aapt resource value: 0x7F08006E
- public const int radio = 2131230830;
+ public const int progress_horizontal = 2131230830;
// aapt resource value: 0x7F08006F
- public const int right = 2131230831;
+ public const int radio = 2131230831;
// aapt resource value: 0x7F080070
- public const int right_icon = 2131230832;
+ public const int right = 2131230832;
// aapt resource value: 0x7F080071
- public const int right_side = 2131230833;
+ public const int right_icon = 2131230833;
// aapt resource value: 0x7F080072
- public const int save_image_matrix = 2131230834;
+ public const int right_side = 2131230834;
// aapt resource value: 0x7F080073
- public const int save_non_transition_alpha = 2131230835;
+ public const int save_image_matrix = 2131230835;
// aapt resource value: 0x7F080074
- public const int save_scale_type = 2131230836;
+ public const int save_non_transition_alpha = 2131230836;
// aapt resource value: 0x7F080075
- public const int screen = 2131230837;
+ public const int save_scale_type = 2131230837;
// aapt resource value: 0x7F080076
- public const int scroll = 2131230838;
-
- // aapt resource value: 0x7F08007A
- public const int scrollable = 2131230842;
+ public const int screen = 2131230838;
// aapt resource value: 0x7F080077
- public const int scrollIndicatorDown = 2131230839;
+ public const int scroll = 2131230839;
+
+ // aapt resource value: 0x7F08007B
+ public const int scrollable = 2131230843;
// aapt resource value: 0x7F080078
- public const int scrollIndicatorUp = 2131230840;
+ public const int scrollIndicatorDown = 2131230840;
// aapt resource value: 0x7F080079
- public const int scrollView = 2131230841;
+ public const int scrollIndicatorUp = 2131230841;
- // aapt resource value: 0x7F08007B
- public const int search_badge = 2131230843;
+ // aapt resource value: 0x7F08007A
+ public const int scrollView = 2131230842;
// aapt resource value: 0x7F08007C
- public const int search_bar = 2131230844;
+ public const int search_badge = 2131230844;
// aapt resource value: 0x7F08007D
- public const int search_button = 2131230845;
+ public const int search_bar = 2131230845;
// aapt resource value: 0x7F08007E
- public const int search_close_btn = 2131230846;
+ public const int search_button = 2131230846;
// aapt resource value: 0x7F08007F
- public const int search_edit_frame = 2131230847;
+ public const int search_close_btn = 2131230847;
// aapt resource value: 0x7F080080
- public const int search_go_btn = 2131230848;
+ public const int search_edit_frame = 2131230848;
// aapt resource value: 0x7F080081
- public const int search_mag_icon = 2131230849;
+ public const int search_go_btn = 2131230849;
// aapt resource value: 0x7F080082
- public const int search_plate = 2131230850;
+ public const int search_mag_icon = 2131230850;
// aapt resource value: 0x7F080083
- public const int search_src_text = 2131230851;
+ public const int search_plate = 2131230851;
// aapt resource value: 0x7F080084
- public const int search_voice_btn = 2131230852;
-
- // aapt resource value: 0x7F080086
- public const int selected = 2131230854;
+ public const int search_src_text = 2131230852;
// aapt resource value: 0x7F080085
- public const int select_dialog_listview = 2131230853;
+ public const int search_voice_btn = 2131230853;
+
+ // aapt resource value: 0x7F080087
+ public const int selected = 2131230855;
+
+ // aapt resource value: 0x7F080086
+ public const int select_dialog_listview = 2131230854;
// aapt resource value: 0x7F080004
public const int SHIFT = 2131230724;
- // aapt resource value: 0x7F080087
- public const int shortcut = 2131230855;
-
// aapt resource value: 0x7F080088
- public const int showCustom = 2131230856;
+ public const int shortcut = 2131230856;
// aapt resource value: 0x7F080089
- public const int showHome = 2131230857;
+ public const int showCustom = 2131230857;
// aapt resource value: 0x7F08008A
- public const int showTitle = 2131230858;
+ public const int showHome = 2131230858;
// aapt resource value: 0x7F08008B
- public const int smallLabel = 2131230859;
+ public const int showTitle = 2131230859;
// aapt resource value: 0x7F08008C
- public const int snackbar_action = 2131230860;
+ public const int smallLabel = 2131230860;
// aapt resource value: 0x7F08008D
- public const int snackbar_text = 2131230861;
+ public const int snackbar_action = 2131230861;
// aapt resource value: 0x7F08008E
- public const int snap = 2131230862;
+ public const int snackbar_text = 2131230862;
// aapt resource value: 0x7F08008F
- public const int snapMargins = 2131230863;
+ public const int snap = 2131230863;
// aapt resource value: 0x7F080090
- public const int spacer = 2131230864;
+ public const int snapMargins = 2131230864;
// aapt resource value: 0x7F080091
- public const int split_action_bar = 2131230865;
+ public const int spacer = 2131230865;
// aapt resource value: 0x7F080092
- public const int src_atop = 2131230866;
+ public const int split_action_bar = 2131230866;
// aapt resource value: 0x7F080093
- public const int src_in = 2131230867;
+ public const int src_atop = 2131230867;
// aapt resource value: 0x7F080094
- public const int src_over = 2131230868;
+ public const int src_in = 2131230868;
// aapt resource value: 0x7F080095
- public const int start = 2131230869;
+ public const int src_over = 2131230869;
// aapt resource value: 0x7F080096
- public const int stretch = 2131230870;
+ public const int start = 2131230870;
// aapt resource value: 0x7F080097
- public const int submenuarrow = 2131230871;
+ public const int stretch = 2131230871;
// aapt resource value: 0x7F080098
- public const int submit_area = 2131230872;
+ public const int submenuarrow = 2131230872;
+
+ // aapt resource value: 0x7F080099
+ public const int submit_area = 2131230873;
// aapt resource value: 0x7F080005
public const int SYM = 2131230725;
- // aapt resource value: 0x7F080099
- public const int tabMode = 2131230873;
-
// aapt resource value: 0x7F08009A
- public const int tag_transition_group = 2131230874;
+ public const int tabMode = 2131230874;
// aapt resource value: 0x7F08009B
- public const int tag_unhandled_key_event_manager = 2131230875;
+ public const int tag_transition_group = 2131230875;
// aapt resource value: 0x7F08009C
- public const int tag_unhandled_key_listeners = 2131230876;
+ public const int tag_unhandled_key_event_manager = 2131230876;
// aapt resource value: 0x7F08009D
- public const int text = 2131230877;
+ public const int tag_unhandled_key_listeners = 2131230877;
// aapt resource value: 0x7F08009E
- public const int text2 = 2131230878;
+ public const int text = 2131230878;
- // aapt resource value: 0x7F0800A3
- public const int textinput_counter = 2131230883;
+ // aapt resource value: 0x7F08009F
+ public const int text2 = 2131230879;
// aapt resource value: 0x7F0800A4
- public const int textinput_error = 2131230884;
+ public const int textinput_counter = 2131230884;
// aapt resource value: 0x7F0800A5
- public const int textinput_helper_text = 2131230885;
+ public const int textinput_error = 2131230885;
- // aapt resource value: 0x7F08009F
- public const int textSpacerNoButtons = 2131230879;
+ // aapt resource value: 0x7F0800A6
+ public const int textinput_helper_text = 2131230886;
// aapt resource value: 0x7F0800A0
- public const int textSpacerNoTitle = 2131230880;
+ public const int textSpacerNoButtons = 2131230880;
// aapt resource value: 0x7F0800A1
- public const int textStart = 2131230881;
+ public const int textSpacerNoTitle = 2131230881;
// aapt resource value: 0x7F0800A2
- public const int text_input_password_toggle = 2131230882;
+ public const int textStart = 2131230882;
- // aapt resource value: 0x7F0800A6
- public const int time = 2131230886;
+ // aapt resource value: 0x7F0800A3
+ public const int text_input_password_toggle = 2131230883;
// aapt resource value: 0x7F0800A7
- public const int title = 2131230887;
+ public const int time = 2131230887;
// aapt resource value: 0x7F0800A8
- public const int titleDividerNoCustom = 2131230888;
+ public const int title = 2131230888;
// aapt resource value: 0x7F0800A9
- public const int title_template = 2131230889;
+ public const int titleDividerNoCustom = 2131230889;
// aapt resource value: 0x7F0800AA
- public const int top = 2131230890;
+ public const int title_template = 2131230890;
// aapt resource value: 0x7F0800AB
- public const int topPanel = 2131230891;
+ public const int top = 2131230891;
// aapt resource value: 0x7F0800AC
- public const int touch_outside = 2131230892;
+ public const int topPanel = 2131230892;
// aapt resource value: 0x7F0800AD
- public const int transition_current_scene = 2131230893;
+ public const int touch_outside = 2131230893;
// aapt resource value: 0x7F0800AE
- public const int transition_layout_save = 2131230894;
+ public const int transition_current_scene = 2131230894;
// aapt resource value: 0x7F0800AF
- public const int transition_position = 2131230895;
+ public const int transition_layout_save = 2131230895;
// aapt resource value: 0x7F0800B0
- public const int transition_scene_layoutid_cache = 2131230896;
+ public const int transition_position = 2131230896;
// aapt resource value: 0x7F0800B1
- public const int transition_transform = 2131230897;
+ public const int transition_scene_layoutid_cache = 2131230897;
// aapt resource value: 0x7F0800B2
- public const int uniform = 2131230898;
+ public const int transition_transform = 2131230898;
// aapt resource value: 0x7F0800B3
- public const int unlabeled = 2131230899;
+ public const int uniform = 2131230899;
// aapt resource value: 0x7F0800B4
- public const int up = 2131230900;
+ public const int unlabeled = 2131230900;
// aapt resource value: 0x7F0800B5
- public const int useLogo = 2131230901;
+ public const int up = 2131230901;
// aapt resource value: 0x7F0800B6
- public const int view_offset_helper = 2131230902;
+ public const int useLogo = 2131230902;
// aapt resource value: 0x7F0800B7
- public const int visible = 2131230903;
+ public const int view_offset_helper = 2131230903;
// aapt resource value: 0x7F0800B8
- public const int withText = 2131230904;
+ public const int visible = 2131230904;
// aapt resource value: 0x7F0800B9
- public const int wrap_content = 2131230905;
+ public const int withText = 2131230905;
+
+ // aapt resource value: 0x7F0800BA
+ public const int wrap_content = 2131230906;
static Id()
{
M phms/Resources/layout/activity_main.axml => phms/Resources/layout/activity_main.axml +9 -5
@@ 1,9 1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" android:padding="20dp">
<EditText
android:id="@+id/databaseUri"
@@ 12,5 12,9 @@
android:ems="10"
android:inputType="textMultiLine|textNoSuggestions"
android:hint="Database URI"/>
-
+ <Button
+ android:text="Connect"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" android:id="@+id/connect" android:layout_below="@id/databaseUri"/>
+
</RelativeLayout>=
\ No newline at end of file
M phms/phms.csproj => phms/phms.csproj +3 -1
@@ 51,8 51,9 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
- <Reference Include="System.Xml" />
<Reference Include="System.Core" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
<Reference Include="Mono.Android" />
</ItemGroup>
<ItemGroup>
@@ 76,6 77,7 @@
<AndroidResource Include="Resources\values\styles.xml" />
</ItemGroup>
<ItemGroup>
+ <PackageReference Include="Npgsql" Version="6.0.0-preview5" />
<PackageReference Include="Xamarin.Android.Support.Design" Version="28.0.0.3" />
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />