Skip to content

Commit 72cd497

Browse files
author
Maximilian Häming
authored
Merge pull request #4 from StudyProject-NLI/lara
Lara
2 parents 8c4fcbe + bbe6f6d commit 72cd497

45 files changed

Lines changed: 962 additions & 860 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@ jobs:
1919
java-version: '11'
2020
distribution: 'temurin'
2121
cache: gradle
22-
- name: Build with Gradle
23-
run: ./gradlew build
22+
- name: Create local gradle properties files
23+
run: touch local.properties
24+
- name: Add Google Maps API Key
25+
run: echo "MAPS_API_KEY=${{secrets.MAPS_API_KEY}}" >> local.properties
26+
- name: Build debug APK
27+
run: ./gradlew build -x lint -x lintVitalRelease
2428
- name: Upload APK
2529
uses: actions/upload-artifact@v3.1.3
2630
with:

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ plugins {
22
id 'com.android.application'
33
id 'org.jetbrains.kotlin.android'
44
id 'kotlin-parcelize'
5+
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
6+
57
}
68

79
android {
@@ -53,4 +55,7 @@ dependencies {
5355

5456
// GSON dependency
5557
implementation 'com.google.code.gson:gson:2.8.5'
58+
59+
// Places API
60+
implementation 'com.google.android.libraries.places:places:3.2.0'
5661
}

app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
android:theme="@style/Theme.NLInterface"
1919
tools:targetApi="31">
2020

21+
<meta-data
22+
android:name="com.google.android.geo.API_KEY"
23+
android:value="${MAPS_API_KEY}" />
24+
2125
<activity
2226
android:name=".activities.MainActivity"
2327
android:exported="true"
@@ -36,15 +40,9 @@
3640
<activity
3741
android:name=".activities.GroceryListActivity" />
3842
<activity
39-
android:name=".activities.NavigationActivity"/>
40-
<activity
41-
android:name=".activities.NextActivityExample"/>
42-
<activity
43-
android:name=".activities.LocationActivity"/>
43+
android:name=".activities.PlaceDetailsActivity" />
4444
<activity
4545
android:name=".activities.SettingsActivity"/>
46-
<activity
47-
android:name=".activities.MotorModule"/>
4846

4947
</application>
5048

app/src/main/java/com/nlinterface/activities/GroceryListActivity.kt

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,27 @@
11
package com.nlinterface.activities
22

3-
import android.app.AlertDialog
4-
import android.content.res.Resources
53
import android.os.Bundle
64
import android.util.Log
75
import android.view.View
86
import android.view.WindowManager
97
import android.widget.Button
108
import android.widget.EditText
119
import android.widget.ImageButton
10+
import androidx.appcompat.app.AlertDialog
1211
import androidx.appcompat.app.AppCompatActivity
1312
import androidx.constraintlayout.widget.ConstraintLayout
1413
import androidx.lifecycle.ViewModelProvider
14+
import androidx.recyclerview.widget.ItemTouchHelper
1515
import androidx.recyclerview.widget.LinearLayoutManager
1616
import androidx.recyclerview.widget.RecyclerView
17+
import com.google.android.material.dialog.MaterialAlertDialogBuilder
18+
import com.google.android.material.dialog.MaterialDialogs
1719
import com.nlinterface.R
1820
import com.nlinterface.adapters.GroceryListAdapter
1921
import com.nlinterface.databinding.ActivityGroceryListBinding
2022
import com.nlinterface.dataclasses.GroceryItem
2123
import com.nlinterface.interfaces.GroceryListCallback
2224
import com.nlinterface.utility.GlobalParameters
23-
import com.nlinterface.utility.SpeechToTextUtility
24-
import com.nlinterface.utility.setViewRelativeHeight
2525
import com.nlinterface.utility.setViewRelativeSize
2626
import com.nlinterface.viewmodels.GroceryListViewModel
2727

@@ -73,6 +73,48 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
7373
voiceActivationButton.setOnClickListener {
7474
onAddVoiceActivationButtonClick()
7575
}
76+
77+
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
78+
0, ItemTouchHelper.LEFT
79+
) {
80+
override fun onMove(
81+
recyclerView: RecyclerView,
82+
viewHolder: RecyclerView.ViewHolder,
83+
target: RecyclerView.ViewHolder
84+
): Boolean {return false}
85+
86+
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
87+
val groceryItem: GroceryItem =
88+
groceryItemList[viewHolder.adapterPosition]
89+
90+
val index = viewHolder.adapterPosition
91+
92+
viewModel.deleteGroceryItem(groceryItem)
93+
94+
adapter.notifyItemRemoved(index)
95+
}
96+
}).attachToRecyclerView(rvGroceryList)
97+
98+
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
99+
0, ItemTouchHelper.RIGHT
100+
) {
101+
override fun onMove(
102+
recyclerView: RecyclerView,
103+
viewHolder: RecyclerView.ViewHolder,
104+
target: RecyclerView.ViewHolder
105+
): Boolean {return false}
106+
107+
override fun onSwiped(viewHolder: RecyclerView.ViewHolder, direction: Int) {
108+
val groceryItem: GroceryItem =
109+
groceryItemList[viewHolder.adapterPosition]
110+
111+
val index = viewHolder.adapterPosition
112+
113+
viewModel.deleteGroceryItem(groceryItem)
114+
115+
adapter.notifyItemRemoved(index)
116+
}
117+
}).attachToRecyclerView(rvGroceryList)
76118
}
77119

78120
override fun onDestroy() {
@@ -86,14 +128,16 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
86128

87129
private fun onAddItemButtonClick() {
88130

89-
val alertDialog: AlertDialog? = this?.let {
90-
val builder = AlertDialog.Builder(it)
91-
val view = layoutInflater.inflate(R.layout.add_item_dialog, null)
131+
val alertDialog: AlertDialog = this.let {
132+
val builder = MaterialAlertDialogBuilder(it, R.style.ThemeOverlay_MaterialComponents_MaterialAlertDialog_Background)
133+
134+
val view = layoutInflater.inflate(R.layout.edit_text_dialog, null)
135+
92136
builder.setView(view)
93137
builder.apply {
94138
setPositiveButton(R.string.add) { _, _ ->
95139

96-
val addItemEt = view.findViewById<EditText>(R.id.add_item_et)
140+
val addItemEt = view.findViewById<EditText>(R.id.et)
97141
val newItemName = addItemEt.text.toString()
98142

99143
viewModel.addGroceryItem(newItemName)
@@ -103,17 +147,20 @@ class GroceryListActivity : AppCompatActivity(), GroceryListCallback {
103147
setNegativeButton(R.string.cancel) { _, _ -> }
104148
}
105149
// Set other dialog properties
106-
builder.setMessage(R.string.add_new_grocery_item)
150+
builder.setTitle(R.string.add_new_grocery_item)
107151
// Create the AlertDialog
108152
builder.create()
109153
}
110-
alertDialog?.show()
154+
alertDialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
155+
alertDialog.show()
111156
}
112157

158+
159+
113160
override fun onLongClick(item: GroceryItem) {
114161
val index = groceryItemList.indexOf(item)
115-
viewModel.deleteGroceryItem(item)
116-
adapter?.notifyItemRemoved(index)
162+
viewModel.placeGroceryItemInCart(item)
163+
adapter.notifyItemChanged(index)
117164
}
118165

119166
}

app/src/main/java/com/nlinterface/activities/ItemSavedLocation.kt

Lines changed: 0 additions & 116 deletions
This file was deleted.

0 commit comments

Comments
 (0)