diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bb9ca60..95a386a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -35,9 +35,17 @@
+
+ android:name=".ui.main.MainActivity"
+ android:screenOrientation="${orientation}" >
+
+
+
+
+
+
+
> (){{
put(ViewNames.LOGIN_ACTIVITY, LoginActivity.class);
put(ViewNames.LOBBY_ACTIVITY, LobbyActivity.class);
- put(ViewNames.MEETING_ACTIVITY, MeetingActivity.class);
put(ViewNames.SESSION_ACTIVITY, SessionActivity.class);
put(ViewNames.LIST_ACTIVITY, ListSessionsActivity.class);
+ put(ViewNames.MAIN_ACTIVITY, MainActivity.class);
}};
public void goNext(Context context, String activityName, boolean shouldClearStack)
diff --git a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/ViewNames.java b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/ViewNames.java
index 32597f3..04429fd 100644
--- a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/ViewNames.java
+++ b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/ViewNames.java
@@ -7,5 +7,6 @@ public class ViewNames {
public static final String MEETING_ACTIVITY = "meeting_activity";
public static final String SESSION_ACTIVITY = "session_activity";
public static final String LIST_ACTIVITY = "list_activity";
+ public static final String MAIN_ACTIVITY = "main_activity";
}
diff --git a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/lobby/LobbyActivity.java b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/lobby/LobbyActivity.java
index 07de312..d5c19da 100644
--- a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/lobby/LobbyActivity.java
+++ b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/lobby/LobbyActivity.java
@@ -47,7 +47,7 @@ public class LobbyActivity extends AppCompatActivity implements LobbyContract.Vi
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+ setContentView(R.layout.activity_lobby);
((StickySessionApplication) getApplication()).inject(this);
diff --git a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/login/LoginActivity.kt b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/login/LoginActivity.kt
index df1ba4a..192e782 100644
--- a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/login/LoginActivity.kt
+++ b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/login/LoginActivity.kt
@@ -106,8 +106,8 @@ class LoginActivity : AppCompatActivity() {
// Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
- val task = GoogleSignIn.getSignedInAccountFromIntent(data)
try {
+ val task = GoogleSignIn.getSignedInAccountFromIntent(data)
// Google Sign In was successful, authenticate with Firebase
val account = task.getResult(ApiException::class.java)
firebaseAuthWithGoogle(account!!)
diff --git a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/main/MainActivity.kt b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/main/MainActivity.kt
new file mode 100644
index 0000000..65cc5b7
--- /dev/null
+++ b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/main/MainActivity.kt
@@ -0,0 +1,104 @@
+package br.org.cesar.discordtime.stickysessions.ui.main
+
+import android.os.Build
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuItem
+import android.widget.TextView
+import androidx.appcompat.app.ActionBarDrawerToggle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.widget.Toolbar
+import androidx.core.content.ContextCompat
+import androidx.core.graphics.drawable.DrawableCompat
+import androidx.core.view.GravityCompat
+import br.org.cesar.discordtime.stickysessions.R
+import br.org.cesar.discordtime.stickysessions.ui.meeting.MeetingFragment
+import com.google.android.material.navigation.NavigationView
+import com.google.android.material.snackbar.Snackbar
+
+import kotlinx.android.synthetic.main.activity_main.*
+import kotlinx.android.synthetic.main.activity_main_app_bar.*
+
+class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
+
+ private lateinit var mToolbarTitle: TextView
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+ configureToolbar()
+
+ fab.setOnClickListener { view ->
+ Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+ .setAction("Action", null).show()
+ }
+
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_container, MeetingFragment()).commit()
+ }
+
+ private fun configureToolbar() {
+ val toolbar = findViewById(R.id.toolbar)
+ setSupportActionBar(toolbar)
+
+ supportActionBar?.apply {
+ setDisplayShowHomeEnabled(true)
+ setDisplayHomeAsUpEnabled(true)
+ }
+
+ mToolbarTitle = findViewById(R.id.toolbar_title)
+ mToolbarTitle.apply {
+ text = getString(R.string.nav_header_desc)
+ }
+
+ val toggle = ActionBarDrawerToggle(
+ this, drawer_layout, toolbar, R.string.navigation_drawer_open,
+ R.string.navigation_drawer_close
+ )
+
+ drawer_layout.addDrawerListener(toggle)
+ toggle.syncState()
+
+ nav_view.setNavigationItemSelectedListener(this)
+ }
+
+ override fun onBackPressed() {
+ if (drawer_layout.isDrawerOpen(GravityCompat.START)) {
+ drawer_layout.closeDrawer(GravityCompat.START)
+ } else {
+ super.onBackPressed()
+ }
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu): Boolean {
+ menuInflater.inflate(R.menu.drawer_menu, menu)
+
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
+ val icon = menu.findItem(R.id.notification_menu).icon
+ val drawable = DrawableCompat.wrap(icon)
+ DrawableCompat.setTint(drawable, ContextCompat.getColor(this, R.color.coral))
+ menu.findItem(R.id.notification_menu).apply {
+ setIcon(drawable)
+ }
+ }
+
+ return true
+ }
+
+ override fun onNavigationItemSelected(item: MenuItem): Boolean {
+ when (item.itemId) {
+ R.id.nav_meetings -> { showMeetingFragment() }
+ R.id.nav_about -> { }
+ R.id.nav_settings -> { }
+ }
+
+ drawer_layout.closeDrawer(GravityCompat.START)
+ return true
+ }
+
+ private fun showMeetingFragment() {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.main_container, MeetingFragment()).commit()
+ }
+
+}
diff --git a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingActivity.kt b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingFragment.kt
similarity index 67%
rename from app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingActivity.kt
rename to app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingFragment.kt
index e7326e3..b2de515 100644
--- a/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingActivity.kt
+++ b/app/src/main/java/br/org/cesar/discordtime/stickysessions/ui/meeting/MeetingFragment.kt
@@ -3,12 +3,13 @@ package br.org.cesar.discordtime.stickysessions.ui.meeting
import android.annotation.SuppressLint
import android.os.Bundle
import android.util.Log
+import android.view.LayoutInflater
import android.view.View
+import android.view.ViewGroup
import android.widget.ProgressBar
-import android.widget.TextView
-import androidx.appcompat.app.AppCompatActivity
-import androidx.appcompat.widget.Toolbar
+import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import br.org.cesar.discordtime.stickysessions.R
import br.org.cesar.discordtime.stickysessions.app.StickySessionApplication
import br.org.cesar.discordtime.stickysessions.navigation.exception.InvalidViewNameException
@@ -18,42 +19,38 @@ import br.org.cesar.discordtime.stickysessions.navigation.wrapper.IViewStarter
import br.org.cesar.discordtime.stickysessions.presentation.meeting.MeetingContract
import br.org.cesar.discordtime.stickysessions.presentation.meeting.MeetingItem
import br.org.cesar.discordtime.stickysessions.ui.ViewNames
-import kotlinx.android.synthetic.main.activity_meeting.*
import javax.inject.Inject
-import kotlinx.android.synthetic.main.activity_meeting.recycler_view_meetings as mRecyclerView
-class MeetingActivity : AppCompatActivity(), MeetingContract.View {
+class MeetingFragment : Fragment(), MeetingContract.View {
@Inject
lateinit var mPresenter: MeetingContract.Presenter
@Inject
lateinit var mViewStarter: IViewStarter
- lateinit var mProgressBar: ProgressBar
- lateinit var mAdapter: MeetingItemAdapter
+ private lateinit var mProgressBar: ProgressBar
+ private lateinit var mRecyclerView: RecyclerView
+ private lateinit var mAdapter: MeetingItemAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_meeting)
- (application as StickySessionApplication).inject(this)
-
- mProgressBar = findViewById(R.id.progressbar)
- configureToolbar()
- configureRecycleView()
+ (activity?.application as StickySessionApplication).inject(this)
}
- private fun configureToolbar() {
- val toolbar = findViewById(R.id.toolbar)
- setSupportActionBar(toolbar)
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?): View? {
+ val rootView = inflater.inflate(R.layout.fragment_meeting, container, false)
- val toolbarTitle = findViewById(R.id.toolbar_title)
- toolbarTitle.setText(R.string.toolbar_title_meetings)
+ mProgressBar = rootView.findViewById(R.id.progressbar)
+ configureRecyclerView(rootView)
+ return rootView
}
@SuppressLint("CheckResult")
- private fun configureRecycleView() {
- mAdapter = MeetingItemAdapter(this)
+ private fun configureRecyclerView(rootView: View) {
+ mAdapter = MeetingItemAdapter(rootView.context)
+ mRecyclerView = rootView.findViewById(R.id.recycler_view_meetings)
mRecyclerView.apply {
- layoutManager = LinearLayoutManager(this@MeetingActivity)
+ layoutManager = LinearLayoutManager(rootView.context)
adapter = mAdapter
}
mAdapter.clickEvent.subscribe {
@@ -100,10 +97,10 @@ class MeetingActivity : AppCompatActivity(), MeetingContract.View {
@Throws(InvalidViewNameException::class)
override fun goNext(route: Route, bundle: IBundle) {
- mViewStarter.goNext(this, route.to, route.shouldClearStack, bundle)
+ mViewStarter.goNext(activity, route.to, route.shouldClearStack, bundle)
}
companion object {
- const val TAG = "MeetingActivity"
+ const val TAG = "MeetingFragment"
}
}
diff --git a/app/src/main/res/color/drawer_item.xml b/app/src/main/res/color/drawer_item.xml
new file mode 100644
index 0000000..d772db7
--- /dev/null
+++ b/app/src/main/res/color/drawer_item.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_about.xml b/app/src/main/res/drawable/ic_about.xml
new file mode 100644
index 0000000..e3c2ae8
--- /dev/null
+++ b/app/src/main/res/drawable/ic_about.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_coffee.xml b/app/src/main/res/drawable/ic_coffee.xml
new file mode 100644
index 0000000..96df31a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_coffee.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_logout.xml b/app/src/main/res/drawable/ic_logout.xml
new file mode 100644
index 0000000..6f40d77
--- /dev/null
+++ b/app/src/main/res/drawable/ic_logout.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_send.xml b/app/src/main/res/drawable/ic_menu_send.xml
new file mode 100644
index 0000000..9745066
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_send.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_share.xml b/app/src/main/res/drawable/ic_menu_share.xml
new file mode 100644
index 0000000..b3e39e2
--- /dev/null
+++ b/app/src/main/res/drawable/ic_menu_share.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_notification.xml b/app/src/main/res/drawable/ic_notification.xml
new file mode 100644
index 0000000..232803d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_notification.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_settings.xml b/app/src/main/res/drawable/ic_settings.xml
new file mode 100644
index 0000000..d36e89c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_settings.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/font/roboto.xml b/app/src/main/res/font/roboto.xml
new file mode 100644
index 0000000..2641caf
--- /dev/null
+++ b/app/src/main/res/font/roboto.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/app/src/main/res/font/roboto_bold.xml b/app/src/main/res/font/roboto_bold.xml
new file mode 100644
index 0000000..1e8c20a
--- /dev/null
+++ b/app/src/main/res/font/roboto_bold.xml
@@ -0,0 +1,7 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_lobby.xml b/app/src/main/res/layout/activity_lobby.xml
new file mode 100644
index 0000000..781346d
--- /dev/null
+++ b/app/src/main/res/layout/activity_lobby.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 3bb5322..0248be2 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,50 +1,34 @@
-
+ android:fitsSystemWindows="true"
+ tools:openDrawer="start">
-
+ android:layout_height="match_parent"/>
-
-
-
+ android:layout_height="match_parent"
+ android:layout_gravity="start"
+ android:fitsSystemWindows="true"
+ android:background="@color/white"
+ app:itemIconTint="@color/drawer_item"
+ app:itemTextColor="@color/drawer_item"
+ app:itemBackground="@color/white"
+ app:headerLayout="@layout/activity_main_nav_header"
+ app:menu="@menu/profile_menu_drawer">
+
+
+
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_app_bar.xml b/app/src/main/res/layout/activity_main_app_bar.xml
new file mode 100644
index 0000000..f6e491e
--- /dev/null
+++ b/app/src/main/res/layout/activity_main_app_bar.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_bottom.xml b/app/src/main/res/layout/activity_main_bottom.xml
new file mode 100644
index 0000000..cf605db
--- /dev/null
+++ b/app/src/main/res/layout/activity_main_bottom.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_content.xml b/app/src/main/res/layout/activity_main_content.xml
new file mode 100644
index 0000000..b2b3d2e
--- /dev/null
+++ b/app/src/main/res/layout/activity_main_content.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_nav_header.xml b/app/src/main/res/layout/activity_main_nav_header.xml
new file mode 100644
index 0000000..60fb18a
--- /dev/null
+++ b/app/src/main/res/layout/activity_main_nav_header.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_meeting.xml b/app/src/main/res/layout/activity_meeting.xml
deleted file mode 100644
index 1e0686d..0000000
--- a/app/src/main/res/layout/activity_meeting.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_meeting.xml b/app/src/main/res/layout/fragment_meeting.xml
new file mode 100644
index 0000000..cd19d6b
--- /dev/null
+++ b/app/src/main/res/layout/fragment_meeting.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/menu-v26/drawer_menu.xml b/app/src/main/res/menu-v26/drawer_menu.xml
new file mode 100644
index 0000000..7368cb9
--- /dev/null
+++ b/app/src/main/res/menu-v26/drawer_menu.xml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/drawer_menu.xml b/app/src/main/res/menu/drawer_menu.xml
new file mode 100644
index 0000000..9f2c6b5
--- /dev/null
+++ b/app/src/main/res/menu/drawer_menu.xml
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/profile_menu_drawer.xml b/app/src/main/res/menu/profile_menu_drawer.xml
new file mode 100644
index 0000000..da04616
--- /dev/null
+++ b/app/src/main/res/menu/profile_menu_drawer.xml
@@ -0,0 +1,22 @@
+
+
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 9c4280b..d5f5a88 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -8,10 +8,11 @@
#ffc000
#ffffff
+ #000000
#f3f3f3
#42023e
#2d042a
- #ff534b
+ #FF534B
#b3ffffff
#8b8b8b
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 57d8862..ea1854a 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,4 +1,12 @@
147dp
+
+
+ 16dp
+ 16dp
+ 8dp
+ 176dp
+ 16dp
+ 13sp
\ No newline at end of file
diff --git a/app/src/main/res/values/preloaded_fonts.xml b/app/src/main/res/values/preloaded_fonts.xml
index f353d83..1d19856 100644
--- a/app/src/main/res/values/preloaded_fonts.xml
+++ b/app/src/main/res/values/preloaded_fonts.xml
@@ -2,5 +2,7 @@
- @font/annie_use_your_telescope
+ - @font/roboto
+ - @font/roboto_bold
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index eececf8..9e63826 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -35,10 +35,28 @@
responses
6 responses
+
dot
icon representing sessions
icon representing participants
%s %s
Recents
Older
+
+ Open navigation drawer
+ Close navigation drawer
+ Maria Silva
+ maria.silva@gmail.com
+ Navigation header
+ Meetings
+ About
+ Settings
+ v %1$s
+ Logout Icon
+ LOG OUT
+
+ meetings
+
+
+ Hello blank fragment
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3bdaee5..c0fd428 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -149,4 +149,21 @@
- @color/chip_state_colors
+
+
+
+
+
+
+
+