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 | |
| parent | 30f0051f9c36b94ddd61dbaa8451eac9a6d489a4 (diff) | |
Android: Add about dialog
Diffstat (limited to 'Source/Android/app')
19 files changed, 894 insertions, 22 deletions
diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index a67131e6df..7298cc9f60 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -41,6 +41,9 @@ android { versionName "${getVersion()}" + buildConfigField "String", "GIT_HASH", "\"${getGitHash()}\"" + buildConfigField "String", "BRANCH", "\"${getBranch()}\"" + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -162,7 +165,6 @@ def getVersion() { return versionNumber } - def getBuildVersionCode() { try { def versionNumber = 'git rev-list --first-parent --count HEAD'.execute([], project.rootDir).text @@ -174,3 +176,25 @@ def getBuildVersionCode() { return 1 } + +def getGitHash() { + try { + def gitHash = 'git rev-parse HEAD'.execute([], project.rootDir).text.trim() + return gitHash + } catch (Exception e) { + logger.error(e + ': Cannot find git, defaulting to dummy build hash') + } + + return 0 +} + +def getBranch() { + try { + def branch = 'git rev-parse --abbrev-ref HEAD'.execute([], project.rootDir).text.trim() + return branch + } catch (Exception e) { + logger.error(e + ': Cannot find git, defaulting to dummy build hash') + } + + return 'master' +} 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)); diff --git a/Source/Android/app/src/main/res/drawable/ic_dolphin.xml b/Source/Android/app/src/main/res/drawable/ic_dolphin.xml index c43d170346..c2defe5980 100644 --- a/Source/Android/app/src/main/res/drawable/ic_dolphin.xml +++ b/Source/Android/app/src/main/res/drawable/ic_dolphin.xml @@ -1,19 +1,27 @@ -<vector android:height="192dp" android:viewportHeight="500" - android:viewportWidth="500" android:width="192dp" - xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android"> - <path android:fillColor="#0057AB" android:fillType="nonZero" - android:pathData="M344.28,301.46C343.6,299.18 339.35,285.41 332.2,272.21C322.77,254.81 314.66,242.38 301.16,229.75C296.81,225.69 292.7,222.06 288.41,218.8L288.42,218.8C288.42,218.8 288.38,218.78 288.32,218.73C288.24,218.67 288.16,218.61 288.08,218.55C286.48,217.32 279.75,211.64 282.15,205.38C282.95,203.28 284.89,201.53 287.19,200.12L299.6,200.02L299.6,195.42L299.6,195.42C299.6,195.42 299.6,195.42 299.6,195.42C299.6,195.42 292.33,192.95 279.62,193.77C267.69,194.53 256.97,201.51 254.96,202.49C248.54,200.65 241.2,199.03 232.63,197.57C202.97,192.54 177.86,200.56 165.27,209.3C148.76,220.76 149.21,231.44 147.85,236.78C147.01,240.09 139.51,246.21 139.6,250.5L139.6,255.02L141.15,256.61L146.99,254.63L147.69,252.19C150.09,251.34 152.72,250.14 155.11,249.16C161.07,246.71 161.53,245.37 177.82,242.94C185.32,241.82 193.21,241.5 199.08,241.45C201.37,246.28 207.05,256.2 216.89,260.96C223.3,264.05 230.47,265.64 236.18,266.45L235.43,270.22L246.8,271.9L246.8,267.3L246.79,267.3C246.79,267.3 246.79,267.3 246.79,267.3C246.79,267.3 237.25,263.34 231.38,257.47C227.38,253.47 226.43,247.4 226.23,243.93L226.26,243.93C235.88,245.76 244.28,247.08 264.38,254.78C268.09,256.2 271.56,257.76 274.72,259.34L274.12,259.67L283.18,266.98L294,275.93L294,271.33L293.96,271.3C293.8,271.1 281.48,255.84 260.78,245.63C243.67,237.19 229.62,233.02 210.16,232.07C188.88,231.04 173.21,233.77 173.21,233.77C173.21,233.77 173.64,224.32 189.71,216.79C203.67,210.23 225.65,209.14 250.86,215.57C286.49,224.66 298.64,240.14 313.96,256.13C323.69,266.27 332.62,280.55 338.26,290.43L337.31,290L340.23,297.54L344.4,306.45L344.4,301.82L344.28,301.46z" - android:strokeColor="#00000000" android:strokeLineCap="butt" - android:strokeLineJoin="miter" android:strokeWidth="0.1"/> - <path android:fillType="nonZero" - android:pathData="M332.2,276.8C322.77,259.41 314.67,246.97 301.16,234.34C296.82,230.28 292.7,226.65 288.41,223.39L288.42,223.39C288.42,223.39 288.39,223.37 288.32,223.32C288.25,223.27 288.17,223.21 288.09,223.15C286.5,221.92 279.75,216.24 282.15,209.97C284.78,203.09 299.6,200.01 299.6,200.01C299.6,200.01 292.34,197.54 279.62,198.36C267.69,199.12 256.97,206.1 254.96,207.08C248.54,205.24 241.21,203.62 232.63,202.17C202.97,197.13 177.87,205.15 165.27,213.9C148.76,225.36 149.22,236.03 147.86,241.38C146.88,245.22 136.92,252.85 140.3,257.01C142.41,259.61 149.44,256.08 155.11,253.75C161.07,251.3 161.53,249.96 177.83,247.53C185.32,246.42 193.21,246.09 199.08,246.05C201.37,250.87 207.05,260.79 216.9,265.55C230.19,271.97 246.8,271.89 246.8,271.89C246.8,271.89 237.25,267.93 231.38,262.06C227.39,258.06 226.43,251.99 226.23,248.52L226.26,248.53C235.88,250.35 244.29,251.67 264.38,259.37C281.96,266.1 293.97,275.9 293.97,275.9C293.97,275.9 281.62,260.5 260.78,250.22C243.67,241.78 229.63,237.61 210.16,236.67C188.89,235.63 173.21,238.37 173.21,238.37C173.21,238.37 173.65,228.91 189.71,221.38C203.68,214.83 225.65,213.73 250.87,220.16C286.49,229.25 298.64,244.73 313.97,260.72C330.28,277.74 344.38,306.39 344.38,306.39C344.38,306.39 340.03,291.25 332.2,276.8z" - android:strokeColor="#00000000" android:strokeLineCap="butt" - android:strokeLineJoin="miter" android:strokeWidth="0.1"> +<vector + xmlns:aapt="http://schemas.android.com/aapt" + xmlns:android="http://schemas.android.com/apk/res/android" + android:width="192dp" + android:height="192dp" + android:viewportHeight="2048" + android:viewportWidth="2048"> + <path + android:fillColor="#0057ab" + android:pathData="m2046.8,1538.7c-6.8,-22.8 -49.3,-160.5 -120.8,-292.6 -94.3,-173.9 -175.3,-298.3 -310.4,-424.6 -43.4,-40.6 -84.6,-76.9 -127.4,-109.5l0,0c0,0 -0.3,-0.2 -0.9,-0.7 -0.8,-0.6 -1.6,-1.2 -2.4,-1.8 -16,-12.4 -83.3,-69.1 -59.4,-131.8 8,-21 27.4,-38.5 50.5,-52.6l124.1,-1v-46l-0,0c0,0 0,-0 0,-0 0,0 -72.7,-24.7 -199.8,-16.5 -119.3,7.7 -226.5,77.4 -246.6,87.2 -64.3,-18.4 -137.6,-34.6 -223.3,-49.2 -296.6,-50.3 -547.6,29.9 -673.6,117.3 -165.1,114.6 -160.5,221.4 -174.1,274.8 -8.4,33.1 -83.4,94.3 -82.5,137.2v45.2l15.5,16 58.4,-19.8 7,-24.4c24,-8.6 50.3,-20.5 74.2,-30.4 59.6,-24.5 64.2,-37.9 227.1,-62.2 75,-11.2 153.8,-14.4 212.6,-14.9 22.9,48.3 79.7,147.5 178.1,195 64,30.9 135.7,46.8 192.9,54.9l-7.5,37.7 113.7,16.8v-46l-0.1,-0c0,0 0,0 0,0 0,0 -95.4,-39.6 -154.1,-98.4 -40,-40 -49.5,-100.6 -51.6,-135.3l0.4,0c96.2,18.3 180.2,31.5 381.2,108.4 37.2,14.2 71.8,29.8 103.4,45.6l-5.9,3.3 90.6,73 108.2,89.5v-46l-0.4,-0.3c-1.6,-2 -124.8,-154.6 -331.8,-256.7 -171.1,-84.4 -311.6,-126.1 -506.2,-135.5 -212.8,-10.3 -369.5,17 -369.5,17 0,0 4.4,-94.5 165,-169.9 139.7,-65.5 359.4,-76.5 611.6,-12.1 356.3,90.9 477.8,245.6 631,405.6 97.2,101.5 186.6,244.2 243,343l-9.5,-4.3 29.2,75.4 41.8,89.1v-46.3l-1.2,-3.6z" /> + <path android:pathData="m1926,1292c-94.3,-173.9 -175.3,-298.3 -310.4,-424.6 -43.4,-40.6 -84.6,-76.9 -127.4,-109.5l0,0c0,0 -0.3,-0.2 -1,-0.7 -0.8,-0.6 -1.5,-1.2 -2.3,-1.8 -15.9,-12.3 -83.4,-69.1 -59.4,-131.8 26.3,-68.8 174.6,-99.6 174.6,-99.6 0,0 -72.7,-24.7 -199.8,-16.5 -119.3,7.7 -226.5,77.4 -246.6,87.2 -64.3,-18.4 -137.6,-34.6 -223.3,-49.2 -296.6,-50.3 -547.6,29.9 -673.6,117.3 -165.1,114.6 -160.5,221.4 -174.1,274.8 -9.8,38.4 -109.4,114.8 -75.5,156.4 21.1,26 91.4,-9.3 148.1,-32.6 59.6,-24.5 64.2,-37.9 227.1,-62.2 75,-11.2 153.8,-14.4 212.6,-14.9 22.9,48.3 79.7,147.5 178.1,195 132.9,64.2 299,63.4 299,63.4 0,0 -95.4,-39.6 -154.1,-98.4 -40,-40 -49.5,-100.6 -51.6,-135.3l0.4,0c96.2,18.3 180.2,31.5 381.2,108.4 175.8,67.3 295.9,165.3 295.9,165.3 0,0 -123.5,-154 -331.9,-256.8 -171.1,-84.4 -311.6,-126.1 -506.2,-135.5 -212.8,-10.3 -369.5,17 -369.5,17 0,0 4.4,-94.5 165,-169.9 139.7,-65.5 359.4,-76.5 611.6,-12.1 356.3,90.9 477.8,245.6 631,405.6 163.1,170.2 304.1,456.7 304.1,456.7 0,0 -43.5,-151.4 -121.8,-295.9z"> <aapt:attr name="android:fillColor"> - <gradient android:endX="139.6" android:endY="306.4" - android:startX="139.6" android:startY="198.2" android:type="linear"> - <item android:color="#FF46D4FF" android:offset="0"/> - <item android:color="#FF1792FF" android:offset="1"/> + <gradient + android:endX="0" + android:endY="1588" + android:startX="0" + android:startY="506" + android:type="linear"> + <item + android:color="#FF46D4FF" + android:offset="0" /> + <item + android:color="#FF1792FF" + android:offset="1" /> </gradient> </aapt:attr> </path> diff --git a/Source/Android/app/src/main/res/drawable/ic_dolphin_launcher.xml b/Source/Android/app/src/main/res/drawable/ic_dolphin_launcher.xml new file mode 100644 index 0000000000..c43d170346 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable/ic_dolphin_launcher.xml @@ -0,0 +1,20 @@ +<vector android:height="192dp" android:viewportHeight="500" + android:viewportWidth="500" android:width="192dp" + xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android"> + <path android:fillColor="#0057AB" android:fillType="nonZero" + android:pathData="M344.28,301.46C343.6,299.18 339.35,285.41 332.2,272.21C322.77,254.81 314.66,242.38 301.16,229.75C296.81,225.69 292.7,222.06 288.41,218.8L288.42,218.8C288.42,218.8 288.38,218.78 288.32,218.73C288.24,218.67 288.16,218.61 288.08,218.55C286.48,217.32 279.75,211.64 282.15,205.38C282.95,203.28 284.89,201.53 287.19,200.12L299.6,200.02L299.6,195.42L299.6,195.42C299.6,195.42 299.6,195.42 299.6,195.42C299.6,195.42 292.33,192.95 279.62,193.77C267.69,194.53 256.97,201.51 254.96,202.49C248.54,200.65 241.2,199.03 232.63,197.57C202.97,192.54 177.86,200.56 165.27,209.3C148.76,220.76 149.21,231.44 147.85,236.78C147.01,240.09 139.51,246.21 139.6,250.5L139.6,255.02L141.15,256.61L146.99,254.63L147.69,252.19C150.09,251.34 152.72,250.14 155.11,249.16C161.07,246.71 161.53,245.37 177.82,242.94C185.32,241.82 193.21,241.5 199.08,241.45C201.37,246.28 207.05,256.2 216.89,260.96C223.3,264.05 230.47,265.64 236.18,266.45L235.43,270.22L246.8,271.9L246.8,267.3L246.79,267.3C246.79,267.3 246.79,267.3 246.79,267.3C246.79,267.3 237.25,263.34 231.38,257.47C227.38,253.47 226.43,247.4 226.23,243.93L226.26,243.93C235.88,245.76 244.28,247.08 264.38,254.78C268.09,256.2 271.56,257.76 274.72,259.34L274.12,259.67L283.18,266.98L294,275.93L294,271.33L293.96,271.3C293.8,271.1 281.48,255.84 260.78,245.63C243.67,237.19 229.62,233.02 210.16,232.07C188.88,231.04 173.21,233.77 173.21,233.77C173.21,233.77 173.64,224.32 189.71,216.79C203.67,210.23 225.65,209.14 250.86,215.57C286.49,224.66 298.64,240.14 313.96,256.13C323.69,266.27 332.62,280.55 338.26,290.43L337.31,290L340.23,297.54L344.4,306.45L344.4,301.82L344.28,301.46z" + android:strokeColor="#00000000" android:strokeLineCap="butt" + android:strokeLineJoin="miter" android:strokeWidth="0.1"/> + <path android:fillType="nonZero" + android:pathData="M332.2,276.8C322.77,259.41 314.67,246.97 301.16,234.34C296.82,230.28 292.7,226.65 288.41,223.39L288.42,223.39C288.42,223.39 288.39,223.37 288.32,223.32C288.25,223.27 288.17,223.21 288.09,223.15C286.5,221.92 279.75,216.24 282.15,209.97C284.78,203.09 299.6,200.01 299.6,200.01C299.6,200.01 292.34,197.54 279.62,198.36C267.69,199.12 256.97,206.1 254.96,207.08C248.54,205.24 241.21,203.62 232.63,202.17C202.97,197.13 177.87,205.15 165.27,213.9C148.76,225.36 149.22,236.03 147.86,241.38C146.88,245.22 136.92,252.85 140.3,257.01C142.41,259.61 149.44,256.08 155.11,253.75C161.07,251.3 161.53,249.96 177.83,247.53C185.32,246.42 193.21,246.09 199.08,246.05C201.37,250.87 207.05,260.79 216.9,265.55C230.19,271.97 246.8,271.89 246.8,271.89C246.8,271.89 237.25,267.93 231.38,262.06C227.39,258.06 226.43,251.99 226.23,248.52L226.26,248.53C235.88,250.35 244.29,251.67 264.38,259.37C281.96,266.1 293.97,275.9 293.97,275.9C293.97,275.9 281.62,260.5 260.78,250.22C243.67,241.78 229.63,237.61 210.16,236.67C188.89,235.63 173.21,238.37 173.21,238.37C173.21,238.37 173.65,228.91 189.71,221.38C203.68,214.83 225.65,213.73 250.87,220.16C286.49,229.25 298.64,244.73 313.97,260.72C330.28,277.74 344.38,306.39 344.38,306.39C344.38,306.39 340.03,291.25 332.2,276.8z" + android:strokeColor="#00000000" android:strokeLineCap="butt" + android:strokeLineJoin="miter" android:strokeWidth="0.1"> + <aapt:attr name="android:fillColor"> + <gradient android:endX="139.6" android:endY="306.4" + android:startX="139.6" android:startY="198.2" android:type="linear"> + <item android:color="#FF46D4FF" android:offset="0"/> + <item android:color="#FF1792FF" android:offset="1"/> + </gradient> + </aapt:attr> + </path> +</vector> diff --git a/Source/Android/app/src/main/res/drawable/ic_info_tv.xml b/Source/Android/app/src/main/res/drawable/ic_info_tv.xml new file mode 100644 index 0000000000..6fa3a6c4f0 --- /dev/null +++ b/Source/Android/app/src/main/res/drawable/ic_info_tv.xml @@ -0,0 +1,10 @@ +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportHeight="24" + android:viewportWidth="24"> + <path + android:fillColor="@android:color/white" + android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z" /> +</vector> diff --git a/Source/Android/app/src/main/res/layout-w600dp/dialog_about.xml b/Source/Android/app/src/main/res/layout-w600dp/dialog_about.xml new file mode 100644 index 0000000000..03006aa7cc --- /dev/null +++ b/Source/Android/app/src/main/res/layout-w600dp/dialog_about.xml @@ -0,0 +1,171 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_sheet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <com.google.android.material.bottomsheet.BottomSheetDragHandleView + android:id="@+id/bottomSheetDragHandleView" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/dolphin_logo" + android:layout_width="192dp" + android:layout_height="192dp" + android:layout_marginStart="@dimen/spacing_xtralarge" + android:clickable="true" + android:contentDescription="@string/about_dolphin_image" + android:focusable="true" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/about_linear_layout" + app:srcCompat="@drawable/ic_dolphin" /> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_linear_layout" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/spacing_xtralarge" + android:layout_marginBottom="@dimen/spacing_large" + android:orientation="vertical" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/dolphin_logo" + app:layout_constraintTop_toBottomOf="@+id/bottomSheetDragHandleView"> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/name_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_dolphin" + android:textAppearance="@style/TextAppearance.AppCompat.Display3" + android:textColor="?attr/colorOnSurface" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/version_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:textAppearance="@style/TextAppearance.AppCompat.Large" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + tools:text="5.0-XXXXX" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/branch_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + tools:text="Branch:\nmaster" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/revision_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + tools:text="Revision:\nf4f94396e94dad9cd4d7d7fb6defa096966a4ab8" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/about_dolphin_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:text="@string/about_dolphin_description" + android:textColor="?attr/colorOnSurface" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large"> + + <com.google.android.material.divider.MaterialDivider + android:id="@+id/divider_1" + android:layout_width="1dp" + android:layout_height="0dp" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toEndOf="@+id/website_text" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.divider.MaterialDivider + android:id="@+id/divider_2" + android:layout_width="1dp" + android:layout_height="0dp" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/support_text" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/website_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_website" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/github_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_github" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/support_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_support" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.appcompat.widget.LinearLayoutCompat> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.core.widget.NestedScrollView> + + </androidx.appcompat.widget.LinearLayoutCompat> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/Source/Android/app/src/main/res/layout-w600dp/dialog_about_tv.xml b/Source/Android/app/src/main/res/layout-w600dp/dialog_about_tv.xml new file mode 100644 index 0000000000..18da059c5f --- /dev/null +++ b/Source/Android/app/src/main/res/layout-w600dp/dialog_about_tv.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/dolphin_surface"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_sheet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/dolphin_logo" + android:layout_width="192dp" + android:layout_height="192dp" + android:layout_marginStart="@dimen/spacing_xtralarge" + android:clickable="true" + android:contentDescription="@string/about_dolphin_image" + android:focusable="true" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/about_linear_layout" /> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_linear_layout" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginHorizontal="@dimen/spacing_xtralarge" + android:layout_marginTop="@dimen/spacing_large" + android:paddingBottom="@dimen/spacing_large" + android:orientation="vertical" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/dolphin_logo" + app:layout_constraintTop_toTopOf="parent"> + + <TextView + android:id="@+id/name_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:focusable="false" + android:text="@string/about_dolphin" + android:textAppearance="@style/TextAppearance.AppCompat.Display3" + android:textColor="@color/dolphin_onSurface" /> + + <TextView + android:id="@+id/version_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:textAppearance="@style/TextAppearance.AppCompat.Large" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="5.0-XXXXX" /> + + <TextView + android:id="@+id/branch_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="Branch:\nmaster" /> + + <TextView + android:id="@+id/revision_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="Revision:\nf4f94396e94dad9cd4d7d7fb6defa096966a4ab8" /> + + <TextView + android:id="@+id/about_dolphin_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:text="@string/about_dolphin_description" + android:textColor="@color/dolphin_onSurface" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large"> + + <TextView + android:id="@+id/website_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_website" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/github_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_github" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/support_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/about_support" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + + <View + android:id="@+id/divider_2" + android:layout_width="1dp" + android:layout_height="0dp" + android:background="@color/dolphin_onSurface" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/support_text" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + <View + android:id="@+id/divider_1" + android:layout_width="1dp" + android:layout_height="0dp" + android:background="@color/dolphin_onSurface" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toEndOf="@+id/website_text" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.appcompat.widget.LinearLayoutCompat> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.core.widget.NestedScrollView> + + </androidx.appcompat.widget.LinearLayoutCompat> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/Source/Android/app/src/main/res/layout/dialog_about.xml b/Source/Android/app/src/main/res/layout/dialog_about.xml new file mode 100644 index 0000000000..6af5c19ab9 --- /dev/null +++ b/Source/Android/app/src/main/res/layout/dialog_about.xml @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_sheet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingBottom="24dp" + android:paddingHorizontal="24dp" + android:orientation="vertical"> + + <com.google.android.material.bottomsheet.BottomSheetDragHandleView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" /> + + <ImageView + android:id="@+id/dolphin_logo" + android:layout_width="132dp" + android:layout_height="132dp" + android:focusable="true" + android:clickable="true" + android:contentDescription="@string/about_dolphin_image" + android:layout_gravity="center_horizontal" + app:srcCompat="@drawable/ic_dolphin" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/name_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:gravity="center_horizontal" + android:text="@string/about_dolphin" + android:textAppearance="@style/TextAppearance.AppCompat.Display3" + android:textColor="?attr/colorOnSurface" + android:layout_gravity="center_horizontal" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/version_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:gravity="center_horizontal" + android:textAppearance="@style/TextAppearance.AppCompat.Large" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + android:layout_gravity="center_horizontal" + tools:text="5.0-XXXXX" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/branch_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:gravity="center_horizontal" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + android:layout_gravity="center_horizontal" + tools:text="Branch:\nmaster" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/revision_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:gravity="center_horizontal" + android:textColor="?attr/colorOnSurface" + android:textIsSelectable="true" + tools:text="Revision:\nf4f94396e94dad9cd4d7d7fb6defa096966a4ab8" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/about_dolphin_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large" + android:gravity="center_horizontal" + android:text="@string/about_dolphin_description" + android:textColor="?attr/colorOnSurface" + android:focusable="false" + android:layout_gravity="center_horizontal" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large"> + + <com.google.android.material.divider.MaterialDivider + android:id="@+id/divider_1" + android:layout_width="1dp" + android:layout_height="0dp" + android:layout_gravity="center_horizontal" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toEndOf="@+id/website_text" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.divider.MaterialDivider + android:id="@+id/divider_2" + android:layout_width="1dp" + android:layout_height="0dp" + android:layout_gravity="center_horizontal" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/support_text" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/website_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/about_website" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/github_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/about_github" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <com.google.android.material.textview.MaterialTextView + android:id="@+id/support_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/about_support" + android:textColor="?attr/colorOnSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.appcompat.widget.LinearLayoutCompat> + + </androidx.core.widget.NestedScrollView> + + </androidx.appcompat.widget.LinearLayoutCompat> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/Source/Android/app/src/main/res/layout/dialog_about_tv.xml b/Source/Android/app/src/main/res/layout/dialog_about_tv.xml new file mode 100644 index 0000000000..0282005ca7 --- /dev/null +++ b/Source/Android/app/src/main/res/layout/dialog_about_tv.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/dolphin_surface"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:id="@+id/about_sheet" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical"> + + <androidx.core.widget.NestedScrollView + android:layout_width="match_parent" + android:layout_height="match_parent"> + + <androidx.appcompat.widget.LinearLayoutCompat + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="24dp" + android:paddingHorizontal="24dp"> + + <ImageView + android:id="@+id/dolphin_logo" + android:layout_width="132dp" + android:layout_height="132dp" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:background="?attr/selectableItemBackground" + android:clickable="true" + android:contentDescription="@string/about_dolphin_image" + android:focusable="true" /> + + <TextView + android:id="@+id/name_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:focusable="false" + android:gravity="center_horizontal" + android:text="@string/about_dolphin" + android:textAppearance="@style/TextAppearance.AppCompat.Display3" + android:textColor="@color/dolphin_onSurface" /> + + <TextView + android:id="@+id/version_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:gravity="center_horizontal" + android:textAppearance="@style/TextAppearance.AppCompat.Large" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="5.0-XXXXX" /> + + <TextView + android:id="@+id/branch_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:gravity="center_horizontal" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="Branch:\nmaster" /> + + <TextView + android:id="@+id/revision_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:gravity="center_horizontal" + android:textColor="@color/dolphin_onSurface" + android:textIsSelectable="true" + tools:text="Revision:\nf4f94396e94dad9cd4d7d7fb6defa096966a4ab8" /> + + <TextView + android:id="@+id/about_dolphin_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginTop="@dimen/spacing_large" + android:focusable="false" + android:gravity="center_horizontal" + android:text="@string/about_dolphin_description" + android:textColor="@color/dolphin_onSurface" /> + + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/spacing_large"> + + <TextView + android:id="@+id/website_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/about_website" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/github_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/about_github" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <TextView + android:id="@+id/support_text" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:text="@string/about_support" + android:textColor="@color/dolphin_onSurface" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + <View + android:id="@+id/divider_2" + android:layout_width="1dp" + android:layout_height="0dp" + android:layout_gravity="center_horizontal" + android:background="@color/dolphin_onSurface" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/support_text" + app:layout_constraintStart_toEndOf="@+id/github_text" + app:layout_constraintTop_toTopOf="parent" /> + + <View + android:id="@+id/divider_1" + android:layout_width="1dp" + android:layout_height="0dp" + android:layout_gravity="center_horizontal" + android:background="@color/dolphin_onSurface" + android:focusable="false" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/github_text" + app:layout_constraintStart_toEndOf="@+id/website_text" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + </androidx.appcompat.widget.LinearLayoutCompat> + + </androidx.core.widget.NestedScrollView> + + </androidx.appcompat.widget.LinearLayoutCompat> + +</androidx.coordinatorlayout.widget.CoordinatorLayout> diff --git a/Source/Android/app/src/main/res/layout/tv_title.xml b/Source/Android/app/src/main/res/layout/tv_title.xml index 29786d47f5..ebcb9acfbf 100644 --- a/Source/Android/app/src/main/res/layout/tv_title.xml +++ b/Source/Android/app/src/main/res/layout/tv_title.xml @@ -25,7 +25,7 @@ android:id="@+id/badge" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:src="@drawable/ic_dolphin"/> + android:src="@drawable/ic_dolphin_launcher"/> </RelativeLayout> </androidx.leanback.widget.TitleView> diff --git a/Source/Android/app/src/main/res/menu/menu_game_grid.xml b/Source/Android/app/src/main/res/menu/menu_game_grid.xml index 47c551a51a..0e265097fb 100644 --- a/Source/Android/app/src/main/res/menu/menu_game_grid.xml +++ b/Source/Android/app/src/main/res/menu/menu_game_grid.xml @@ -50,6 +50,10 @@ android:id="@+id/menu_online_system_update" android:title="@string/grid_menu_online_system_update" app:showAsAction="never"/> - <group /> + + <item + android:id="@+id/menu_about" + android:title="@string/grid_menu_about" + app:showAsAction="never"/> </menu> diff --git a/Source/Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/Source/Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 202cd6f5ee..fefddc12df 100644 --- a/Source/Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/Source/Android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android"> <background android:drawable="@color/ic_launcher_background"/> - <foreground android:drawable="@drawable/ic_dolphin"/> + <foreground android:drawable="@drawable/ic_dolphin_launcher"/> <monochrome android:drawable="@drawable/ic_dolphin_silhouette"/> </adaptive-icon>
\ No newline at end of file diff --git a/Source/Android/app/src/main/res/values-notouch/bools.xml b/Source/Android/app/src/main/res/values-notouch/bools.xml new file mode 100644 index 0000000000..c0b732c323 --- /dev/null +++ b/Source/Android/app/src/main/res/values-notouch/bools.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <bool name="hasTouch">false</bool> +</resources> diff --git a/Source/Android/app/src/main/res/values/bools.xml b/Source/Android/app/src/main/res/values/bools.xml new file mode 100644 index 0000000000..758a374559 --- /dev/null +++ b/Source/Android/app/src/main/res/values/bools.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <bool name="hasTouch">true</bool> +</resources> diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 7d99d030f0..6e45236228 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -461,6 +461,7 @@ <string name="grid_menu_load_wii_system_menu">Load Wii System Menu</string> <string name="grid_menu_load_wii_system_menu_installed">Load Wii System Menu (%s)</string> <string name="grid_menu_load_vwii_system_menu_installed">Load vWii System Menu (%s)</string> + <string name="grid_menu_about">About</string> <string name="import_in_progress">Importing…</string> <string name="export_in_progress">Exporting…</string> <string name="do_not_close_app">Do not close the app!</string> @@ -858,4 +859,16 @@ It can efficiently compress both junk data and encrypted Wii data. <string name="compression_lzma2">LZMA2 (slow)</string> <string name="compression_zstandard">Zstandard (recommended)</string> + <!-- About dialog --> + <string name="about_dolphin">Dolphin</string> + <string name="wark">WARK WARK WARK</string> + <string name="about_dolphin_image">Dolphin logo</string> + <string name="about_branch">Branch:\n%s</string> + <string name="about_revision">Revision:\n%s</string> + <string name="about_dolphin_description">Dolphin is a free and open-source GameCube and Wii emulator.\n\nThis software should not be used to play games you do not legally own.</string> + <string name="about_website"><a href="https://dolphin-emu.org/">Website</a></string> + <string name="about_github"><a href="https://github.com/dolphin-emu/dolphin">GitHub</a></string> + <string name="about_support"><a href="https://forums.dolphin-emu.org/">Support</a></string> + <string name="about_copyright_warning">\u00A9 2003–2015+ Dolphin Team. \u201cGameCube\u201d and \u201cWii\u201d are trademarks of Nintendo. Dolphin is not affiliated with Nintendo in any way.</string> + </resources> diff --git a/Source/Android/app/src/main/res/values/themes.xml b/Source/Android/app/src/main/res/values/themes.xml index 3a361c693c..e2e24397b9 100644 --- a/Source/Android/app/src/main/res/values/themes.xml +++ b/Source/Android/app/src/main/res/values/themes.xml @@ -2,13 +2,13 @@ <resources xmlns:tools="http://schemas.android.com/tools"> <style name="Theme.Dolphin.Splash.Main" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/dolphin_surface</item> - <item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin</item> + <item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin_launcher</item> <item name="postSplashScreenTheme">@style/Theme.Dolphin.Main</item> </style> <style name="Theme.Dolphin.Splash.TV" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/dolphin_surface</item> - <item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin</item> + <item name="windowSplashScreenAnimatedIcon">@drawable/ic_dolphin_launcher</item> <item name="postSplashScreenTheme">@style/Theme.Dolphin.TV</item> </style> |
