summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2019-06-15 18:37:48 +0200
committerJosJuice <josjuice@gmail.com>2019-11-23 17:35:19 +0100
commit870912722ed515e4ead17aee3aa7635abfb4f192 (patch)
tree9bb34dd8e819bfb703453c96f19703ebadd80806 /Source/Android
parent4305a9ac57a4bee1e0be0c54b9df2cda385b114a (diff)
Revert "Android: Remove dead code and related lib <circleimageview>"
This reverts commit 593b69728d7e7813a3e3bbd1bfea2f2f56f3a38e.
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/build.gradle3
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.java83
-rw-r--r--Source/Android/app/src/main/res/layout/dialog_game_details.xml130
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>