Skip to content

Commit

Permalink
Merge branch 'development'
Browse files Browse the repository at this point in the history
  • Loading branch information
ktvipin27 committed May 31, 2020
2 parents e705bda + 30d7d53 commit 2b5ab38
Show file tree
Hide file tree
Showing 11 changed files with 232 additions and 88 deletions.
20 changes: 11 additions & 9 deletions app/src/main/java/com/ktvipin/easyupdate/sample/JavaActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package com.ktvipin.easyupdate.sample;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;

Expand All @@ -25,9 +26,9 @@

import com.ktvipin.easyupdate.EasyUpdateManager;
import com.ktvipin.easyupdate.InstallState;
import com.ktvipin.easyupdate.SnackbarOptions;
import com.ktvipin.easyupdate.UpdateListener;
import com.ktvipin.easyupdate.UpdateOptions;
import com.ktvipin.easyupdate.UpdateType;

import org.jetbrains.annotations.NotNull;

Expand Down Expand Up @@ -67,30 +68,31 @@ public void onClick(View v) {

private void startFlexibleUpdate() {
UpdateOptions options = new UpdateOptions();
options.setCustomNotification(true);
options.setForceUpdate(true);

SnackbarOptions snackbarOptions = new SnackbarOptions();
snackbarOptions.setActionText("RESTART");
options.setUpdateType(UpdateType.FLEXIBLE);

EasyUpdateManager
.INSTANCE
.with(this)
.setOptions(options)
.setListener(new UpdateListener() {
@Override
public void onStateUpdate(@NotNull InstallState state) {

Log.d("EasyUpdateManager", "onStateUpdate: " + state.toString());
}
})
.setOptions(options)
.setSnackbar(snackbarOptions)
.startUpdate();
}

private void startImmediateUpdate() {
UpdateOptions options = new UpdateOptions();
options.setCustomNotification(true);
options.setForceUpdate(true);
options.setUpdateType(UpdateType.IMMEDIATE);

EasyUpdateManager
.INSTANCE
.with(this)
.setOptions(options)
.startUpdate();
}
}
31 changes: 20 additions & 11 deletions app/src/main/java/com/ktvipin/easyupdate/sample/KotlinActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ package com.ktvipin.easyupdate.sample
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import com.ktvipin.easyupdate.EasyUpdateManager
import com.ktvipin.easyupdate.InstallState
import com.ktvipin.easyupdate.UpdateListener
import com.ktvipin.easyupdate.UpdateType
import com.ktvipin.easyupdate.logD
import kotlinx.android.synthetic.main.activity_main.*

class KotlinActivity : AppCompatActivity() {
Expand All @@ -43,11 +43,23 @@ class KotlinActivity : AppCompatActivity() {
button2.setOnClickListener {
startImmediateUpdate()
}

textView2.text = getString(R.string.label_version, BuildConfig.VERSION_CODE)
}

private fun startFlexibleUpdate() {
EasyUpdateManager
.with(this)
.options {
updateType = UpdateType.FLEXIBLE
}
.snackbar {
actionText = "Install"
actionTextColor = ContextCompat.getColor(this@KotlinActivity, R.color.colorAccent)
}
.listener {
logD("listening FlexibleUpdate")
}
.startUpdate()
}

Expand All @@ -56,18 +68,15 @@ class KotlinActivity : AppCompatActivity() {
.with(this)
.options {
updateType = UpdateType.IMMEDIATE
}
.snackbar {

}
.listener {

logD("listening ImmediateUpdate")
}
.setListener(object : UpdateListener {
override fun onStateUpdate(state: InstallState) {

}
})
.startUpdate()
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
logD("requestCode = $requestCode, resultCode = $resultCode")
}
}
10 changes: 10 additions & 0 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,14 @@
app:layout_constraintStart_toEndOf="@+id/button1"
app:layout_constraintTop_toBottomOf="@+id/textView" />

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_message"
android:textColor="@android:color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@
<string name="label_message">Click on the buttons to check update.</string>
<string name="action_flexible">Flexible</string>
<string name="action_immediate">Immediate</string>
<string name="label_version">Version : %d</string>
</resources>
4 changes: 2 additions & 2 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ ext {
siteUrl = 'https://github.com/ktvipin27/EasyUpdateManager'
gitUrl = 'https://github.com/ktvipin27/EasyUpdateManager.git'

libraryVersion = '1.0.0-beta'
libraryVersion = '1.0.0-beta2'

developerId = 'ktvipin27'
developerName = 'Vipin KT'
Expand All @@ -50,7 +50,7 @@ android {
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0.0-beta"
versionName "1.0.0-beta2"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,5 @@ object EasyUpdateManager {
* @param activity Reference of the activity from where the [EasyUpdateManager] is called.
* @return An instance of [UpdateManager].
*/
fun with(activity: FragmentActivity) = UpdateManager(WeakReference(activity))
fun with(activity: FragmentActivity) = UpdateManager.getInstance(WeakReference(activity))
}
19 changes: 19 additions & 0 deletions library/src/main/java/com/ktvipin/easyupdate/Extensions.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.ktvipin.easyupdate

import android.util.Log
import com.google.android.material.snackbar.Snackbar

/**
* Created by Vipin KT on 30/05/20
*/

fun Snackbar.showIfNotShown(){
if (!isShown) show()
}

/**
* Display debug log with [EasyUpdateManager.TAG] and [message].
*
* @param message message to display in log.
*/
fun Any.logD(message: String) = Log.d(EasyUpdateManager.TAG, message)
28 changes: 28 additions & 0 deletions library/src/main/java/com/ktvipin/easyupdate/InstallState.kt
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,32 @@ class InstallState(private val installState: InstallState) {

val installErrorCode: Int
get() = installState.installErrorCode()

val currentStatus: String
get() = when (installState.installStatus()) {
InstallStatus.CANCELED -> "Canceled"
InstallStatus.DOWNLOADED -> "Downloaded"
InstallStatus.DOWNLOADING -> "Downloading"
InstallStatus.FAILED -> "Failed"
InstallStatus.INSTALLED -> "Installed"
InstallStatus.INSTALLING -> "Installing"
InstallStatus.PENDING -> "Pending"
InstallStatus.UNKNOWN -> "Unknown"
else -> ""
}

override fun toString(): String {
return "isDownloading = $isDownloading" +
" isDownloaded = $isDownloaded" +
" isFailed = $isFailed" +
" isInstalled = $isInstalled" +
" isInstalling = $isInstalling" +
" isCanceled = $isCanceled" +
" isPending = $isPending" +
" isUnknown = $isUnknown" +
" isCanceled = $isCanceled" +
" bytesDownloaded = $bytesDownloaded" +
" totalBytesToDownload = $totalBytesToDownload" +
" installErrorCode = $installErrorCode"
}
}
28 changes: 28 additions & 0 deletions library/src/main/java/com/ktvipin/easyupdate/SingletonHolder.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.ktvipin.easyupdate

/**
* Created by Vipin KT on 30/05/20
*/
open class SingletonHolder<out T: Any, in A>(creator: (A) -> T) {
private var creator: ((A) -> T)? = creator
@Volatile private var instance: T? = null

fun getInstance(arg: A): T {
val checkInstance = instance
if (checkInstance != null) {
return checkInstance
}

return synchronized(this) {
val checkInstanceAgain = instance
if (checkInstanceAgain != null) {
checkInstanceAgain
} else {
val created = creator!!(arg)
instance = created
creator = null
created
}
}
}
}
Loading

0 comments on commit 2b5ab38

Please sign in to comment.