diff --git a/app/build.gradle b/app/build.gradle
index 092ad46..3639493 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -66,6 +66,8 @@ dependencies {
implementation 'com.google.firebase:firebase-firestore'
implementation 'androidx.navigation:navigation-fragment:2.5.2'
implementation 'androidx.navigation:navigation-ui:2.5.2'
+ implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1'
+ implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1'
testImplementation 'junit:junit:4.13.2'
testImplementation "androidx.test:core"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 6d178ee..719a76a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="128"
android:versionName="4.2.1b">
-
@@ -22,10 +21,13 @@
-
-
-
+
+
+
+
+
+
+
+
+
mIndex = new MutableLiveData<>();
+ private LiveData mText = Transformations.map(mIndex, new Function() {
+ @Override
+ public String apply(Integer input) {
+ return "Hello world from section: " + input;
+ }
+ });
+
+ public void setIndex(int index) {
+ mIndex.setValue(index);
+ }
+
+ public LiveData getText() {
+ return mText;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/uk/org/openseizuredetector/ui/main/PlaceholderFragment.java b/app/src/main/java/uk/org/openseizuredetector/ui/main/PlaceholderFragment.java
new file mode 100644
index 0000000..02b1f51
--- /dev/null
+++ b/app/src/main/java/uk/org/openseizuredetector/ui/main/PlaceholderFragment.java
@@ -0,0 +1,70 @@
+package uk.org.openseizuredetector.ui.main;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import uk.org.openseizuredetector.R;
+import uk.org.openseizuredetector.databinding.FragmentMainBinding;
+
+/**
+ * A placeholder fragment containing a simple view.
+ */
+public class PlaceholderFragment extends Fragment {
+
+ private static final String ARG_SECTION_NUMBER = "section_number";
+
+ private PageViewModel pageViewModel;
+ private FragmentMainBinding binding;
+
+ public static PlaceholderFragment newInstance(int index) {
+ PlaceholderFragment fragment = new PlaceholderFragment();
+ Bundle bundle = new Bundle();
+ bundle.putInt(ARG_SECTION_NUMBER, index);
+ fragment.setArguments(bundle);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ pageViewModel = new ViewModelProvider(this).get(PageViewModel.class);
+ int index = 1;
+ if (getArguments() != null) {
+ index = getArguments().getInt(ARG_SECTION_NUMBER);
+ }
+ pageViewModel.setIndex(index);
+ }
+
+ @Override
+ public View onCreateView(
+ @NonNull LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+
+ binding = FragmentMainBinding.inflate(inflater, container, false);
+ View root = binding.getRoot();
+
+ final TextView textView = binding.sectionLabel;
+ pageViewModel.getText().observe(getViewLifecycleOwner(), new Observer() {
+ @Override
+ public void onChanged(@Nullable String s) {
+ textView.setText(s);
+ }
+ });
+ return root;
+ }
+
+ @Override
+ public void onDestroyView() {
+ super.onDestroyView();
+ binding = null;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/uk/org/openseizuredetector/ui/main/SectionsPagerAdapter.java b/app/src/main/java/uk/org/openseizuredetector/ui/main/SectionsPagerAdapter.java
new file mode 100644
index 0000000..36b782d
--- /dev/null
+++ b/app/src/main/java/uk/org/openseizuredetector/ui/main/SectionsPagerAdapter.java
@@ -0,0 +1,46 @@
+package uk.org.openseizuredetector.ui.main;
+
+import android.content.Context;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+
+import uk.org.openseizuredetector.R;
+
+/**
+ * A [FragmentPagerAdapter] that returns a fragment corresponding to
+ * one of the sections/tabs/pages.
+ */
+public class SectionsPagerAdapter extends FragmentPagerAdapter {
+
+ @StringRes
+ private static final int[] TAB_TITLES = new int[]{R.string.tab_text_1, R.string.tab_text_2};
+ private final Context mContext;
+
+ public SectionsPagerAdapter(Context context, FragmentManager fm) {
+ super(fm);
+ mContext = context;
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ // getItem is called to instantiate the fragment for the given page.
+ // Return a PlaceholderFragment.
+ return PlaceholderFragment.newInstance(position + 1);
+ }
+
+ @Nullable
+ @Override
+ public CharSequence getPageTitle(int position) {
+ return mContext.getResources().getString(TAB_TITLES[position]);
+ }
+
+ @Override
+ public int getCount() {
+ // Show 2 total pages.
+ return 2;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..c6a81a6
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
new file mode 100644
index 0000000..0a90c04
--- /dev/null
+++ b/app/src/main/res/layout/fragment_main.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-land/dimens.xml b/app/src/main/res/values-land/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-land/dimens.xml
@@ -0,0 +1,3 @@
+
+ 48dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/app/src/main/res/values-w1240dp/dimens.xml
new file mode 100644
index 0000000..d73f4a3
--- /dev/null
+++ b/app/src/main/res/values-w1240dp/dimens.xml
@@ -0,0 +1,3 @@
+
+ 200dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values-w600dp/dimens.xml b/app/src/main/res/values-w600dp/dimens.xml
new file mode 100644
index 0000000..22d7f00
--- /dev/null
+++ b/app/src/main/res/values-w600dp/dimens.xml
@@ -0,0 +1,3 @@
+
+ 48dp
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index edf0e6d..b9898d5 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -3,5 +3,7 @@
16dp
16dp
16dp
+ 16dp
+ 8dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 32ea311..013bea7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -555,4 +555,7 @@
libero vel nunc consequat, quis tincidunt nisl eleifend. Cras bibendum enim a justo luctus
vestibulum. Fusce dictum libero quis erat maximus, vitae volutpat diam dignissim.
+ MainActivity2
+ Tab 1
+ Tab 2
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
new file mode 100644
index 0000000..d907dd5
--- /dev/null
+++ b/app/src/main/res/values/themes.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
\ No newline at end of file