diff --git a/app/app.iml b/app/app.iml
index f584be2..bc30847 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -29,7 +29,7 @@
-
+
@@ -133,9 +133,9 @@
-
-
-
+
+
+
@@ -145,7 +145,6 @@
-
@@ -163,64 +162,62 @@
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
-
diff --git a/app/build.gradle b/app/build.gradle
index 58e4d7f..fca6afb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,22 +24,24 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0'
- implementation 'com.google.android.material:material:1.0.0'
+ implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// the Firebase SDK for Google Analytics
- implementation 'com.google.firebase:firebase-analytics:17.2.1'
+ implementation 'com.google.firebase:firebase-analytics:17.2.3'
// add SDKs for any other desired Firebase products
// https://firebase.google.com/docs/android/setup#available-libraries
// firestore, authentication, and firebase-storage SDKs
- implementation 'com.google.firebase:firebase-auth:19.1.0'
- implementation 'com.google.firebase:firebase-firestore-ktx:21.2.1' // Kotlin version of the dependency
- implementation 'com.google.firebase:firebase-storage-ktx:19.1.0' // Kotlin version of the dependency
+ implementation 'com.google.firebase:firebase-auth:19.3.0'
+ implementation 'com.google.firebase:firebase-firestore-ktx:21.4.1'
+ // Kotlin version of the dependency
+ implementation 'com.google.firebase:firebase-storage-ktx:19.1.1'
+ // Kotlin version of the dependency
//Kotlin versions of dependencies are labeled (beta) on Firebase Docs.
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 37c16ea..a6a2d00 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,6 @@
+ package="crucentralcoast.android">
-
+
-
+
diff --git a/app/src/main/java/crucentralcoast/android/MainActivity.kt b/app/src/main/java/crucentralcoast/android/MainActivity.kt
index b3860fb..0ba7018 100644
--- a/app/src/main/java/crucentralcoast/android/MainActivity.kt
+++ b/app/src/main/java/crucentralcoast/android/MainActivity.kt
@@ -1,17 +1,22 @@
package crucentralcoast.android
import android.os.Bundle
+import android.widget.ImageView
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
+import crucentralcoast.database.DatabaseManager
class MainActivity : AppCompatActivity() {
private lateinit var textMessage: TextView
+
+ var db = DatabaseManager("movements")
private val onNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_events -> {
textMessage.setText("Events")
+ db.setText(textMessage)
return@OnNavigationItemSelectedListener true
}
R.id.navigation_community -> {
@@ -40,6 +45,7 @@ class MainActivity : AppCompatActivity() {
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
+
textMessage = findViewById(R.id.message)
navView.setOnNavigationItemSelectedListener(onNavigationItemSelectedListener)
}
diff --git a/app/src/main/java/crucentralcoast/database/DatabaseManager.kt b/app/src/main/java/crucentralcoast/database/DatabaseManager.kt
new file mode 100644
index 0000000..5dd1810
--- /dev/null
+++ b/app/src/main/java/crucentralcoast/database/DatabaseManager.kt
@@ -0,0 +1,30 @@
+package crucentralcoast.database
+
+import android.graphics.BitmapFactory
+import android.net.Uri
+import android.widget.ImageView
+import com.google.android.gms.tasks.Task
+import com.google.firebase.firestore.*
+import android.widget.TextView
+import java.net.URI
+
+
+data class DatabaseManager(val collectionName: String,
+ val db: FirebaseFirestore = FirebaseFirestore.getInstance())
+{
+
+ private val testDoc: String = "563b07402930ae0300fbc09b"
+
+ fun setText(textView: TextView) {
+ db.collection(collectionName).document(testDoc).get()
+ .addOnSuccessListener {
+ val tempStr = it.get("description")
+ if(tempStr is String)
+ textView.text = tempStr
+ else println("Value from Firestore is not of type String")
+ }
+ }
+
+
+
+}
\ 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
index bc15eb2..75d7345 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -12,12 +12,13 @@
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/activity_horizontal_margin"
- android:layout_marginLeft="@dimen/activity_horizontal_margin"
- android:layout_marginTop="@dimen/activity_vertical_margin"
+ android:layout_marginTop="84dp"
android:text="@string/title_home"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toTopOf="parent"/>
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+
+
\ 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 47c8224..965aa37 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,4 +2,7 @@
16dp16dp
+ 180dp
+ 16dp
+ 16dp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 49f1421..2a1e778 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,4 +3,95 @@
HomeDashboardNotifications
+ EventsScrollingActivity
+
+ "Material is the metaphor.\n\n"
+
+ "A material metaphor is the unifying theory of a rationalized space and a system of motion."
+ "The material is grounded in tactile reality, inspired by the study of paper and ink, yet "
+ "technologically advanced and open to imagination and magic.\n"
+ "Surfaces and edges of the material provide visual cues that are grounded in reality. The "
+ "use of familiar tactile attributes helps users quickly understand affordances. Yet the "
+ "flexibility of the material creates new affordances that supercede those in the physical "
+ "world, without breaking the rules of physics.\n"
+ "The fundamentals of light, surface, and movement are key to conveying how objects move, "
+ "interact, and exist in space and in relation to each other. Realistic lighting shows "
+ "seams, divides space, and indicates moving parts.\n\n"
+
+ "Bold, graphic, intentional.\n\n"
+
+ "The foundational elements of print based design typography, grids, space, scale, color, "
+ "and use of imagery guide visual treatments. These elements do far more than please the "
+ "eye. They create hierarchy, meaning, and focus. Deliberate color choices, edge to edge "
+ "imagery, large scale typography, and intentional white space create a bold and graphic "
+ "interface that immerse the user in the experience.\n"
+ "An emphasis on user actions makes core functionality immediately apparent and provides "
+ "waypoints for the user.\n\n"
+
+ "Motion provides meaning.\n\n"
+
+ "Motion respects and reinforces the user as the prime mover. Primary user actions are "
+ "inflection points that initiate motion, transforming the whole design.\n"
+ "All action takes place in a single environment. Objects are presented to the user without "
+ "breaking the continuity of experience even as they transform and reorganize.\n"
+ "Motion is meaningful and appropriate, serving to focus attention and maintain continuity. "
+ "Feedback is subtle yet clear. Transitions are efficient yet coherent.\n\n"
+
+ "3D world.\n\n"
+
+ "The material environment is a 3D space, which means all objects have x, y, and z "
+ "dimensions. The z-axis is perpendicularly aligned to the plane of the display, with the "
+ "positive z-axis extending towards the viewer. Every sheet of material occupies a single "
+ "position along the z-axis and has a standard 1dp thickness.\n"
+ "On the web, the z-axis is used for layering and not for perspective. The 3D world is "
+ "emulated by manipulating the y-axis.\n\n"
+
+ "Light and shadow.\n\n"
+
+ "Within the material environment, virtual lights illuminate the scene. Key lights create "
+ "directional shadows, while ambient light creates soft shadows from all angles.\n"
+ "Shadows in the material environment are cast by these two light sources. In Android "
+ "development, shadows occur when light sources are blocked by sheets of material at "
+ "various positions along the z-axis. On the web, shadows are depicted by manipulating the "
+ "y-axis only. The following example shows the card with a height of 6dp.\n\n"
+
+ "Resting elevation.\n\n"
+
+ "All material objects, regardless of size, have a resting elevation, or default elevation "
+ "that does not change. If an object changes elevation, it should return to its resting "
+ "elevation as soon as possible.\n\n"
+
+ "Component elevations.\n\n"
+
+ "The resting elevation for a component type is consistent across apps (e.g., FAB elevation "
+ "does not vary from 6dp in one app to 16dp in another app).\n"
+ "Components may have different resting elevations across platforms, depending on the depth "
+ "of the environment (e.g., TV has a greater depth than mobile or desktop).\n\n"
+
+ "Responsive elevation and dynamic elevation offsets.\n\n"
+
+ "Some component types have responsive elevation, meaning they change elevation in response "
+ "to user input (e.g., normal, focused, and pressed) or system events. These elevation "
+ "changes are consistently implemented using dynamic elevation offsets.\n"
+ "Dynamic elevation offsets are the goal elevation that a component moves towards, relative "
+ "to the component’s resting state. They ensure that elevation changes are consistent "
+ "across actions and component types. For example, all components that lift on press have "
+ "the same elevation change relative to their resting elevation.\n"
+ "Once the input event is completed or cancelled, the component will return to its resting "
+ "elevation.\n\n"
+
+ "Avoiding elevation interference.\n\n"
+
+ "Components with responsive elevations may encounter other components as they move between "
+ "their resting elevations and dynamic elevation offsets. Because material cannot pass "
+ "through other material, components avoid interfering with one another any number of ways, "
+ "whether on a per component basis or using the entire app layout.\n"
+ "On a component level, components can move or be removed before they cause interference. "
+ "For example, a floating action button (FAB) can disappear or move off screen before a "
+ "user picks up a card, or it can move if a snackbar appears.\n"
+ "On the layout level, design your app layout to minimize opportunities for interference. "
+ "For example, position the FAB to one side of stream of a cards so the FAB won’t interfere "
+ "when a user tries to pick up one of cards.\n\n"
+
+ Settings
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5885930..545b9c6 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -8,4 +8,13 @@
@color/colorAccent
+
+
+
+
+
+