[Android] Open drawer if there isn't anything in the game list, instead of on first run.
This commit is contained in:
parent
970661a0c5
commit
143d2eccb4
|
@ -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:
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue