Author Topic: Brainstorming Version 3.0  (Read 123588 times)

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #300 on: February 25, 2015, 02:15:54 PM »
So what's left before 3.0 can be pushed out the door? I have to admit I only started using the alphas fairly recently, but other than a few minor bugs it seemed like it was a finished product. Considering Paul and littleguy have both been very busy recently, and considering how much better the current alpha is compared to the final version on the Play Store, it really seems like more new features and tweaks can wait for a minor release!

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Brainstorming Version 3.0
« Reply #301 on: February 25, 2015, 02:48:30 PM »
The biggest obstacle to publishing is that we still need a 100% bombproof implementation for migrating user data from version 2 to version 3.  It should have a backup capability, and ideally a way to migrate back to 2.x for testers and users who simply don't like the new version after giving it a try.  Keep in mind that we reduce the number in the latter camp the more polished the v3 UI is on release day.  In order of priority for data migration:
 - SRAM saves (aka "in-game") saves
 - Manual (aka User) saves
 - Slot saves
 - Auto-saves

User preferences should probably be discarded going from v2 to v3 since so much has changed.  (Many preferences don't map between versions anyhow.)

The main polish to add is a new gallery screen.  The current one is just a bare-bones stand-in, and not necessarily something that the code should even evolve from.  A well-done gallery screen would allow you to bypass the Play menu and jump straight from GalleryActivity to GameActivity (though the Play menu or similar should still be available to host game-specific settings).  It would include screenshots and feature favorites or recently played games at the top. See previous posts in this thread.

Other features that could probably wait, but are still preferable to get in before publish
 - Timestamped autosaves, with the ability to retain last X number of saves, and UI for loading an older autosave
 - UI that is fully tested on non-touchscreen devices (e.g. OUYA, Android TV)
 - Make final decisions on which settings are global and which are per-game (e.g. display options)

Features that can wait for minor releases are
 - Cloud save for in-game saves, possibly other saves as well (will require careful implementation)
 - Allow custom touchscreen skins (shouldn't be too hard)
 - UI for meta info entry if ROM not found in database
 - Simpler UI for controller->player mapping
 - UI for high-res texture extraction

Those are the big ones off the top of my head.  There are also a fair number of outstanding bugs.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #302 on: February 25, 2015, 04:24:24 PM »
Hm, I could have sworn my SRAM and autosaves were imported correctly, although I did have to tell the app to look in the old Mupen64 folder rather than the new Alpha one it created for itself.

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #303 on: February 25, 2015, 04:39:37 PM »
Is Paul actually working on it, or was it just something he planned on doing? The new gallery design is perfect for the Android Cards UI, where you tap the card to go straight to auto-resume, or tap the "..." overflow menu for whatever else.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Brainstorming Version 3.0
« Reply #304 on: February 25, 2015, 04:49:29 PM »
I haven't heard from Paul lately.  If you know your way around Android UI design, especially the modern designs, then I say start a branch and take a crack at it.  I agree the cards thing sounds like a good fit.

One caveat is that we would prefer to support older devices, and don't want to make separate GUIs for different Android versions.  Currently we support all the way back to SDK 5.  If that's simply not feasible, then we should discuss and find a balance.  I hate to be held back by obsolete devices, but I also wouldn't want to lose users just for eye candy.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #305 on: February 25, 2015, 07:11:06 PM »
CardView uses "API level 7", which is still Android Eclair (albeit version 2.1 instead of 2.0). Should be trivial to roll a view subclass if needed, it's not like I haven't done that before.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Brainstorming Version 3.0
« Reply #306 on: February 25, 2015, 07:19:43 PM »
I personally wouldn't oppose bumping the requirement to SDK 7 or even 9 (the oft-requested Xperia Play device runs 9 - Gingerbread).  The overall eclair user base is very small by this point, at least in the general Android user population.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #307 on: February 25, 2015, 07:49:31 PM »
Alright, if we allow a bump to 2.1 Eclair from 2.0 using the v7 AppCompat library, that means we'd also get universal support for the ActionBar. I noticed there's a lot of isActionBarAvailable code branches in there right now.

Offline xperia64

  • Moderator
  • double
  • *****
  • Posts: 591
    • View Profile
    • My Apps
Re: Brainstorming Version 3.0
« Reply #308 on: February 25, 2015, 09:11:38 PM »
I also support bumping the requirement to 2.1.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Brainstorming Version 3.0
« Reply #309 on: February 25, 2015, 09:45:35 PM »
Yes, we've already informally agreed to start using appcompat-v7 for the actionbar thing.  Just haven't started using it yet.  So appcompat-v7 should be fine if you want to start using it.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline xperia64

  • Moderator
  • double
  • *****
  • Posts: 591
    • View Profile
    • My Apps
Re: Brainstorming Version 3.0
« Reply #310 on: February 25, 2015, 10:01:00 PM »
Now the question is, do we want older devices to have the newer GUI? Because I can try to transition old devices to the new GUI with an actionbar. Last time I checked on my xplay, the old, barebones GUI was used.

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #311 on: February 26, 2015, 05:44:33 PM »
Quote
Now the question is, do we want older devices to have the newer GUI?

Of course, that's why Google introduced the AppCompat library. They brought Material design to ancient versions of Android.

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #312 on: February 26, 2015, 05:45:54 PM »
Don't worry about updating the ActionBar stuff, I'll take care of that as part of the new UI.

Offline littleguy

  • Moderator
  • double
  • *****
  • Posts: 1945
    • View Profile
Re: Brainstorming Version 3.0
« Reply #313 on: February 26, 2015, 05:53:48 PM »
That sounds great.  I can start on the data migration stuff then.  There are some subtleties there and I can probably recycle some code from FilePwn to lighten the burden.
2012 Nexus 7, rooted stock Lollipop
Samsung Galaxy Victory, rooted stock Jelly Bean
Xperia PLAY, stock Gingerbread
OUYA, retail version

Offline BonzaiThePenguin

  • byte
  • *
  • Posts: 24
    • View Profile
Re: Brainstorming Version 3.0
« Reply #314 on: March 01, 2015, 03:54:47 PM »
Hey so what exactly did you mean about the gallery view not being in a state to build upon in future versions? Only thing I can figure is that since a search field feature was requested, that means we're expecting some people to have a ton of ROMs in their list, which in the current design means it'd attempt to load some 800 bitmaps into memory at the same time. Is that what you were referring to?

If so, we'll need to switch to a RecyclerView and a GridLayoutManager, and load and unload thumbnails as the user scrolls through the list. I have this up and running already in my local branch (not committed), but GridLayoutManager is strangely much less feature-filled than the GridView it seems to replace. In particular I can't find options for controlling the horizontal and vertical view spacing, which means every item in the grid needs to be placed in a container view that handles the padding/spacing there.

I also ran into some issues with switching over to the support library and am going to start over clean with what I learned over the past few days. Problem is that you must subclass from ActionBarActivity to use the ActionBar or Toolbar class, but that's impossible when something is already subclassing from PreferenceActivity, ListActivity, and NativeActivity. My original solution turned into a mess of view hierarchy hacks that need unique code branches for each version of Android, so I'm going to redo that using Fragments instead.

I think it's worth the trouble, though, as it gives you those fancy search fields that are integrated directly into the toolbar and work much better than the older Android search fields. It also gives you support for navigation drawers, where they slide out from the left side and the menu icon animates into a back arrow. Basically it just seems like it will be necessary as the project evolves in the future.