Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b9bba63a3 |
@@ -35,6 +35,8 @@ dependencies {
|
|||||||
implementation "androidx.room:room-runtime:$room_version"
|
implementation "androidx.room:room-runtime:$room_version"
|
||||||
annotationProcessor "androidx.room:room-compiler:$room_version"
|
annotationProcessor "androidx.room:room-compiler:$room_version"
|
||||||
|
|
||||||
|
//gson
|
||||||
|
implementation 'com.google.code.gson:gson:2.8.6'
|
||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||||
implementation 'com.google.android.material:material:1.2.1'
|
implementation 'com.google.android.material:material:1.2.1'
|
||||||
|
|||||||
@@ -1,23 +1,34 @@
|
|||||||
package com.a1.nextlocation.data;
|
package com.a1.nextlocation.data;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
import androidx.room.Ignore;
|
import androidx.room.Ignore;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
import androidx.room.TypeConverters;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.db.CouponListTypeConverter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Entity
|
@Entity(tableName = "userdata")
|
||||||
public class Data {
|
public class Data {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ColumnInfo(name = "distance_traveled")
|
||||||
private float distanceTraveled;
|
private float distanceTraveled;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "locations_visited")
|
||||||
private int locationsVisited;
|
private int locationsVisited;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "total_time")
|
||||||
private int totalTime;
|
private int totalTime;
|
||||||
|
|
||||||
|
@TypeConverters(CouponListTypeConverter.class)
|
||||||
private List<Coupon> couponList;
|
private List<Coupon> couponList;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
@@ -34,6 +45,7 @@ public class Data {
|
|||||||
this.distanceTraveled = 0;
|
this.distanceTraveled = 0;
|
||||||
this.locationsVisited = 0;
|
this.locationsVisited = 0;
|
||||||
this.totalTime = 0;
|
this.totalTime = 0;
|
||||||
|
couponList = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.room.ColumnInfo;
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
import androidx.room.TypeConverters;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.db.LocationListTypeConverter;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@@ -17,6 +20,7 @@ public class Route {
|
|||||||
@NonNull
|
@NonNull
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@TypeConverters(LocationListTypeConverter.class)
|
||||||
private List<Location> locations;
|
private List<Location> locations;
|
||||||
|
|
||||||
@ColumnInfo(name = "total_distance")
|
@ColumnInfo(name = "total_distance")
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package com.a1.nextlocation.data.db;
|
||||||
|
|
||||||
|
import androidx.room.TypeConverter;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.Coupon;
|
||||||
|
import com.a1.nextlocation.data.Route;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CouponListTypeConverter {
|
||||||
|
private static Gson gson = new Gson();
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static List<Coupon> toRoutesList(String data) {
|
||||||
|
if (data == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Type listType = new TypeToken<List<Coupon>>() {}.getType();
|
||||||
|
|
||||||
|
return gson.fromJson(data,listType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static String fromRoutesList(List<Coupon> list) {
|
||||||
|
return gson.toJson(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -8,9 +8,11 @@ import androidx.room.RoomDatabase;
|
|||||||
import androidx.sqlite.db.SupportSQLiteDatabase;
|
import androidx.sqlite.db.SupportSQLiteDatabase;
|
||||||
|
|
||||||
import com.a1.nextlocation.data.Coupon;
|
import com.a1.nextlocation.data.Coupon;
|
||||||
|
import com.a1.nextlocation.data.Data;
|
||||||
import com.a1.nextlocation.data.Location;
|
import com.a1.nextlocation.data.Location;
|
||||||
import com.a1.nextlocation.data.Route;
|
import com.a1.nextlocation.data.Route;
|
||||||
import com.a1.nextlocation.data.db.dao.CouponDao;
|
import com.a1.nextlocation.data.db.dao.CouponDao;
|
||||||
|
import com.a1.nextlocation.data.db.dao.DataDao;
|
||||||
import com.a1.nextlocation.data.db.dao.LocationDao;
|
import com.a1.nextlocation.data.db.dao.LocationDao;
|
||||||
import com.a1.nextlocation.data.db.dao.RouteDao;
|
import com.a1.nextlocation.data.db.dao.RouteDao;
|
||||||
|
|
||||||
@@ -20,12 +22,13 @@ import java.util.concurrent.Executors;
|
|||||||
/**
|
/**
|
||||||
* @author Sem
|
* @author Sem
|
||||||
*/
|
*/
|
||||||
@androidx.room.Database(entities = {Coupon.class,Route.class, Location.class},version = 1,exportSchema = false)
|
@androidx.room.Database(entities = {Coupon.class,Route.class, Location.class, Data.class},version = 1,exportSchema = false)
|
||||||
public abstract class Database extends RoomDatabase {
|
public abstract class Database extends RoomDatabase {
|
||||||
|
|
||||||
public abstract RouteDao routeDao();
|
public abstract RouteDao routeDao();
|
||||||
public abstract CouponDao couponDao();
|
public abstract CouponDao couponDao();
|
||||||
public abstract LocationDao locationDao();
|
public abstract LocationDao locationDao();
|
||||||
|
public abstract DataDao dataDao();
|
||||||
|
|
||||||
private static volatile Database INSTANCE;
|
private static volatile Database INSTANCE;
|
||||||
private static final int NUMBER_OF_THREADS = 4;
|
private static final int NUMBER_OF_THREADS = 4;
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.a1.nextlocation.data.db;
|
||||||
|
|
||||||
|
import androidx.room.TypeConverter;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.Location;
|
||||||
|
import com.a1.nextlocation.data.Route;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class LocationListTypeConverter {
|
||||||
|
private static Gson gson = new Gson();
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static List<Location> toLocationList(String data) {
|
||||||
|
if (data == null) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
Type listType = new TypeToken<List<Location>>() {}.getType();
|
||||||
|
|
||||||
|
return gson.fromJson(data,listType);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static String fromLocationList(List<Location> list) {
|
||||||
|
return gson.toJson(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.a1.nextlocation.data.db.dao;
|
||||||
|
|
||||||
|
import androidx.room.Dao;
|
||||||
|
import androidx.room.Insert;
|
||||||
|
import androidx.room.OnConflictStrategy;
|
||||||
|
import androidx.room.Query;
|
||||||
|
import androidx.room.Update;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.Data;
|
||||||
|
|
||||||
|
@Dao
|
||||||
|
public interface DataDao {
|
||||||
|
|
||||||
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
|
void insertAll(Data... datas);
|
||||||
|
|
||||||
|
@Update
|
||||||
|
void update(Data data);
|
||||||
|
|
||||||
|
@Query("DELETE FROM userdata")
|
||||||
|
void delete();
|
||||||
|
|
||||||
|
@Query("SELECT * FROM userdata LIMIT 1")
|
||||||
|
Data getData();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.a1.nextlocation.data.db.repositories;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.a1.nextlocation.data.Data;
|
||||||
|
import com.a1.nextlocation.data.db.Database;
|
||||||
|
import com.a1.nextlocation.data.db.dao.DataDao;
|
||||||
|
|
||||||
|
public class DataRepository {
|
||||||
|
private DataDao mDataDao;
|
||||||
|
private Data data;
|
||||||
|
|
||||||
|
public DataRepository(Context context) {
|
||||||
|
Database db = Database.getDatabase(context);
|
||||||
|
mDataDao = db.dataDao();
|
||||||
|
data = mDataDao.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Data getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="24dp"
|
|
||||||
android:height="24dp"
|
|
||||||
android:viewportWidth="24"
|
|
||||||
android:viewportHeight="24"
|
|
||||||
android:tint="?attr/colorControlNormal">
|
|
||||||
<path
|
|
||||||
android:fillColor="@android:color/white"
|
|
||||||
android:pathData="M8,5v14l11,-7z"/>
|
|
||||||
</vector>
|
|
||||||
@@ -1,83 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout 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"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:background="@color/primaryColour"
|
|
||||||
tools:context=".fragments.RouteDetailFragment">
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/routeDetailBackButton"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:background="@drawable/ic_back_button_24"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/routeTitle"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/routeTitle"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/routeTitle"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/routeTitle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="250dp"
|
|
||||||
android:text="titel"
|
|
||||||
android:textSize="20sp"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/routeDetailImage"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/routeDetailText"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/routeDetailBackButton"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/routeDetailImage"
|
|
||||||
android:layout_width="250dp"
|
|
||||||
android:layout_height="250dp"
|
|
||||||
android:layout_marginEnd="350dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/routeDetailText"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="10dp"
|
|
||||||
android:layout_marginStart="50dp"
|
|
||||||
android:layout_marginEnd="50dp"
|
|
||||||
android:layout_marginBottom="200dp"
|
|
||||||
android:text=""
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/routeDetailImage"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/startRouteButton"
|
|
||||||
android:src="@drawable/ic_baseline_play_arrow_24"
|
|
||||||
android:backgroundTint="@color/primaryColour"
|
|
||||||
android:scaleX="5"
|
|
||||||
android:scaleY="5"
|
|
||||||
android:layout_width="70dp"
|
|
||||||
android:layout_height="70dp"
|
|
||||||
android:layout_marginStart="350dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/startRouteText"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/startRouteText"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/startRouteText" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/startRouteText"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="20dp"
|
|
||||||
android:layout_marginBottom="20dp"
|
|
||||||
android:text="@string/start_route"
|
|
||||||
android:textSize="50sp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/startRouteButton"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/routeDetailImage" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
@@ -31,14 +31,16 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/detail_location_text"
|
android:id="@+id/detail_location_text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="378dp"
|
||||||
android:layout_margin="20dp"
|
android:layout_height="379dp"
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@color/secondaryColour"
|
android:background="@color/secondaryColour"
|
||||||
android:text="Detail tekst"
|
android:text="Detail tekst"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.484"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/detail_location_image" />
|
app:layout_constraintTop_toBottomOf="@+id/detail_location_image"
|
||||||
|
app:layout_constraintVertical_bias="0.446" />
|
||||||
|
|
||||||
<ImageButton
|
<ImageButton
|
||||||
android:id="@+id/detail_location_back_button"
|
android:id="@+id/detail_location_back_button"
|
||||||
|
|||||||
@@ -1,40 +1,48 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout 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"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:background="@color/primaryColour"
|
android:background="@color/primaryColour"
|
||||||
tools:context=".fragments.RouteFragment">
|
tools:context=".fragments.RouteFragment">
|
||||||
|
|
||||||
<ImageButton
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/routeBackButton"
|
android:layout_width="match_parent"
|
||||||
android:layout_width="wrap_content"
|
android:layout_height="match_parent">
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="10dp"
|
|
||||||
android:background="@drawable/ic_back_button_24"
|
|
||||||
android:text="Back"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<TextView
|
<ImageButton
|
||||||
android:id="@+id/routeTitle"
|
android:id="@+id/routeBackButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_margin="9dp"
|
android:background="@drawable/ic_back_button_24"
|
||||||
android:text="titel"
|
android:backgroundTint="@color/buttonColour"
|
||||||
android:textSize="20sp"
|
android:text="Back"
|
||||||
app:layout_constraintStart_toEndOf="@id/routeBackButton"
|
android:layout_margin="10dp"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<TextView
|
||||||
android:id="@+id/routeListRV"
|
android:id="@+id/routeTitle"
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="0dp"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/primaryColour"
|
android:text="titel"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:textSize="20sp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
android:layout_margin="9dp"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toEndOf="@id/routeBackButton"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/routeBackButton" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/routeListRV"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:background="@color/primaryColour"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/routeBackButton" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
@@ -1,81 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:background="@color/primaryColour"
|
|
||||||
tools:context=".fragments.RouteDetailFragment">
|
tools:context=".fragments.RouteDetailFragment">
|
||||||
|
|
||||||
<ImageButton
|
<!-- TODO: Update blank fragment layout -->
|
||||||
android:id="@+id/routeDetailBackButton"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="100dp"
|
|
||||||
android:background="@drawable/ic_back_button_24"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@id/routeTitle"
|
|
||||||
app:layout_constraintEnd_toStartOf="@id/routeTitle"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@id/routeTitle" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/routeTitle"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="titel"
|
|
||||||
android:textSize="20sp"
|
|
||||||
app:layout_constraintBottom_toTopOf="@+id/routeDetailImage"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:layout_width="250dp"
|
|
||||||
android:layout_height="250dp"
|
|
||||||
android:layout_margin="40dp"
|
|
||||||
android:id="@+id/routeDetailImage"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/routeDetailBackButton"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/routeDetailText"
|
|
||||||
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/routeDetailText"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginHorizontal="20dp"
|
android:text="@string/hello_blank_fragment" />
|
||||||
android:layout_marginBottom="100dp"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/startRouteText"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/routeDetailImage" />
|
|
||||||
|
|
||||||
<ImageButton
|
</FrameLayout>
|
||||||
android:id="@+id/startRouteButton"
|
|
||||||
android:backgroundTint="@color/primaryColour"
|
|
||||||
android:scaleX="5"
|
|
||||||
android:scaleY="5"
|
|
||||||
android:layout_width="70dp"
|
|
||||||
android:layout_height="70dp"
|
|
||||||
android:layout_margin="20dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/startRouteText"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/startRouteText"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/startRouteText"
|
|
||||||
android:src="@drawable/ic_baseline_play_arrow_24"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/startRouteText"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="20dp"
|
|
||||||
android:text="@string/start_route"
|
|
||||||
android:textSize="50sp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/startRouteButton"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/routeDetailText" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
@@ -16,5 +16,4 @@
|
|||||||
<string name="totale_tijd">Totale tijd:</string>
|
<string name="totale_tijd">Totale tijd:</string>
|
||||||
<string name="coupons_gespaard">Coupons gespaard:</string>
|
<string name="coupons_gespaard">Coupons gespaard:</string>
|
||||||
<string name="coupons">Coupons</string>
|
<string name="coupons">Coupons</string>
|
||||||
<string name="start_route">Start Route</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
|||||||
#Tue Dec 08 10:31:45 CET 2020
|
#Mon Dec 14 14:48:57 CET 2020
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip
|
||||||
|
|||||||
Reference in New Issue
Block a user