Skip to content

Commit

Permalink
widget: Convert module to Kotlin.
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelnew committed Apr 8, 2019
1 parent 7bfcd4d commit 8260657
Show file tree
Hide file tree
Showing 86 changed files with 3,104 additions and 3,030 deletions.
17 changes: 16 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,30 @@ buildscript {
versions.target_sdk = 28
versions.compile_sdk = 28

versions.gradle_version = '3.3.1'
versions.gradle_version = '3.3.2'
versions.bintray_version = '0.5.0'

versions.dagger_version = '2.21'
versions.core = "1.1.0-alpha05"
versions.material = "1.1.0-alpha05"
versions.navigation = "2.0.0"
versions.safe_args = "2.0.0"
versions.lifecycle = "2.1.0-alpha04"
versions.constraintlayout = "2.0.0-alpha3"
versions.annotation = '1.0.2'
versions.appcompat = "1.1.0-alpha04"

versions.okhttp = "3.13.1"
versions.retrofit = "2.5.0"

versions.picasso = "2.5.2"

versions.moshi = "1.8.0"

versions.junit = "4.12"
versions.test_runner = "1.1.0-beta02"
versions.espresso_core = "3.1.0-beta02"

ext.versions = versions

repositories {
Expand All @@ -29,6 +43,7 @@ buildscript {
dependencies {
classpath "com.android.tools.build:gradle:$versions.gradle_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$versions.safe_args"
classpath "com.novoda:bintray-release:$versions.bintray_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
Expand Down
4 changes: 3 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# org.gradle.parallel=true
android.enableJetifier=true
android.useAndroidX=true
11 changes: 8 additions & 3 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.novoda.bintray-release'


android {
compileSdkVersion versions.compile_sdk

Expand All @@ -14,6 +13,13 @@ android {
versionCode 5
versionName "1.0.4"
}

androidExtensions {
// Enable experimental Kotlin features in gradle to enable Parcelize
// https://github.com/Kotlin/KEEP/blob/master/proposals/extensions/android-parcelable.md
experimental = true
}

buildTypes {
release {
minifyEnabled false
Expand Down Expand Up @@ -59,8 +65,7 @@ publish {
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
testImplementation "junit:junit:$versions.junit"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$versions.kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$versions.kotlin_version"
implementation "com.squareup.moshi:moshi:$versions.moshi"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class RequestHelper(private val client: UploadcareClient) {
} catch (e: GeneralSecurityException) {
e.printStackTrace()
if (callback == null) {
throw UploadcareApiException("Error when signing the request", e)
throw UploadcareApiException("Error when signing the request")
} else {
callback.onFailure(UploadcareApiException("Error when signing the request", e))
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
package com.uploadcare.android.library.api

import android.os.Parcelable
import com.squareup.moshi.Json
import com.uploadcare.android.library.urls.CdnPathBuilder
import kotlinx.android.parcel.Parcelize
import java.net.URI
import java.util.*

@Parcelize
data class UploadcareFile(val uuid: String,
val url: URI,
val size: Int,
@Json(name = "mime_type") val mimeType: String,
@Json(name = "is_ready") val isReady: Boolean,
@Json(name = "is_image") val isImage: Boolean,
@Json(name = "original_filename") val originalFilename: String,
@Json(name = "is_image") val isImage: Boolean? = false,
@Json(name = "mime_type") val mimeType: String? = null,
@Json(name = "original_filename") val originalFilename: String? = null,
@Json(name = "original_file_url") val originalFileUrl: URI? = null,
@Json(name = "datetime_uploaded") val datetimeUploaded: Date,
@Json(name = "datetime_stored") val datetimeStored: Date? = null,
@Json(name = "datetime_removed") val datetimeRemoved: Date? = null) {
@Json(name = "datetime_removed") val datetimeRemoved: Date? = null)
: Parcelable {

fun hasOriginalFileUrl() = originalFileUrl != null

Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
package com.uploadcare.android.library.api

import android.os.Parcelable
import com.squareup.moshi.Json
import kotlinx.android.parcel.Parcelize
import java.net.URI
import java.util.*

@Parcelize
data class UploadcareGroup(val id: String,
val url: URI,
val files: List<UploadcareFile>? = null,
@Json(name = "datetime_created") val datetimeCreated: Date,
@Json(name = "datetime_stored") val datetimeStored: Date,
@Json(name = "files_count") val filesCount: Int,
@Json(name = "cdn_url") val cdnUrl: URI) {
@Json(name = "cdn_url") val cdnUrl: URI) : Parcelable {

fun hasFiles() = files != null

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import java.lang.reflect.Type
import java.util.*
import kotlin.reflect.KClass

class ObjectMapper(private val moshi: Moshi) {
class ObjectMapper(val moshi: Moshi) {

fun <T : Any> fromJson(json: String, classOfT: Class<T>): T? {
val jsonAdapter: JsonAdapter<T> = moshi.adapter(classOfT)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ package com.uploadcare.android.library.data
import com.squareup.moshi.Json

data class UploadFromUrlStatusData(val status: String,
@Json(name = "file_id") val fileId: String)
@Json(name = "file_id") val fileId: String?)
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package com.uploadcare.android.library.exceptions

import android.os.Parcelable
import kotlinx.android.parcel.Parcelize

@Parcelize
data class UploadcareException(val message: String? = "Upload failed") : Parcelable

/**
* A generic error of the uploadcare API.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package com.uploadcare.android.library.upload
import android.os.AsyncTask
import com.uploadcare.android.library.api.RequestHelper
import com.uploadcare.android.library.api.UploadcareClient
import com.uploadcare.android.library.api.UploadcareFile
import com.uploadcare.android.library.callbacks.UploadFilesCallback
import com.uploadcare.android.library.data.UploadFromUrlData
import com.uploadcare.android.library.data.UploadFromUrlStatusData
import com.uploadcare.android.library.api.UploadcareFile
import com.uploadcare.android.library.exceptions.UploadFailureException
import com.uploadcare.android.library.urls.Urls
import java.util.*
Expand Down Expand Up @@ -81,7 +81,7 @@ class MultipleUrlsUploader constructor(private val client: UploadcareClient,
sleep(pollingInterval.toLong())
val (status, fileId) = client.requestHelper.executeQuery(RequestHelper.REQUEST_GET,
statusUrl.toString(), false, UploadFromUrlStatusData::class.java)
if (status == "success") {
if (status == "success" && fileId != null) {
print(" upload status success:")
results.add(client.getFile(fileId))
break
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ package com.uploadcare.android.library.upload
import android.os.AsyncTask
import com.uploadcare.android.library.api.RequestHelper
import com.uploadcare.android.library.api.UploadcareClient
import com.uploadcare.android.library.api.UploadcareFile
import com.uploadcare.android.library.callbacks.UploadcareFileCallback
import com.uploadcare.android.library.data.UploadFromUrlData
import com.uploadcare.android.library.data.UploadFromUrlStatusData
import com.uploadcare.android.library.api.UploadcareFile
import com.uploadcare.android.library.exceptions.UploadFailureException
import com.uploadcare.android.library.urls.Urls

Expand Down Expand Up @@ -57,7 +57,7 @@ class UrlUploader(private val client: UploadcareClient, private val sourceUrl: S
sleep(pollingInterval.toLong())
val (status, fileId) = client.requestHelper.executeQuery(RequestHelper.REQUEST_GET,
statusUrl.toString(), false, UploadFromUrlStatusData::class.java)
if (status == "success") {
if (status == "success" && fileId != null) {
println("url upload request status success")
return client.getFile(fileId)
} else if (status == "error" || status == "failed") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ enum class Order constructor(val rawValue: String) {
UPLOAD_TIME_ASC("datetime_uploaded"),
UPLOAD_TIME_DESC("-datetime_uploaded"),
SIZE_ASC("size"),
SIZE_DESC("-size");
SIZE_DESC("-size")
}
61 changes: 48 additions & 13 deletions widget/build.gradle
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'com.novoda.bintray-release'

android {
Expand All @@ -10,6 +14,17 @@ android {
versionCode 4
versionName "1.0.5"
}

dataBinding {
enabled = true
}

androidExtensions {
// Enable experimental Kotlin features in gradle to enable Parcelize
// https://github.com/Kotlin/KEEP/blob/master/proposals/extensions/android-parcelable.md
experimental = true
}

buildTypes {
debug {
debuggable true
Expand Down Expand Up @@ -67,21 +82,41 @@ publish {
dryRun = false
}


dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation project (':library')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:support-annotations:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit"
implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
kapt "androidx.lifecycle:lifecycle-compiler:$versions.lifecycle"
kapt "com.google.dagger:dagger-android-processor:$versions.dagger_version"
kapt "com.google.dagger:dagger-compiler:$versions.dagger_version"
implementation project(':library')

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$versions.kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$versions.kotlin_version"

implementation "androidx.core:core-ktx:$versions.core"

implementation "androidx.navigation:navigation-fragment-ktx:$versions.navigation"
implementation "androidx.navigation:navigation-ui-ktx:$versions.navigation"

implementation "androidx.appcompat:appcompat:$versions.appcompat"
implementation "com.google.android.material:material:$versions.material"
implementation "androidx.constraintlayout:constraintlayout:$versions.constraintlayout"

implementation "androidx.lifecycle:lifecycle-extensions:$versions.lifecycle"
implementation "androidx.lifecycle:lifecycle-common-java8:$versions.lifecycle"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$versions.lifecycle"

implementation "com.squareup.moshi:moshi:$versions.moshi"
implementation "com.squareup.moshi:moshi-adapters:$versions.moshi"
implementation "com.squareup.moshi:moshi-kotlin:$versions.moshi"

implementation "com.squareup.okhttp3:okhttp:$versions.okhttp"
implementation "com.squareup.okhttp3:logging-interceptor:$versions.okhttp"
testImplementation "com.squareup.okhttp3:mockwebserver:$versions.okhttp"
implementation 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0'
implementation 'jp.wasabeef:recyclerview-animators:2.1.0'

implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
implementation "com.squareup.retrofit2:converter-moshi:$versions.retrofit"

implementation "com.squareup.picasso:picasso:$versions.picasso"

androidTestImplementation "androidx.test:runner:$versions.test_runner"
androidTestImplementation "androidx.test.espresso:espresso-core:$versions.espresso_core"
}
30 changes: 14 additions & 16 deletions widget/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,28 +1,26 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.uploadcare.android.widget">
<manifest package="com.uploadcare.android.widget"
xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity android:name=".activity.UploadcareActivity"
android:theme="@style/UploadcareWidget.Translucent"
android:label="@string/ucw_uploadcare_activity_title"/>
<activity android:name=".activity.UploadcareAuthActivity"
android:theme="@style/UploadcareWidget"
android:label="@string/ucw_authorization_acitivity_title"/>
<activity android:name=".activity.UploadcareFilesActivity"
android:theme="@style/UploadcareWidget.NoActionBar"
android:label="@string/ucw_files_acitivity_title"/>

<application
android:allowBackup="true"
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name=".activity.UploadcareActivity"
android:label="@string/ucw_uploadcare_activity_title"
android:theme="@style/UploadcareWidget.NoActionBar"/>

<provider
android:name="android.support.v4.content.FileProvider"
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
android:resource="@xml/file_paths"/>
</provider>
</application>

Expand Down
Loading

0 comments on commit 8260657

Please sign in to comment.