Skip to content

Commit

Permalink
fix/code cleanup (#146)
Browse files Browse the repository at this point in the history
* Fix indentation problems and other improvements

* Add uni tests to some kt-extensions

* Code cleanup

* Changes according to code review feedback.
  • Loading branch information
bruno-garces authored Jan 29, 2021
1 parent a18dc84 commit eed0c8b
Show file tree
Hide file tree
Showing 30 changed files with 272 additions and 212 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ import com.google.firebase.analytics.FirebaseAnalytics
import com.mindera.skeletoid.analytics.appenders.interfaces.IAnalyticsAppender
import com.mindera.skeletoid.logs.LOG

class FbAppender :
IAnalyticsAppender {
class FbAppender : IAnalyticsAppender {

companion object {
private const val LOG_TAG = "FbAppender"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import org.mockito.Mockito.eq
import org.mockito.Mockito.verify
import org.mockito.Mockito.verifyNoMoreInteractions
import org.powermock.api.mockito.PowerMockito
import org.powermock.api.mockito.PowerMockito.mock
import org.powermock.core.classloader.annotations.PowerMockIgnore
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.rule.PowerMockRule
Expand All @@ -37,14 +36,14 @@ class FbAppenderUnitTest {

@Rule
@JvmField
public var rule = PowerMockRule()
var rule = PowerMockRule()

@Before
fun setUp() {
appender = FbAppender()

val context = PowerMockito.mock<Context>(Context::class.java)
firebaseAnalytics = mock(FirebaseAnalytics::class.java)
firebaseAnalytics = PowerMockito.mock(FirebaseAnalytics::class.java)

PowerMockito.mockStatic(FirebaseAnalytics::class.java)
Mockito.`when`(FirebaseAnalytics.getInstance(context)).thenReturn(firebaseAnalytics)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package com.mindera.skeletoid.analytics.appenders
import android.app.Activity
import android.content.Context
import android.os.Bundle

import com.google.android.gms.analytics.GoogleAnalytics
import com.google.android.gms.analytics.HitBuilders
import com.google.android.gms.analytics.Tracker
Expand All @@ -13,17 +12,16 @@ import com.google.android.gms.common.util.VisibleForTesting
import com.mindera.skeletoid.analytics.appenders.interfaces.IAnalyticsAppender
import com.mindera.skeletoid.logs.LOG

class GaAppender(private val configurationFileId: Int) :
IAnalyticsAppender {
class GaAppender(private val configurationFileId: Int) : IAnalyticsAppender {

companion object {
val CATEGORY = "CATEGORY"
val ACTION = "ACTION"
val LABEL = "LABEL"
val VALUE = "VALUE"
val PRODUCT = "PRODUCT"
val PRODUCT_ACTION = "PRODUCT_ACTION"
private const val LOG_TAG = "GAAppender"
const val CATEGORY = "CATEGORY"
const val ACTION = "ACTION"
const val LABEL = "LABEL"
const val VALUE = "VALUE"
const val PRODUCT = "PRODUCT"
const val PRODUCT_ACTION = "PRODUCT_ACTION"
}

@VisibleForTesting
Expand Down Expand Up @@ -73,7 +71,7 @@ class GaAppender(private val configurationFileId: Int) :
}

tracker?.run {
//Should we do something with screenClassOverride?
// Should we do something with screenClassOverride?
setScreenName(screenName)
send(HitBuilders.ScreenViewBuilder().build())
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@ import java.util.ArrayList
import java.util.HashMap
import java.util.HashSet

class AnalyticsManager internal constructor() :
IAnalyticsManager {
class AnalyticsManager internal constructor() : IAnalyticsManager {

companion object {
private const val LOG_TAG = "AnalyticsManager"
Expand Down
2 changes: 1 addition & 1 deletion base/src/main/java/com/mindera/skeletoid/logs/LOG.kt
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ object LOG {
): ILoggerManager {

instance ?: synchronized(LOG.javaClass) {
instance = packageName?.let { LoggerManager(it) } ?: LoggerManager(context)
instance = if (packageName != null) LoggerManager(packageName) else LoggerManager(context)
}
return instance!!
}
Expand Down
15 changes: 4 additions & 11 deletions base/src/main/java/com/mindera/skeletoid/logs/LoggerManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ import java.util.HashSet
/**
* LOG main class. It contains all the logic and feeds the appenders
*/
internal class LoggerManager :
ILoggerManager {
internal class LoggerManager : ILoggerManager {

companion object {
private const val LOG_TAG = "LoggerManager"
Expand All @@ -30,7 +29,7 @@ internal class LoggerManager :
/**
* Application TAG for logs
*/
private val PACKAGE_NAME: String
private val packageName: String

/**
* Define if the method name invoking the log should be printed or not (via exception stack)
Expand All @@ -44,18 +43,12 @@ internal class LoggerManager :
*/
private val logAppenders: MutableMap<String, ILogAppender> = HashMap()

/**
* The logger itself
*/
constructor(context: Context) {
PACKAGE_NAME = AndroidUtils.getApplicationPackage(context)
packageName = AndroidUtils.getApplicationPackage(context)
}

/**
* This is to be used on ONLY ON UNIT TESTS.
*/
constructor(packageName: String) {
PACKAGE_NAME = packageName
this.packageName = packageName
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,16 @@ package com.mindera.skeletoid.logs.appenders

import android.content.Context
import android.util.Log

import com.mindera.skeletoid.logs.LOG
import com.mindera.skeletoid.logs.appenders.interfaces.ILogAppender

import java.util.ArrayList

import com.mindera.skeletoid.logs.utils.LogAppenderUtils.getLogString
import java.util.ArrayList
import kotlin.math.ceil

/**
* Log appender for Logcat
*/
class LogcatAppender(private val TAG: String) :
ILogAppender {
class LogcatAppender(private val TAG: String) : ILogAppender {

companion object {
private const val LOG_ID = "LogcatAppender"
Expand All @@ -37,22 +34,20 @@ class LogcatAppender(private val TAG: String) :
override var minLogLevel: LOG.PRIORITY = LOG.PRIORITY.VERBOSE

override fun enableAppender(context: Context) {
//Nothing needed here
// Nothing needed here
}

override fun disableAppender() {
//Nothing needed here
// Nothing needed here
}

override fun log(type: LOG.PRIORITY, t: Throwable?, vararg logs: String) {
if (type.ordinal < minLogLevel.ordinal) {
return
}
if (type.ordinal < minLogLevel.ordinal) return

val logString = getLogString(*logs)
val formattedLogs = formatLog(logString)

for (logText in formattedLogs) {

when (type) {
LOG.PRIORITY.VERBOSE -> Log.v(TAG, logText, t)
LOG.PRIORITY.WARN -> Log.w(TAG, logText, t)
Expand All @@ -72,38 +67,25 @@ class LogcatAppender(private val TAG: String) :
*/
fun formatLog(text: String?): List<String> {
val result = ArrayList<String>()
if (text == null || text.isEmpty()) return result

if (text == null || text.isEmpty()) {
if (text.length <= maxLineLength) {
result.add(text)
return result
}

if (text.length > maxLineLength) {
if (isSplitLinesAboveMaxLength) {

val chunkCount = Math.ceil((1f * text.length / maxLineLength).toDouble()).toInt()
for (i in 1..chunkCount) {
val max = maxLineLength * i
if (max < text.length) {
result.add(
"[Chunk $i of $chunkCount] " + text.substring(
maxLineLength * (i - 1),
max
)
)
} else {
result.add(
"[Chunk $i of $chunkCount] " + text.substring(
maxLineLength * (i - 1)
)
)

}
if (isSplitLinesAboveMaxLength) {
val chunkCount = ceil((1f * text.length / maxLineLength).toDouble()).toInt()
for (i in 1..chunkCount) {
val max = maxLineLength * i
if (max < text.length) {
result.add("[Chunk $i of $chunkCount] " + text.substring(maxLineLength * (i - 1), max))
} else {
result.add("[Chunk $i of $chunkCount] " + text.substring(maxLineLength * (i - 1)))
}
}

} else {
result.add(text)
}

return result
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import com.mindera.skeletoid.routing.interfaces.IRouteCommand
/**
* Closes the activity passed in the constructor
*/
class CloseActivityCommand @JvmOverloads constructor(private val activity: Activity, private val enterAnimation: Int = 0, private val exitAnimation: Int = 0) :
IRouteCommand {
class CloseActivityCommand @JvmOverloads constructor(
private val activity: Activity,
private val enterAnimation: Int = 0,
private val exitAnimation: Int = 0
) : IRouteCommand {

override fun navigate() {
activity.finish()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import android.content.Intent
import android.net.Uri
import com.mindera.skeletoid.routing.interfaces.IRouteCommand

class OpenUriCommand(private val context: Context, private val deepLink: String) :
IRouteCommand {
class OpenUriCommand(private val context: Context, private val deepLink: String) : IRouteCommand {

companion object {
const val IS_INTERNAL_APP_NAVIGATION_EXTRA = "IS_INTERNAL_APP_NAVIGATION_EXTRA"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.mindera.skeletoid.threads.threadpools

import androidx.annotation.VisibleForTesting
import com.mindera.skeletoid.logs.LOG
import java.util.Queue
import java.util.concurrent.ArrayBlockingQueue
Expand All @@ -16,21 +17,18 @@ import java.util.concurrent.atomic.AtomicInteger
* @param threadPoolName The name of the ThreadPool
* @param maxFactoryThreads Max number of threads
*/
open class NamedThreadFactory internal constructor(
threadPoolName: String,
maxFactoryThreads: Int
) : ThreadFactory {
open class NamedThreadFactory internal constructor(threadPoolName: String, maxFactoryThreads: Int) : ThreadFactory {

private val group: ThreadGroup
private val threadPoolNumber = AtomicInteger(0)
private val namePrefix: String
private val maxFactoryThreads: Int
val threads: Queue<Thread>
@VisibleForTesting val threads: Queue<Thread>

companion object {
private const val LOG_TAG = "NamedThreadFactory"
}


init {
val securityManager = System.getSecurityManager()
group = if (securityManager != null) {
Expand All @@ -54,9 +52,9 @@ open class NamedThreadFactory internal constructor(
val threadName = "$namePrefix [#$threadNumber/$maxFactoryThreads]"
val thread = Thread(group, runnable, threadName, 0)

//Make sure thread is not daemon
// Make sure thread is not daemon
thread.isDaemon = false
//Make sure thread has normal priority
// Make sure thread has normal priority
thread.priority = Thread.NORM_PRIORITY

val threadTotal = ThreadPoolUtils.threadTotal.incrementAndGet()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.mindera.skeletoid.threads.threadpools

import androidx.annotation.VisibleForTesting
import com.mindera.skeletoid.logs.LOG
import java.util.concurrent.CancellationException
import java.util.concurrent.Future
Expand All @@ -18,7 +17,6 @@ class ScheduledThreadPoolExecutor(
private const val LOG_TAG = "ScheduledThreadPoolExecutor"
}

@VisibleForTesting
override fun afterExecute(runnable: Runnable?, throwable: Throwable?) {
super.afterExecute(runnable, throwable)

Expand Down Expand Up @@ -52,5 +50,4 @@ class ScheduledThreadPoolExecutor(
factory?.changeThreadsNameAfterShutdown()
return super.shutdownNow()
}

}
Loading

0 comments on commit eed0c8b

Please sign in to comment.