Skip to content

Commit

Permalink
Merge pull request #60 from TheXtremeLabs/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
MichaelStH authored Sep 21, 2021
2 parents 140ebcb + 50fe031 commit 7e1a242
Show file tree
Hide file tree
Showing 10 changed files with 254 additions and 17 deletions.
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,9 @@ dependencies {
implementation rootProject.ext.generalDependencies.goldfinger
implementation rootProject.ext.generalDependencies.goldfingerRX

// Lottie
implementation rootProject.ext.generalDependencies.lottie


//ThreeTen : Alternative to Android Calendar API
implementation rootProject.ext.generalDependencies.threeten
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,12 @@
android:parentActivityName=".ui.mainactivity.MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity" />

<activity
android:name=".ui.lottie.LottieActivity"
android:label="@string/activity_title_lottie"
android:parentActivityName=".ui.mainactivity.MainActivity"
android:screenOrientation="fullSensor" />
<!-- ////////////// ACTIVITIES ////////////// -->


Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/com/riders/thelab/core/utils/UIManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,12 @@ class UIManager private constructor() {
menu.setGroupVisible(R.id.menu_main_group, true)
}

fun getBitmapFromDrawable(context: Context, drawableResId: Int): Bitmap? {
if (0 == drawableResId)
return null
return drawableToBitmap(ContextCompat.getDrawable(context, drawableResId)!!)
}

/**
* Hide menu buttons when collapse toolbar is expanded
*/
Expand All @@ -329,5 +335,10 @@ class UIManager private constructor() {
fun setBackgroundColor(context: Context, targetView: View, colorResID: Int) {
targetView.setBackgroundColor(ContextCompat.getColor(context, colorResID))
}

fun updateToolbarIcon(activity: Activity, menu: Menu, actionId: Int, drawableResId: Int) {
menu.findItem(actionId)?.icon = ContextCompat.getDrawable(activity, drawableResId)
}

}
}
111 changes: 111 additions & 0 deletions app/src/main/java/com/riders/thelab/ui/lottie/LottieActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
package com.riders.thelab.ui.lottie

import android.animation.Animator
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.doOnPreDraw
import com.riders.thelab.databinding.ActivityLottieBinding
import timber.log.Timber
import kotlin.random.Random

class LottieActivity : AppCompatActivity() {

private var _viewBinding: ActivityLottieBinding? = null

// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _viewBinding!!

private var isConnected: Boolean = false

companion object {
val lottieUrls = mutableListOf(
// Android
"https://assets1.lottiefiles.com/datafiles/8rza4J0CdJeJ8Pb3v9INOKI0vcekEpVccKVF2lNQ/android.json",
// Search
"https://assets4.lottiefiles.com/packages/lf20_83et0zjc.json",
// Loading
"https://assets1.lottiefiles.com/private_files/lf30_bn5winlb.json",
"https://assets5.lottiefiles.com/private_files/lf30_qsg7wqkv.json",
// Fluid loader
"https://assets2.lottiefiles.com/packages/lf20_kk62um5v.json",
// Swinging
"https://assets6.lottiefiles.com/packages/lf20_97iupqly.json",
// Scanning files
"https://assets5.lottiefiles.com/private_files/lf30_jasmilgh.json",

// Backgrounds
// IT
"https://assets10.lottiefiles.com/packages/lf20_k5dcqzxm.json",
// Abstract
"https://assets7.lottiefiles.com/packages/lf20_ym8w5cx4.json",
)
}

/////////////////////////////////////
//
// OVERRIDE
//
/////////////////////////////////////
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

_viewBinding = ActivityLottieBinding.inflate(layoutInflater)
setContentView(binding.root)

postponeEnterTransition()
binding.root.doOnPreDraw { startPostponedEnterTransition() }

binding.lottieAnimationView.enableMergePathsForKitKatAndAbove(true)
binding.lottieAnimationView.setOutlineMasksAndMattes(true)

binding.lottieAnimationView.setAnimationFromUrl(lottieUrls[6])
}

override fun onPause() {
super.onPause()
Timber.e("onPause()")
}

override fun onResume() {
super.onResume()
Timber.d("onResume()")
}


