diff options
| author | Charles Lombardo <clombardo169@gmail.com> | 2023-01-16 03:15:11 -0500 |
|---|---|---|
| committer | Charles Lombardo <clombardo169@gmail.com> | 2023-01-18 15:58:06 -0500 |
| commit | b598b6ec72cde8d7c14c69254aefadce5ccc462c (patch) | |
| tree | 6fb991d563d51425ac294fb7cafcf7720e37b006 /Source/Android/app/src/main/java | |
| parent | 30f0051f9c36b94ddd61dbaa8451eac9a6d489a4 (diff) | |
Android: Add about dialog
Diffstat (limited to 'Source/Android/app/src/main/java')
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)); |
