Merge pull request #7522 from mahdihijazi/updates
Android: Bunch of cleanups & Updates
This commit is contained in:
commit
2c2910c129
|
@ -80,6 +80,7 @@ ext {
|
|||
|
||||
dependencies {
|
||||
implementation "com.android.support:support-v13:$androidSupportVersion"
|
||||
implementation "com.android.support:exifinterface:$androidSupportVersion"
|
||||
implementation "com.android.support:cardview-v7:$androidSupportVersion"
|
||||
implementation "com.android.support:recyclerview-v7:$androidSupportVersion"
|
||||
implementation "com.android.support:design:$androidSupportVersion"
|
||||
|
@ -91,14 +92,9 @@ dependencies {
|
|||
// For REST calls
|
||||
implementation 'com.android.volley:volley:1.1.0'
|
||||
|
||||
// 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.5.2'
|
||||
implementation 'com.squareup.picasso:picasso:2.71828'
|
||||
|
||||
// Allows FRP-style asynchronous operations in Android.
|
||||
implementation 'io.reactivex:rxandroid:1.2.1'
|
||||
implementation 'com.nononsenseapps:filepicker:4.1.0'
|
||||
}
|
||||
|
||||
|
|
|
@ -183,11 +183,7 @@ public final class EmulationActivity extends AppCompatActivity
|
|||
launcher.putExtra(EXTRA_SELECTED_GAMES, scanForSecondDisc(gameFile));
|
||||
launcher.putExtra(EXTRA_SELECTED_TITLE, gameFile.getTitle());
|
||||
launcher.putExtra(EXTRA_PLATFORM, gameFile.getPlatform());
|
||||
Bundle options = new Bundle();
|
||||
|
||||
// I believe this warning is a bug. Activities are FragmentActivity from the support lib
|
||||
//noinspection RestrictedApi
|
||||
activity.startActivityForResult(launcher, MainPresenter.REQUEST_EMULATE_GAME, options);
|
||||
activity.startActivityForResult(launcher, MainPresenter.REQUEST_EMULATE_GAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
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.with(imageGameScreen.getContext())
|
||||
.load(getArguments().getString(gameFile.getScreenshotPath()))
|
||||
.fit()
|
||||
.centerCrop()
|
||||
.noFade()
|
||||
.noPlaceholder()
|
||||
.into(imageGameScreen);
|
||||
|
||||
circleBanner.setImageResource(R.drawable.no_banner);
|
||||
|
||||
builder.setView(contents);
|
||||
return builder.create();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
package org.dolphinemu.dolphinemu.utils;
|
||||
|
||||
public interface Action1<T>
|
||||
{
|
||||
void call(T t);
|
||||
}
|
|
@ -6,8 +6,6 @@ import android.content.Intent;
|
|||
|
||||
import org.dolphinemu.dolphinemu.utils.DirectoryInitialization.DirectoryInitializationState;
|
||||
|
||||
import rx.functions.Action1;
|
||||
|
||||
public class DirectoryStateReceiver extends BroadcastReceiver
|
||||
{
|
||||
Action1<DirectoryInitializationState> callback;
|
||||
|
|
|
@ -19,7 +19,7 @@ public class PicassoUtils
|
|||
File cover = new File(gameFile.getCustomCoverPath());
|
||||
if (cover.exists())
|
||||
{
|
||||
Picasso.with(imageView.getContext())
|
||||
Picasso.get()
|
||||
.load(cover)
|
||||
.noFade()
|
||||
.noPlaceholder()
|
||||
|
@ -31,7 +31,7 @@ public class PicassoUtils
|
|||
}
|
||||
else if ((cover = new File(gameFile.getCoverPath())).exists())
|
||||
{
|
||||
Picasso.with(imageView.getContext())
|
||||
Picasso.get()
|
||||
.load(cover)
|
||||
.noFade()
|
||||
.noPlaceholder()
|
||||
|
@ -47,7 +47,7 @@ public class PicassoUtils
|
|||
*/
|
||||
else
|
||||
{
|
||||
Picasso.with(imageView.getContext())
|
||||
Picasso.get()
|
||||
.load(CoverHelper.buildGameTDBUrl(gameFile, CoverHelper.getRegion(gameFile)))
|
||||
.noFade()
|
||||
.noPlaceholder()
|
||||
|
@ -65,9 +65,9 @@ public class PicassoUtils
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onError() // Second pass using US region
|
||||
public void onError(Exception ex) // Second pass using US region
|
||||
{
|
||||
Picasso.with(imageView.getContext())
|
||||
Picasso.get()
|
||||
.load(CoverHelper.buildGameTDBUrl(gameFile, "US"))
|
||||
.fit()
|
||||
.noFade()
|
||||
|
@ -87,9 +87,9 @@ public class PicassoUtils
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onError() // Third and last pass using EN region
|
||||
public void onError(Exception ex) // Third and last pass using EN region
|
||||
{
|
||||
Picasso.with(imageView.getContext())
|
||||
Picasso.get()
|
||||
.load(CoverHelper.buildGameTDBUrl(gameFile, "EN"))
|
||||
.fit()
|
||||
.noFade()
|
||||
|
@ -110,7 +110,7 @@ public class PicassoUtils
|
|||
}
|
||||
|
||||
@Override
|
||||
public void onError()
|
||||
public void onError(Exception ex)
|
||||
{
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
<?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>
|
|
@ -12,4 +12,3 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryErro
|
|||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
android.useDeprecatedNdk=true
|
Loading…
Reference in New Issue