Skip to content

Commit

Permalink
- Improved: Overhaul design.
Browse files Browse the repository at this point in the history
- Added [WIP]: In-app updater.
  • Loading branch information
MenosGrante committed Jul 31, 2020
1 parent a699f1c commit ff4eb2a
Show file tree
Hide file tree
Showing 37 changed files with 457 additions and 355 deletions.
2 changes: 1 addition & 1 deletion Rekado.iml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="Rekado" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
<module external.linked.project.id="Rekado" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="java-gradle" name="Java-Gradle">
<configuration>
Expand Down
64 changes: 34 additions & 30 deletions app/app.iml

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion app/build.gradle
Expand Up @@ -10,7 +10,7 @@ android {
minSdkVersion minimumSDKVersion
targetSdkVersion currentSDKVersion
versionCode 72
versionName "4.1"
versionName "3.0"

archivesBaseName = "[$versionName] Rekado [${versionCode}]"
}
Expand Down Expand Up @@ -54,6 +54,7 @@ android {
dependencies {

// Local
implementation(name: 'magta', ext: 'aar')
implementation(name: 'penza', ext: 'aar')

// Google: AndroidX
Expand All @@ -74,11 +75,15 @@ dependencies {
implementation "com.google.android.material:material:$materialComponentsVersion"
implementation "com.google.android:flexbox:$flexBoxLayoutVersion"

// Design
implementation "de.halfbit:edge-to-edge:$edgeToEdgeVersion"

// Tools
implementation "org.greenrobot:eventbus:$eventBusVersion"
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
implementation "com.journeyapps:zxing-android-embedded:$zxingVersion"
implementation "com.google.code.gson:gson:$gsonVersion"
implementation "com.github.javiersantos:AppUpdater:$appUpdaterVersion"

// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
Expand Down
Binary file added app/libs/magta.aar
Binary file not shown.
Binary file modified app/libs/penza.aar
Binary file not shown.
@@ -0,0 +1,52 @@
package com.pavelrekun.rekado.base

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.recyclerview.widget.RecyclerView
import com.pavelrekun.penza.services.extensions.convertPXToDP

open class BasePreferencesFragment(private val preferencesLayoutId: Int, private val titleResId: Int) : PreferenceFragmentCompat() {

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

getBaseActivity().supportActionBar?.setTitle(titleResId)
}

override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(preferencesLayoutId)
}

override fun <T : Preference> findPreference(key: CharSequence): T {
return super.findPreference(key)!!
}

override fun onCreateRecyclerView(inflater: LayoutInflater?, parent: ViewGroup?, savedInstanceState: Bundle?): RecyclerView {
val view = super.onCreateRecyclerView(inflater, parent, savedInstanceState)

view.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)

if (view.canScrollVertically(SCROLL_DIRECTION_UP)) {
getBaseActivity().supportActionBar?.elevation = 3.convertPXToDP(getBaseActivity()).toFloat()
} else {
getBaseActivity().supportActionBar?.elevation = 0F
}
}

})

return view
}

fun getBaseActivity() = activity as BaseActivity

companion object {
private const val SCROLL_DIRECTION_UP = -1
}
}
Expand Up @@ -4,6 +4,9 @@ import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import androidx.navigation.ui.setupWithNavController
import com.github.javiersantos.appupdater.AppUpdater
import com.github.javiersantos.appupdater.enums.Display
import com.github.javiersantos.appupdater.enums.UpdateFrom
import com.pavelrekun.rekado.R
import com.pavelrekun.rekado.base.BaseActivity
import com.pavelrekun.rekado.databinding.ActivityContainerPrimaryBinding
Expand All @@ -21,7 +24,7 @@ class PrimaryContainerActivity : BaseActivity() {

binding = ActivityContainerPrimaryBinding.inflate(layoutInflater).apply { setContentView(this.root) }

prepareNavigation(R.id.primaryContainer)
prepareNavigation(R.id.primaryLayoutContainer)

initToolbar()
initBottomNavigation()
Expand Down Expand Up @@ -49,6 +52,16 @@ class PrimaryContainerActivity : BaseActivity() {
true
}

R.id.navigation_check_for_updates -> {
AppUpdater(this)
.setUpdateFrom(UpdateFrom.JSON)
.setUpdateJSON("https://raw.githubusercontent.com/MenosGrante/Rekado/master/app/update-changelog.json")
.setDisplay(Display.DIALOG)
.showAppUpdated(true)
.start()
true
}

R.id.navigation_translators -> {
controller.openTranslatorsScreen()
true
Expand All @@ -59,10 +72,10 @@ class PrimaryContainerActivity : BaseActivity() {
}

private fun initToolbar() {
setSupportActionBar(binding.primaryToolbar)
setSupportActionBar(binding.primaryLayoutToolbar)
}

private fun initBottomNavigation() {
binding.primaryBottomNavigation.setupWithNavController(controller)
binding.primaryLayoutNavigation.setupWithNavController(controller)
}
}
@@ -1,13 +1,25 @@
package com.pavelrekun.rekado.containers

import android.graphics.Color
import android.os.Build
import android.os.Bundle
import androidx.activity.viewModels
import androidx.lifecycle.Observer
import com.pavelrekun.magta.isGesturalNavigationEnabled
import com.pavelrekun.penza.pickers.theme.ThemePickerViewModel
import com.pavelrekun.penza.services.helpers.DesignHelper
import com.pavelrekun.rekado.R
import com.pavelrekun.rekado.base.BaseActivity
import com.pavelrekun.rekado.databinding.ActivityContainerSecondaryBinding
import com.pavelrekun.rekado.services.dialogs.DialogsShower
import com.pavelrekun.rekado.services.extensions.*
import de.halfbit.edgetoedge.Edge
import de.halfbit.edgetoedge.edgeToEdge

class SecondaryContainerActivity : BaseActivity() {

private val themesPickerViewModel: ThemePickerViewModel by viewModels()

private lateinit var binding: ActivityContainerSecondaryBinding

override fun onCreate(savedInstanceState: Bundle?) {
Expand All @@ -16,8 +28,24 @@ class SecondaryContainerActivity : BaseActivity() {
binding = ActivityContainerSecondaryBinding.inflate(layoutInflater).apply { setContentView(this.root) }

prepareToolbar()
prepareNavigation(R.id.secondaryContainer)
prepareNavigation(R.id.secondaryLayoutContainer)
prepareDestination()
prepareEdgeToEdge()
prepareObservers()
}

private fun prepareEdgeToEdge() {
if (isGesturalNavigationEnabled() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setDecorFitsSystemWindows(false)
}

DesignHelper.tintNavigationBar(this, Color.TRANSPARENT)
}

edgeToEdge {
binding.secondaryLayoutToolbar.fit { Edge.Top }
}
}

private fun prepareDestination() {
Expand All @@ -31,9 +59,19 @@ class SecondaryContainerActivity : BaseActivity() {

private fun prepareToolbar() {
val title = intent.getStringExtra(NAVIGATION_TITLE) as String
binding.secondaryToolbar.title = title
setSupportActionBar(binding.secondaryToolbar)
binding.secondaryToolbar.setNavigationOnClickListener { onBackPressed() }
binding.secondaryLayoutToolbar.title = title
setSupportActionBar(binding.secondaryLayoutToolbar)
binding.secondaryLayoutToolbar.setNavigationOnClickListener { onBackPressed() }
}

private fun prepareObservers() {
themesPickerViewModel.selectionResult.observe(this, Observer {
DialogsShower.showSettingsRestartDialog(this)
})

themesPickerViewModel.controlResult.observe(this, Observer {
DialogsShower.showSettingsRestartDialog(this)
})
}

}
Expand Up @@ -9,6 +9,8 @@ import com.pavelrekun.rekado.databinding.FragmentAboutBinding
import com.pavelrekun.rekado.services.Constants
import com.pavelrekun.rekado.services.extensions.viewBinding
import com.pavelrekun.rekado.services.utils.Utils
import de.halfbit.edgetoedge.Edge
import de.halfbit.edgetoedge.edgeToEdge

class AboutFragment : BaseFragment(R.layout.fragment_about) {

Expand All @@ -20,6 +22,7 @@ class AboutFragment : BaseFragment(R.layout.fragment_about) {
initScrollingBehaviour(binding.aboutLayoutScroll)
initVersion()
initClickListeners()
initEdgeToEdge()
}

private fun initVersion() {
Expand All @@ -33,4 +36,10 @@ class AboutFragment : BaseFragment(R.layout.fragment_about) {
binding.aboutDeveloperTwitter.setOnClickListener { Utils.openLink(getBaseActivity(), Constants.TWITTER_LINK) }
}

private fun initEdgeToEdge() {
edgeToEdge {
binding.aboutLayoutDeveloper.fit { Edge.Bottom }
}
}

}
Expand Up @@ -33,8 +33,8 @@ class LogsAdapter(var data: MutableList<Log>) : RecyclerView.Adapter<LogsAdapter

fun bind(log: Log) {
binding.itemLogName.text = log.message
binding.itemLogRoot.strokeColor = if (log.type == 0) ContextCompat.getColor(RekadoApplication.context, R.color.colorRed)
else ContextCompat.getColor(RekadoApplication.context, R.color.colorGreen)
binding.itemLogType.setBackgroundColor(if (log.type == 0) ContextCompat.getColor(RekadoApplication.context, R.color.colorRed)
else ContextCompat.getColor(RekadoApplication.context, R.color.colorGreen))
}

}
Expand Down
Expand Up @@ -14,6 +14,8 @@ import com.pavelrekun.rekado.services.extensions.getString
import com.pavelrekun.rekado.services.extensions.isEmpty
import com.pavelrekun.rekado.services.extensions.viewBinding
import com.pavelrekun.rekado.services.utils.Utils
import de.halfbit.edgetoedge.Edge
import de.halfbit.edgetoedge.edgeToEdge

class SerialCheckerFragment : BaseFragment(R.layout.fragment_serial_checker) {

Expand All @@ -24,6 +26,8 @@ class SerialCheckerFragment : BaseFragment(R.layout.fragment_serial_checker) {

initScrollingBehaviour(binding.serialCheckerLayoutScroll)
initClickListeners()
initEdgeToEdge()

generateInformation()
}

Expand Down Expand Up @@ -69,6 +73,12 @@ class SerialCheckerFragment : BaseFragment(R.layout.fragment_serial_checker) {
binding.serialCheckerInformation.text = serialsInformation
}

private fun initEdgeToEdge() {
edgeToEdge {
binding.serialCheckerLayoutContainer.fit { Edge.Bottom }
}
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
val result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data)

Expand Down

0 comments on commit ff4eb2a

Please sign in to comment.