override fun onDestroy() {
Timber.e("onDestroy()")
_viewBinding = null
super.onDestroy()
}

private fun startRandomPlay() {

binding.lottieAnimationView.setAnimationFromUrl(lottieUrls[3])
binding.lottieAnimationView.addAnimatorListener(object : Animator.AnimatorListener {
override fun onAnimationStart(animation: Animator?) {
Timber.d("onAnimationStart()")
}

override fun onAnimationEnd(animation: Animator?) {
Timber.e("onAnimationEnd()")
}

override fun onAnimationCancel(animation: Animator?) {
Timber.e("onAnimationCancel()")
}

override fun onAnimationRepeat(animation: Animator?) {
Timber.d("onAnimationRepeat()")
binding.lottieAnimationView.setAnimationFromUrl(
lottieUrls[Random.nextInt(
0,
lottieUrls.size
)]
)
binding.lottieAnimationView.playAnimation()
}

})
}
}
59 changes: 44 additions & 15 deletions app/src/main/java/com/riders/thelab/ui/mainactivity/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.net.NetworkRequest
import android.net.wifi.WifiManager
import android.os.Build
import android.os.Bundle
import android.provider.Settings
import android.view.Menu
Expand Down Expand Up @@ -203,7 +202,8 @@ class MainActivity : AppCompatActivity(),

mConnectivityManager!!.registerNetworkCallback(request, networkManager)

val labLocationManager = LabLocationManager(this@MainActivity, this@MainActivity, this)
val labLocationManager =
LabLocationManager(this@MainActivity, this@MainActivity, this)

