[Android] Open drawer if there isn't anything in the game list, instead of on first run.

This commit is contained in:
Ryan Houdek 2013-06-24 12:16:59 -05:00
parent 970661a0c5
commit 143d2eccb4
2 changed files with 137 additions and 100 deletions

View File

@ -10,17 +10,13 @@ import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
@ -28,7 +24,8 @@ import java.util.List;
* Licensed under GPLv2
* Refer to the license.txt file included.
*/
public class GameListActivity extends Activity {
public class GameListActivity extends Activity
implements GameListFragment.OnGameListZeroListener{
enum keyTypes {TYPE_STRING, TYPE_BOOL};
@ -37,90 +34,19 @@ public class GameListActivity extends Activity {
private SideMenuAdapter mDrawerAdapter;
private ListView mDrawerList;
private static GameListActivity me;
private static GameListActivity mMe;
public static class GameListFragment extends Fragment {
private ListView mMainList;
private GameListAdapter mGameAdapter;
public GameListFragment() {
// Empty constructor required for fragment subclasses
}
private void Fill()
{
List<GameListItem>fls = new ArrayList<GameListItem>();
String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0");
int intDirectories = Integer.parseInt(Directories);
for (int a = 0; a < intDirectories; ++a)
{
String BrowseDir = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(a), "");
File currentDir = new File(BrowseDir);
File[]dirs = currentDir.listFiles();
try
{
for(File ff: dirs)
{
if (ff.getName().charAt(0) != '.')
if(!ff.isDirectory())
if (ff.getName().toLowerCase().contains(".gcm") ||
ff.getName().toLowerCase().contains(".iso") ||
ff.getName().toLowerCase().contains(".wbfs") ||
ff.getName().toLowerCase().contains(".gcz") ||
ff.getName().toLowerCase().contains(".dol") ||
ff.getName().toLowerCase().contains(".elf") ||
ff.getName().toLowerCase().contains(".dff"))
fls.add(new GameListItem(me.getApplicationContext(), ff.getName(),"File Size: "+ff.length(),ff.getAbsolutePath()));
}
}
catch(Exception ignored)
{
}
}
Collections.sort(fls);
mGameAdapter = new GameListAdapter(me, R.layout.gamelist_layout, fls);
mMainList.setAdapter(mGameAdapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.gamelist_listview, container, false);
mMainList = (ListView) rootView.findViewById(R.id.gamelist);
mMainList.setOnItemClickListener(mGameItemClickListener);
Fill();
return mMainList;
}
private AdapterView.OnItemClickListener mGameItemClickListener = new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
GameListItem o = mGameAdapter.getItem(position);
if(!(o.getData().equalsIgnoreCase("folder")||o.getData().equalsIgnoreCase("parent directory")))
{
onFileClick(o.getPath());
}
}
};
private void onFileClick(String o)
{
Toast.makeText(me, "File Clicked: " + o, Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.putExtra("Select", o);
me.setResult(Activity.RESULT_OK, intent);
me.finish();
}
// Called from the game list fragment
public void onZeroFiles()
{
mDrawerLayout.openDrawer(mDrawerList);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gamelist_activity);
me = this;
mMe = this;
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
@ -152,16 +78,6 @@ public class GameListActivity extends Activity {
mDrawerLayout.setDrawerListener(mDrawerToggle);
recreateFragment();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean bFirstRun = prefs.getBoolean("FirstRun", true);
if (bFirstRun)
{
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("FirstRun", false);
editor.commit();
mDrawerLayout.openDrawer(mDrawerList);
}
}
private void recreateFragment()
@ -181,23 +97,23 @@ public class GameListActivity extends Activity {
switch(o.getID())
{
case 0:
Toast.makeText(me, "Loading up the browser", Toast.LENGTH_SHORT).show();
Intent ListIntent = new Intent(me, FolderBrowser.class);
Toast.makeText(mMe, "Loading up the browser", Toast.LENGTH_SHORT).show();
Intent ListIntent = new Intent(mMe, FolderBrowser.class);
startActivityForResult(ListIntent, 1);
break;
case 1:
Toast.makeText(me, "Loading up settings", Toast.LENGTH_SHORT).show();
Intent SettingIntent = new Intent(me, PrefsActivity.class);
Toast.makeText(mMe, "Loading up settings", Toast.LENGTH_SHORT).show();
Intent SettingIntent = new Intent(mMe, PrefsActivity.class);
startActivityForResult(SettingIntent, 2);
break;
case 2:
Toast.makeText(me, "Loading up gamepad config", Toast.LENGTH_SHORT).show();
Intent ConfigIntent = new Intent(me, InputConfigActivity.class);
Toast.makeText(mMe, "Loading up gamepad config", Toast.LENGTH_SHORT).show();
Intent ConfigIntent = new Intent(mMe, InputConfigActivity.class);
startActivityForResult(ConfigIntent, 3);
break;
case 3:
Toast.makeText(me, "Loading up About", Toast.LENGTH_SHORT).show();
Intent AboutIntent = new Intent(me, AboutActivity.class);
Toast.makeText(mMe, "Loading up About", Toast.LENGTH_SHORT).show();
Intent AboutIntent = new Intent(mMe, AboutActivity.class);
startActivityForResult(AboutIntent, 3);
break;
default:

View File

@ -0,0 +1,121 @@
package org.dolphinemu.dolphinemu;
import android.app.Activity;
import android.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Copyright 2013 Dolphin Emulator Project
* Licensed under GPLv2
* Refer to the license.txt file included.
*/
public class GameListFragment extends Fragment
{
private ListView mMainList;
private GameListAdapter mGameAdapter;
private static GameListActivity mMe;
OnGameListZeroListener mCallback;
public interface OnGameListZeroListener {
public void onZeroFiles();
}
public GameListFragment() {
// Empty constructor required for fragment subclasses
}
private void Fill()
{
List<GameListItem> fls = new ArrayList<GameListItem>();
String Directories = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPathes", "0");
int intDirectories = Integer.parseInt(Directories);
for (int a = 0; a < intDirectories; ++a)
{
String BrowseDir = NativeLibrary.GetConfig("Dolphin.ini", "General", "GCMPath" + Integer.toString(a), "");
File currentDir = new File(BrowseDir);
File[]dirs = currentDir.listFiles();
try
{
for(File ff: dirs)
{
if (ff.getName().charAt(0) != '.')
if(!ff.isDirectory())
if (ff.getName().toLowerCase().contains(".gcm") ||
ff.getName().toLowerCase().contains(".iso") ||
ff.getName().toLowerCase().contains(".wbfs") ||
ff.getName().toLowerCase().contains(".gcz") ||
ff.getName().toLowerCase().contains(".dol") ||
ff.getName().toLowerCase().contains(".elf") ||
ff.getName().toLowerCase().contains(".dff"))
fls.add(new GameListItem(mMe.getApplicationContext(), ff.getName(),"File Size: "+ff.length(),ff.getAbsolutePath()));
}
}
catch(Exception ignored)
{
}
}
Collections.sort(fls);
mGameAdapter = new GameListAdapter(mMe, R.layout.gamelist_layout, fls);
mMainList.setAdapter(mGameAdapter);
if (fls.size() == 0)
mCallback.onZeroFiles();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.gamelist_listview, container, false);
mMainList = (ListView) rootView.findViewById(R.id.gamelist);
mMainList.setOnItemClickListener(mGameItemClickListener);
Fill();
return mMainList;
}
private AdapterView.OnItemClickListener mGameItemClickListener = new AdapterView.OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
GameListItem o = mGameAdapter.getItem(position);
if(!(o.getData().equalsIgnoreCase("folder")||o.getData().equalsIgnoreCase("parent directory")))
{
onFileClick(o.getPath());
}
}
};
private void onFileClick(String o)
{
Toast.makeText(mMe, "File Clicked: " + o, Toast.LENGTH_SHORT).show();
Intent intent = new Intent();
intent.putExtra("Select", o);
mMe.setResult(Activity.RESULT_OK, intent);
mMe.finish();
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnGameListZeroListener) activity;
mMe = (GameListActivity) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnGameListZeroListener");
}
}
}