Added About box.

This commit is contained in:
Erik C. Thauvin 2017-10-10 13:14:28 -07:00
parent 221202a0e3
commit 49ace84a54
3 changed files with 44 additions and 23 deletions

1
app/.gitignore vendored
View file

@ -1 +1,2 @@
/build /build
libs/library-debug.aar

View file

@ -53,9 +53,14 @@ dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
// https://github.com/eggheadgames/android-about-box // https://github.com/eggheadgames/android-about-box
compile 'com.github.eggheadgames:android-about-box:1.2.0' compile 'com.github.eggheadgames:android-about-box:1.3.1'
//compile(name: 'library-debug', ext: 'aar')
//compile 'com.github.daniel-stoneuk:material-about-library:2.2.1'
compile 'com.android.support:animated-vector-drawable:26.0.1' compile 'com.android.support:animated-vector-drawable:26.0.1'
compile 'com.android.support:cardview-v7:26.0.1' compile 'com.android.support:cardview-v7:26.0.1'
// https://github.com/ACRA/acra
compile 'ch.acra:acra:4.9.2'
} }
repositories { repositories {

View file

@ -22,14 +22,12 @@ import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Color
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.support.design.widget.TextInputEditText import android.support.design.widget.TextInputEditText
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import android.text.* import android.text.*
import android.text.method.LinkMovementMethod
import android.util.TypedValue import android.util.TypedValue
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
@ -39,6 +37,8 @@ import android.view.inputmethod.InputMethodManager
import android.widget.AdapterView import android.widget.AdapterView
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import android.widget.EditText import android.widget.EditText
import com.eggheadgames.aboutbox.AboutConfig
import com.eggheadgames.aboutbox.activity.AboutActivity
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.JsonSyntaxException import com.google.gson.JsonSyntaxException
import net.thauvin.erik.android.tesremoteprogrammer.models.Config import net.thauvin.erik.android.tesremoteprogrammer.models.Config
@ -55,12 +55,13 @@ import java.io.FileNotFoundException
import java.io.InputStreamReader import java.io.InputStreamReader
import java.io.ObjectInputStream import java.io.ObjectInputStream
import java.io.ObjectOutputStream import java.io.ObjectOutputStream
import java.text.SimpleDateFormat import java.text.DateFormat
import java.util.* import java.util.*
@RuntimePermissions @RuntimePermissions
class MainActivity : AppCompatActivity(), AnkoLogger { class MainActivity : AppCompatActivity(), AnkoLogger {
lateinit var config: Config lateinit var config: Config
val aboutConfig: AboutConfig = AboutConfig.getInstance()
val configurationsData = "configurations.dat" val configurationsData = "configurations.dat"
val currentConfigData = "config.dat" val currentConfigData = "config.dat"
val defaultConfigurations = listOf( val defaultConfigurations = listOf(
@ -116,6 +117,38 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
saveConfigurations(confs) saveConfigurations(confs)
saveConfig(false) saveConfig(false)
} }
// About dialog configuration
with(aboutConfig) {
appName = getString(R.string.app_name)
appIcon = R.mipmap.ic_launcher
version = BuildConfig.VERSION_NAME
author = "Erik C. Thauvin"
extraTitle = "Last Update"
extra = DateFormat.getDateInstance(DateFormat.LONG, Locale.getDefault()).format(
Date(BuildConfig.TIMESTAMP)).toString()
emailAddress = "erik@thauvin.net"
emailSubject = "${getString(R.string.app_name)} ${BuildConfig.VERSION_NAME} Support"
emailBody = ""
packageName = applicationContext.packageName
buildType = AboutConfig.BuildType.GOOGLE
shareMessage = "https://play.google.com/store/apps/details?id=$packageName"
appPublisher = "6626207141685878216"
aboutLabelTitle = "About Erik C. Thauvin"
companyHtmlPath = "https://m.thauvin.net/"
twitterUserName = "ethauvin"
webHomePage = "https://thauv.in/TESRemote"
privacyHtmlPath = "https://m.thauvin.net/apps-privacy.shtml"
acknowledgmentHtmlPath = "https://m.thauvin.net/android/TESRemoteProgrammer/licenses.shtml"
}
} }
@NeedsPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) @NeedsPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
@ -280,25 +313,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
override fun onOptionsItemSelected(item: MenuItem?): Boolean { override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) { when (item?.itemId) {
R.id.action_about -> { R.id.action_about -> {
val alert = alert { AboutActivity.launch(this)
title = getString(R.string.app_name)
icon = getDrawable(R.mipmap.ic_launcher)
customView {
linearLayout {
topPadding = dip(16)
rightPadding = topPadding
leftPadding = topPadding * 2
textView(fromHtml(getString(R.string.about_message,
BuildConfig.VERSION_NAME,
SimpleDateFormat("yyyy-MM-dd", Locale.US).format(Date(BuildConfig.TIMESTAMP))))) {
movementMethod = LinkMovementMethod.getInstance()
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18f)
setTextColor(Color.BLACK)
}
}
}
okButton {}
}.show()
} }
R.id.action_confs -> { R.id.action_confs -> {
val confs = loadConfigurations().configs.toSortedMap() val confs = loadConfigurations().configs.toSortedMap()