aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMarvin Borner2018-07-24 16:34:08 +0200
committerMarvin Borner2018-07-24 16:34:08 +0200
commiteda695878d61ef761546295682afe4a450697d3d (patch)
tree29a03173504c4297445ea073af07db4c4472457a
parentf7fd5f3d65c1d93c98ce5a49903e5b1d42920099 (diff)
Switched to dark theme and fixed several small things
-rw-r--r--app/build.gradle3
-rw-r--r--app/src/main/AndroidManifest.xml11
-rw-r--r--app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt13
-rw-r--r--app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt22
-rw-r--r--app/src/main/res/layout/activity_main.xml33
-rw-r--r--app/src/main/res/layout/content_main.xml11
-rw-r--r--app/src/main/res/values/dimens.xml1
-rw-r--r--app/src/main/res/values/strings.xml9
-rw-r--r--app/src/main/res/values/styles.xml11
9 files changed, 101 insertions, 13 deletions
diff --git a/app/build.gradle b/app/build.gradle
index e73b0e7..51ea098 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -24,9 +24,10 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
+ implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
implementation 'com.android.support:design:28.0.0-alpha3'
+ implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0847bbd..a990adc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.beam_messenger.beam_messenger">
+
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
@@ -22,6 +23,16 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+ <activity
+ android:name=".MainActivity"
+ android:label="@string/title_activity_main"
+ android:theme="@style/AppTheme.NoActionBar">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
</application>
</manifest> \ No newline at end of file
diff --git a/app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt b/app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt
index 9662778..8c91771 100644
--- a/app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt
+++ b/app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt
@@ -23,6 +23,7 @@ import android.widget.TextView
import java.util.ArrayList
import android.Manifest.permission.READ_CONTACTS
+import android.content.Intent
import kotlinx.android.synthetic.main.activity_login.*
@@ -142,13 +143,11 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks<Cursor> {
}
private fun isEmailValid(email: String): Boolean {
- //TODO: Replace this with your own logic
return email.contains("@")
}
private fun isPasswordValid(password: String): Boolean {
- //TODO: Replace this with your own logic
- return password.length > 4
+ return password.length > 7
}
/**
@@ -246,7 +245,7 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks<Cursor> {
try {
// Simulate network access.
- Thread.sleep(2000)
+ Thread.sleep(1000)
} catch (e: InterruptedException) {
return false
}
@@ -266,7 +265,9 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks<Cursor> {
showProgress(false)
if (success!!) {
- finish()
+ val intent = Intent(this@LoginActivity, MainActivity::class.java)
+ //intent.putExtra("keyIdentifier", value)
+ startActivity(intent)
} else {
password.error = getString(R.string.error_incorrect_password)
password.requestFocus()
@@ -290,6 +291,6 @@ class LoginActivity : AppCompatActivity(), LoaderCallbacks<Cursor> {
* A dummy authentication store containing known user names and passwords.
* TODO: remove after connecting to a real authentication system.
*/
- private val DUMMY_CREDENTIALS = arrayOf("foo@example.com:hello", "bar@example.com:world")
+ private val DUMMY_CREDENTIALS = arrayOf("foo@example.com:password", "bar@example.com:helloworld")
}
}
diff --git a/app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt b/app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt
new file mode 100644
index 0000000..d708a98
--- /dev/null
+++ b/app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt
@@ -0,0 +1,22 @@
+package com.beam_messenger.beam_messenger
+
+import android.os.Bundle
+import android.support.design.widget.Snackbar
+import android.support.v7.app.AppCompatActivity
+
+import kotlinx.android.synthetic.main.activity_main.*
+
+class MainActivity : AppCompatActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+ setSupportActionBar(toolbar)
+
+ fab.setOnClickListener { view ->
+ Snackbar.make(view, "Sorry, this feature is currently unavailable.", Snackbar.LENGTH_LONG)
+ .setAction("Action", null).show()
+ }
+ }
+
+}
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..eed4d89
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.design.widget.CoordinatorLayout 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"
+ tools:context=".MainActivity">
+
+ <android.support.design.widget.AppBarLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:theme="@style/AppTheme.AppBarOverlay">
+
+ <android.support.v7.widget.Toolbar
+ android:id="@+id/toolbar"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ app:popupTheme="@style/AppTheme.PopupOverlay" />
+
+ </android.support.design.widget.AppBarLayout>
+
+ <include layout="@layout/content_main" />
+
+ <android.support.design.widget.FloatingActionButton
+ android:id="@+id/fab"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom|end"
+ android:layout_margin="@dimen/fab_margin"
+ app:srcCompat="@android:drawable/ic_dialog_email" />
+
+</android.support.design.widget.CoordinatorLayout> \ No newline at end of file
diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml
new file mode 100644
index 0000000..c649451
--- /dev/null
+++ b/app/src/main/res/layout/content_main.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior"
+ tools:context=".MainActivity"
+ tools:showIn="@layout/activity_main">
+
+</android.support.constraint.ConstraintLayout> \ 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..812cb7b 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,4 +2,5 @@
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
+ <dimen name="fab_margin">16dp</dimen>
</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bfbb221..6576e72 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,14 +3,13 @@
<!-- Strings related to login -->
<string name="prompt_email">Email</string>
- <string name="prompt_password">Password (optional)</string>
- <string name="action_sign_in">Sign in or register</string>
+ <string name="prompt_password">Password</string>
+ <string name="action_sign_in">Sign in</string>
<string name="action_sign_in_short">Sign in</string>
<string name="error_invalid_email">This email address is invalid</string>
<string name="error_invalid_password">This password is too short</string>
<string name="error_incorrect_password">This password is incorrect</string>
<string name="error_field_required">This field is required</string>
- <string name="permission_rationale">"Contacts permissions are needed for providing email
- completions."
- </string>
+ <string name="permission_rationale">"Contacts permissions are needed for providing email completions."</string>
+ <string name="title_activity_main">Home</string>
</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 5885930..d4ea9ae 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,20 @@
<resources>
<!-- Base application theme. -->
- <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+ <style name="AppTheme" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
+ <style name="AppTheme.NoActionBar">
+ <item name="windowActionBar">false</item>
+ <item name="windowNoTitle">true</item>
+ </style>
+
+ <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
+
+ <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
+
</resources>