diff --git a/app/.gitignore b/app/.gitignore index 796b96d..b37a997 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1,2 @@ /build +libs/library-debug.aar \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 0c7e31c..ed6a933 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -53,9 +53,14 @@ dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" // 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:cardview-v7:26.0.1' + + // https://github.com/ACRA/acra + compile 'ch.acra:acra:4.9.2' } repositories { 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 10d9991..80d1c0f 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 @@ -22,14 +22,12 @@ import android.app.Activity import android.app.AlertDialog import android.content.Context import android.content.Intent -import android.graphics.Color import android.graphics.Typeface import android.os.Build import android.os.Bundle import android.support.design.widget.TextInputEditText import android.support.v7.app.AppCompatActivity import android.text.* -import android.text.method.LinkMovementMethod import android.util.TypedValue import android.view.Menu import android.view.MenuItem @@ -39,6 +37,8 @@ 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 @@ -55,12 +55,13 @@ import java.io.FileNotFoundException import java.io.InputStreamReader import java.io.ObjectInputStream import java.io.ObjectOutputStream -import java.text.SimpleDateFormat +import java.text.DateFormat import java.util.* @RuntimePermissions class MainActivity : AppCompatActivity(), AnkoLogger { lateinit var config: Config + val aboutConfig: AboutConfig = AboutConfig.getInstance() val configurationsData = "configurations.dat" val currentConfigData = "config.dat" val defaultConfigurations = listOf( @@ -116,6 +117,38 @@ 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) @@ -280,25 +313,7 @@ class MainActivity : AppCompatActivity(), AnkoLogger { override fun onOptionsItemSelected(item: MenuItem?): Boolean { when (item?.itemId) { R.id.action_about -> { - val alert = alert { - 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() + AboutActivity.launch(this) } R.id.action_confs -> { val confs = loadConfigurations().configs.toSortedMap()