Bimba.git

commit 16f989a7c6b0ab0f424ce7a886c51366d143a0b7

Author: Adam Pioterek <adam.pioterek@protonmail.ch>

Navigation drawer & refreshing as option in drawer

 app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt | 30 
 app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt | 2 
 app/src/main/res/layout/activity_dash.xml | 102 
 app/src/main/res/menu/menu_drawer.xml | 19 
 build.gradle | 2 
 gradle/wrapper/gradle-wrapper.properties | 4 


diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
index b58059fb156c426130e6b4e0b23fb5d85119effe..75060c7cde44a199cf26f017a404960d7566a336 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/activities/DashActivity.kt
@@ -5,26 +5,29 @@ import android.os.*
 import android.support.design.widget.Snackbar
 import android.support.v7.app.*
 import android.text.Html
-import android.view.View
 import com.arlib.floatingsearchview.FloatingSearchView
 import com.arlib.floatingsearchview.suggestions.model.SearchSuggestion
 import ml.adamsprogs.bimba.models.*
 import kotlin.concurrent.thread
 import android.app.Activity
+import android.support.design.widget.NavigationView
 import android.support.v4.widget.*
 import android.support.v7.widget.*
 import android.util.Log
-import android.view.Menu
-import android.view.MenuItem
+import android.view.*
 import android.view.inputmethod.InputMethodManager
 import ml.adamsprogs.bimba.*
 import java.util.*
 
