diff options
| author | JosJuice <josjuice@gmail.com> | 2019-06-15 18:37:48 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2019-11-23 17:35:19 +0100 |
| commit | 870912722ed515e4ead17aee3aa7635abfb4f192 (patch) | |
| tree | 9bb34dd8e819bfb703453c96f19703ebadd80806 /Source/Android | |
| parent | 4305a9ac57a4bee1e0be0c54b9df2cda385b114a (diff) | |
Revert "Android: Remove dead code and related lib <circleimageview>"
This reverts commit 593b69728d7e7813a3e3bbd1bfea2f2f56f3a38e.
Diffstat (limited to 'Source/Android')
3 files changed, 216 insertions, 0 deletions
diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index 2cde9e0676..aa675a97b8 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -89,6 +89,9 @@ dependencies { // For REST calls implementation 'com.android.volley:volley:1.1.1' + // For showing the banner as a circle a-la Material Design Guidelines + implementation 'de.hdodenhof:circleimageview:2.1.0' + // For loading huge screenshots from the disk. implementation 'com.squareup.picasso:picasso:2.71828' diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java new file mode 100644 index 0000000000..be254a4b7c --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java @@ -0,0 +1,83 @@ +package org.dolphinemu.dolphinemu.dialogs; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.v4.app.DialogFragment; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.squareup.picasso.Picasso; + +import org.dolphinemu.dolphinemu.R; +import org.dolphinemu.dolphinemu.activities.EmulationActivity; +import org.dolphinemu.dolphinemu.model.GameFile; +import org.dolphinemu.dolphinemu.services.GameFileCacheService; + +import de.hdodenhof.circleimageview.CircleImageView; + +public final class GameDetailsDialog extends DialogFragment +{ + private static final String ARG_GAME_PATH = "game_path"; + + public static GameDetailsDialog newInstance(String gamePath) + { + GameDetailsDialog fragment = new GameDetailsDialog(); + + Bundle arguments = new Bundle(); + arguments.putString(ARG_GAME_PATH, gamePath); + fragment.setArguments(arguments); + + return fragment; + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) + { + GameFile gameFile = GameFileCacheService.addOrGet(getArguments().getString(ARG_GAME_PATH)); + + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + ViewGroup contents = (ViewGroup) getActivity().getLayoutInflater() + .inflate(R.layout.dialog_game_details, null); + + final ImageView imageGameScreen = contents.findViewById(R.id.image_game_screen); + CircleImageView circleBanner = contents.findViewById(R.id.circle_banner); + + TextView textTitle = contents.findViewById(R.id.text_game_title); + TextView textDescription = contents.findViewById(R.id.text_description); + + TextView textCountry = contents.findViewById(R.id.text_country); + TextView textCompany = contents.findViewById(R.id.text_company); + + FloatingActionButton buttonLaunch = contents.findViewById(R.id.button_launch); + + String country = getResources().getStringArray(R.array.countryNames)[gameFile.getCountry()]; + + textTitle.setText(gameFile.getTitle()); + textDescription.setText(gameFile.getDescription()); + textCountry.setText(country); + textCompany.setText(gameFile.getCompany()); + + buttonLaunch.setOnClickListener(view -> + { + // Start the emulation activity and send the path of the clicked ROM to it. + EmulationActivity.launch(getActivity(), gameFile); + }); + + // Fill in the view contents. + Picasso.get() + .load(getArguments().getString(gameFile.getScreenshotPath())) + .fit() + .centerCrop() + .noFade() + .noPlaceholder() + .into(imageGameScreen); + + circleBanner.setImageResource(R.drawable.no_banner); + + builder.setView(contents); + return builder.create(); + } +} diff --git a/Source/Android/app/src/main/res/layout/dialog_game_details.xml b/Source/Android/app/src/main/res/layout/dialog_game_details.xml new file mode 100644 index 0000000000..61cc212f55 --- /dev/null +++ b/Source/Android/app/src/main/res/layout/dialog_game_details.xml @@ -0,0 +1,130 @@ +<?xml version="1.0" encoding="utf-8"?> +<FrameLayout 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_height="match_parent" + android:layout_width="match_parent" + android:transitionName="card_game"> + + <RelativeLayout + android:layout_width="480dp" + android:layout_height="match_parent"> + + <de.hdodenhof.circleimageview.CircleImageView + android:id="@+id/circle_banner" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_below="@+id/image_game_screen" + android:layout_marginLeft="16dp" + android:layout_marginTop="24dp" + tools:src="@drawable/placeholder_banner" + app:civ_border_color="?android:colorAccent" + app:civ_border_width="2dp"/> + + <ImageView + android:id="@+id/image_game_screen" + android:layout_width="match_parent" + android:layout_height="320dp" + android:layout_alignParentEnd="true" + android:layout_alignParentLeft="true" + android:layout_alignParentRight="true" + android:layout_alignParentStart="true" + android:layout_alignParentTop="true" + android:transitionName="image_game_screen" + tools:scaleType="centerCrop" + tools:src="@drawable/placeholder_screenshot"/> + + <TextView + android:id="@+id/text_game_title" + style="@android:style/TextAppearance.Material.Headline" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentEnd="true" + android:layout_below="@+id/image_game_screen" + android:layout_marginLeft="36dp" + android:layout_marginRight="36dp" + android:layout_marginTop="24dp" + android:layout_toEndOf="@+id/circle_banner" + android:ellipsize="end" + tools:text="Rhythm Heaven Fever"/> + + <TextView + android:id="@+id/text_description" + style="@android:style/TextAppearance.Material.Caption" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignEnd="@+id/text_game_title" + android:layout_alignStart="@+id/text_game_title" + android:layout_below="@+id/text_game_title" + android:layout_marginTop="8dp" + tools:text="Zany rhythm action!"/> + + <View + android:id="@+id/divider" + android:layout_width="0dp" + android:layout_height="1dp" + android:layout_alignParentLeft="true" + android:layout_alignParentRight="true" + android:layout_below="@+id/text_description" + android:layout_marginTop="16dp" + android:background="#1F000000"/> + + <ImageView + android:id="@+id/icon_country" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_alignStart="@+id/circle_banner" + android:layout_alignTop="@+id/divider" + android:layout_marginTop="24dp" + android:padding="6dp" + android:src="@drawable/ic_country"/> + + <ImageView + android:id="@+id/icon_company" + android:layout_width="48dp" + android:layout_height="48dp" + android:layout_alignStart="@+id/icon_country" + android:layout_below="@+id/icon_country" + android:layout_marginTop="16dp" + android:padding="6dp" + android:src="@drawable/ic_company" + android:layout_marginBottom="16dp"/> + + <TextView + android:id="@+id/text_country" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/icon_country" + android:layout_alignStart="@+id/text_description" + android:layout_alignTop="@+id/icon_country" + android:gravity="center_vertical" + tools:text="United States"/> + + <TextView + android:id="@+id/text_company" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignBottom="@+id/icon_company" + android:layout_alignStart="@+id/text_country" + android:layout_alignTop="@+id/icon_company" + android:gravity="center_vertical" + tools:text="Nintendo"/> + + <android.support.design.widget.FloatingActionButton + android:id="@+id/button_launch" + android:layout_width="56dp" + android:layout_height="56dp" + android:layout_alignBottom="@+id/image_game_screen" + android:layout_alignEnd="@+id/text_game_title" + android:layout_marginBottom="-28dp" + android:src="@drawable/ic_play" + android:stateListAnimator="@animator/button_elevation" + app:rippleColor="?android:colorPrimaryDark" + app:borderWidth="0dp" + app:elevation="6dp" + app:pressedTranslationZ="12dp"/> + + </RelativeLayout> + +</FrameLayout> |
