Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

This Is Latest Release

$version_release = 2.3.2
$version_release = 2.3.3

What's New??

Expand Down Expand Up @@ -54,7 +54,7 @@ allprojects {
```groovy
dependencies {
// library frogo-sdk
implementation 'com.github.frogobox:frogo-sdk:2.3.2'
implementation 'com.github.frogobox:frogo-sdk:2.3.3'
}
```

Expand All @@ -63,14 +63,14 @@ dependencies {
```groovy
dependencies {
// library frogo-sdk
implementation("com.github.frogobox:frogo-sdk:2.3.2")
implementation("com.github.frogobox:frogo-sdk:2.3.3")
}
```

#### <Option 3> libs.versions.toml
```yml
[versions]
frogoAndroid = "2.3.2"
frogoAndroid = "2.3.3"

[libraries]
frogo-android = { group = "com.github.frogobox", name = "frogo-sdk", version.ref = "frogoAndroid" }
Expand Down
17 changes: 14 additions & 3 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,11 +1,25 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.text.SimpleDateFormat
import java.util.Date

plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.ksp)
id("kotlin-parcelize")
}

ksp {
arg("room.schemaLocation", "$projectDir/schemas") // If Using Ksp
}

base {
// Naming APK // AAB
val timestamp = SimpleDateFormat("dd-MM-yyyy_hh-mm").format(Date())
archivesName = "${ProjectSetting.NAME_APK}-[${ProjectSetting.PROJECT_VERSION_NAME}]-$timestamp"
}


android {

compileSdk = ProjectSetting.PROJECT_COMPILE_SDK
Expand All @@ -26,9 +40,6 @@ android {
// Declaration build config
buildConfigField("String", "DATABASE_NAME", ProjectSetting.DB)

// Naming APK // AAB
setProperty("archivesBaseName", "${ProjectSetting.NAME_APK}(${versionName})")

// Declaration apps name debug mode
val debugAttribute = "Development"
val nameAppDebug = "${ProjectSetting.NAME_APP} $debugAttribute"
Expand Down
65 changes: 65 additions & 0 deletions app/schemas/com.frogobox.appsdk.source.AppDatabase/1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"formatVersion": 1,
"database": {
"version": 1,
"identityHash": "2e79a9bdd7c1e5de61e10c8203b81266",
"entities": [
{
"tableName": "article",
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `author` TEXT, `title` TEXT, `description` TEXT, `url` TEXT, `urlToImage` TEXT, `publishedAt` TEXT, `content` TEXT)",
"fields": [
{
"fieldPath": "id",
"columnName": "id",
"affinity": "INTEGER"
},
{
"fieldPath": "author",
"columnName": "author",
"affinity": "TEXT"
},
{
"fieldPath": "title",
"columnName": "title",
"affinity": "TEXT"
},
{
"fieldPath": "description",
"columnName": "description",
"affinity": "TEXT"
},
{
"fieldPath": "url",
"columnName": "url",
"affinity": "TEXT"
},
{
"fieldPath": "urlToImage",
"columnName": "urlToImage",
"affinity": "TEXT"
},
{
"fieldPath": "publishedAt",
"columnName": "publishedAt",
"affinity": "TEXT"
},
{
"fieldPath": "content",
"columnName": "content",
"affinity": "TEXT"
}
],
"primaryKey": {
"autoGenerate": true,
"columnNames": [
"id"
]
}
}
],
"setupQueries": [
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '2e79a9bdd7c1e5de61e10c8203b81266')"
]
}
}
6 changes: 5 additions & 1 deletion app/src/main/java/com/frogobox/appsdk/model/Article.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package com.frogobox.appsdk.model

import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import com.google.gson.annotations.SerializedName
import kotlinx.parcelize.Parcelize

/**
* Created by Faisal Amir
Expand All @@ -22,6 +24,8 @@ import com.google.gson.annotations.SerializedName
* com.frogobox.frogoconsumeapi.news.data.model
*
*/

@Parcelize
@Entity(tableName = "article")
data class Article(

Expand Down Expand Up @@ -55,4 +59,4 @@ data class Article(
@ColumnInfo(name = "content")
@SerializedName("content")
var content: String? = null,
)
) : Parcelable
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.frogobox.sdk.ext.setImageExt

class NewsDetailActivity : BaseActivity<ActivityNewsDetailBinding>() {

private val extraData: Article by lazy {
private val extraData: Article? by lazy {
getExtraExt("EXTRA_NEWS_DETAIL")
}

Expand All @@ -22,9 +22,9 @@ class NewsDetailActivity : BaseActivity<ActivityNewsDetailBinding>() {
super.onCreateExt(savedInstanceState)
setupDetailActivity("Detail News")
binding.apply {
ivNewsDetailImage.setImageExt(extraData.urlToImage, R.drawable.ic_frogobox)
newsDetailTitle.text = extraData.title
newsDetailDescription.text = extraData.description
ivNewsDetailImage.setImageExt(extraData?.urlToImage, R.drawable.ic_frogobox)
newsDetailTitle.text = extraData?.title
newsDetailDescription.text = extraData?.description
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.frogobox.appsdk.core.BaseActivity
import com.frogobox.appsdk.model.Article
import com.frogobox.appsdk.news.NewsViewAdapter
import com.frogobox.coresdk.source.FrogoResult
import com.frogobox.coresdk.source.Resource
import com.frogobox.databinding.ActivityNewsBinding
import com.frogobox.sdk.ext.gone
import com.frogobox.sdk.ext.visible
Expand All @@ -25,15 +25,15 @@ class NewsResultActivity : BaseActivity<ActivityNewsBinding>() {

articles.observe(this@NewsResultActivity) {
when (it) {
is FrogoResult.Error -> {
is Resource.Error -> {
binding.progressCircular.gone()
}

is FrogoResult.Loading -> {
is Resource.Loading -> {
binding.progressCircular.visible()
}

is FrogoResult.Success -> {
is Resource.Success -> {
binding.progressCircular.gone()
it.result.articles?.let { list ->
setupRecyclerView(list)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
import com.frogobox.appsdk.model.ArticleResponse
import com.frogobox.appsdk.source.AppRepository
import com.frogobox.appsdk.util.NewsConstant
import com.frogobox.coresdk.source.FrogoResult
import com.frogobox.coresdk.source.Resource
import com.frogobox.sdk.view.FrogoViewModel2


Expand All @@ -26,8 +26,8 @@ class NewsResultViewModel(
private val repository: AppRepository,
) : FrogoViewModel2() {

private var _articles = MutableLiveData<FrogoResult<ArticleResponse>>()
var articles: LiveData<FrogoResult<ArticleResponse>> = _articles
private var _articles = MutableLiveData<Resource<ArticleResponse>>()
var articles: LiveData<Resource<ArticleResponse>> = _articles

private fun getData() {
repository.getTopHeadlineResult(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.frogobox.appsdk.source
import androidx.lifecycle.MutableLiveData
import com.frogobox.appsdk.model.ArticleResponse
import com.frogobox.appsdk.model.SourceResponse
import com.frogobox.coresdk.source.FrogoResult
import com.frogobox.coresdk.source.Resource
import com.frogobox.coresdk.source.ICoreDataSource


Expand All @@ -30,7 +30,7 @@ interface AppDataSourceResult : ICoreDataSource {
country: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
)

// Get Everythings
Expand All @@ -46,15 +46,15 @@ interface AppDataSourceResult : ICoreDataSource {
sortBy: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
)

// Get Sources
fun getSourcesResult(
language: String,
country: String,
category: String,
result: MutableLiveData<FrogoResult<SourceResponse>>,
result: MutableLiveData<Resource<SourceResponse>>,
)

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import com.frogobox.appsdk.util.NewsUrl
import com.frogobox.coresdk.response.FrogoDataResponse
import com.frogobox.coresdk.response.FrogoStateResponse
import com.frogobox.coresdk.source.FrogoApiClient
import com.frogobox.coresdk.source.FrogoResult
import com.frogobox.coresdk.source.Resource
import com.frogobox.sdk.ext.doApiRequest
import com.frogobox.sdk.ext.doApiRequestResult
import com.frogobox.sdk.ext.usingChuck
Expand Down Expand Up @@ -163,7 +163,7 @@ class AppRemoteDataSource(private val context: Context) : FrogoRemoteDataSource(
country: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
) {
FrogoApiClient
.create<AppApiService>(
Expand All @@ -189,7 +189,7 @@ class AppRemoteDataSource(private val context: Context) : FrogoRemoteDataSource(
sortBy: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
) {
FrogoApiClient
.create<AppApiService>(
Expand Down Expand Up @@ -220,7 +220,7 @@ class AppRemoteDataSource(private val context: Context) : FrogoRemoteDataSource(
language: String,
country: String,
category: String,
result: MutableLiveData<FrogoResult<SourceResponse>>,
result: MutableLiveData<Resource<SourceResponse>>,
) {
FrogoApiClient
.create<AppApiService>(
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/com/frogobox/appsdk/source/AppRepository.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import com.frogobox.appsdk.model.ArticleResponse
import com.frogobox.appsdk.model.SourceResponse
import com.frogobox.coresdk.response.FrogoDataResponse
import com.frogobox.coresdk.response.FrogoStateResponse
import com.frogobox.coresdk.source.FrogoResult
import com.frogobox.coresdk.source.Resource
import com.frogobox.sdk.ext.toJson
import com.frogobox.sdk.source.FrogoRepository
import com.frogobox.sdk.util.FrogoFunc
Expand Down Expand Up @@ -193,7 +193,7 @@ class AppRepository(
country: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
) {
remoteDataSource.getTopHeadlineResult(q, sources, category, country, pageSize, page, result)
}
Expand All @@ -210,7 +210,7 @@ class AppRepository(
sortBy: String?,
pageSize: Int?,
page: Int?,
result: MutableLiveData<FrogoResult<ArticleResponse>>,
result: MutableLiveData<Resource<ArticleResponse>>,
) {
remoteDataSource.getEverythingsResult(
q,
Expand All @@ -232,7 +232,7 @@ class AppRepository(
language: String,
country: String,
category: String,
result: MutableLiveData<FrogoResult<SourceResponse>>,
result: MutableLiveData<Resource<SourceResponse>>,
) {
remoteDataSource.getSourcesResult(language, country, category, result)
}
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/ProjectSetting.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ object ProjectSetting {

const val VERSION_MAJOR = 2
const val VERSION_MINOR = 3
const val VERSION_PATCH = 2
const val VERSION_PATCH = 3

// ---------------------------------------------------------------------------------------------

Expand Down
1 change: 1 addition & 0 deletions core-ads/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.jetbrains.kotlin.android)
id("kotlin-parcelize")
`maven-publish`
}

Expand Down
2 changes: 2 additions & 0 deletions core-sdk-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.jetbrains.kotlin.android)
alias(libs.plugins.ksp)
id("kotlin-parcelize")
`maven-publish`
}

Expand Down Expand Up @@ -84,6 +85,7 @@ dependencies {

api(libs.github.glide)
api(libs.github.customactivityoncrash)
api(libs.kotlinx.coroutines.android)

ksp(libs.androidx.lifecycle.compiler)
ksp(libs.androidx.room.compiler)
Expand Down
Loading