-class DashActivity : AppCompatActivity(), MessageReceiver.OnTimetableDownloadListener, FavouritesAdapter.OnMenuItemClickListener {
+class DashActivity : AppCompatActivity(), MessageReceiver.OnTimetableDownloadListener,
+        FavouritesAdapter.OnMenuItemClickListener {
+
     val context: Context = this
     val receiver = MessageReceiver()
     lateinit var timetable: Timetable
     var stops: ArrayList<StopSuggestion>? = null
+    lateinit var drawerLayout: DrawerLayout
+    lateinit var drawer: NavigationView
     lateinit var favouritesList: RecyclerView
     lateinit var searchView: FloatingSearchView
     lateinit var favourites: FavouriteStorage
@@ -49,6 +52,21 @@
         prepareFavourites()
 
         scheduleRefresh()
+
+        drawerLayout = findViewById(R.id.drawer_layout) as DrawerLayout
+        drawer = findViewById(R.id.drawer) as NavigationView
+        drawer.setCheckedItem(R.id.drawer_home)
+        drawer.setNavigationItemSelectedListener { item ->
+            when (item.itemId) {
+                R.id.drawer_refresh -> {
+                    startDownloaderService()
+                }
+                else -> {
+                }
+            }
+            drawerLayout.closeDrawer(drawer)
+            super.onOptionsItemSelected(item)
+        }
 
         searchView = findViewById(R.id.search_view) as FloatingSearchView
 
@@ -152,6 +170,10 @@         startService(Intent(context, TimetableDownloader::class.java))
     }
 
     override fun onBackPressed() {
+        if (drawerLayout.isDrawerOpen(drawer)) {
+            drawerLayout.closeDrawer(drawer)
+            return
+        }
         if (!searchView.setSearchFocused(false)) {
             super.onBackPressed()
         }




diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
index 2a3f07ea66f19f36ce4f26f53fc6ffe600ac762c..4d3a236492c6fab3f6506a271f6bfb7aabc8ae4e 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
@@ -69,7 +69,7 @@                 if (nextDeparture.tomorrow)
                     departureTime.add(Calendar.DAY_OF_MONTH, 1)
                 val interval = ((departureTime.timeInMillis - now.timeInMillis) / (1000 * 60))
                 Log.i("Interval", "$interval")
-                nextDepartureText = context.getString(Declinator.decline(interval), interval.toString())
+                nextDepartureText = context.getString(Declinator.decline(interval), interval.toString()) //fixme -1
                 nextDepartureLineText = context.getString(R.string.departure_to_line, nextDeparture.line, nextDeparture.direction)
             } else {
                 nextDepartureText = context.getString(R.string.no_next_departure)




diff --git a/app/src/main/res/layout/activity_dash.xml b/app/src/main/res/layout/activity_dash.xml
index cc390f75452ce75bfe33423cf398c1477d683924..db6a3e4266c2744e8b4d7bbc09b2c78e83285a0b 100644
--- a/app/src/main/res/layout/activity_dash.xml
+++ b/app/src/main/res/layout/activity_dash.xml
@@ -31,17 +31,15 @@         
 
         <android.support.v7.widget.RecyclerView
             android:id="@+id/favouritesList"
-            android:layout_width="match_parent"
-            android:layout_height="469dp"
-            android:layout_marginBottom="8dp"
-            android:layout_marginEnd="8dp"
-            android:layout_marginStart="8dp"
-            android:layout_marginTop="100dp"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_marginBottom="0dp"
+            android:layout_marginTop="80dp"
             android:scrollbars="none"
-            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintBottom_toBottomOf="@+id/search_view" />
 
         <com.arlib.floatingsearchview.FloatingSearchView
             android:id="@+id/search_view"
@@ -63,91 +61,7 @@              android:id="@+id/drawer"
         android:layout_width="240dp"
         android:layout_height="match_parent"
-        android:layout_gravity="start">
-
-        <android.support.constraint.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:paddingTop="8dp">
-
-
-            <ImageView
-                android:id="@+id/drawerHomeImage"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="16dp"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="parent"
-                app:srcCompat="@drawable/ic_home"
-                android:contentDescription="@string/navigation_drawer_home_button" />
-
-            <TextView
-                android:id="@+id/drawerHomeText"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="72dp"
-                android:gravity="center"
-                android:text="@string/home"
-                android:textAppearance="@style/TextAppearance.AppCompat.Medium"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="@+id/drawerHomeImage" />
-
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:layout_marginBottom="8dp"
-                android:layout_marginTop="8dp"
-                android:theme="@style/DividerTheme"
-                app:layout_constraintBottom_toTopOf="@+id/drawerRefreshText"
-                app:layout_constraintEnd_toEndOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/drawerHomeText" />
-
-            <ImageView
-                android:id="@+id/drawerRefreshImage"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="16dp"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toBottomOf="@+id/drawerHomeImage"
-                app:srcCompat="@drawable/ic_refresh"
-                android:contentDescription="@string/navigation_drawer_refresh_button" />
-
-            <TextView
-                android:id="@+id/drawerRefreshText"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="72dp"
-                android:gravity="center"
-                android:text="@string/refresh"
-                android:textAppearance="@style/TextAppearance.AppCompat.Medium"
-                app:layout_constraintBottom_toBottomOf="@+id/drawerRefreshImage"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="@+id/drawerRefreshImage" />
-
-            <ImageView
-                android:id="@+id/drawerHelpImage"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="16dp"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintStart_toStartOf="parent"
-                app:srcCompat="@drawable/ic_help"
-                android:contentDescription="@string/navigation_drawer_help_button" />
-
-            <TextView
-                android:id="@+id/drawerHelpText"
-                android:layout_width="wrap_content"
-                android:layout_height="48dp"
-                android:layout_marginStart="72dp"
-                android:gravity="center"
-                android:text="@string/help"
-                android:textAppearance="@style/TextAppearance.AppCompat.Medium"
-                app:layout_constraintBottom_toBottomOf="@+id/drawerHelpImage"
-                app:layout_constraintStart_toStartOf="parent"
-                app:layout_constraintTop_toTopOf="@+id/drawerHelpImage" />
-
-
-        </android.support.constraint.ConstraintLayout>
+        android:layout_gravity="start"
+        app:menu="@menu/menu_drawer">
     </android.support.design.widget.NavigationView>
 </android.support.v4.widget.DrawerLayout>
\ No newline at end of file




diff --git a/app/src/main/res/menu/menu_drawer.xml b/app/src/main/res/menu/menu_drawer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b5624b5fe0c64d7916589f6fe23ecc1449cf7ee8
--- /dev/null
+++ b/app/src/main/res/menu/menu_drawer.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group android:id="@+id/drawer_group_activities">
+        <item
+            android:id="@+id/drawer_home"
+            android:icon="@drawable/ic_home"
+            android:title="@string/home" />
+    </group>
+    <group android:id="@+id/drawer_group_actions">
+        <item
+            android:id="@+id/drawer_refresh"
+            android:icon="@drawable/ic_refresh"
+            android:title="@string/refresh" />
+        <item
+            android:id="@+id/drawer_help"
+            android:icon="@drawable/ic_help"
+            android:title="@string/help" />
+    </group>
+</menu>
\ No newline at end of file




diff --git a/build.gradle b/build.gradle
index bf78fe3b4b36b25f8c8e7420bbda9dd6ff9df4f0..0c797fb1838c37561c15ed53e36b51d9abde197e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@         maven { url 'https://maven.google.com' }
         google()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.0.0-alpha8'
+        classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
 
         // NOTE: Do not place your application dependencies here; they belong




diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3d353ea4d1cc03c0e3c288a3862a26c1ebc247c4..e32fbb2e5966d81de9c87d2031502fdcf69e38a7 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Tue Jul 04 17:47:25 CEST 2017
+#Tue Aug 08 15:29:42 CEST 2017
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-milestone-1-all.zip
+distributionUrl=https://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip