aboutsummaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/.gitignore20
-rw-r--r--app/src/androidTest/java/com/beam_messenger/beam_messenger/ExampleInstrumentedTest.kt24
-rw-r--r--app/src/main/AndroidManifest.xml33
-rw-r--r--app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt300
-rw-r--r--app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt121
-rw-r--r--app/src/main/res/drawable-v24/ic_launcher_foreground.xml34
-rw-r--r--app/src/main/res/drawable/ic_launcher_background.xml170
-rw-r--r--app/src/main/res/layout/activity_login.xml79
-rw-r--r--app/src/main/res/layout/activity_main.xml74
-rw-r--r--app/src/main/res/layout/fragment_main.xml23
-rw-r--r--app/src/main/res/menu/menu_main.xml8
-rw-r--r--app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml5
-rw-r--r--app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml5
-rw-r--r--app/src/main/res/mipmap-hdpi/ic_launcher.pngbin3056 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-hdpi/ic_launcher_round.pngbin5024 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-mdpi/ic_launcher.pngbin2096 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-mdpi/ic_launcher_round.pngbin2858 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xhdpi/ic_launcher.pngbin4569 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xhdpi/ic_launcher_round.pngbin7098 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin6464 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xxhdpi/ic_launcher_round.pngbin10676 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin9250 -> 0 bytes
-rw-r--r--app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.pngbin15523 -> 0 bytes
-rw-r--r--app/src/main/res/values-w820dp/dimens.xml6
-rw-r--r--app/src/main/res/values/colors.xml8
-rw-r--r--app/src/main/res/values/dimens.xml7
-rw-r--r--app/src/main/res/values/strings.xml20
-rw-r--r--app/src/main/res/values/styles.xml36
-rw-r--r--app/src/test/java/com/beam_messenger/beam_messenger/ExampleUnitTest.kt17
29 files changed, 0 insertions, 990 deletions
diff --git a/app/.gitignore b/app/.gitignore
deleted file mode 100644
index 6e931a3..0000000
--- a/app/.gitignore
+++ /dev/null
@@ -1,20 +0,0 @@
-/*/build/
-
-com_crashlytics_export_strings.xml
-
-local.properties
-
-.gradle/
-
-.signing/
-
-.idea/
-*.iml
-
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
-Thumbs.db \ No newline at end of file
diff --git a/app/src/androidTest/java/com/beam_messenger/beam_messenger/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/beam_messenger/beam_messenger/ExampleInstrumentedTest.kt
deleted file mode 100644
index e5f991e..0000000
--- a/app/src/androidTest/java/com/beam_messenger/beam_messenger/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.beam_messenger.beam_messenger
-
-import android.support.test.InstrumentationRegistry
-import android.support.test.runner.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
- @Test
- fun useAppContext() {
- // Context of the app under test.
- val appContext = InstrumentationRegistry.getTargetContext()
- assertEquals("com.beam_messenger.beam_messenger", appContext.packageName)
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 37391b2..0000000
--- a/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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" />
- <uses-permission android:name="android.permission.READ_CONTACTS" />
-
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:roundIcon="@mipmap/ic_launcher_round"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity
- android:name=".MainActivity"
- android:label="@string/app_name"
- android:theme="@style/AppTheme.NoActionBar">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity
- android:name=".LoginActivity"
- android:label="@string/title_activity_login"
- android:theme="@style/AppTheme"></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
deleted file mode 100644
index 4572134..0000000
--- a/app/src/main/java/com/beam_messenger/beam_messenger/LoginActivity.kt
+++ /dev/null
@@ -1,300 +0,0 @@
-package com.beam_messenger.beam_messenger
-
-import android.Manifest.permission.READ_CONTACTS
-import android.animation.Animator
-import android.animation.AnimatorListenerAdapter
-import android.annotation.TargetApi
-import android.app.LoaderManager.LoaderCallbacks
-import android.content.CursorLoader
-import android.content.Intent
-import android.content.Loader
-import android.content.pm.PackageManager
-import android.database.Cursor
-import android.net.Uri
-import android.os.AsyncTask
-import android.os.Build
-import android.os.Bundle
-import android.provider.ContactsContract
-import android.support.design.widget.Snackbar
-import android.support.v7.app.AppCompatActivity
-import android.text.TextUtils
-import android.view.Gravity
-import android.view.View
-import android.view.inputmethod.EditorInfo
-import android.widget.ArrayAdapter
-import android.widget.TextView
-import android.widget.Toast
-import kotlinx.android.synthetic.main.activity_login.*
-import java.util.*
-
-/**
- * A login screen that offers login via email/password.
- */
-class LoginActivity : AppCompatActivity(), LoaderCallbacks<Cursor> {
- /**
- * Keep track of the login task to ensure we can cancel it if requested.
- */
- private var mAuthTask: UserLoginTask? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_login)
- // Set up the login form.
- populateAutoComplete()
- password.setOnEditorActionListener(TextView.OnEditorActionListener { _, id, _ ->
- if (id == EditorInfo.IME_ACTION_DONE || id == EditorInfo.IME_NULL) {
- attemptLogin()
- return@OnEditorActionListener true
- }
- false
- })
-
- email_sign_in_button.setOnClickListener { attemptLogin() }
- }
-
- private fun populateAutoComplete() {
- if (!mayRequestContacts()) {
- return
- }
-
- loaderManager.initLoader(0, null, this)
- }
-
- private fun mayRequestContacts(): Boolean {
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
- return true
- }
- if (checkSelfPermission(READ_CONTACTS) == PackageManager.PERMISSION_GRANTED) {
- return true
- }
- if (shouldShowRequestPermissionRationale(READ_CONTACTS)) {
- Snackbar.make(email, R.string.permission_rationale, Snackbar.LENGTH_INDEFINITE)
- .setAction(android.R.string.ok,
- { requestPermissions(arrayOf(READ_CONTACTS), REQUEST_READ_CONTACTS) })
- } else {
- requestPermissions(arrayOf(READ_CONTACTS), REQUEST_READ_CONTACTS)
- }
- return false
- }
-
- /**
- * Callback received when a permissions request has been completed.
- */
- override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>,
- grantResults: IntArray) {
- if (requestCode == REQUEST_READ_CONTACTS) {
- if (grantResults.size == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- populateAutoComplete()
- }
- }
- }
-
-
- /**
- * Attempts to sign in or register the account specified by the login form.
- * If there are form errors (invalid email, missing fields, etc.), the
- * errors are presented and no actual login attempt is made.
- */
- private fun attemptLogin() {
- if (mAuthTask != null) {
- return
- }
-
- // Reset errors.
- email.error = null
- password.error = null
-
- // Store values at the time of the login attempt.
- val emailStr = email.text.toString()
- val passwordStr = password.text.toString()
-
- var cancel = false
- var focusView: View? = null
-
- // Check for a valid password, if the user entered one.
- if (!TextUtils.isEmpty(passwordStr) && !isPasswordValid(passwordStr)) {
- password.error = getString(R.string.error_invalid_password)
- focusView = password
- cancel = true
- }
-
- // Check for a valid email address.
- if (TextUtils.isEmpty(emailStr)) {
- email.error = getString(R.string.error_field_required)
- focusView = email
- cancel = true
- } else if (!isEmailValid(emailStr)) {
- email.error = getString(R.string.error_invalid_email)
- focusView = email
- cancel = true
- }
-
- if (cancel) {
- // There was an error; don't attempt login and focus the first
- // form field with an error.
- focusView?.requestFocus()
- } else {
- // Show a progress spinner, and kick off a background task to
- // perform the user login attempt.
- showProgress(true)
- mAuthTask = UserLoginTask(emailStr, passwordStr)
- mAuthTask!!.execute(null as Void?)
- }
- }
-
- private fun isEmailValid(email: String): Boolean {
- return email.contains("@") && email.length >= 4
- }
-
- private fun isPasswordValid(password: String): Boolean {
- return password.length >= 8
- }
-
- /**
- * Shows the progress UI and hides the login form.
- */
- @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
- private fun showProgress(show: Boolean) {
- // On Honeycomb MR2 we have the ViewPropertyAnimator APIs, which allow
- // for very easy animations. If available, use these APIs to fade-in
- // the progress spinner.
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
- val shortAnimTime = resources.getInteger(android.R.integer.config_shortAnimTime).toLong()
-
- login_form.visibility = if (show) View.GONE else View.VISIBLE
- login_form.animate()
- .setDuration(shortAnimTime)
- .alpha((if (show) 0 else 1).toFloat())
- .setListener(object : AnimatorListenerAdapter() {
- override fun onAnimationEnd(animation: Animator) {
- login_form.visibility = if (show) View.GONE else View.VISIBLE
- }
- })
-
- login_progress.visibility = if (show) View.VISIBLE else View.GONE
- login_progress.animate()
- .setDuration(shortAnimTime)
- .alpha((if (show) 1 else 0).toFloat())
- .setListener(object : AnimatorListenerAdapter() {
- override fun onAnimationEnd(animation: Animator) {
- login_progress.visibility = if (show) View.VISIBLE else View.GONE
- }
- })
- } else {
- // The ViewPropertyAnimator APIs are not available, so simply show
- // and hide the relevant UI components.
- login_progress.visibility = if (show) View.VISIBLE else View.GONE
- login_form.visibility = if (show) View.GONE else View.VISIBLE
- }
- }
-
- override fun onCreateLoader(i: Int, bundle: Bundle?): Loader<Cursor> {
- return CursorLoader(this,
- // Retrieve data rows for the device user's 'profile' contact.
- Uri.withAppendedPath(ContactsContract.Profile.CONTENT_URI,
- ContactsContract.Contacts.Data.CONTENT_DIRECTORY), ProfileQuery.PROJECTION,
-
- // Select only email addresses.
- ContactsContract.Contacts.Data.MIMETYPE + " = ?", arrayOf(ContactsContract.CommonDataKinds.Email
- .CONTENT_ITEM_TYPE),
-
- // Show primary email addresses first. Note that there won't be
- // a primary email address if the user hasn't specified one.
- ContactsContract.Contacts.Data.IS_PRIMARY + " DESC")
- }
-
- override fun onLoadFinished(cursorLoader: Loader<Cursor>, cursor: Cursor) {
- val emails = ArrayList<String>()
- cursor.moveToFirst()
- while (!cursor.isAfterLast) {
- emails.add(cursor.getString(ProfileQuery.ADDRESS))
- cursor.moveToNext()
- }
-
- addEmailsToAutoComplete(emails)
- }
-
- override fun onLoaderReset(cursorLoader: Loader<Cursor>) {
-
- }
-
- private fun addEmailsToAutoComplete(emailAddressCollection: List<String>) {
- //Create adapter to tell the AutoCompleteTextView what to show in its dropdown list.
- val adapter = ArrayAdapter(this@LoginActivity,
- android.R.layout.simple_dropdown_item_1line, emailAddressCollection)
-
- email.setAdapter(adapter)
- }
-
- object ProfileQuery {
- val PROJECTION = arrayOf(
- ContactsContract.CommonDataKinds.Email.ADDRESS,
- ContactsContract.CommonDataKinds.Email.IS_PRIMARY)
- val ADDRESS = 0
- val IS_PRIMARY = 1
- }
-
- /**
- * Represents an asynchronous login/registration task used to authenticate
- * the user.
- */
- inner class UserLoginTask internal constructor(private val mEmail: String, private val mPassword: String) : AsyncTask<Void, Void, Boolean>() {
-
- override fun doInBackground(vararg params: Void): Boolean? {
- // TODO: attempt authentication against a network service.
-
- try {
- // Simulate network access.
- Thread.sleep(1000)
- } catch (e: InterruptedException) {
- return false
- }
-
- return DUMMY_CREDENTIALS
- .map { it.split(":") }
- .firstOrNull { it[0] == mEmail }
- ?.let {
- // Account exists, return true if the password matches.
- it[1] == mPassword
- }
- ?: true
- }
-
- override fun onPostExecute(success: Boolean?) {
- mAuthTask = null
- showProgress(false)
-
- if (success!!) {
- val toast = Toast.makeText(this@LoginActivity, "Successfully logged in.", Toast.LENGTH_LONG)
- toast.setGravity(Gravity.CENTER, 0, 0)
- toast.show()
-
- 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()
- }
- }
-
- override fun onCancelled() {
- mAuthTask = null
- showProgress(false)
- }
- }
-
- companion object {
-
- /**
- * Id to identity READ_CONTACTS permission request.
- */
- private val REQUEST_READ_CONTACTS = 0
-
- /**
- * 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: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
deleted file mode 100644
index e759854..0000000
--- a/app/src/main/java/com/beam_messenger/beam_messenger/MainActivity.kt
+++ /dev/null
@@ -1,121 +0,0 @@
-package com.beam_messenger.beam_messenger
-
-import android.content.Intent
-import android.os.Bundle
-import android.support.design.widget.TabLayout
-import android.support.v4.app.Fragment
-import android.support.v4.app.FragmentManager
-import android.support.v4.app.FragmentPagerAdapter
-import android.support.v7.app.AppCompatActivity
-import android.view.*
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.fragment_main.view.*
-
-class MainActivity : AppCompatActivity() {
-
- /**
- * The [android.support.v4.view.PagerAdapter] that will provide
- * fragments for each of the sections. We use a
- * {@link FragmentPagerAdapter} derivative, which will keep every
- * loaded fragment in memory. If this becomes too memory intensive, it
- * may be best to switch to a
- * [android.support.v4.app.FragmentStatePagerAdapter].
- */
- private var mSectionsPagerAdapter: SectionsPagerAdapter? = null
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
-
- setSupportActionBar(toolbar)
- // Create the adapter that will return a fragment for each of the three
- // primary sections of the activity.
- mSectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager)
-
- // Set up the ViewPager with the sections adapter.
- container.adapter = mSectionsPagerAdapter
-
- container.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabs))
- tabs.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(container))
-
- fab.setOnClickListener { view ->
- val intent = Intent(this@MainActivity, LoginActivity::class.java)
- startActivity(intent)
- /*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show()*/
- }
- }
-
-
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- // Inflate the menu; this adds items to the action bar if it is present.
- menuInflater.inflate(R.menu.menu_main, menu)
- return true
- }
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
- val id = item.itemId
-
- if (id == R.id.action_settings) {
- val intent = Intent(this@MainActivity, LoginActivity::class.java)
- startActivity(intent)
- }
-
- return super.onOptionsItemSelected(item)
- }
-
-
- /**
- * A [FragmentPagerAdapter] that returns a fragment corresponding to
- * one of the sections/tabs/pages.
- */
- inner class SectionsPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
-
- override fun getItem(position: Int): Fragment {
- // getItem is called to instantiate the fragment for the given page.
- // Return a PlaceholderFragment (defined as a static inner class below).
- return PlaceholderFragment.newInstance(position + 1)
- }
-
- override fun getCount(): Int {
- // Show 3 total pages.
- return 3
- }
- }
-
- /**
- * A placeholder fragment containing a simple view.
- */
- class PlaceholderFragment : Fragment() {
-
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?): View? {
- val rootView = inflater.inflate(R.layout.fragment_main, container, false)
- rootView.section_label.text = getString(R.string.section_format, arguments?.getInt(ARG_SECTION_NUMBER))
- return rootView
- }
-
- companion object {
- /**
- * The fragment argument representing the section number for this
- * fragment.
- */
- private val ARG_SECTION_NUMBER = "section_number"
-
- /**
- * Returns a new instance of this fragment for the given section
- * number.
- */
- fun newInstance(sectionNumber: Int): PlaceholderFragment {
- val fragment = PlaceholderFragment()
- val args = Bundle()
- args.putInt(ARG_SECTION_NUMBER, sectionNumber)
- fragment.arguments = args
- return fragment
- }
- }
- }
-}
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
deleted file mode 100644
index c7bd21d..0000000
--- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:aapt="http://schemas.android.com/aapt"
- android:width="108dp"
- android:height="108dp"
- android:viewportHeight="108"
- android:viewportWidth="108">
- <path
- android:fillType="evenOdd"
- android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
- android:strokeColor="#00000000"
- android:strokeWidth="1">
- <aapt:attr name="android:fillColor">
- <gradient
- android:endX="78.5885"
- android:endY="90.9159"
- android:startX="48.7653"
- android:startY="61.0927"
- android:type="linear">
- <item
- android:color="#44000000"
- android:offset="0.0" />
- <item
- android:color="#00000000"
- android:offset="1.0" />
- </gradient>
- </aapt:attr>
- </path>
- <path
- android:fillColor="#FFFFFF"
- android:fillType="nonZero"
- android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
- android:strokeColor="#00000000"
- android:strokeWidth="1" />
-</vector>
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index d5fccc5..0000000
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="108dp"
- android:height="108dp"
- android:viewportHeight="108"
- android:viewportWidth="108">
- <path
- android:fillColor="#26A69A"
- android:pathData="M0,0h108v108h-108z" />
- <path
- android:fillColor="#00000000"
- android:pathData="M9,0L9,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,0L19,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M29,0L29,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M39,0L39,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M49,0L49,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M59,0L59,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M69,0L69,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M79,0L79,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M89,0L89,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M99,0L99,108"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,9L108,9"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,19L108,19"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,29L108,29"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,39L108,39"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,49L108,49"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,59L108,59"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,69L108,69"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,79L108,79"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,89L108,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M0,99L108,99"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,29L89,29"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,39L89,39"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,49L89,49"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,59L89,59"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,69L89,69"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M19,79L89,79"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M29,19L29,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M39,19L39,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M49,19L49,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M59,19L59,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M69,19L69,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
- <path
- android:fillColor="#00000000"
- android:pathData="M79,19L79,89"
- android:strokeColor="#33FFFFFF"
- android:strokeWidth="0.8" />
-</vector>
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
deleted file mode 100644
index 9e7d237..0000000
--- a/app/src/main/res/layout/activity_login.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center_vertical|center_horizontal"
- android:orientation="vertical"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context=".LoginActivity">
-
- <!-- Login progress -->
- <ProgressBar
- android:id="@+id/login_progress"
- style="?android:attr/progressBarStyleLarge"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="8dp"
- android:visibility="gone" />
-
- <ScrollView
- android:id="@+id/login_form"
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <LinearLayout
- android:id="@+id/email_login_form"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <android.support.design.widget.TextInputLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <AutoCompleteTextView
- android:id="@+id/email"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/prompt_email"
- android:inputType="textEmailAddress"
- android:maxLines="1"
- android:singleLine="true" />
-
- </android.support.design.widget.TextInputLayout>
-
- <android.support.design.widget.TextInputLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content">
-
- <EditText
- android:id="@+id/password"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:hint="@string/prompt_password"
- android:imeActionId="6"
- android:imeActionLabel="@string/action_sign_in_short"
- android:imeOptions="actionUnspecified"
- android:inputType="textPassword"
- android:maxLines="1"
- android:singleLine="true" />
-
- </android.support.design.widget.TextInputLayout>
-
- <Button
- android:id="@+id/email_sign_in_button"
- style="@style/Widget.AppCompat.Button.Colored"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
- android:background="@drawable/gradient_button"
- android:text="@string/action_sign_in"
- android:textStyle="bold" />
-
- </LinearLayout>
- </ScrollView>
-</LinearLayout> \ 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
deleted file mode 100644
index 0e2a766..0000000
--- a/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?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:id="@+id/main_content"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- tools:context=".MainActivity">
-
- <android.support.design.widget.AppBarLayout
- android:id="@+id/appbar"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="@dimen/appbar_padding_top"
- 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:layout_weight="1"
- android:background="?attr/colorPrimary"
- app:layout_scrollFlags="scroll|enterAlways"
- app:popupTheme="@style/AppTheme.PopupOverlay"
- app:theme="@style/ActionBarThemeOverlay"
- app:title="@string/app_name">
-
- </android.support.v7.widget.Toolbar>
-
- <android.support.design.widget.TabLayout
- android:id="@+id/tabs"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:tabMode="fixed"
- app:tabSelectedTextColor="@color/tabSelectedTextColor"
- app:tabTextColor="@color/tabTextColor">
-
- <android.support.design.widget.TabItem
- android:id="@+id/tabItem"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/tab_text_1" />
-
- <android.support.design.widget.TabItem
- android:id="@+id/tabItem2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/tab_text_2" />
-
- <android.support.design.widget.TabItem
- android:id="@+id/tabItem3"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/tab_text_3" />
-
- </android.support.design.widget.TabLayout>
- </android.support.design.widget.AppBarLayout>
-
- <android.support.v4.view.ViewPager
- android:id="@+id/container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:layout_behavior="@string/appbar_scrolling_view_behavior" />
-
- <android.support.design.widget.FloatingActionButton
- android:id="@+id/fab"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="end|bottom"
- android:layout_margin="@dimen/fab_margin"
- app:srcCompat="@android:drawable/ic_secure" />
-
-</android.support.design.widget.CoordinatorLayout> \ 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
deleted file mode 100644
index 108217e..0000000
--- a/app/src/main/res/layout/fragment_main.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?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:id="@+id/constraintLayout"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".MainActivity$PlaceholderFragment">
-
- <TextView
- android:id="@+id/section_label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginBottom="@dimen/activity_vertical_margin"
- android:layout_marginEnd="@dimen/activity_horizontal_margin"
- android:layout_marginStart="@dimen/activity_horizontal_margin"
- android:layout_marginTop="@dimen/activity_vertical_margin"
- app:layout_constraintLeft_toLeftOf="parent"
- app:layout_constraintTop_toTopOf="@+id/constraintLayout"
- tools:layout_constraintLeft_creator="1"
- tools:layout_constraintTop_creator="1" />
-
-</android.support.constraint.ConstraintLayout> \ No newline at end of file
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
deleted file mode 100644
index cefca9d..0000000
--- a/app/src/main/res/menu/menu_main.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<menu xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- tools:context="com.beam_messenger.beam_messenger.MainActivity">
- <item
- android:id="@+id/action_settings"
- android:orderInCategory="100"
- android:title="@string/action_settings" />
-</menu>
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index eca70cf..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
- <background android:drawable="@drawable/ic_launcher_background" />
- <foreground android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon> \ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index eca70cf..0000000
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
- <background android:drawable="@drawable/ic_launcher_background" />
- <foreground android:drawable="@drawable/ic_launcher_foreground" />
-</adaptive-icon> \ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index a2f5908..0000000
--- a/app/src/main/res/mipmap-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
deleted file mode 100644
index 1b52399..0000000
--- a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index ff10afd..0000000
--- a/app/src/main/res/mipmap-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
deleted file mode 100644
index 115a4c7..0000000
--- a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index dcd3cd8..0000000
--- a/app/src/main/res/mipmap-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
deleted file mode 100644
index 459ca60..0000000
--- a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 8ca12fe..0000000
--- a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
deleted file mode 100644
index 8e19b41..0000000
--- a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index b824ebd..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
deleted file mode 100644
index 4c19a13..0000000
--- a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
+++ /dev/null
Binary files differ
diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml
deleted file mode 100644
index 63fc816..0000000
--- a/app/src/main/res/values-w820dp/dimens.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<resources>
- <!-- Example customization of dimensions originally defined in res/values/dimens.xml
- (such as screen margins) for screens with more than 820dp of available width. This
- would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
- <dimen name="activity_horizontal_margin">64dp</dimen>
-</resources>
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
deleted file mode 100644
index 8c8fcb3..0000000
--- a/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <color name="colorPrimary">#fffafafa</color>
- <color name="colorPrimaryDark">#e7e7e7</color>
- <color name="colorAccent">#E91E63</color>
- <color name="tabTextColor">#6c6c6c</color>
- <color name="tabSelectedTextColor">#000</color>
-</resources>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
deleted file mode 100644
index cef3abc..0000000
--- a/app/src/main/res/values/dimens.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<resources>
- <!-- 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>
- <dimen name="appbar_padding_top">8dp</dimen>
-</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
deleted file mode 100644
index e4c7ea7..0000000
--- a/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<resources>
- <string name="app_name">BEAM-Messenger</string>
- <string name="tab_text_1">Chats</string>
- <string name="tab_text_2">Posts</string>
- <string name="tab_text_3">Contacts</string>
- <string name="action_settings">Sign in</string>
- <string name="section_format">This is tab: %1$d</string>
- <string name="title_activity_login">Sign in</string>
-
- <!-- Strings related to login -->
- <string name="prompt_email">Email</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>
-</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
deleted file mode 100644
index 625079e..0000000
--- a/app/src/main/res/values/styles.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources xmlns:tools="http://schemas.android.com/tools">
-
- <!-- Base application theme. -->
- <style name="AppTheme" parent="Theme.AppCompat.Light">
- <!-- Customize your theme here. -->
- <item name="colorPrimary">@color/colorPrimary</item>
- <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
- <item name="colorAccent">@color/colorAccent</item>
- <item name="tabTextColor">@color/tabTextColor</item>
- <item name="android:colorControlNormal">@color/tabTextColor</item>
- <item name="android:windowAnimationStyle">@style/AppTheme.WindowTransition</item>
- <item name="android:toolbarStyle">@color/tabTextColor</item>
- <item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
- </style>
-
- <style name="AppTheme.NoActionBar">
- <item name="windowActionBar">false</item>
- <item name="windowNoTitle">true</item>
- </style>
-
- <style name="ActionBarThemeOverlay">
- <item name="android:textColorPrimary">@color/tabSelectedTextColor</item>
- </style>
-
- <!-- Setting window animation -->
- <style name="AppTheme.WindowTransition">
- <item name="android:windowEnterAnimation">@android:anim/fade_in</item>
- <item name="android:windowExitAnimation">@android:anim/fade_out</item>
- </style>
-
- <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
-
- <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
-
-</resources>
diff --git a/app/src/test/java/com/beam_messenger/beam_messenger/ExampleUnitTest.kt b/app/src/test/java/com/beam_messenger/beam_messenger/ExampleUnitTest.kt
deleted file mode 100644
index c1f5bb6..0000000
--- a/app/src/test/java/com/beam_messenger/beam_messenger/ExampleUnitTest.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.beam_messenger.beam_messenger
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
- @Test
- fun addition_isCorrect() {
- assertEquals(4, 2 + 2)
- }
-}