diff --git a/app/build.gradle b/app/build.gradle
index 94b8e96..1082f57 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -62,12 +62,8 @@ dependencies {
implementation "com.github.hotchemi:permissionsdispatcher:$perms_dispatch_version"
kapt "com.github.hotchemi:permissionsdispatcher-processor:$perms_dispatch_version"
- // https://github.com/eggheadgames/android-about-box
- implementation 'com.github.eggheadgames:android-about-box:1.3.2'
- //implementation(name: 'library-debug', ext: 'aar')
- //implementation 'com.github.daniel-stoneuk:material-about-library:2.2.1'
- implementation "com.android.support:animated-vector-drawable:$support_version"
- implementation "com.android.support:cardview-v7:$support_version"
+ // https://github.com/medyo/android-about-page
+ implementation 'com.github.medyo:android-about-page:1.2.5'
}
repositories {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5858a6f..7ab59cf 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,6 +34,10 @@
+
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/AboutActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/AboutActivity.kt
new file mode 100644
index 0000000..36f6c79
--- /dev/null
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/AboutActivity.kt
@@ -0,0 +1,75 @@
+/*
+ * AboutActivity.kt
+ *
+ * Copyright 2016-2019 Erik C. Thauvin (erik@thauvin.net)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package net.thauvin.erik.android.tesremoteprogrammer
+
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import android.support.v7.app.AppCompatDelegate
+import mehdi.sakout.aboutpage.AboutPage
+import mehdi.sakout.aboutpage.Element
+import java.util.Calendar
+
+/**
+ * The net.thauvin.erik.android.tesremoteprogrammer.AboutActivity
class.
+ *
+ * @author Erik C. Thauvin
+ * @created 2019-09-27
+ * @since 1.0
+ */
+class AboutActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+
+ AppCompatDelegate.setDefaultNightMode(
+ AppCompatDelegate.MODE_NIGHT_NO
+ )
+
+ val aboutPage = AboutPage(this).apply {
+ isRTL(false)
+ setImage(R.drawable.background_splash)
+ val version = String.format(getString(R.string.about_version), BuildConfig.VERSION_NAME)
+ setDescription(
+ "${version}\n© ${Calendar.getInstance().get(Calendar.YEAR)} Erik C. Thauvin️"
+ )
+ addEmail("erik@thauvin.net")
+ addGitHub("ethauvin/TESRemoteProgrammer")
+ addWebsite("https://m.thauvin.net/android/TESRemoteProgrammer/licenses.shtml")
+ addItem(getPrivacyPolicy())
+ addTwitter("ethauvin")
+
+ }.create()
+
+ setContentView(aboutPage)
+ }
+
+ private fun getPrivacyPolicy(): Element {
+ return Element().apply {
+ title = getString(R.string.about_privacy)
+ iconDrawable = R.drawable.icons8_policy_document
+ iconTint = R.color.about_github_color
+ value = "privacy"
+ intent = Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("https://m.thauvin.net/apps-privacy.shtml")
+ )
+ }
+ }
+}
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
index 0d9d7d0..66cf9c0 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/MainActivity.kt
@@ -38,8 +38,6 @@ import android.view.inputmethod.InputMethodManager
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.EditText
-import com.eggheadgames.aboutbox.AboutConfig
-import com.eggheadgames.aboutbox.activity.AboutActivity
import com.google.gson.Gson
import com.google.gson.JsonSyntaxException
import net.thauvin.erik.android.tesremoteprogrammer.models.Config
@@ -69,15 +67,13 @@ import java.io.FileNotFoundException
import java.io.InputStreamReader
import java.io.ObjectInputStream
import java.io.ObjectOutputStream
-import java.text.DateFormat
import java.util.ArrayList
-import java.util.Date
import java.util.Locale
@RuntimePermissions
class MainActivity : AppCompatActivity(), AnkoLogger {
private lateinit var config: Config
- private val aboutConfig: AboutConfig = AboutConfig.getInstance()
+ // private val aboutConfig: AboutConfig = AboutConfig.getInstance()
private val configurationsData = "configurations.dat"
private val currentConfigData = "config.dat"
private val defaultConfigurations = listOf(
@@ -127,39 +123,6 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
saveConfigurations(confs)
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)
@@ -343,7 +306,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger {
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when (item?.itemId) {
R.id.action_about -> {
- AboutActivity.launch(this)
+ startActivity(Intent(this, AboutActivity::class.java))
}
R.id.action_confs -> {
val confs = loadConfigurations().configs.toSortedMap()
diff --git a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
index 8918b98..3ec40b4 100644
--- a/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
+++ b/app/src/main/java/net/thauvin/erik/android/tesremoteprogrammer/ProgrammingActivity.kt
@@ -396,9 +396,10 @@ class ProgrammingActivity : AppCompatActivity(), AnkoLogger {
return isValid
}
- private fun validateSize(size: Int, min: Int, max: Int): Boolean = if (min > 0) {
- size in IntRange(min, max)
- } else {
- size == max
- }
+ private fun validateSize(size: Int, min: Int, max: Int): Boolean =
+ if (min > 0) {
+ size in IntRange(min, max)
+ } else {
+ size == max
+ }
}
diff --git a/app/src/main/res/drawable-mdpi/icons8_policy_document.png b/app/src/main/res/drawable-mdpi/icons8_policy_document.png
new file mode 100644
index 0000000..5304a04
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/icons8_policy_document.png differ
diff --git a/app/src/main/res/drawable-xhdpi/icons8_policy_document.png b/app/src/main/res/drawable-xhdpi/icons8_policy_document.png
new file mode 100644
index 0000000..4dd2501
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/icons8_policy_document.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/icons8_policy_document.png b/app/src/main/res/drawable-xxxhdpi/icons8_policy_document.png
new file mode 100644
index 0000000..d1c0bed
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/icons8_policy_document.png differ
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b69f00d..9b0d54b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,11 +7,17 @@
- property
- properties
+ Version %1$s
+ Contact me
+ Documentation on GitHub
+ Follow me on Twitter
+ Open Source Licenses
+ Privacy Policy
About
Configurations
Configuration Errors
TES Remote Programmer
-
+
Import
Invalid
Invalid DTMF: %1$s
@@ -23,7 +29,7 @@
Master Code
Phone Number
No configuration required.
-
+
PROGRAMMING
Step %1$d of %2$d
Missing pause between steps