Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
ElBuenoPeso
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Matis SPINELLI
ElBuenoPeso
Commits
24cf71fb
Commit
24cf71fb
authored
Feb 22, 2024
by
m-spi
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
b716a458
d95f8def
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
246 additions
and
48 deletions
+246
-48
build.gradle.kts
app/build.gradle.kts
+2
-0
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+5
-2
MainActivity.kt
app/src/main/java/com/example/elbuenopeso/MainActivity.kt
+7
-1
settingActivity.kt
app/src/main/java/com/example/elbuenopeso/settingActivity.kt
+62
-0
MarketFragment.kt
.../java/com/example/elbuenopeso/ui/market/MarketFragment.kt
+45
-14
activity_setting.xml
app/src/main/res/layout/activity_setting.xml
+57
-0
fragment_market.xml
app/src/main/res/layout/fragment_market.xml
+29
-4
item_listview_ad.xml
app/src/main/res/layout/item_listview_ad.xml
+26
-27
colors.xml
app/src/main/res/values/colors.xml
+2
-0
styles.xml
app/src/main/res/values/styles.xml
+10
-0
build.gradle.kts
build.gradle.kts
+1
-0
No files found.
app/build.gradle.kts
View file @
24cf71fb
...
...
@@ -40,6 +40,7 @@ android {
dependencies
{
implementation
(
"androidx.preference:preference-ktx:1.1.1"
)
implementation
(
"androidx.core:core-ktx:1.12.0"
)
implementation
(
"androidx.appcompat:appcompat:1.6.1"
)
implementation
(
"com.google.android.material:material:1.11.0"
)
...
...
@@ -48,6 +49,7 @@ dependencies {
implementation
(
"androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
)
implementation
(
"androidx.navigation:navigation-fragment-ktx:2.7.7"
)
implementation
(
"androidx.navigation:navigation-ui-ktx:2.7.7"
)
implementation
(
"androidx.preference:preference:1.2.1"
)
testImplementation
(
"junit:junit:4.13.2"
)
androidTestImplementation
(
"androidx.test.ext:junit:1.1.5"
)
androidTestImplementation
(
"androidx.test.espresso:espresso-core:3.5.1"
)
...
...
app/src/main/AndroidManifest.xml
View file @
24cf71fb
...
...
@@ -13,10 +13,13 @@
android:theme=
"@style/Theme.ElBuenoPeso"
tools:targetApi=
"31"
>
<activity
android:name=
"
.About
Activity"
android:name=
"
setting
Activity"
android:exported=
"false"
/>
<activity
android:name=
".MainActivity"
android:name=
"AboutActivity"
android:exported=
"false"
/>
<activity
android:name=
"MainActivity"
android:exported=
"true"
android:label=
"@string/app_name"
>
<intent-filter>
...
...
app/src/main/java/com/example/elbuenopeso/MainActivity.kt
View file @
24cf71fb
...
...
@@ -11,6 +11,10 @@ import androidx.navigation.ui.AppBarConfiguration
import
androidx.navigation.ui.setupActionBarWithNavController
import
androidx.navigation.ui.setupWithNavController
import
com.example.elbuenopeso.databinding.ActivityMainBinding
import
androidx.appcompat.widget.SwitchCompat
import
androidx.preference.SwitchPreferenceCompat;
import
com.google.android.material.bottomnavigation.BottomNavigationView
class
MainActivity
:
AppCompatActivity
()
{
...
...
@@ -53,10 +57,12 @@ class MainActivity : AppCompatActivity() {
}
R
.
id
.
settings
->
{
Toast
.
makeText
(
this
,
"Settings Selected"
,
Toast
.
LENGTH_SHORT
).
show
()
startActivity
(
Intent
(
this
,
settingActivity
::
class
.
java
))
return
true
}
R
.
id
.
exit
->
{
Toast
.
makeText
(
this
,
"Exit Selected"
,
Toast
.
LENGTH_SHORT
).
show
()
finish
()
return
true
}
else
->
return
super
.
onOptionsItemSelected
(
item
)
...
...
app/src/main/java/com/example/elbuenopeso/settingActivity.kt
0 → 100644
View file @
24cf71fb
package
com.example.elbuenopeso
import
android.content.SharedPreferences
import
android.os.Bundle
import
android.widget.TextView
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatDelegate
import
androidx.appcompat.widget.SwitchCompat
import
androidx.preference.PreferenceManager
import
androidx.core.content.ContextCompat
import
com.example.elbuenopeso.R
class
settingActivity
:
AppCompatActivity
()
{
private
lateinit
var
themeSwitch
:
SwitchCompat
private
lateinit
var
titleTextView
:
TextView
private
lateinit
var
descriptionTextView
:
TextView
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
setContentView
(
R
.
layout
.
activity_setting
)
themeSwitch
=
findViewById
(
R
.
id
.
themeSwitch
)
titleTextView
=
findViewById
(
R
.
id
.
titleTextView
)
descriptionTextView
=
findViewById
(
R
.
id
.
descriptionTextView
)
// Retrieve the current theme setting
val
sharedPreferences
=
PreferenceManager
.
getDefaultSharedPreferences
(
this
)
val
isNightMode
=
sharedPreferences
.
getBoolean
(
"night_mode"
,
false
)
themeSwitch
.
isChecked
=
isNightMode
// Set up click listener for theme switch
themeSwitch
.
setOnCheckedChangeListener
{
_
,
isChecked
->
applyTheme
(
isChecked
)
}
// Apply initial theme
applyTheme
(
isNightMode
)
// Listen for changes in night mode
delegate
.
localNightMode
=
AppCompatDelegate
.
MODE_NIGHT_FOLLOW_SYSTEM
}
private
fun
applyTheme
(
isNightMode
:
Boolean
)
{
// Update the theme setting
val
sharedPreferences
=
PreferenceManager
.
getDefaultSharedPreferences
(
this
)
sharedPreferences
.
edit
().
putBoolean
(
"night_mode"
,
isNightMode
).
apply
()
// Apply the selected theme
if
(
isNightMode
)
{
AppCompatDelegate
.
setDefaultNightMode
(
AppCompatDelegate
.
MODE_NIGHT_YES
)
titleTextView
.
setTextColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
text_color_dark
))
descriptionTextView
.
setTextColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
text_color_dark
))
}
else
{
AppCompatDelegate
.
setDefaultNightMode
(
AppCompatDelegate
.
MODE_NIGHT_NO
)
titleTextView
.
setTextColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
text_color
))
descriptionTextView
.
setTextColor
(
ContextCompat
.
getColor
(
this
,
R
.
color
.
text_color
))
}
}
}
app/src/main/java/com/example/elbuenopeso/ui/market/MarketFragment.kt
View file @
24cf71fb
...
...
@@ -5,7 +5,9 @@ import android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
import
android.widget.GridView
import
android.widget.ListView
import
android.widget.ToggleButton
import
androidx.fragment.app.Fragment
import
androidx.lifecycle.ViewModelProvider
import
com.example.elbuenopeso.databinding.FragmentMarketBinding
...
...
@@ -15,25 +17,39 @@ import com.example.elbuenopeso.R
class
MarketFragment
:
Fragment
()
{
private
var
_binding
:
FragmentMarketBinding
?
=
null
// This property is only valid between onCreateView and
// onDestroyView.
private
val
binding
get
()
=
_binding
!!
private
lateinit
var
listView
:
ListView
private
lateinit
var
gridView
:
GridView
private
lateinit
var
toggleButton
:
ToggleButton
private
lateinit
var
adAdapter
:
AdAdapter
private
var
isGridViewEnabled
=
false
override
fun
onCreateView
(
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
):
View
{
val
marketViewModel
=
ViewModelProvider
(
this
)[
MarketViewModel
::
class
.
java
]
_binding
=
FragmentMarketBinding
.
inflate
(
inflater
,
container
,
false
)
val
root
:
View
=
binding
.
root
val
listView
:
ListView
=
binding
.
listView
// seed market items
var
annonces
:
List
<
AdModel
>
=
listOf
<
AdModel
>(
listView
=
binding
.
listView
gridView
=
binding
.
gridView
toggleButton
=
binding
.
toggleButton
val
annonces
:
List
<
AdModel
>
=
listOf
(
AdModel
(
"Poutre"
,
"1 rue Jean-Pierre"
,
R
.
drawable
.
pichu
,
25.0
),
AdModel
(
"Briques"
,
"2 rue Jean-Michel"
,
R
.
drawable
.
pichu
,
16.0
),
AdModel
(
"Poutre"
,
"1 rue Jean-Pierre"
,
R
.
drawable
.
pichu
,
25.0
),
AdModel
(
"Briques"
,
"2 rue Jean-Michel"
,
R
.
drawable
.
pichu
,
16.0
),
AdModel
(
"Mur en bois"
,
"4 rue Alain-Juju"
,
R
.
drawable
.
pichu
,
7.2
),
AdModel
(
"Maison de pierre"
,
"7 rue Joris Belhomme"
,
R
.
drawable
.
pichu
,
3.99
),
AdModel
(
"Téléphone de Timothé"
,
"8 rue de Timothé"
,
R
.
drawable
.
pichu
,
0.85
),
AdModel
(
"Oridnateur"
,
"10 rue Jean-Charles"
,
R
.
drawable
.
pichu
,
104.98
),
AdModel
(
"Charnières"
,
"22 rue Jeanne-Marie"
,
R
.
drawable
.
pichu
,
2648.97
),
AdModel
(
"Porte en marbre"
,
"1 rue Jean-Pierre"
,
R
.
drawable
.
pichu
,
480.0
),
AdModel
(
"Cheminée"
,
"33 rue du Gouvernement"
,
R
.
drawable
.
pichu
,
800.0
),
AdModel
(
"Poutre"
,
"1 rue Jean-Pierre"
,
R
.
drawable
.
pichu
,
25.0
),
AdModel
(
"Briques"
,
"2 rue Jean-Michel"
,
R
.
drawable
.
pichu
,
16.0
),
AdModel
(
"Mur en bois"
,
"4 rue Alain-Juju"
,
R
.
drawable
.
pichu
,
7.2
),
...
...
@@ -43,17 +59,32 @@ class MarketFragment : Fragment() {
AdModel
(
"Charnières"
,
"22 rue Jeanne-Marie"
,
R
.
drawable
.
pichu
,
2648.97
),
AdModel
(
"Porte en marbre"
,
"1 rue Jean-Pierre"
,
R
.
drawable
.
pichu
,
480.0
),
AdModel
(
"Cheminée"
,
"33 rue du Gouvernement"
,
R
.
drawable
.
pichu
,
800.0
),
// Add more AdModel items as needed
)
var
adAdapter
:
A
dAdapter
=
AdAdapter
(
requireContext
(),
annonces
)
a
dAdapter
=
AdAdapter
(
requireContext
(),
annonces
)
listView
.
adapter
=
adAdapter
/*marketViewModel.text.observe(viewLifecycleOwner) {
textView.text = it
}*/
toggleButton
.
setOnCheckedChangeListener
{
_
,
isChecked
->
isGridViewEnabled
=
isChecked
updateView
()
}
return
root
}
private
fun
updateView
()
{
if
(
isGridViewEnabled
)
{
listView
.
visibility
=
View
.
GONE
gridView
.
visibility
=
View
.
VISIBLE
gridView
.
adapter
=
adAdapter
}
else
{
gridView
.
visibility
=
View
.
GONE
listView
.
visibility
=
View
.
VISIBLE
listView
.
adapter
=
adAdapter
}
}
override
fun
onDestroyView
()
{
super
.
onDestroyView
()
_binding
=
null
...
...
app/src/main/res/layout/activity_setting.xml
0 → 100644
View file @
24cf71fb
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
android:background=
"@android:color/white"
tools:context=
".MainActivity"
>
<!-- Title -->
<TextView
android:id=
"@+id/titleTextView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Theme Settings"
android:textSize=
"24sp"
android:textStyle=
"bold"
android:textColor=
"@color/text_color"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_marginTop=
"32dp"
android:layout_marginStart=
"16dp"
android:layout_marginEnd=
"16dp"
/>
<!-- Description -->
<TextView
android:id=
"@+id/descriptionTextView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Choose your preferred theme"
android:textSize=
"16sp"
android:textColor=
"@color/text_color"
app:layout_constraintTop_toBottomOf=
"@id/titleTextView"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_marginTop=
"8dp"
android:layout_marginStart=
"16dp"
android:layout_marginEnd=
"16dp"
/>
<!-- Switch -->
<com.google.android.material.switchmaterial.SwitchMaterial
android:id=
"@+id/themeSwitch"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:checked=
"false"
android:text=
"Dark Mode"
android:textSize=
"18sp"
app:layout_constraintTop_toBottomOf=
"@id/descriptionTextView"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
android:layout_marginTop=
"16dp"
android:layout_marginStart=
"16dp"
android:layout_marginEnd=
"16dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/fragment_market.xml
View file @
24cf71fb
...
...
@@ -6,12 +6,37 @@
android:layout_height=
"match_parent"
tools:context=
".ui.market.MarketFragment"
>
<ToggleButton
android:id=
"@+id/toggleButton"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Toggle View"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<ListView
android:id=
"@+id/listView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toBottomOf=
"@id/toggleButton"
/>
<GridView
android:id=
"@+id/gridView"
android:layout_width=
"0dp"
android:layout_height=
"0dp"
android:numColumns=
"2"
android:stretchMode=
"columnWidth"
android:gravity=
"center"
android:horizontalSpacing=
"8dp"
android:verticalSpacing=
"8dp"
android:padding=
"8dp"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/toggleButton"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
app/src/main/res/layout/item_listview_ad.xml
View file @
24cf71fb
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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"
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<TextView
android:id=
"@+id/itemListViewTitleView"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"TextView"
android:textSize=
"20sp"
app:layout_constraintStart_toEndOf=
"@+id/itemListViewImageView"
app:layout_constraintTop_toTopOf=
"parent"
/>
android:orientation=
"vertical"
android:padding=
"8dp"
>
<ImageView
android:id=
"@+id/itemListViewImageView"
android:layout_width=
"117dp"
android:layout_height=
"94dp"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:srcCompat=
"@drawable/pichu"
/>
android:layout_gravity=
"center_horizontal"
android:src=
"@drawable/pichu"
/>
<TextView
android:id=
"@+id/itemListViewT
ext
View"
android:layout_width=
"
wrap_cont
ent"
android:id=
"@+id/itemListViewT
itle
View"
android:layout_width=
"
match_par
ent"
android:layout_height=
"wrap_content"
android:text=
"TextView"
app:layout_constraintBottom_toBottomOf=
"@+id/itemListViewImageView"
app:layout_constraintStart_toEndOf=
"@+id/itemListViewImageView"
/>
android:textSize=
"20sp"
android:textStyle=
"bold"
android:maxLines=
"2"
android:ellipsize=
"end"
android:paddingTop=
"8dp"
android:paddingBottom=
"4dp"
/>
<TextView
android:id=
"@+id/itemListViewPrixView"
android:layout_width=
"wrap_content"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:textSize=
"16sp"
android:paddingBottom=
"4dp"
/>
<TextView
android:id=
"@+id/itemListViewTextView"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:text=
"TextView"
app:layout_constraintBottom_toTopOf=
"@+id/itemListViewTextView"
app:layout_constraintStart_toEndOf=
"@+id/itemListViewImageView"
app:layout_constraintTop_toBottomOf=
"@+id/itemListViewTitleView"
/>
android:textSize=
"14sp"
android:maxLines=
"3"
android:ellipsize=
"end"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
</LinearLayout>
app/src/main/res/values/colors.xml
View file @
24cf71fb
...
...
@@ -10,5 +10,7 @@
<color
name=
"bluee"
>
#284B63
</color>
<color
name=
"blueee"
>
#284B63
</color>
<color
name=
"navy"
>
#3C6E71
</color>
<color
name=
"text_color"
>
#000000
</color>
<!-- Default text color -->
<color
name=
"text_color_dark"
>
#FFFFFF
</color>
<!-- Text color for dark mode -->
</resources>
\ No newline at end of file
app/src/main/res/values/styles.xml
0 → 100644
View file @
24cf71fb
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name=
"AppTheme.Light"
parent=
"Theme.AppCompat.Light"
>
<!-- Customize light theme attributes here -->
</style>
<style
name=
"AppTheme.Dark"
parent=
"Theme.AppCompat"
>
<!-- Customize dark theme attributes here -->
</style>
</resources>
\ No newline at end of file
build.gradle.kts
View file @
24cf71fb
...
...
@@ -2,4 +2,5 @@
plugins
{
id
(
"com.android.application"
)
version
"8.2.2"
apply
false
id
(
"org.jetbrains.kotlin.android"
)
version
"1.9.22"
apply
false
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment