Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Room Park Android
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
Vladislav Bogdashkin
Room Park Android
Commits
559a3d5f
Commit
559a3d5f
authored
Apr 03, 2020
by
Vladislav
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix dagger for api
added db models for tour and files
parent
5b64fc34
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
309 additions
and
29 deletions
+309
-29
BigantoRetrofitRepository.kt
.../data/repository/api/biganto/BigantoRetrofitRepository.kt
+4
-1
RetrofitModule.kt
...oompark/data/repository/api/retrofit/di/RetrofitModule.kt
+1
-2
RetrofitRepository.kt
...mpark/data/repository/api/room_park/RetrofitRepository.kt
+2
-1
RequeryRepository.kt
.../roompark/data/repository/db/requrey/RequeryRepository.kt
+1
-1
Estate.kt
...isual/roompark/data/repository/db/requrey/model/Estate.kt
+5
-0
File.kt
.../visual/roompark/data/repository/db/requrey/model/File.kt
+41
-0
TourFileJunction.kt
...park/data/repository/db/requrey/model/TourFileJunction.kt
+29
-0
TourPreview.kt
.../roompark/data/repository/db/requrey/model/TourPreview.kt
+123
-0
RevisionStringConverter.java
.../repository/db/requrey/utils/RevisionStringConverter.java
+42
-0
RevisionStringListConverter.java
...ository/db/requrey/utils/RevisionStringListConverter.java
+56
-0
ContextModule.kt
...va/com/biganto/visual/roompark/di/dagger/ContextModule.kt
+1
-13
DataModule.kt
.../java/com/biganto/visual/roompark/di/dagger/DataModule.kt
+4
-11
No files found.
app/src/main/java/com/biganto/visual/roompark/data/repository/api/biganto/BigantoRetrofitRepository.kt
View file @
559a3d5f
...
...
@@ -10,6 +10,8 @@ import retrofit2.Response
import
retrofit2.Retrofit
import
timber.log.Timber
import
timber.log.Timber.e
import
javax.inject.Inject
import
javax.inject.Named
import
javax.inject.Singleton
...
...
@@ -18,7 +20,8 @@ import javax.inject.Singleton
*/
@Singleton
class
BigantoRetrofitRepository
(
retrofit
:
Retrofit
)
:
IBigantoApi
{
class
BigantoRetrofitRepository
@Inject
constructor
(
@Named
(
"bigantoApi"
)
retrofit
:
Retrofit
)
:
IBigantoApi
{
private
val
api
=
retrofit
.
create
(
IBigantoMobileApi
::
class
.
java
)
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/api/retrofit/di/RetrofitModule.kt
View file @
559a3d5f
package
com.biganto.visual.roompark.data.repository.api.retrofit.di
import
android.app.Application
import
android.content.Context
import
com.biganto.visual.roompark.data.repository.api.biganto.IBigantoMobileApi
import
com.biganto.visual.roompark.data.repository.api.retrofit.util.*
import
com.biganto.visual.roompark.data.repository.api.room_park.IRoomParkMobileApi
...
...
@@ -119,7 +118,7 @@ class RetrofitModule{
@Provides
@Singleton
@Named
(
"bigantoApi"
)
fun
provideRetrofitBigantoApi
(
context
:
Context
):
Retrofit
=
fun
provideRetrofitBigantoApi
(
context
:
Application
):
Retrofit
=
Retrofit
.
Builder
()
.
baseUrl
(
IBigantoMobileApi
.
BASE_URL
)
.
client
(
client
(
AppVersionManager
(
context
),
LiveNetworkMonitor
(
context
)))
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/api/room_park/RetrofitRepository.kt
View file @
559a3d5f
...
...
@@ -11,6 +11,7 @@ import retrofit2.Response
import
retrofit2.Retrofit
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Named
/**
* Created by Vladislav Bogdashkin on 29.10.2019.
...
...
@@ -18,7 +19,7 @@ import javax.inject.Inject
const
val
DEFAULT_ARTICLE_PAGE_SIZE
=
10
class
RetrofitRepository
@Inject
constructor
(
retrofit
:
Retrofit
)
:
class
RetrofitRepository
@Inject
constructor
(
@Named
(
"roomParkApi"
)
retrofit
:
Retrofit
)
:
IRoomParkApi
{
private
val
api
=
retrofit
.
create
(
IRoomParkMobileApi
::
class
.
java
)
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/RequeryRepository.kt
View file @
559a3d5f
package
com.biganto.visual.roompark.data.repository.db.requrey
import
android.app.Application
import
com.biganto.visual.roompark.Models
import
com.biganto.visual.roompark.data.repository.db.IDb
import
com.biganto.visual.roompark.data.repository.db.requrey.model.*
import
com.biganto.visual.roompark.di.dagger.DATABASE_VERSION
...
...
@@ -51,7 +52,6 @@ class RequeryRepository @Inject constructor(
override
fun
upsertUser
(
entity
:
UserEntity
):
Observable
<
UserEntity
>
=
store
.
upsert
(
entity
).
toObservable
()
override
fun
<
T
:
Persistable
>
upsert
(
entity
:
T
):
Single
<
T
>
=
store
.
upsert
(
entity
)
override
fun
<
T
:
List
<
Persistable
>
>
upsert
(
entity
:
T
):
Single
<
Iterable
<
Persistable
>>
=
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/model/Estate.kt
View file @
559a3d5f
package
com.biganto.visual.roompark.data.repository.db.requrey.model
import
com.biganto.visual.roomparkvr.data.repository.db.requery.model.TourPreview
import
io.requery.*
/**
...
...
@@ -38,6 +39,10 @@ interface Estate : Persistable {
@get
:
Nullable
val
multitourId
:
Int
?
@get
:
Nullable
@get
:
OneToMany
(
mappedBy
=
"estate"
)
val
tours
:
Set
<
TourPreview
>?
@get
:
Nullable
val
multitourPreview
:
String
?
...
...
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/model/File.kt
0 → 100644
View file @
559a3d5f
package
com.biganto.visual.roompark.data.repository.db.requrey.model
import
com.biganto.visual.roompark.data.repository.api.biganto.raw.TourFileRaw
import
com.biganto.visual.roompark.data.repository.db.requrey.RevisionString
import
com.biganto.visual.roompark.data.repository.db.requrey.utils.RevisionStringConverter
import
io.requery.*
/**
* Created by Vladislav Bogdashkin on 15.06.2018.
*/
@Entity
interface
File
:
Persistable
{
// @get:Key
// var id: String
// @get:Convert(URIConverter::class)
@get
:
Key
@get
:
Convert
(
RevisionStringConverter
::
class
)
val
uri
:
RevisionString
val
totalSize
:
Long
val
downloadedSize
:
Long
@get
:
Nullable
val
isDownloaded
:
Boolean
// @get:ForeignKey(references = Skybox::class)
// @get:ManyToOne(cascade = arrayOf(CascadeAction.NONE))
// var skyboxId:Skybox?
}
fun
fromRaw
(
raw
:
TourFileRaw
):
FileEntity
{
val
entity
=
FileEntity
()
entity
.
setDownloaded
(
false
)
entity
.
setDownloadedSize
(
0L
)
entity
.
setTotalSize
(
raw
.
size
)
entity
.
setUri
(
RevisionString
(
raw
.
url
.
substring
(
raw
.
url
.
indexOf
(
"asset"
))))
return
entity
}
fun
fromRaw
(
raw
:
List
<
TourFileRaw
>):
List
<
FileEntity
>
=
List
(
raw
.
size
)
{
index
->
fromRaw
(
raw
[
index
])
}
\ No newline at end of file
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/model/TourFileJunction.kt
0 → 100644
View file @
559a3d5f
package
com.biganto.visual.roompark.data.repository.db.requrey.model
import
com.biganto.visual.roompark.data.repository.db.requrey.RevisionString
import
com.biganto.visual.roompark.data.repository.db.requrey.utils.RevisionStringConverter
import
io.requery.*
/**
* Created by Vladislav Bogdashkin on 15.06.2018.
*/
@Entity
interface
TourFileJunction
:
Persistable
{
@get
:
Key
@get
:
Generated
val
id
:
Int
// @get:OneToOne( cascade = [CascadeAction.NONE])
// val tour: TourPreview
//+@get:ForeignKey(delete = ReferentialAction.NO_ACTION, update = ReferentialAction.NO_ACTION, references = TourPreviewEntity::class)
val
tour
:
String
// @get:OneToOne( cascade = [CascadeAction.NONE])
// val file: File
//@get:ForeignKey(delete = ReferentialAction.NO_ACTION, update = ReferentialAction.NO_ACTION, references = FileEntity::class)
@get
:
Convert
(
RevisionStringConverter
::
class
)
val
file
:
RevisionString
}
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/model/TourPreview.kt
0 → 100644
View file @
559a3d5f
package
com.biganto.visual.roomparkvr.data.repository.db.requery.model
import
com.biganto.visual.roompark.data.repository.api.biganto.raw.TourPreviewRaw
import
com.biganto.visual.roompark.data.repository.db.requrey.RevisionString
import
com.biganto.visual.roompark.data.repository.db.requrey.model.Estate
import
com.biganto.visual.roompark.data.repository.db.requrey.model.EstateEntity
import
com.biganto.visual.roompark.data.repository.db.requrey.utils.IntListConverter
import
com.biganto.visual.roompark.data.repository.db.requrey.utils.IsoDateConverter
import
com.biganto.visual.roompark.data.repository.db.requrey.utils.RevisionStringConverter
import
io.requery.*
import
java.util.*
import
kotlin.collections.ArrayList
import
kotlin.math.abs
/**
* Created by Vladislav Bogdashkin on 15.06.2018.
*/
@Entity
interface
TourPreview
:
Persistable
{
@get
:
Key
val
id
:
String
@get
:
ForeignKey
(
references
=
Estate
::
class
)
@get
:
ManyToOne
var
estate
:
Estate
//Obsolete
// @get:ForeignKey(references = Tour::class)
// @get:OneToOne(mappedBy = "id", cascade = arrayOf(CascadeAction.SAVE))
// var tour: Tour?
@get
:
Convert
(
IsoDateConverter
::
class
)
val
created
:
Date
@get
:
Convert
(
IsoDateConverter
::
class
)
val
updated
:
Date
val
type
:
String
val
screen
:
String
val
title
:
String
val
preview
:
String
?
val
hidden
:
Boolean
var
isDownloaded
:
DownloadState
var
overallSize
:
Long
var
tempSize
:
Long
var
downloadedSize
:
Long
var
overallFiles
:
Int
var
downloadedFiles
:
Int
var
targetResolution
:
Int
@get
:
Convert
(
IntListConverter
::
class
)
var
resolutions
:
ArrayList
<
Int
>
// @get:JunctionTable(name= "TourFilesRule")
// @get:ManyToMany( cascade = arrayOf(CascadeAction.NONE))
// @get:Convert(RevisionStringListConverter::class)
// var tourFiles: ArrayList<RevisionString>?
//
@get
:
Convert
(
RevisionStringConverter
::
class
)
val
metaFileEntityId
:
RevisionString
?
}
fun
fromRaw
(
raw
:
TourPreviewRaw
,
parentId
:
Int
,
baseUrl
:
String
,
userResolution
:
Int
):
TourPreviewEntity
{
val
tour
=
TourPreviewEntity
()
tour
.
setId
(
raw
.
id
.
toString
())
tour
.
setCreated
(
raw
.
created
)
tour
.
setUpdated
(
raw
.
updated
)
tour
.
setType
(
raw
.
type
)
tour
.
setTitle
(
raw
.
title
)
tour
.
setPreview
(
"$baseUrl${raw.preview}"
)
tour
.
setScreen
(
"$baseUrl${raw.screen}"
)
tour
.
setHidden
(
raw
.
hidden
)
tour
.
resolutions
=
if
(
raw
.
resolutions
!=
null
&&
!
raw
.
resolutions
.
isNullOrEmpty
())
ArrayList
(
raw
.
resolutions
)
else
ArrayList
(
1024
)
tour
.
targetResolution
=
raw
.
resolutions
?.
nearestResolution
(
userResolution
)
?:
1024
val
estate
=
EstateEntity
()
estate
.
setId
(
parentId
)
tour
.
estate
=
estate
tour
.
isDownloaded
=
DownloadState
.
NotDownloaded
tour
.
overallSize
=
0L
tour
.
downloadedSize
=
0L
tour
.
tempSize
=
0L
tour
.
overallFiles
=
0
tour
.
downloadedFiles
=
0
// val tourMeta= TourEntity()
// tourMeta.setId(raw.id.toString())
// tour.tour=tourMeta
return
tour
}
fun
List
<
Int
>.
nearestResolution
(
targetResolution
:
Int
):
Int
{
var
lastScore
=
Int
.
MAX_VALUE
var
lastRes
=
0
for
(
res
in
this
){
var
d
=
targetResolution
-
res
if
(
d
>
0
)
d
*=
2
d
=
abs
(
d
)
if
(
d
<
lastScore
){
lastScore
=
d
;
lastRes
=
res
}
}
// Timber.d("Resolutions: $this / t=$targetResolution final=$lastRes score=$lastScore")
return
lastRes
}
fun
fromRaw
(
raw
:
List
<
TourPreviewRaw
>,
parentId
:
String
,
url
:
String
,
userResolution
:
Int
):
List
<
TourPreviewEntity
>
=
List
(
raw
.
size
)
{
index
->
fromRaw
(
raw
[
index
],
parentId
,
url
,
userResolution
)
}
enum
class
DownloadState
(
val
i
:
Int
):
Comparable
<
DownloadState
>{
NotDownloaded
(
0
),
MetaPreparation
(
1
),
DownloadQueue
(
2
),
Downloading
(
3
),
Suspended
(
4
),
Downloaded
(
5
),
Crushed
(
6
),
Deleting
(
7
),
NotSynced
(
20
);
}
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/utils/RevisionStringConverter.java
0 → 100644
View file @
559a3d5f
package
com
.
biganto
.
visual
.
roompark
.
data
.
repository
.
db
.
requrey
.
utils
;
import
com.biganto.visual.roompark.data.repository.db.requrey.RevisionString
;
import
io.requery.Converter
;
/**
* Created by Vladislav Bogdashkin on 04.07.2018.
*/
public
class
RevisionStringConverter
implements
Converter
<
RevisionString
,
String
>
{
@SuppressWarnings
(
"unchecked"
)
@Override
public
Class
<
RevisionString
>
getMappedType
()
{
return
RevisionString
.
class
;
}
@Override
public
Class
<
String
>
getPersistedType
()
{
return
String
.
class
;
}
@Override
public
Integer
getPersistedSize
()
{
return
null
;
}
@Override
public
String
convertToPersisted
(
RevisionString
value
)
{
return
value
==
null
?
null
:
value
.
revisionUri
();
}
@Override
public
RevisionString
convertToMapped
(
Class
<?
extends
RevisionString
>
type
,
String
value
)
{
return
value
==
null
?
null
:
new
RevisionString
(
value
);
}
}
\ No newline at end of file
app/src/main/java/com/biganto/visual/roompark/data/repository/db/requrey/utils/RevisionStringListConverter.java
0 → 100644
View file @
559a3d5f
package
com
.
biganto
.
visual
.
roompark
.
data
.
repository
.
db
.
requrey
.
utils
;
import
com.biganto.visual.roompark.data.repository.db.requrey.RevisionString
;
import
java.util.ArrayList
;
import
io.requery.Converter
;
public
class
RevisionStringListConverter
implements
Converter
<
ArrayList
<
RevisionString
>,
String
>
{
private
static
final
String
stringDelimeter
=
">RS<"
;
@SuppressWarnings
(
"unchecked"
)
@Override
public
Class
<
ArrayList
<
RevisionString
>>
getMappedType
()
{
return
(
Class
)
ArrayList
.
class
;
}
@Override
public
Class
<
String
>
getPersistedType
()
{
return
String
.
class
;
}
@Override
public
Integer
getPersistedSize
()
{
return
null
;
}
@Override
public
String
convertToPersisted
(
ArrayList
<
RevisionString
>
value
)
{
if
(
value
==
null
)
{
return
""
;
}
StringBuilder
sb
=
new
StringBuilder
();
int
index
=
0
;
for
(
RevisionString
str:
value
)
{
if
(
index
>
0
)
{
sb
.
append
(
stringDelimeter
);
}
sb
.
append
(
str
.
revisionUri
());
index
++;
}
return
sb
.
toString
();
}
@Override
public
ArrayList
<
RevisionString
>
convertToMapped
(
Class
<?
extends
ArrayList
<
RevisionString
>>
type
,
String
value
)
{
ArrayList
<
RevisionString
>
list
=
new
ArrayList
<>();
if
(
value
!=
null
&&
!
value
.
isEmpty
())
for
(
String
s
:
value
.
split
(
stringDelimeter
))
list
.
add
(
new
RevisionString
(
s
));
return
list
;
}
}
app/src/main/java/com/biganto/visual/roompark/di/dagger/ContextModule.kt
View file @
559a3d5f
...
...
@@ -9,19 +9,7 @@ import dagger.Module
* Created by Vladislav Bogdashkin on 13.06.2018.
*/
const
val
USER_CACHE_LIMIT_SIZE
=
3
const
val
USER_CACHE_LIMIT_SECONDS_INACTIVE
=
30L
const
val
TOURS_CACHE_LIMIT_SIZE
=
500
const
val
TOURS_CACHE_LIMIT_SECONDS_INACTIVE
=
200L
const
val
ESTATES_CACHE_LIMIT_SIZE
=
100
const
val
ESTATES_CACHE_LIMIT_SECONDS_INACTIVE
=
200L
const
val
FILES_CACHE_LIMIT_SIZE
=
10000
const
val
FILES_CACHE_LIMIT_SECONDS_INACTIVE
=
60L
const
val
DATABASE_VERSION
=
12
const
val
DATABASE_VERSION
=
13
@Module
abstract
class
AppModule
{
...
...
app/src/main/java/com/biganto/visual/roompark/di/dagger/DataModule.kt
View file @
559a3d5f
...
...
@@ -14,9 +14,6 @@ import com.biganto.visual.roompark.domain.contract.*
import
dagger.Binds
import
dagger.Component
import
dagger.Module
import
dagger.Provides
import
retrofit2.Retrofit
import
javax.inject.Named
import
javax.inject.Singleton
@Component
...
...
@@ -61,18 +58,14 @@ abstract class ContractRepositoryModule {
@Module
abstract
class
DataModule
{
@Provides
@Singleton
fun
provieApi
(
@Named
(
"bigantoApi"
)
retrofit
:
Retrofit
):
IBigantoApi
{
return
BigantoRetrofitRepository
(
retrofit
)
}
@Binds
abstract
fun
provideBigantoApi
(
bigantoApi
:
BigantoRetrofitRepository
):
IBigantoApi
@Provides
@Singleton
fun
provieRoomParkApi
(
@Named
(
"roomParkApi"
)
retrofit
:
Retrofit
):
IRoomParkApi
{
return
RetrofitRepository
(
retrofit
)
}
@Binds
abstract
fun
provideRoomParkApi
(
roomParkApi
:
RetrofitRepository
):
IRoomParkApi
@Singleton
@Binds
...
...
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