if (!labLocationManager.canGetLocation()) {
Timber.e("Cannot get location please enable position")
Expand Down Expand Up @@ -429,9 +429,14 @@ class MainActivity : AppCompatActivity(),
this,
{ locationStatus ->
Timber.d("getLocationData().observe : $locationStatus")
menu?.findItem(R.id.action_location_settings)?.setIcon(

UIManager.updateToolbarIcon(
this@MainActivity,
menu!!,
R.id.action_location_settings,
if (!locationStatus) R.drawable.ic_location_off else R.drawable.ic_location_on
)

})

mViewModel.getWeather().observe(
Expand Down Expand Up @@ -613,7 +618,7 @@ class MainActivity : AppCompatActivity(),

private fun applyRecycler() {
Timber.d("applyRecycler()")
var layoutManager: RecyclerView.LayoutManager?
val layoutManager: RecyclerView.LayoutManager?

if (!LabCompatibilityManager.isTablet(this)) {

Expand Down Expand Up @@ -707,9 +712,10 @@ class MainActivity : AppCompatActivity(),
if (!isGPS) mGpsUtils.turnGPSOn(this)
}

@SuppressLint("InlinedApi")
private fun toggleWifi() {
Timber.d("toggleWifi()")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (LabCompatibilityManager.isAndroid10()) {
val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
startActivityForResult(panelIntent, 0)
} else {
Expand All @@ -720,15 +726,27 @@ class MainActivity : AppCompatActivity(),
if (!isWifiEnabled) {
Timber.d("(this.applicationContext.getSystemService(Context.WIFI_SERVICE) as? WifiManager) $isWifiEnabled")
Timber.d("This should activate wifi")

isWifiEnabled = true
menu?.findItem(R.id.action_connection_settings)?.icon =
ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_wifi)

UIManager.updateToolbarIcon(
this@MainActivity,
menu!!,
R.id.action_connection_settings,
R.drawable.ic_wifi
)
} else {
Timber.d("(this.applicationContext.getSystemService(Context.WIFI_SERVICE) as? WifiManager) $isWifiEnabled")
Timber.d("This should disable wifi")

isWifiEnabled = false
menu?.findItem(R.id.action_connection_settings)?.icon =
ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_wifi_off)

UIManager.updateToolbarIcon(
this@MainActivity,
menu!!,
R.id.action_connection_settings,
R.drawable.ic_wifi_off
)
}
this.isWifiEnabled = !isWifiEnabled
}
Expand Down Expand Up @@ -920,19 +938,30 @@ class MainActivity : AppCompatActivity(),
private fun updateToolbarConnectionIcon(isConnected: Boolean) {
Timber.e("updateToolbarConnectionIcon, is connected : %s", isConnected)
if (!LabCompatibilityManager.isTablet(this))
menu?.findItem(R.id.action_connection_settings)?.icon = ContextCompat.getDrawable(
this@MainActivity,
if (isConnected) R.drawable.ic_wifi else R.drawable.ic_wifi_off
)

runOnUiThread {
UIManager.updateToolbarIcon(
this@MainActivity,
menu!!,
R.id.action_connection_settings,
if (isConnected) R.drawable.ic_wifi else R.drawable.ic_wifi_off
)
}
}

override fun gpsStatus(isGPSEnable: Boolean) {
Timber.d("gpsStatus()")
Timber.d("turn on/off GPS - isGPSEnable : $isGPSEnable")
isGPS = isGPSEnable

if (isGPS) menu?.findItem(R.id.action_location_settings)?.icon =
ContextCompat.getDrawable(this@MainActivity, R.drawable.ic_location_on)
if (isGPS) {
UIManager.updateToolbarIcon(
this@MainActivity,
menu!!,
R.id.action_location_settings,
R.drawable.ic_location_on
)
}
}

override fun onLocationChanged(location: Location) {
Expand Down
17 changes: 17 additions & 0 deletions app/src/main/java/com/riders/thelab/utils/AppBuilderUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.riders.thelab.ui.googledrive.GoogleDriveActivity
import com.riders.thelab.ui.googlesignin.GoogleSignInActivity
import com.riders.thelab.ui.kat.KatActivity
import com.riders.thelab.ui.locationonmaps.LocationOnMapsActivity
import com.riders.thelab.ui.lottie.LottieActivity
import com.riders.thelab.ui.multipane.MultipaneActivity
import com.riders.thelab.ui.palette.PaletteActivity
import com.riders.thelab.ui.recycler.RecyclerViewActivity
Expand Down Expand Up @@ -403,6 +404,22 @@ class AppBuilderUtils {
.build()
list.add(download)

// lottie
val lottie =
AppBuilder
.withId(26L)
.withActivityTitle("Lottie")
.withActivityDescription("Lottie is a mobile library for Android and iOS that parses Adobe After Effects animations and renders them natively on mobile!...")
.withActivityIcon(
getDrawableFromIntResource(
context,
R.drawable.ic_lottie_icon
)
)
.withActivityClass(LottieActivity::class.java)
.build()
list.add(lottie)

// Wip
val wip =
AppBuilder
Expand Down
27 changes: 27 additions & 0 deletions app/src/main/res/drawable-mdpi/ic_lottie_icon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="64dp"
android:height="64.35165dp"
android:viewportWidth="182"
android:viewportHeight="183">
<path android:pathData="M90.996,91.459m-90.957,0a90.957,90.957 0,1 1,181.914 0a90.957,90.957 0,1 1,-181.914 0">
<aapt:attr name="android:fillColor">
<gradient
android:endX="143.671"
android:endY="117.323"
android:startX="47.0462"
android:startY="42.7324"
android:type="linear">
<item
android:color="#FF2AEAEC"
android:offset="0" />
<item
android:color="#FF0FCECF"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
<path
android:fillColor="#ffffff"
android:pathData="M124.233,52.425C127.924,52.972 130.471,56.413 129.927,60.108C129.382,63.805 125.949,66.362 122.256,65.814C116.19,64.915 106.901,74.575 96.481,94.477C83.053,120.124 70.526,132.371 57.257,131.388C53.535,131.112 50.744,127.866 51.019,124.141C51.293,120.414 54.531,117.614 58.253,117.89C64.557,118.357 74.001,108.278 84.518,88.19C98.035,62.374 110.739,50.425 124.233,52.425Z" />
</vector>
25 changes: 25 additions & 0 deletions app/src/main/res/layout/activity_lottie.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardBackgroundColor="@color/default_dark"
app:cardCornerRadius="0dp">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottieAnimationView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_scale="0.6" />

</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
3 changes: 3 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -373,4 +373,7 @@
<!-- Download -->
<string name="activity_title_download">Download</string>

<!-- Lottie -->
<string name="activity_title_lottie">Lottie</string>

</resources>
Loading

0 comments on commit 7e1a242

Please sign in to comment.