diff --git a/app/src/main/java/be/robinj/distrohopper/AboutActivity.java b/app/src/main/java/be/robinj/distrohopper/AboutActivity.java deleted file mode 100644 index 397cc93f..00000000 --- a/app/src/main/java/be/robinj/distrohopper/AboutActivity.java +++ /dev/null @@ -1,84 +0,0 @@ -package be.robinj.distrohopper; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.media.MediaPlayer; -import android.os.Bundle; -import androidx.appcompat.app.AppCompatActivity; -import android.text.Html; -import android.text.method.LinkMovementMethod; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - - -public class AboutActivity extends AppCompatActivity -{ - @Override - protected void onCreate (Bundle savedInstanceState) - { - super.onCreate (savedInstanceState); - setContentView (R.layout.activity_about); - InsetsHelper.applySystemBarsPadding (this); - - try - { - PackageInfo pkgInfo = this.getPackageManager ().getPackageInfo (this.getPackageName (), 0); - - TextView tvDevUrl = (TextView) this.findViewById (R.id.tvDevUrl); - TextView tvDevEmail = (TextView) this.findViewById (R.id.tvDevEmail); - TextView tvVersion = (TextView) this.findViewById (R.id.tvVersion); - ImageView ivLogo = (ImageView) this.findViewById (R.id.ivLogo); - - tvDevUrl.setText (Html.fromHtml ("RobinJ.be", Html.FROM_HTML_MODE_LEGACY)); - tvDevEmail.setText (Html.fromHtml ("distrohopper@robinj.be", Html.FROM_HTML_MODE_LEGACY)); - tvVersion.setText ("v" + pkgInfo.versionName); - - tvDevUrl.setMovementMethod (LinkMovementMethod.getInstance ()); - tvDevEmail.setMovementMethod (LinkMovementMethod.getInstance ()); - - final Context context = this.getBaseContext (); - - ivLogo.setOnClickListener - ( - new View.OnClickListener () - { - private short clicked = 0; - private MediaPlayer player; - - @Override - public void onClick (View view) - { - if (++this.clicked % 3 == 0) - { - if (this.player == null) - this.player = MediaPlayer.create (context, R.raw.ubuntu); - else - this.player.seekTo (0); - - player.start (); - } - } - } - ); - } - catch (Exception ex) - { - ExceptionHandler exh = new ExceptionHandler (ex); - exh.show (this); - } - } - - - @Override - protected void onStart () - { - super.onStart (); - } - - @Override - protected void onStop () - { - super.onStop (); - } -} diff --git a/app/src/main/java/be/robinj/distrohopper/AboutActivity.kt b/app/src/main/java/be/robinj/distrohopper/AboutActivity.kt new file mode 100644 index 00000000..a7251f65 --- /dev/null +++ b/app/src/main/java/be/robinj/distrohopper/AboutActivity.kt @@ -0,0 +1,72 @@ +package be.robinj.distrohopper + +import android.content.Intent +import android.media.MediaPlayer +import android.net.Uri +import android.os.Bundle +import android.text.Html +import android.text.method.LinkMovementMethod +import android.view.View +import android.widget.ImageView +import android.widget.TextView +import androidx.appcompat.app.AppCompatActivity + +class AboutActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + this.setContentView(R.layout.activity_about) + InsetsHelper.applySystemBarsPadding(this) + + try { + val pkgInfo = this.packageManager.getPackageInfo(this.packageName, 0) + + val tvDevUrl = this.findViewById(R.id.tvDevUrl) + val tvDevEmail = this.findViewById(R.id.tvDevEmail) + val tvVersion = this.findViewById(R.id.tvVersion) + val ivLogo = this.findViewById(R.id.ivLogo) + + tvDevUrl.text = Html.fromHtml("RobinJ.be", Html.FROM_HTML_MODE_LEGACY) + tvDevEmail.text = Html.fromHtml("distrohopper@robinj.be", Html.FROM_HTML_MODE_LEGACY) + tvVersion.text = "v" + pkgInfo.versionName + + tvDevUrl.movementMethod = LinkMovementMethod.getInstance() + tvDevEmail.movementMethod = LinkMovementMethod.getInstance() + + this.findViewById(R.id.linkGithub).setOnClickListener { + this.openUrl(this.getString(R.string.about_github_url)) + } + this.findViewById(R.id.linkTransifex).setOnClickListener { + this.openUrl(this.getString(R.string.about_transifex_url)) + } + + val context = this.baseContext + + ivLogo.setOnClickListener(object : View.OnClickListener { + private var clicked = 0 + private var player: MediaPlayer? = null + + override fun onClick(view: View) { + if (++this.clicked % 3 == 0) { + val player = this.player + ?: MediaPlayer.create(context, R.raw.ubuntu).also { this.player = it } + + player.seekTo(0) + player.start() + } + } + }) + } catch (ex: Exception) { + val exh = ExceptionHandler(ex) + exh.show(this) + } + } + + private fun openUrl(url: String) { + try { + this.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url))) + } catch (ex: Exception) { + val exh = ExceptionHandler(ex) + exh.show(this) + } + } +} diff --git a/app/src/main/res/drawable/about_card_background.xml b/app/src/main/res/drawable/about_card_background.xml new file mode 100644 index 00000000..4ddbed57 --- /dev/null +++ b/app/src/main/res/drawable/about_card_background.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/app/src/main/res/drawable/ic_about_github.xml b/app/src/main/res/drawable/ic_about_github.xml new file mode 100644 index 00000000..fcb0866b --- /dev/null +++ b/app/src/main/res/drawable/ic_about_github.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_about_translate.xml b/app/src/main/res/drawable/ic_about_translate.xml new file mode 100644 index 00000000..ad396408 --- /dev/null +++ b/app/src/main/res/drawable/ic_about_translate.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_about.xml b/app/src/main/res/layout/activity_about.xml index c73873f5..0d48eea2 100644 --- a/app/src/main/res/layout/activity_about.xml +++ b/app/src/main/res/layout/activity_about.xml @@ -112,6 +112,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 010e1feb..41f620b8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -19,6 +19,13 @@ Themes Logs Developed by Robin Jacobs + I started DistroHopper back in high school as a (far too) young Linux enthusiast who wanted something resembling the Linux desktop on his first smartphone. I hope 15+ years later of on-and-off development you still enjoy what I started back then :-) + Contribute on GitHub + DistroHopper is open source — browse the code, report issues, or send a pull request. + Help translate + Speak another language? Help translate DistroHopper on Transifex. + https://github.com/RobinJ1995/DistroHopper + https://explore.transifex.com/distrohopper/ Back About Apply