summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2023-01-24 13:16:15 +0100
committerGitHub <noreply@github.com>2023-01-24 13:16:15 +0100
commit014d0573b82b66ec812e8db904c9c083132c36ce (patch)
treee65435d03a5ccc7e6bae4aa596b7fc7577541b46 /Source/Android/app/src/main/java
parentcaca662dbff0a2fdebe6231288f9288e54419819 (diff)
parentb598b6ec72cde8d7c14c69254aefadce5ccc462c (diff)
Merge pull request #11455 from t895/about-dialog
Android: Add about dialog
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt94
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java2
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java9
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java4
4 files changed, 108 insertions, 1 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt
new file mode 100644
index 0000000000..059442ae98
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.fragments
+
+import android.os.Bundle
+import android.text.method.LinkMovementMethod
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.Toast
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
+import com.google.android.material.bottomsheet.BottomSheetBehavior
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment
+import org.dolphinemu.dolphinemu.BuildConfig
+import org.dolphinemu.dolphinemu.R
+import org.dolphinemu.dolphinemu.databinding.DialogAboutBinding
+import org.dolphinemu.dolphinemu.databinding.DialogAboutTvBinding
+
+class AboutDialogFragment : BottomSheetDialogFragment() {
+ private var _bindingMobile: DialogAboutBinding? = null
+ private var _bindingTv: DialogAboutTvBinding? = null
+
+ private val bindingMobile get() = _bindingMobile!!
+ private val bindingTv get() = _bindingTv!!
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View {
+ if (activity is AppCompatActivity) {
+ _bindingMobile = DialogAboutBinding.inflate(layoutInflater)
+ return bindingMobile.root
+ }
+ _bindingTv = DialogAboutTvBinding.inflate(layoutInflater)
+ return bindingTv.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ if (!resources.getBoolean(R.bool.hasTouch)) {
+ BottomSheetBehavior.from<View>(view.parent as View).state =
+ BottomSheetBehavior.STATE_EXPANDED
+ }
+
+ val wark = resources.getString(R.string.wark)
+ val branch = String.format(
+ resources.getString(R.string.about_branch),
+ BuildConfig.BRANCH
+ )
+ val revision = String.format(
+ resources.getString(R.string.about_revision),
+ BuildConfig.GIT_HASH
+ )
+ if (activity is AppCompatActivity) {
+ bindingMobile.dolphinLogo.setOnLongClickListener {
+ Toast.makeText(requireContext(), wark, Toast.LENGTH_SHORT).show()
+ true
+ }
+
+ bindingMobile.websiteText.movementMethod = LinkMovementMethod.getInstance()
+ bindingMobile.githubText.movementMethod = LinkMovementMethod.getInstance()
+ bindingMobile.supportText.movementMethod = LinkMovementMethod.getInstance()
+
+ bindingMobile.versionText.text = BuildConfig.VERSION_NAME
+ bindingMobile.branchText.text = branch
+ bindingMobile.revisionText.text = revision
+ } else {
+ bindingTv.dolphinLogo.setOnLongClickListener {
+ Toast.makeText(requireContext(), wark, Toast.LENGTH_SHORT).show()
+ true
+ }
+
+ bindingTv.websiteText.movementMethod = LinkMovementMethod.getInstance()
+ bindingTv.githubText.movementMethod = LinkMovementMethod.getInstance()
+ bindingTv.supportText.movementMethod = LinkMovementMethod.getInstance()
+
+ bindingTv.versionText.text = BuildConfig.VERSION_NAME
+ bindingTv.branchText.text = branch
+ bindingTv.revisionText.text = revision
+
+ bindingTv.dolphinLogo.setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.ic_dolphin))
+ }
+ }
+
+ override fun onDestroyView() {
+ super.onDestroyView()
+ _bindingMobile = null
+ }
+
+ companion object {
+ const val TAG = "AboutDialogFragment"
+ }
+}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
index 2e11049ab2..596f60cd8f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncChannelJobService.java
@@ -129,7 +129,7 @@ public class SyncChannelJobService extends JobService
builder.build().toContentValues());
channelId = ContentUris.parseId(channelUrl);
- Bitmap bitmap = TvUtil.convertToBitmap(context, R.drawable.ic_dolphin);
+ Bitmap bitmap = TvUtil.convertToBitmap(context, R.drawable.ic_dolphin_launcher);
ChannelLogoUtils.storeChannelLogo(context, channelId, bitmap);
return channelId;
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
index 0115dba7cc..2e5d9c617f 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainPresenter.java
@@ -21,6 +21,7 @@ import org.dolphinemu.dolphinemu.features.settings.ui.MenuTag;
import org.dolphinemu.dolphinemu.features.sysupdate.ui.SystemUpdateProgressBarDialogFragment;
import org.dolphinemu.dolphinemu.features.sysupdate.ui.SystemMenuNotInstalledDialogFragment;
import org.dolphinemu.dolphinemu.features.sysupdate.ui.SystemUpdateViewModel;
+import org.dolphinemu.dolphinemu.fragments.AboutDialogFragment;
import org.dolphinemu.dolphinemu.model.GameFileCache;
import org.dolphinemu.dolphinemu.services.GameFileCacheManager;
import org.dolphinemu.dolphinemu.utils.AfterDirectoryInitializationRunner;
@@ -135,6 +136,9 @@ public final class MainPresenter
new AfterDirectoryInitializationRunner().runWithLifecycle(activity,
() -> mView.launchOpenFileActivity(REQUEST_NAND_BIN_FILE));
return true;
+
+ case R.id.menu_about:
+ showAboutDialog();
}
return false;
@@ -337,4 +341,9 @@ public final class MainPresenter
}
});
}
+
+ private void showAboutDialog()
+ {
+ new AboutDialogFragment().show(mActivity.getSupportFragmentManager(), AboutDialogFragment.TAG);
+ }
}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
index 21a8fc2880..0e1f55154b 100644
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.java
@@ -406,6 +406,10 @@ public final class TvMainActivity extends FragmentActivity
R.drawable.ic_folder_tv,
R.string.grid_menu_online_system_update));
+ rowItems.add(new TvSettingsItem(R.id.menu_about,
+ R.drawable.ic_info_tv,
+ R.string.grid_menu_about));
+
// Create a header for this row.
HeaderItem header = new HeaderItem(R.string.settings, getString(R.string.settings));