Merge remote-tracking branch 'refs/remotes/WagicProject/master'
This commit is contained in:
276
projects/mtg/Android/src/net/wagic/utils/DeckImporter.java
Normal file
276
projects/mtg/Android/src/net/wagic/utils/DeckImporter.java
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
package net.wagic.utils;
|
||||||
|
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
public class DeckImporter
|
||||||
|
{
|
||||||
|
|
||||||
|
public static String importDeck( File f, String mypath, String activePath )
|
||||||
|
{
|
||||||
|
String message = "";
|
||||||
|
String deck = "";
|
||||||
|
String deckname = "";
|
||||||
|
if(f.exists() && !f.isDirectory())
|
||||||
|
{
|
||||||
|
deckname = f.getName();
|
||||||
|
int pos = deckname.lastIndexOf(".");
|
||||||
|
if (pos > 0)
|
||||||
|
{
|
||||||
|
deckname = deckname.substring(0, pos);
|
||||||
|
}
|
||||||
|
deck += "#NAME:"+deckname+"\n";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Scanner scanner = new Scanner(new File(mypath));
|
||||||
|
if (scanner.hasNext())
|
||||||
|
{
|
||||||
|
while (scanner.hasNext())
|
||||||
|
{
|
||||||
|
String line = scanner.nextLine();
|
||||||
|
String[] slines = line.split("\\s+");
|
||||||
|
String arranged = "";
|
||||||
|
for(int idx = 1; idx < slines.length; idx++)
|
||||||
|
{
|
||||||
|
arranged += slines[idx] + " ";
|
||||||
|
}
|
||||||
|
if (isNumeric(slines[0]) && arranged != null)
|
||||||
|
{
|
||||||
|
if (slines[1] != null && slines[1].startsWith("["))
|
||||||
|
{
|
||||||
|
arranged = arranged.substring(5);
|
||||||
|
slines[1] = slines[1].replaceAll("\\[", "").replaceAll("\\]","");
|
||||||
|
deck += arranged + " (" + renameSet(slines[1]) + ") * " + slines[0] + "\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
deck += arranged + "(*) * " + slines[0] + "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
File profile = new File(activePath+"/Res/settings/options.txt");
|
||||||
|
if(profile.exists() && !profile.isDirectory())
|
||||||
|
{
|
||||||
|
String profileName = getActiveProfile(profile);
|
||||||
|
if(profileName != "Missing!")
|
||||||
|
{
|
||||||
|
File rootProfiles = new File(activePath+"/Res/profiles/"+profileName);
|
||||||
|
if(rootProfiles.exists() && rootProfiles.isDirectory())
|
||||||
|
{
|
||||||
|
//save deck
|
||||||
|
int countdeck = 1;
|
||||||
|
File[] files = rootProfiles.listFiles();
|
||||||
|
for (int i = 0; i < files.length; i++)
|
||||||
|
{//check if there is available deck...
|
||||||
|
if(files[i].getName().startsWith("deck"))
|
||||||
|
countdeck++;
|
||||||
|
}
|
||||||
|
File toSave = new File(rootProfiles+"/deck"+countdeck+".txt");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
FileOutputStream fop = new FileOutputStream(toSave);
|
||||||
|
|
||||||
|
// if file doesn't exists, then create it
|
||||||
|
if (!toSave.exists()) {
|
||||||
|
toSave.createNewFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the content in bytes
|
||||||
|
byte[] contentInBytes = deck.getBytes();
|
||||||
|
|
||||||
|
fop.write(contentInBytes);
|
||||||
|
fop.flush();
|
||||||
|
fop.close();
|
||||||
|
|
||||||
|
message = "Import Deck Success!\n\n"+deck;
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
message = e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
message = "Missing Folder!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
message = "Invalid Profile!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
message = "No errors, and file EMPTY";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(IOException e)
|
||||||
|
{
|
||||||
|
message = e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isNumeric(String input)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Integer.parseInt(input);
|
||||||
|
}
|
||||||
|
catch(NumberFormatException ex)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getActiveProfile(File mypath)
|
||||||
|
{
|
||||||
|
String name = "";
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Scanner scanner = new Scanner(new File(mypath.toString()));
|
||||||
|
if (scanner.hasNext())
|
||||||
|
{
|
||||||
|
String line = scanner.nextLine();
|
||||||
|
name = line.substring(8);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return "Missing!";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(IOException e)
|
||||||
|
{
|
||||||
|
return "Missing!";
|
||||||
|
}
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String renameSet(String set)
|
||||||
|
{
|
||||||
|
if (set == "AL")
|
||||||
|
return "ALL";
|
||||||
|
if (set == "AQ")
|
||||||
|
return "ATQ";
|
||||||
|
if (set == "AP")
|
||||||
|
return "APC";
|
||||||
|
if (set == "AN")
|
||||||
|
return "ARN";
|
||||||
|
if (set == "AE")
|
||||||
|
return "ARC";
|
||||||
|
if (set == "BR")
|
||||||
|
return "BRB";
|
||||||
|
if (set == "BD")
|
||||||
|
return "BTD";
|
||||||
|
if (set == "CH")
|
||||||
|
return "CHR";
|
||||||
|
if (set == "6E")
|
||||||
|
return "6ED";
|
||||||
|
if (set == "CS")
|
||||||
|
return "CSP";
|
||||||
|
if (set == "DS")
|
||||||
|
return "DST";
|
||||||
|
if (set == "D2")
|
||||||
|
return "DD2";
|
||||||
|
if (set == "8E")
|
||||||
|
return "8ED";
|
||||||
|
if (set == "EX")
|
||||||
|
return "EXO";
|
||||||
|
if (set == "FE")
|
||||||
|
return "FEM";
|
||||||
|
if (set == "FD")
|
||||||
|
return "5DN";
|
||||||
|
if (set == "5E")
|
||||||
|
return "5ED";
|
||||||
|
if (set == "4E")
|
||||||
|
return "4ED";
|
||||||
|
if (set == "GP")
|
||||||
|
return "GPT";
|
||||||
|
if (set == "HL")
|
||||||
|
return "HML";
|
||||||
|
if (set == "IA")
|
||||||
|
return "ICE";
|
||||||
|
if (set == "IN")
|
||||||
|
return "INV";
|
||||||
|
if (set == "JU")
|
||||||
|
return "JUD";
|
||||||
|
if (set == "LG")
|
||||||
|
return "LEG";
|
||||||
|
if (set == "LE")
|
||||||
|
return "LGN";
|
||||||
|
if (set == "A")
|
||||||
|
return "LEA";
|
||||||
|
if (set == "B")
|
||||||
|
return "LEB";
|
||||||
|
if (set == "MM")
|
||||||
|
return "MMQ";
|
||||||
|
if (set == "MI")
|
||||||
|
return "MIR";
|
||||||
|
if (set == "MR")
|
||||||
|
return "MRD";
|
||||||
|
if (set == "NE")
|
||||||
|
return "NEM";
|
||||||
|
if (set == "9E")
|
||||||
|
return "9ED";
|
||||||
|
if (set == "OD")
|
||||||
|
return "ODY";
|
||||||
|
if (set == "ON")
|
||||||
|
return "ONS";
|
||||||
|
if (set == "PS")
|
||||||
|
return "PLS";
|
||||||
|
if (set == "PT")
|
||||||
|
return "POR";
|
||||||
|
if (set == "P2")
|
||||||
|
return "P02";
|
||||||
|
if (set == "P3")
|
||||||
|
return "PTK";
|
||||||
|
if (set == "PR")
|
||||||
|
return "PPR";
|
||||||
|
if (set == "PY")
|
||||||
|
return "PCY";
|
||||||
|
if (set == "R")
|
||||||
|
return "RV";
|
||||||
|
if (set == "SC")
|
||||||
|
return "SCG";
|
||||||
|
if (set == "7E")
|
||||||
|
return "7ED";
|
||||||
|
if (set == "ST")
|
||||||
|
return "S99";
|
||||||
|
if (set == "ST2K")
|
||||||
|
return "S00";
|
||||||
|
if (set == "SH")
|
||||||
|
return "STH";
|
||||||
|
if (set == "TE")
|
||||||
|
return "TMP";
|
||||||
|
if (set == "DK")
|
||||||
|
return "DRK";
|
||||||
|
if (set == "TO")
|
||||||
|
return "TOR";
|
||||||
|
if (set == "UG")
|
||||||
|
return "UGL";
|
||||||
|
if (set == "U")
|
||||||
|
return "2ED";
|
||||||
|
if (set == "UD")
|
||||||
|
return "UDS";
|
||||||
|
if (set == "UL")
|
||||||
|
return "ULG";
|
||||||
|
if (set == "US")
|
||||||
|
return "USG";
|
||||||
|
if (set == "VI")
|
||||||
|
return "VIS";
|
||||||
|
if (set == "WL")
|
||||||
|
return "WTH";
|
||||||
|
else
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,6 +5,10 @@ import java.io.FileNotFoundException;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import android.os.Build;
|
||||||
|
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -21,8 +25,10 @@ public class StorageOptions
|
|||||||
public static void determineStorageOptions()
|
public static void determineStorageOptions()
|
||||||
{
|
{
|
||||||
initializeMountPoints();
|
initializeMountPoints();
|
||||||
|
readMountsFileTest();
|
||||||
readMountsFile();
|
readMountsFile();
|
||||||
readVoldFile();
|
readVoldFile();
|
||||||
|
removeDuplicates(mMounts);
|
||||||
compareMountsWithVold();
|
compareMountsWithVold();
|
||||||
testAndCleanMountsList();
|
testAndCleanMountsList();
|
||||||
setProperties();
|
setProperties();
|
||||||
@@ -40,6 +46,42 @@ public class StorageOptions
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void readMountsFileTest()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Test mountpoints storage -kevlahnota
|
||||||
|
*/
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Scanner scanner = new Scanner(new File("/proc/mounts"));
|
||||||
|
while (scanner.hasNext())
|
||||||
|
{
|
||||||
|
String line = scanner.nextLine();
|
||||||
|
if (line.startsWith("/"))
|
||||||
|
{
|
||||||
|
String[] lineElements = line.split("\\s+");
|
||||||
|
if ("vfat".equals(lineElements[2]) || "fuse".equals(lineElements[2]))
|
||||||
|
{
|
||||||
|
File mountPoint = new File(lineElements[1]);
|
||||||
|
if (!lineElements[1].equals(defaultMountPoint))
|
||||||
|
if (mountPoint.isDirectory() && mountPoint.canRead())
|
||||||
|
mMounts.add(lineElements[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (FileNotFoundException fnfex)
|
||||||
|
{
|
||||||
|
// if proc/mount doesn't exist we just use
|
||||||
|
Log.i(StorageOptions.class.getCanonicalName(), fnfex.getMessage() + ": assuming " + defaultMountPoint + " is the only mount point");
|
||||||
|
mMounts.add(defaultMountPoint);
|
||||||
|
} catch (Exception e)
|
||||||
|
{
|
||||||
|
Log.e(StorageOptions.class.getCanonicalName(), e.getMessage() + ": unknown exception while reading mounts file");
|
||||||
|
mMounts.add(defaultMountPoint);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void readMountsFile()
|
private static void readMountsFile()
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@@ -106,6 +148,23 @@ public class StorageOptions
|
|||||||
mMounts.add(defaultMountPoint);
|
mMounts.add(defaultMountPoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static ArrayList<String> removeDuplicates(ArrayList<String> list)
|
||||||
|
{
|
||||||
|
ArrayList<String> result = new ArrayList<String>();
|
||||||
|
|
||||||
|
HashSet<String> set = new HashSet<String>();
|
||||||
|
|
||||||
|
for (String item : list)
|
||||||
|
{
|
||||||
|
if (!set.contains(item))
|
||||||
|
{
|
||||||
|
result.add(item);
|
||||||
|
set.add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
private static void compareMountsWithVold()
|
private static void compareMountsWithVold()
|
||||||
{
|
{
|
||||||
@@ -132,14 +191,24 @@ public class StorageOptions
|
|||||||
/*
|
/*
|
||||||
* Now that we have a cleaned list of mount paths Test each one to make sure it's a valid and available path. If it is not, remove it from the list.
|
* Now that we have a cleaned list of mount paths Test each one to make sure it's a valid and available path. If it is not, remove it from the list.
|
||||||
*/
|
*/
|
||||||
|
int t = 0;
|
||||||
for (int i = 0; i < mMounts.size(); i++)
|
for (int i = 0; i < mMounts.size(); i++)
|
||||||
{
|
{
|
||||||
|
t++;
|
||||||
String mount = mMounts.get(i);
|
String mount = mMounts.get(i);
|
||||||
File root = new File(mount);
|
File root = new File(mount);
|
||||||
if (!root.exists() || !root.isDirectory() || !root.canWrite())
|
if (!root.exists() || !root.isDirectory() || !root.canWrite())
|
||||||
mMounts.remove(i--);
|
mMounts.remove(i--);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (t == 0 && Build.VERSION.SDK_INT >= 19)
|
||||||
|
{//If none is found and build version is kitkat or higher
|
||||||
|
File root = new File("/storage/sdcard0");
|
||||||
|
if (root.exists() && root.isDirectory() && root.canWrite())
|
||||||
|
mMounts.add("/storage/sdcard0");
|
||||||
|
if (isExternalStorageAvailable() && !isExternalStorageReadOnly())
|
||||||
|
mMounts.add("/storage/sdcard1");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void setProperties()
|
private static void setProperties()
|
||||||
@@ -153,10 +222,10 @@ public class StorageOptions
|
|||||||
int i = 1;
|
int i = 1;
|
||||||
for (String path : mMounts)
|
for (String path : mMounts)
|
||||||
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
{ // TODO: /mnt/sdcard is assumed to always mean internal storage. Use this comparison until there is a better way to do this
|
||||||
if ("/mnt/sdcard".equalsIgnoreCase(path))
|
if ("/mnt/sdcard".equalsIgnoreCase(path) || "/storage/sdcard0".equalsIgnoreCase(path))
|
||||||
mLabels.add("Built-in Storage");
|
mLabels.add("Internal SD " + "[" + path + "]");
|
||||||
else
|
else
|
||||||
mLabels.add("External SD Card " + i++);
|
mLabels.add("External SD " + " [" + path + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
labels = new String[mLabels.size()];
|
labels = new String[mLabels.size()];
|
||||||
@@ -171,4 +240,20 @@ public class StorageOptions
|
|||||||
// use and to prepare it for the next time it's needed.
|
// use and to prepare it for the next time it's needed.
|
||||||
mMounts.clear();
|
mMounts.clear();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
private static boolean isExternalStorageReadOnly() {
|
||||||
|
String extStorageState = Environment.getExternalStorageState();
|
||||||
|
if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(extStorageState)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isExternalStorageAvailable() {
|
||||||
|
String extStorageState = Environment.getExternalStorageState();
|
||||||
|
if (Environment.MEDIA_MOUNTED.equals(extStorageState)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,12 +1,20 @@
|
|||||||
package org.libsdl.app;
|
package org.libsdl.app;
|
||||||
|
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.FileWriter;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import javax.microedition.khronos.egl.EGL10;
|
import javax.microedition.khronos.egl.EGL10;
|
||||||
import javax.microedition.khronos.egl.EGLConfig;
|
import javax.microedition.khronos.egl.EGLConfig;
|
||||||
@@ -16,6 +24,7 @@ import javax.microedition.khronos.egl.EGLSurface;
|
|||||||
|
|
||||||
import net.wagic.app.R;
|
import net.wagic.app.R;
|
||||||
import net.wagic.utils.StorageOptions;
|
import net.wagic.utils.StorageOptions;
|
||||||
|
import net.wagic.utils.DeckImporter;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
@@ -59,7 +68,10 @@ import android.widget.FrameLayout.LayoutParams;
|
|||||||
*/
|
*/
|
||||||
public class SDLActivity extends Activity implements OnKeyListener
|
public class SDLActivity extends Activity implements OnKeyListener
|
||||||
{
|
{
|
||||||
|
//import deck globals
|
||||||
|
public ArrayList<String> myresult = new ArrayList<String>();
|
||||||
|
public String myclickedItem = "";
|
||||||
|
|
||||||
// TAG used for debugging in DDMS
|
// TAG used for debugging in DDMS
|
||||||
public static String TAG = Activity.class.getCanonicalName();
|
public static String TAG = Activity.class.getCanonicalName();
|
||||||
|
|
||||||
@@ -200,7 +212,61 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
|
|
||||||
setStorage.create().show();
|
setStorage.create().show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void importDeckOptions()
|
||||||
|
{
|
||||||
|
AlertDialog.Builder importDeck = new AlertDialog.Builder(this);
|
||||||
|
int index=internalPath.lastIndexOf('/');
|
||||||
|
importDeck.setTitle("Choose Deck to Import:");
|
||||||
|
File root = new File(internalPath.substring(0,index)+"/Download");
|
||||||
|
File[] files = root.listFiles();
|
||||||
|
for( File f : files)
|
||||||
|
{
|
||||||
|
if( !myresult.contains(f.toString()) && (f.toString().contains(".txt")||f.toString().contains(".dec")))
|
||||||
|
myresult.add(f.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//get first item?
|
||||||
|
if(!myresult.isEmpty())
|
||||||
|
myclickedItem = myresult.get(0).toString();
|
||||||
|
|
||||||
|
importDeck.setSingleChoiceItems(myresult.toArray(new String[myresult.size()]), 0, new DialogInterface.OnClickListener()
|
||||||
|
{
|
||||||
|
public void onClick(DialogInterface dialog, int item)
|
||||||
|
{
|
||||||
|
myclickedItem = myresult.get(item).toString();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
importDeck.setPositiveButton("Import Deck", new DialogInterface.OnClickListener()
|
||||||
|
{
|
||||||
|
public void onClick(DialogInterface dialog, int which)
|
||||||
|
{
|
||||||
|
processSelectedDeck( myclickedItem );
|
||||||
|
if (mSurface == null)
|
||||||
|
mSingleton.initializeGame();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
importDeck.create().show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processSelectedDeck(String mypath)
|
||||||
|
{
|
||||||
|
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
||||||
|
infoDialog.setTitle("Imported Deck:");
|
||||||
|
String activePath = sdcardPath;
|
||||||
|
if(activePath == ""){
|
||||||
|
activePath = internalPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
File f = new File(mypath);
|
||||||
|
//Call the deck importer....
|
||||||
|
String state = DeckImporter.importDeck(f, mypath, activePath);
|
||||||
|
infoDialog.setMessage(state);
|
||||||
|
infoDialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
private void checkStorageLocationPreference()
|
private void checkStorageLocationPreference()
|
||||||
{
|
{
|
||||||
SharedPreferences settings = getSharedPreferences(kWagicSharedPreferencesKey, MODE_PRIVATE);
|
SharedPreferences settings = getSharedPreferences(kWagicSharedPreferencesKey, MODE_PRIVATE);
|
||||||
@@ -334,7 +400,8 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
public boolean onCreateOptionsMenu(Menu menu)
|
public boolean onCreateOptionsMenu(Menu menu)
|
||||||
{
|
{
|
||||||
SubMenu settingsMenu = menu.addSubMenu(Menu.NONE, 1, 1, "Settings");
|
SubMenu settingsMenu = menu.addSubMenu(Menu.NONE, 1, 1, "Settings");
|
||||||
menu.add(Menu.NONE, 2, 2, "About");
|
menu.add(Menu.NONE, 2, 2, "Import");
|
||||||
|
menu.add(Menu.NONE, 3, 3, "About");
|
||||||
settingsMenu.add(kStorageDataOptionsMenuId, kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
|
settingsMenu.add(kStorageDataOptionsMenuId, kStorageDataOptionsMenuId, Menu.NONE, "Storage Data Options");
|
||||||
// buildStorageOptionsMenu(settingsMenu);
|
// buildStorageOptionsMenu(settingsMenu);
|
||||||
|
|
||||||
@@ -350,6 +417,9 @@ public class SDLActivity extends Activity implements OnKeyListener
|
|||||||
{
|
{
|
||||||
displayStorageOptions();
|
displayStorageOptions();
|
||||||
} else if (itemId == 2)
|
} else if (itemId == 2)
|
||||||
|
{
|
||||||
|
importDeckOptions();
|
||||||
|
} else if (itemId == 3)
|
||||||
{
|
{
|
||||||
// display some info about the app
|
// display some info about the app
|
||||||
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
AlertDialog.Builder infoDialog = new AlertDialog.Builder(this);
|
||||||
|
|||||||
Reference in New Issue
Block a user