2018-01-04 19:52:25 +01:00
|
|
|
package jp.juggler.subwaytooter
|
|
|
|
|
|
|
|
import android.app.Activity
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.pm.PackageManager
|
|
|
|
import android.os.Bundle
|
2019-01-26 12:07:04 +01:00
|
|
|
import android.view.Gravity
|
2018-01-04 19:52:25 +01:00
|
|
|
import android.widget.Button
|
|
|
|
import android.widget.LinearLayout
|
|
|
|
import android.widget.TextView
|
2019-11-21 10:48:15 +01:00
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
2018-12-01 00:02:18 +01:00
|
|
|
import jp.juggler.util.LogCategory
|
2018-01-04 19:52:25 +01:00
|
|
|
|
|
|
|
class ActAbout : AppCompatActivity() {
|
|
|
|
|
2019-11-21 11:40:54 +01:00
|
|
|
class Translators(
|
|
|
|
val name:String,
|
|
|
|
_search:String?,
|
|
|
|
val lang:String
|
|
|
|
){
|
|
|
|
val search :String = _search ?: name
|
|
|
|
}
|
|
|
|
|
2018-01-04 19:52:25 +01:00
|
|
|
companion object {
|
|
|
|
val log = LogCategory("ActAbout")
|
|
|
|
|
2018-01-21 13:46:36 +01:00
|
|
|
const val EXTRA_SEARCH = "search"
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
const val url_store =
|
|
|
|
"https://play.google.com/store/apps/details?id=jp.juggler.subwaytooter"
|
|
|
|
|
2018-01-21 13:46:36 +01:00
|
|
|
const val developer_acct = "tateisu@mastodon.juggler.jp"
|
2019-01-26 12:07:04 +01:00
|
|
|
const val official_acct = "SubwayTooter@mastodon.juggler.jp"
|
|
|
|
|
|
|
|
const val url_release = "https://github.com/tateisu/SubwayTooter/releases"
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2018-01-21 13:46:36 +01:00
|
|
|
const val url_futaba = "https://www.instagram.com/hinomoto_hutaba/"
|
2019-01-26 12:07:04 +01:00
|
|
|
|
2018-08-31 16:18:25 +02:00
|
|
|
const val url_weblate = "https://hosted.weblate.org/projects/subway-tooter/"
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2019-11-21 11:40:54 +01:00
|
|
|
val translators = arrayOf(
|
|
|
|
Translators("Allan Nordhøy",null,"English & Norwegian Bokmål"),
|
|
|
|
Translators("ButterflyOfFire","@ButterflyOfFire@mstdn.fr", "Arabic & French"),
|
|
|
|
Translators("Ch",null,"Korean"),
|
|
|
|
Translators("Elizabeth Sherrock",null,"Chinese (Simplified)"),
|
|
|
|
Translators("Gennady Archangorodsky",null,"Hebrew"),
|
|
|
|
Translators("inqbs Siina",null,"Korean"),
|
|
|
|
Translators("Jeong Arm","jarm@qdon.space","Korean"),
|
|
|
|
Translators("Kai Zhang",null,"Chinese (Simplified)"),
|
|
|
|
Translators("lptprjh",null,"Korean"),
|
|
|
|
Translators("mynameismonkey",null,"Welsh"),
|
|
|
|
Translators("Nathan",null,"French"),
|
|
|
|
Translators("Owain Rhys Lewis",null,"Welsh"),
|
|
|
|
Translators("Swann Martinet",null,"French"),
|
|
|
|
Translators("takubunn",null,"Chinese (Simplified)"),
|
|
|
|
Translators("배태길",null,"Korea")
|
2018-08-31 16:18:25 +02:00
|
|
|
)
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
|
2019-11-21 10:48:15 +01:00
|
|
|
|
2018-01-04 19:52:25 +01:00
|
|
|
override fun onCreate(savedInstanceState : Bundle?) {
|
|
|
|
super.onCreate(savedInstanceState)
|
2019-10-07 21:39:56 +02:00
|
|
|
App1.setActivityTheme(this)
|
2018-01-04 19:52:25 +01:00
|
|
|
setContentView(R.layout.act_about)
|
2019-08-31 16:33:13 +02:00
|
|
|
App1.initEdgeToEdge(this)
|
2018-01-04 19:52:25 +01:00
|
|
|
|
|
|
|
Styler.fixHorizontalPadding(findViewById(R.id.svContent))
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
val pInfo = packageManager.getPackageInfo(packageName, 0)
|
2018-01-21 13:46:36 +01:00
|
|
|
val tv = findViewById<TextView>(R.id.tvVersion)
|
2019-01-26 12:07:04 +01:00
|
|
|
tv.text = getString(R.string.version_is, pInfo.versionName)
|
2018-01-04 19:52:25 +01:00
|
|
|
} catch(ex : PackageManager.NameNotFoundException) {
|
2019-01-26 12:07:04 +01:00
|
|
|
log.trace(ex, "getPackageInfo failed.")
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
fun setButton(btnId : Int, caption : String, onClick : () -> Unit) {
|
|
|
|
val b : Button = findViewById(btnId)
|
|
|
|
b.text = caption
|
|
|
|
b.setOnClickListener { onClick() }
|
|
|
|
}
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
fun searchAcct(acct : String) {
|
|
|
|
setResult(Activity.RESULT_OK, Intent().apply { putExtra(EXTRA_SEARCH, acct) })
|
2018-01-04 19:52:25 +01:00
|
|
|
finish()
|
|
|
|
}
|
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
fun openUrl(url : String) {
|
|
|
|
App1.openBrowser(this@ActAbout, url)
|
|
|
|
}
|
|
|
|
|
|
|
|
setButton(
|
|
|
|
R.id.btnDeveloper,
|
|
|
|
getString(R.string.search_for, developer_acct)
|
|
|
|
) { searchAcct(developer_acct) }
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
setButton(
|
|
|
|
R.id.btnOfficialAccount,
|
|
|
|
getString(R.string.search_for, official_acct)
|
|
|
|
) { searchAcct(official_acct) }
|
2018-01-04 19:52:25 +01:00
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
|
|
|
|
setButton(R.id.btnRate, url_store) { openUrl(url_store) }
|
|
|
|
setButton(R.id.btnReleaseNote, url_release) { openUrl(url_release) }
|
|
|
|
setButton(R.id.btnIconDesign, url_futaba) { openUrl(url_futaba) }
|
2019-11-21 10:42:32 +01:00
|
|
|
setButton(R.id.btnWeblate, getString(R.string.please_help_translation) ) { openUrl(url_weblate) }
|
2018-08-31 16:18:25 +02:00
|
|
|
|
2018-01-04 19:52:25 +01:00
|
|
|
val ll = findViewById<LinearLayout>(R.id.llContributors)
|
|
|
|
val density = resources.displayMetrics.density
|
|
|
|
val margin_top = (0.5f + density * 8).toInt()
|
|
|
|
val padding = (0.5f + density * 8).toInt()
|
|
|
|
|
2019-11-21 11:40:54 +01:00
|
|
|
for(who in translators) {
|
2019-10-07 21:39:56 +02:00
|
|
|
ll.addView(Button(this).apply {
|
2019-01-26 12:07:04 +01:00
|
|
|
//
|
|
|
|
layoutParams = LinearLayout.LayoutParams(
|
|
|
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
|
|
LinearLayout.LayoutParams.WRAP_CONTENT
|
2019-10-07 21:39:56 +02:00
|
|
|
).apply {
|
|
|
|
if(ll.childCount != 0) topMargin = margin_top
|
2019-01-26 12:07:04 +01:00
|
|
|
}
|
|
|
|
//
|
|
|
|
setBackgroundResource(R.drawable.btn_bg_transparent)
|
|
|
|
setPadding(padding, padding, padding, padding)
|
|
|
|
isAllCaps = false
|
2019-11-21 10:48:15 +01:00
|
|
|
|
2019-01-26 12:07:04 +01:00
|
|
|
//
|
2019-11-21 11:40:54 +01:00
|
|
|
text = who.name + "\n" + getString(R.string.thanks_for, who.lang)
|
2019-01-26 12:07:04 +01:00
|
|
|
|
|
|
|
gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
|
|
|
|
|
|
|
setOnClickListener {
|
|
|
|
val data = Intent()
|
2019-11-21 11:40:54 +01:00
|
|
|
data.putExtra(EXTRA_SEARCH, who.search)
|
2019-01-26 12:07:04 +01:00
|
|
|
setResult(Activity.RESULT_OK, data)
|
|
|
|
finish()
|
|
|
|
}
|
|
|
|
})
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|