Merge pull request #6085 from hackbar/cleanup
Minor Android UI code cleanups
This commit is contained in:
commit
187d443a36
|
@ -41,6 +41,7 @@ import org.dolphinemu.dolphinemu.fragments.LoadStateFragment;
|
||||||
import org.dolphinemu.dolphinemu.fragments.MenuFragment;
|
import org.dolphinemu.dolphinemu.fragments.MenuFragment;
|
||||||
import org.dolphinemu.dolphinemu.fragments.SaveStateFragment;
|
import org.dolphinemu.dolphinemu.fragments.SaveStateFragment;
|
||||||
import org.dolphinemu.dolphinemu.ui.main.MainPresenter;
|
import org.dolphinemu.dolphinemu.ui.main.MainPresenter;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.utils.Animations;
|
import org.dolphinemu.dolphinemu.utils.Animations;
|
||||||
import org.dolphinemu.dolphinemu.utils.Java_GCAdapter;
|
import org.dolphinemu.dolphinemu.utils.Java_GCAdapter;
|
||||||
import org.dolphinemu.dolphinemu.utils.Java_WiimoteAdapter;
|
import org.dolphinemu.dolphinemu.utils.Java_WiimoteAdapter;
|
||||||
|
@ -298,7 +299,7 @@ public final class EmulationActivity extends AppCompatActivity
|
||||||
|
|
||||||
mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
mPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
|
||||||
mIsGameCubeGame = (NativeLibrary.GetPlatform(path) == 0);
|
mIsGameCubeGame = Platform.fromNativeInt(NativeLibrary.GetPlatform(path)) == Platform.GAMECUBE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package org.dolphinemu.dolphinemu.adapters;
|
package org.dolphinemu.dolphinemu.adapters;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.v17.leanback.widget.ImageCardView;
|
import android.support.v17.leanback.widget.ImageCardView;
|
||||||
import android.support.v17.leanback.widget.Presenter;
|
import android.support.v17.leanback.widget.Presenter;
|
||||||
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
@ -16,18 +19,11 @@ import org.dolphinemu.dolphinemu.viewholders.TvGameViewHolder;
|
||||||
*/
|
*/
|
||||||
public final class GameRowPresenter extends Presenter
|
public final class GameRowPresenter extends Presenter
|
||||||
{
|
{
|
||||||
|
@Override
|
||||||
public ViewHolder onCreateViewHolder(ViewGroup parent)
|
public ViewHolder onCreateViewHolder(ViewGroup parent)
|
||||||
{
|
{
|
||||||
// Create a new view.
|
// Create a new view.
|
||||||
ImageCardView gameCard = new ImageCardView(parent.getContext())
|
ImageCardView gameCard = new ImageCardView(parent.getContext());
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void setSelected(boolean selected)
|
|
||||||
{
|
|
||||||
setCardBackground(this, selected);
|
|
||||||
super.setSelected(selected);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
gameCard.setMainImageAdjustViewBounds(true);
|
gameCard.setMainImageAdjustViewBounds(true);
|
||||||
gameCard.setMainImageDimensions(480, 320);
|
gameCard.setMainImageDimensions(480, 320);
|
||||||
|
@ -36,12 +32,11 @@ public final class GameRowPresenter extends Presenter
|
||||||
gameCard.setFocusable(true);
|
gameCard.setFocusable(true);
|
||||||
gameCard.setFocusableInTouchMode(true);
|
gameCard.setFocusableInTouchMode(true);
|
||||||
|
|
||||||
setCardBackground(gameCard, false);
|
|
||||||
|
|
||||||
// Use that view to create a ViewHolder.
|
// Use that view to create a ViewHolder.
|
||||||
return new TvGameViewHolder(gameCard);
|
return new TvGameViewHolder(gameCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onBindViewHolder(ViewHolder viewHolder, Object item)
|
public void onBindViewHolder(ViewHolder viewHolder, Object item)
|
||||||
{
|
{
|
||||||
TvGameViewHolder holder = (TvGameViewHolder) viewHolder;
|
TvGameViewHolder holder = (TvGameViewHolder) viewHolder;
|
||||||
|
@ -64,45 +59,30 @@ public final class GameRowPresenter extends Presenter
|
||||||
holder.company = game.getCompany();
|
holder.company = game.getCompany();
|
||||||
holder.screenshotPath = game.getScreenshotPath();
|
holder.screenshotPath = game.getScreenshotPath();
|
||||||
|
|
||||||
|
// Set the platform-dependent background color of the card
|
||||||
|
int backgroundId;
|
||||||
switch (game.getPlatform())
|
switch (game.getPlatform())
|
||||||
{
|
{
|
||||||
case Game.PLATFORM_GC:
|
case GAMECUBE:
|
||||||
holder.cardParent.setTag(R.color.dolphin_accent_gamecube);
|
backgroundId = R.drawable.tv_card_background_gamecube;
|
||||||
break;
|
break;
|
||||||
|
case WII:
|
||||||
case Game.PLATFORM_WII:
|
backgroundId = R.drawable.tv_card_background_wii;
|
||||||
holder.cardParent.setTag(R.color.dolphin_accent_wii);
|
|
||||||
break;
|
break;
|
||||||
|
case WIIWARE:
|
||||||
case Game.PLATFORM_WII_WARE:
|
backgroundId = R.drawable.tv_card_background_wiiware;
|
||||||
holder.cardParent.setTag(R.color.dolphin_accent_wiiware);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
holder.cardParent.setTag(android.R.color.holo_red_dark);
|
throw new AssertionError("Not reachable.");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
Context context = holder.cardParent.getContext();
|
||||||
|
Drawable background = ContextCompat.getDrawable(context, backgroundId);
|
||||||
|
holder.cardParent.setInfoAreaBackground(background);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void onUnbindViewHolder(ViewHolder viewHolder)
|
public void onUnbindViewHolder(ViewHolder viewHolder)
|
||||||
{
|
{
|
||||||
// no op
|
// no op
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCardBackground(ImageCardView view, boolean selected)
|
|
||||||
{
|
|
||||||
int backgroundColor;
|
|
||||||
|
|
||||||
if (selected)
|
|
||||||
{
|
|
||||||
// TODO: 7/20/15 Try using view tag to set color
|
|
||||||
backgroundColor = (int) view.getTag();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
backgroundColor = R.color.tv_card_unselected;
|
|
||||||
}
|
|
||||||
|
|
||||||
view.setInfoAreaBackgroundColor(view.getResources().getColor(backgroundColor));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import android.text.SpannableString;
|
||||||
import android.text.style.ImageSpan;
|
import android.text.style.ImageSpan;
|
||||||
|
|
||||||
import org.dolphinemu.dolphinemu.R;
|
import org.dolphinemu.dolphinemu.R;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesFragment;
|
import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesFragment;
|
||||||
|
|
||||||
public class PlatformPagerAdapter extends FragmentPagerAdapter
|
public class PlatformPagerAdapter extends FragmentPagerAdapter
|
||||||
|
@ -32,7 +33,7 @@ public class PlatformPagerAdapter extends FragmentPagerAdapter
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position)
|
public Fragment getItem(int position)
|
||||||
{
|
{
|
||||||
return PlatformGamesFragment.newInstance(position);
|
return PlatformGamesFragment.newInstance(Platform.fromPosition(position));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -4,13 +4,10 @@ import android.content.ContentValues;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
|
|
||||||
public final class Game
|
public final class Game
|
||||||
{
|
{
|
||||||
public static final int PLATFORM_GC = 0;
|
|
||||||
public static final int PLATFORM_WII = 1;
|
|
||||||
public static final int PLATFORM_WII_WARE = 2;
|
|
||||||
public static final int PLATFORM_ALL = 3;
|
|
||||||
|
|
||||||
// Copied from IVolume::ECountry. Update these if that is ever modified.
|
// Copied from IVolume::ECountry. Update these if that is ever modified.
|
||||||
public static final int COUNTRY_EUROPE = 0;
|
public static final int COUNTRY_EUROPE = 0;
|
||||||
public static final int COUNTRY_JAPAN = 1;
|
public static final int COUNTRY_JAPAN = 1;
|
||||||
|
@ -36,10 +33,10 @@ public final class Game
|
||||||
private String mScreenshotPath;
|
private String mScreenshotPath;
|
||||||
private String mCompany;
|
private String mCompany;
|
||||||
|
|
||||||
private int mPlatform;
|
private Platform mPlatform;
|
||||||
private int mCountry;
|
private int mCountry;
|
||||||
|
|
||||||
public Game(int platform, String title, String description, int country, String path, String gameId, String company, String screenshotPath)
|
public Game(Platform platform, String title, String description, int country, String path, String gameId, String company, String screenshotPath)
|
||||||
{
|
{
|
||||||
mPlatform = platform;
|
mPlatform = platform;
|
||||||
mTitle = title;
|
mTitle = title;
|
||||||
|
@ -51,7 +48,7 @@ public final class Game
|
||||||
mScreenshotPath = screenshotPath;
|
mScreenshotPath = screenshotPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPlatform()
|
public Platform getPlatform()
|
||||||
{
|
{
|
||||||
return mPlatform;
|
return mPlatform;
|
||||||
}
|
}
|
||||||
|
@ -91,13 +88,13 @@ public final class Game
|
||||||
return mScreenshotPath;
|
return mScreenshotPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ContentValues asContentValues(int platform, String title, String description, int country, String path, String gameId, String company)
|
public static ContentValues asContentValues(Platform platform, String title, String description, int country, String path, String gameId, String company)
|
||||||
{
|
{
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
|
|
||||||
String screenPath = PATH_SCREENSHOT_FOLDER + gameId + "/" + gameId + "-1.png";
|
String screenPath = PATH_SCREENSHOT_FOLDER + gameId + "/" + gameId + "-1.png";
|
||||||
|
|
||||||
values.put(GameDatabase.KEY_GAME_PLATFORM, platform);
|
values.put(GameDatabase.KEY_GAME_PLATFORM, platform.toInt());
|
||||||
values.put(GameDatabase.KEY_GAME_TITLE, title);
|
values.put(GameDatabase.KEY_GAME_TITLE, title);
|
||||||
values.put(GameDatabase.KEY_GAME_DESCRIPTION, description);
|
values.put(GameDatabase.KEY_GAME_DESCRIPTION, description);
|
||||||
values.put(GameDatabase.KEY_GAME_COUNTRY, company);
|
values.put(GameDatabase.KEY_GAME_COUNTRY, company);
|
||||||
|
@ -111,7 +108,7 @@ public final class Game
|
||||||
|
|
||||||
public static Game fromCursor(Cursor cursor)
|
public static Game fromCursor(Cursor cursor)
|
||||||
{
|
{
|
||||||
return new Game(cursor.getInt(GameDatabase.GAME_COLUMN_PLATFORM),
|
return new Game(Platform.fromInt(cursor.getInt(GameDatabase.GAME_COLUMN_PLATFORM)),
|
||||||
cursor.getString(GameDatabase.GAME_COLUMN_TITLE),
|
cursor.getString(GameDatabase.GAME_COLUMN_TITLE),
|
||||||
cursor.getString(GameDatabase.GAME_COLUMN_DESCRIPTION),
|
cursor.getString(GameDatabase.GAME_COLUMN_DESCRIPTION),
|
||||||
cursor.getInt(GameDatabase.GAME_COLUMN_COUNTRY),
|
cursor.getInt(GameDatabase.GAME_COLUMN_COUNTRY),
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.database.sqlite.SQLiteDatabase;
|
||||||
import android.database.sqlite.SQLiteOpenHelper;
|
import android.database.sqlite.SQLiteOpenHelper;
|
||||||
|
|
||||||
import org.dolphinemu.dolphinemu.NativeLibrary;
|
import org.dolphinemu.dolphinemu.NativeLibrary;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.utils.Log;
|
import org.dolphinemu.dolphinemu.utils.Log;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -200,12 +201,7 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
gameId = filePath.substring(filePath.lastIndexOf("/") + 1, filePath.lastIndexOf("."));
|
gameId = filePath.substring(filePath.lastIndexOf("/") + 1, filePath.lastIndexOf("."));
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the game's platform field is empty, file under Wiiware. // TODO Something less dum
|
Platform platform = Platform.fromNativeInt(NativeLibrary.GetPlatform(filePath));
|
||||||
int platform = NativeLibrary.GetPlatform(filePath);
|
|
||||||
if (platform == -1)
|
|
||||||
{
|
|
||||||
platform = Game.PLATFORM_WII_WARE;
|
|
||||||
}
|
|
||||||
|
|
||||||
ContentValues game = Game.asContentValues(platform,
|
ContentValues game = Game.asContentValues(platform,
|
||||||
name,
|
name,
|
||||||
|
@ -257,31 +253,22 @@ public final class GameDatabase extends SQLiteOpenHelper
|
||||||
database.close();
|
database.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Observable<Cursor> getGamesForPlatform(final int platform)
|
public Observable<Cursor> getGamesForPlatform(final Platform platform)
|
||||||
{
|
{
|
||||||
return Observable.create(new Observable.OnSubscribe<Cursor>()
|
return Observable.create(new Observable.OnSubscribe<Cursor>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public void call(Subscriber<? super Cursor> subscriber)
|
public void call(Subscriber<? super Cursor> subscriber)
|
||||||
{
|
{
|
||||||
Log.info("[GameDatabase] [GameDatabase] Reading games list...");
|
Log.info("[GameDatabase] Reading games list...");
|
||||||
|
|
||||||
String whereClause = null;
|
String[] whereArgs = new String[]{Integer.toString(platform.toInt())};
|
||||||
String[] whereArgs = null;
|
|
||||||
|
|
||||||
// If -1 passed in, return all games. Else, return games for one platform only.
|
|
||||||
if (platform >= 0)
|
|
||||||
{
|
|
||||||
whereClause = KEY_GAME_PLATFORM + " = ?";
|
|
||||||
whereArgs = new String[]{Integer.toString(platform)};
|
|
||||||
}
|
|
||||||
|
|
||||||
SQLiteDatabase database = getReadableDatabase();
|
SQLiteDatabase database = getReadableDatabase();
|
||||||
|
|
||||||
Cursor resultCursor = database.query(
|
Cursor resultCursor = database.query(
|
||||||
TABLE_NAME_GAMES,
|
TABLE_NAME_GAMES,
|
||||||
null,
|
null,
|
||||||
whereClause,
|
KEY_GAME_PLATFORM + " = ?",
|
||||||
whereArgs,
|
whereArgs,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
|
|
|
@ -20,6 +20,7 @@ import org.dolphinemu.dolphinemu.R;
|
||||||
import org.dolphinemu.dolphinemu.activities.AddDirectoryActivity;
|
import org.dolphinemu.dolphinemu.activities.AddDirectoryActivity;
|
||||||
import org.dolphinemu.dolphinemu.adapters.PlatformPagerAdapter;
|
import org.dolphinemu.dolphinemu.adapters.PlatformPagerAdapter;
|
||||||
import org.dolphinemu.dolphinemu.model.GameProvider;
|
import org.dolphinemu.dolphinemu.model.GameProvider;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesView;
|
import org.dolphinemu.dolphinemu.ui.platform.PlatformGamesView;
|
||||||
import org.dolphinemu.dolphinemu.ui.settings.SettingsActivity;
|
import org.dolphinemu.dolphinemu.ui.settings.SettingsActivity;
|
||||||
import org.dolphinemu.dolphinemu.utils.PermissionsHandler;
|
import org.dolphinemu.dolphinemu.utils.PermissionsHandler;
|
||||||
|
@ -114,7 +115,8 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
||||||
public void refreshFragmentScreenshot(int fragmentPosition)
|
public void refreshFragmentScreenshot(int fragmentPosition)
|
||||||
{
|
{
|
||||||
// Invalidate Picasso image so that the new screenshot is animated in.
|
// Invalidate Picasso image so that the new screenshot is animated in.
|
||||||
PlatformGamesView fragment = getPlatformGamesView(mViewPager.getCurrentItem());
|
Platform platform = Platform.fromPosition(mViewPager.getCurrentItem());
|
||||||
|
PlatformGamesView fragment = getPlatformGamesView(platform);
|
||||||
|
|
||||||
if (fragment != null)
|
if (fragment != null)
|
||||||
{
|
{
|
||||||
|
@ -135,7 +137,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showGames(int platformIndex, Cursor games)
|
public void showGames(Platform platform, Cursor games)
|
||||||
{
|
{
|
||||||
// no-op. Handled by PlatformGamesFragment.
|
// no-op. Handled by PlatformGamesFragment.
|
||||||
}
|
}
|
||||||
|
@ -189,7 +191,9 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
||||||
|
|
||||||
private void refreshFragment()
|
private void refreshFragment()
|
||||||
{
|
{
|
||||||
PlatformGamesView fragment = getPlatformGamesView(mViewPager.getCurrentItem());
|
|
||||||
|
Platform platform = Platform.fromPosition(mViewPager.getCurrentItem());
|
||||||
|
PlatformGamesView fragment = getPlatformGamesView(platform);
|
||||||
if (fragment != null)
|
if (fragment != null)
|
||||||
{
|
{
|
||||||
fragment.refresh();
|
fragment.refresh();
|
||||||
|
@ -197,7 +201,7 @@ public final class MainActivity extends AppCompatActivity implements MainView
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private PlatformGamesView getPlatformGamesView(int platform)
|
private PlatformGamesView getPlatformGamesView(Platform platform)
|
||||||
{
|
{
|
||||||
String fragmentTag = "android:switcher:" + mViewPager.getId() + ":" + platform;
|
String fragmentTag = "android:switcher:" + mViewPager.getId() + ":" + platform;
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,12 @@ package org.dolphinemu.dolphinemu.ui.main;
|
||||||
|
|
||||||
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
|
||||||
import org.dolphinemu.dolphinemu.BuildConfig;
|
import org.dolphinemu.dolphinemu.BuildConfig;
|
||||||
import org.dolphinemu.dolphinemu.DolphinApplication;
|
import org.dolphinemu.dolphinemu.DolphinApplication;
|
||||||
import org.dolphinemu.dolphinemu.R;
|
import org.dolphinemu.dolphinemu.R;
|
||||||
import org.dolphinemu.dolphinemu.model.GameDatabase;
|
import org.dolphinemu.dolphinemu.model.GameDatabase;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.utils.SettingsFile;
|
import org.dolphinemu.dolphinemu.utils.SettingsFile;
|
||||||
|
|
||||||
import rx.android.schedulers.AndroidSchedulers;
|
import rx.android.schedulers.AndroidSchedulers;
|
||||||
|
@ -87,11 +89,11 @@ public final class MainPresenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadGames(final int platformIndex)
|
public void loadGames(final Platform platform)
|
||||||
{
|
{
|
||||||
GameDatabase databaseHelper = DolphinApplication.databaseHelper;
|
GameDatabase databaseHelper = DolphinApplication.databaseHelper;
|
||||||
|
|
||||||
databaseHelper.getGamesForPlatform(platformIndex)
|
databaseHelper.getGamesForPlatform(platform)
|
||||||
.subscribeOn(Schedulers.io())
|
.subscribeOn(Schedulers.io())
|
||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.subscribe(new Action1<Cursor>()
|
.subscribe(new Action1<Cursor>()
|
||||||
|
@ -99,7 +101,7 @@ public final class MainPresenter
|
||||||
@Override
|
@Override
|
||||||
public void call(Cursor games)
|
public void call(Cursor games)
|
||||||
{
|
{
|
||||||
mView.showGames(platformIndex, games);
|
mView.showGames(platform, games);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -2,6 +2,8 @@ package org.dolphinemu.dolphinemu.ui.main;
|
||||||
|
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
|
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstraction for the screen that shows on application launch.
|
* Abstraction for the screen that shows on application launch.
|
||||||
* Implementations will differ primarily to target touch-screen
|
* Implementations will differ primarily to target touch-screen
|
||||||
|
@ -39,8 +41,8 @@ public interface MainView
|
||||||
* To be called when an asynchronous database read completes. Passes the
|
* To be called when an asynchronous database read completes. Passes the
|
||||||
* result, in this case a {@link Cursor} to the view.
|
* result, in this case a {@link Cursor} to the view.
|
||||||
*
|
*
|
||||||
* @param platformIndex Which platform contains these games.
|
* @param platform Which platform to show games for.
|
||||||
* @param games A Cursor containing the games read from the database.
|
* @param games A Cursor containing the games read from the database.
|
||||||
*/
|
*/
|
||||||
void showGames(int platformIndex, Cursor games);
|
void showGames(Platform platform, Cursor games);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.dolphinemu.dolphinemu.adapters.GameRowPresenter;
|
||||||
import org.dolphinemu.dolphinemu.adapters.SettingsRowPresenter;
|
import org.dolphinemu.dolphinemu.adapters.SettingsRowPresenter;
|
||||||
import org.dolphinemu.dolphinemu.model.Game;
|
import org.dolphinemu.dolphinemu.model.Game;
|
||||||
import org.dolphinemu.dolphinemu.model.TvSettingsItem;
|
import org.dolphinemu.dolphinemu.model.TvSettingsItem;
|
||||||
|
import org.dolphinemu.dolphinemu.ui.platform.Platform;
|
||||||
import org.dolphinemu.dolphinemu.ui.settings.SettingsActivity;
|
import org.dolphinemu.dolphinemu.ui.settings.SettingsActivity;
|
||||||
import org.dolphinemu.dolphinemu.utils.PermissionsHandler;
|
import org.dolphinemu.dolphinemu.utils.PermissionsHandler;
|
||||||
import org.dolphinemu.dolphinemu.utils.StartupHandler;
|
import org.dolphinemu.dolphinemu.utils.StartupHandler;
|
||||||
|
@ -130,9 +131,9 @@ public final class TvMainActivity extends Activity implements MainView
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showGames(int platformIndex, Cursor games)
|
public void showGames(Platform platform, Cursor games)
|
||||||
{
|
{
|
||||||
ListRow row = buildGamesRow(platformIndex, games);
|
ListRow row = buildGamesRow(platform, games);
|
||||||
|
|
||||||
// Add row to the adapter only if it is not empty.
|
// Add row to the adapter only if it is not empty.
|
||||||
if (row != null)
|
if (row != null)
|
||||||
|
@ -187,13 +188,12 @@ public final class TvMainActivity extends Activity implements MainView
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadGames() {
|
private void loadGames() {
|
||||||
// For each platform
|
for (Platform platform : Platform.values()) {
|
||||||
for (int platformIndex = 0; platformIndex <= Game.PLATFORM_ALL; ++platformIndex) {
|
mPresenter.loadGames(platform);
|
||||||
mPresenter.loadGames(platformIndex);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private ListRow buildGamesRow(int platform, Cursor games)
|
private ListRow buildGamesRow(Platform platform, Cursor games)
|
||||||
{
|
{
|
||||||
// Create an adapter for this row.
|
// Create an adapter for this row.
|
||||||
CursorObjectAdapter row = new CursorObjectAdapter(new GameRowPresenter());
|
CursorObjectAdapter row = new CursorObjectAdapter(new GameRowPresenter());
|
||||||
|
@ -220,32 +220,10 @@ public final class TvMainActivity extends Activity implements MainView
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
String headerName;
|
String headerName = platform.getHeaderName();
|
||||||
switch (platform)
|
|
||||||
{
|
|
||||||
case Game.PLATFORM_GC:
|
|
||||||
headerName = "GameCube Games";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Game.PLATFORM_WII:
|
|
||||||
headerName = "Wii Games";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Game.PLATFORM_WII_WARE:
|
|
||||||
headerName = "WiiWare";
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Game.PLATFORM_ALL:
|
|
||||||
headerName = "All Games";
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
headerName = "Error";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a header for this row.
|
// Create a header for this row.
|
||||||
HeaderItem header = new HeaderItem(platform, headerName);
|
HeaderItem header = new HeaderItem(platform.toInt(), platform.getHeaderName());
|
||||||
|
|
||||||
// Create the row, passing it the filled adapter and the header, and give it to the master adapter.
|
// Create the row, passing it the filled adapter and the header, and give it to the master adapter.
|
||||||
return new ListRow(header, row);
|
return new ListRow(header, row);
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package org.dolphinemu.dolphinemu.ui.platform;
|
||||||
|
|
||||||
|
/** Enum to represent platform (eg GameCube, Wii). */
|
||||||
|
public enum Platform
|
||||||
|
{
|
||||||
|
GAMECUBE(0, "GameCube Games"),
|
||||||
|
WII(1, "Wii Games"),
|
||||||
|
WIIWARE(2, "WiiWare Games");
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
private final String headerName;
|
||||||
|
|
||||||
|
Platform(int value, String headerName)
|
||||||
|
{
|
||||||
|
this.value = value;
|
||||||
|
this.headerName = headerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Platform fromInt(int i)
|
||||||
|
{
|
||||||
|
return values()[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Platform fromNativeInt(int i)
|
||||||
|
{
|
||||||
|
// If the game's platform field is empty, file under Wiiware. // TODO Something less dum
|
||||||
|
if (i == -1) {
|
||||||
|
return Platform.WIIWARE;
|
||||||
|
}
|
||||||
|
return values()[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Platform fromPosition(int position)
|
||||||
|
{
|
||||||
|
return values()[position];
|
||||||
|
}
|
||||||
|
|
||||||
|
public int toInt()
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeaderName()
|
||||||
|
{
|
||||||
|
return headerName;
|
||||||
|
}
|
||||||
|
}
|
|
@ -22,12 +22,12 @@ public final class PlatformGamesFragment extends Fragment implements PlatformGam
|
||||||
private GameAdapter mAdapter;
|
private GameAdapter mAdapter;
|
||||||
private RecyclerView mRecyclerView;
|
private RecyclerView mRecyclerView;
|
||||||
|
|
||||||
public static PlatformGamesFragment newInstance(int platform)
|
public static PlatformGamesFragment newInstance(Platform platform)
|
||||||
{
|
{
|
||||||
PlatformGamesFragment fragment = new PlatformGamesFragment();
|
PlatformGamesFragment fragment = new PlatformGamesFragment();
|
||||||
|
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putInt(ARG_PLATFORM, platform);
|
args.putSerializable(ARG_PLATFORM, platform);
|
||||||
|
|
||||||
fragment.setArguments(args);
|
fragment.setArguments(args);
|
||||||
return fragment;
|
return fragment;
|
||||||
|
@ -38,7 +38,7 @@ public final class PlatformGamesFragment extends Fragment implements PlatformGam
|
||||||
{
|
{
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
mPresenter.onCreate(getArguments().getInt(ARG_PLATFORM));
|
mPresenter.onCreate((Platform) getArguments().getSerializable(ARG_PLATFORM));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -15,14 +15,14 @@ public final class PlatformGamesPresenter
|
||||||
{
|
{
|
||||||
private final PlatformGamesView mView;
|
private final PlatformGamesView mView;
|
||||||
|
|
||||||
private int mPlatform;
|
private Platform mPlatform;
|
||||||
|
|
||||||
public PlatformGamesPresenter(PlatformGamesView view)
|
public PlatformGamesPresenter(PlatformGamesView view)
|
||||||
{
|
{
|
||||||
mView = view;
|
mView = view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onCreate(int platform)
|
public void onCreate(Platform platform)
|
||||||
{
|
{
|
||||||
mPlatform = platform;
|
mPlatform = platform;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,6 @@ public final class TvGameViewHolder extends Presenter.ViewHolder
|
||||||
public String company;
|
public String company;
|
||||||
public String screenshotPath;
|
public String screenshotPath;
|
||||||
|
|
||||||
public int backgroundColor;
|
|
||||||
|
|
||||||
public TvGameViewHolder(View itemView)
|
public TvGameViewHolder(View itemView)
|
||||||
{
|
{
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:state_selected="true"
|
||||||
|
android:drawable="@color/dolphin_accent_gamecube" />
|
||||||
|
<item
|
||||||
|
android:drawable="@color/tv_card_unselected" />
|
||||||
|
</selector>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:state_selected="true"
|
||||||
|
android:drawable="@color/dolphin_accent_wii" />
|
||||||
|
<item
|
||||||
|
android:drawable="@color/tv_card_unselected" />
|
||||||
|
</selector>
|
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:state_selected="true"
|
||||||
|
android:drawable="@color/dolphin_accent_wiiware" />
|
||||||
|
<item
|
||||||
|
android:drawable="@color/tv_card_unselected" />
|
||||||
|
</selector>
|
Loading…
Reference in New Issue