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
5 years ago
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
master
bugfix/sdk29_nullable_safe
develop
feature/fix_furniture_walls_condition
feature/subs_fix
feature/subscriptions_refresh
production/v.0.9.5
No related merge requests found
Changes
12
Show 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
...
@@ -10,6 +10,8 @@ import retrofit2.Response
import
retrofit2.Retrofit
import
retrofit2.Retrofit
import
timber.log.Timber
import
timber.log.Timber
import
timber.log.Timber.e
import
timber.log.Timber.e
import
javax.inject.Inject
import
javax.inject.Named
import
javax.inject.Singleton
import
javax.inject.Singleton
...
@@ -18,7 +20,8 @@ import javax.inject.Singleton
...
@@ -18,7 +20,8 @@ import javax.inject.Singleton
*/
*/
@Singleton
@Singleton
class
BigantoRetrofitRepository
(
retrofit
:
Retrofit
)
:
IBigantoApi
{
class
BigantoRetrofitRepository
@Inject
constructor
(
@Named
(
"bigantoApi"
)
retrofit
:
Retrofit
)
:
IBigantoApi
{
private
val
api
=
retrofit
.
create
(
IBigantoMobileApi
::
class
.
java
)
private
val
api
=
retrofit
.
create
(
IBigantoMobileApi
::
class
.
java
)
...
...
This diff is collapsed.
Click to expand it.
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
package
com.biganto.visual.roompark.data.repository.api.retrofit.di
import
android.app.Application
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.biganto.IBigantoMobileApi
import
com.biganto.visual.roompark.data.repository.api.retrofit.util.*
import
com.biganto.visual.roompark.data.repository.api.retrofit.util.*
import
com.biganto.visual.roompark.data.repository.api.room_park.IRoomParkMobileApi
import
com.biganto.visual.roompark.data.repository.api.room_park.IRoomParkMobileApi
...
@@ -119,7 +118,7 @@ class RetrofitModule{
...
@@ -119,7 +118,7 @@ class RetrofitModule{
@Provides
@Provides
@Singleton
@Singleton
@Named
(
"bigantoApi"
)
@Named
(
"bigantoApi"
)
fun
provideRetrofitBigantoApi
(
context
:
Context
):
Retrofit
=
fun
provideRetrofitBigantoApi
(
context
:
Application
):
Retrofit
=
Retrofit
.
Builder
()
Retrofit
.
Builder
()
.
baseUrl
(
IBigantoMobileApi
.
BASE_URL
)
.
baseUrl
(
IBigantoMobileApi
.
BASE_URL
)
.
client
(
client
(
AppVersionManager
(
context
),
LiveNetworkMonitor
(
context
)))
.
client
(
client
(
AppVersionManager
(
context
),
LiveNetworkMonitor
(
context
)))
...
...
This diff is collapsed.
Click to expand it.
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
...
@@ -11,6 +11,7 @@ import retrofit2.Response
import
retrofit2.Retrofit
import
retrofit2.Retrofit
import
timber.log.Timber
import
timber.log.Timber
import
javax.inject.Inject
import
javax.inject.Inject
import
javax.inject.Named
/**
/**
* Created by Vladislav Bogdashkin on 29.10.2019.
* Created by Vladislav Bogdashkin on 29.10.2019.
...
@@ -18,7 +19,7 @@ import javax.inject.Inject
...
@@ -18,7 +19,7 @@ import javax.inject.Inject
const
val
DEFAULT_ARTICLE_PAGE_SIZE
=
10
const
val
DEFAULT_ARTICLE_PAGE_SIZE
=
10
class
RetrofitRepository
@Inject
constructor
(
retrofit
:
Retrofit
)
:
class
RetrofitRepository
@Inject
constructor
(
@Named
(
"roomParkApi"
)
retrofit
:
Retrofit
)
:
IRoomParkApi
{
IRoomParkApi
{
private
val
api
=
retrofit
.
create
(
IRoomParkMobileApi
::
class
.
java
)
private
val
api
=
retrofit
.
create
(
IRoomParkMobileApi
::
class
.
java
)
...
...
This diff is collapsed.
Click to expand it.
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
package
com.biganto.visual.roompark.data.repository.db.requrey
import
android.app.Application
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.IDb
import
com.biganto.visual.roompark.data.repository.db.requrey.model.*
import
com.biganto.visual.roompark.data.repository.db.requrey.model.*
import
com.biganto.visual.roompark.di.dagger.DATABASE_VERSION
import
com.biganto.visual.roompark.di.dagger.DATABASE_VERSION
...
@@ -51,7 +52,6 @@ class RequeryRepository @Inject constructor(
...
@@ -51,7 +52,6 @@ class RequeryRepository @Inject constructor(
override
fun
upsertUser
(
entity
:
UserEntity
):
Observable
<
UserEntity
>
=
override
fun
upsertUser
(
entity
:
UserEntity
):
Observable
<
UserEntity
>
=
store
.
upsert
(
entity
).
toObservable
()
store
.
upsert
(
entity
).
toObservable
()
override
fun
<
T
:
Persistable
>
upsert
(
entity
:
T
):
Single
<
T
>
=
store
.
upsert
(
entity
)
override
fun
<
T
:
Persistable
>
upsert
(
entity
:
T
):
Single
<
T
>
=
store
.
upsert
(
entity
)
override
fun
<
T
:
List
<
Persistable
>
>
upsert
(
entity
:
T
):
Single
<
Iterable
<
Persistable
>>
=
override
fun
<
T
:
List
<
Persistable
>
>
upsert
(
entity
:
T
):
Single
<
Iterable
<
Persistable
>>
=
...
...
This diff is collapsed.
Click to expand it.
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
package
com.biganto.visual.roompark.data.repository.db.requrey.model
import
com.biganto.visual.roomparkvr.data.repository.db.requery.model.TourPreview
import
io.requery.*
import
io.requery.*
/**
/**
...
@@ -38,6 +39,10 @@ interface Estate : Persistable {
...
@@ -38,6 +39,10 @@ interface Estate : Persistable {
@get
:
Nullable
@get
:
Nullable
val
multitourId
:
Int
?
val
multitourId
:
Int
?
@get
:
Nullable
@get
:
OneToMany
(
mappedBy
=
"estate"
)
val
tours
:
Set
<
TourPreview
>?
@get
:
Nullable
@get
:
Nullable
val
multitourPreview
:
String
?
val
multitourPreview
:
String
?
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
}
This diff is collapsed.
Click to expand it.
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
);
}
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
;
}
}
This diff is collapsed.
Click to expand it.
app/src/main/java/com/biganto/visual/roompark/di/dagger/ContextModule.kt
View file @
559a3d5f
...
@@ -9,19 +9,7 @@ import dagger.Module
...
@@ -9,19 +9,7 @@ import dagger.Module
* Created by Vladislav Bogdashkin on 13.06.2018.
* Created by Vladislav Bogdashkin on 13.06.2018.
*/
*/
const
val
USER_CACHE_LIMIT_SIZE
=
3
const
val
DATABASE_VERSION
=
13
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
@Module
@Module
abstract
class
AppModule
{
abstract
class
AppModule
{
...
...
This diff is collapsed.
Click to expand it.
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.*
...
@@ -14,9 +14,6 @@ import com.biganto.visual.roompark.domain.contract.*
import
dagger.Binds
import
dagger.Binds
import
dagger.Component
import
dagger.Component
import
dagger.Module
import
dagger.Module
import
dagger.Provides
import
retrofit2.Retrofit
import
javax.inject.Named
import
javax.inject.Singleton
import
javax.inject.Singleton
@Component
@Component
...
@@ -61,18 +58,14 @@ abstract class ContractRepositoryModule {
...
@@ -61,18 +58,14 @@ abstract class ContractRepositoryModule {
@Module
@Module
abstract
class
DataModule
{
abstract
class
DataModule
{
@Provides
@Singleton
@Singleton
fun
provieApi
(
@Named
(
"bigantoApi"
)
retrofit
:
Retrofit
):
IBigantoApi
{
@Binds
return
BigantoRetrofitRepository
(
retrofit
)
abstract
fun
provideBigantoApi
(
bigantoApi
:
BigantoRetrofitRepository
):
IBigantoApi
}
@Provides
@Singleton
@Singleton
fun
provieRoomParkApi
(
@Named
(
"roomParkApi"
)
retrofit
:
Retrofit
):
IRoomParkApi
{
@Binds
return
RetrofitRepository
(
retrofit
)
abstract
fun
provideRoomParkApi
(
roomParkApi
:
RetrofitRepository
):
IRoomParkApi
}
@Singleton
@Singleton
@Binds
@Binds
...
...
This diff is collapsed.
Click to expand it.
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