Welcome: added import and export features
This commit is contained in:
parent
1e6135eb2b
commit
9871b56be3
5 changed files with 119 additions and 18 deletions
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="CompilerConfiguration">
|
<component name="CompilerConfiguration">
|
||||||
|
<option name="DEFAULT_COMPILER" value="Javac" />
|
||||||
<resourceExtensions />
|
<resourceExtensions />
|
||||||
<wildcardResourcePatterns>
|
<wildcardResourcePatterns>
|
||||||
<entry name="!?*.java" />
|
<entry name="!?*.java" />
|
||||||
|
@ -11,7 +12,6 @@
|
||||||
<entry name="!?*.flex" />
|
<entry name="!?*.flex" />
|
||||||
<entry name="!?*.kt" />
|
<entry name="!?*.kt" />
|
||||||
<entry name="!?*.clj" />
|
<entry name="!?*.clj" />
|
||||||
<entry name="!?*.aj" />
|
|
||||||
</wildcardResourcePatterns>
|
</wildcardResourcePatterns>
|
||||||
<annotationProcessing>
|
<annotationProcessing>
|
||||||
<profile default="true" name="Default" enabled="false">
|
<profile default="true" name="Default" enabled="false">
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<component name="ProjectDictionaryState">
|
|
||||||
<dictionary name="Carlos">
|
|
||||||
<words>
|
|
||||||
<w>dungeoneering</w>
|
|
||||||
<w>snackbar</w>
|
|
||||||
</words>
|
|
||||||
</dictionary>
|
|
||||||
</component>
|
|
|
@ -3,8 +3,9 @@
|
||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
<option name="distributionType" value="LOCAL" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
|
<option name="gradleHome" value="$APPLICATION_HOME_DIR$/gradle/gradle-2.2.1" />
|
||||||
<option name="gradleJvm" value="1.8" />
|
<option name="gradleJvm" value="1.8" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
|
|
|
@ -19,4 +19,20 @@
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
<option name="id" value="Android" />
|
<option name="id" value="Android" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="masterDetails">
|
||||||
|
<states>
|
||||||
|
<state key="ProjectJDKs.UI">
|
||||||
|
<settings>
|
||||||
|
<last-edited>1.7</last-edited>
|
||||||
|
<splitter-proportions>
|
||||||
|
<option name="proportions">
|
||||||
|
<list>
|
||||||
|
<option value="0.2" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</splitter-proportions>
|
||||||
|
</settings>
|
||||||
|
</state>
|
||||||
|
</states>
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -1,5 +1,6 @@
|
||||||
package com.kauron.dungeonmanager;
|
package com.kauron.dungeonmanager;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
@ -12,9 +13,11 @@ import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.AdapterView;
|
import android.widget.AdapterView;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
import com.nispok.snackbar.Snackbar;
|
import com.nispok.snackbar.Snackbar;
|
||||||
import com.nispok.snackbar.SnackbarManager;
|
import com.nispok.snackbar.SnackbarManager;
|
||||||
import com.nispok.snackbar.listeners.ActionClickListener;
|
import com.nispok.snackbar.listeners.ActionClickListener;
|
||||||
|
@ -58,12 +61,56 @@ public class Welcome extends ActionBarActivity {
|
||||||
|
|
||||||
//noinspection SimplifiableIfStatement
|
//noinspection SimplifiableIfStatement
|
||||||
if ( id == R.id.action_add_player ) {
|
if ( id == R.id.action_add_player ) {
|
||||||
startActivity(new Intent(this, PlayerEditor.class).putExtra("first_time", true));
|
addPlayer();
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addPlayer(){
|
||||||
|
AlertDialog.Builder alert = new AlertDialog.Builder(this);
|
||||||
|
final Activity activity = this;
|
||||||
|
alert.setItems(
|
||||||
|
new String[]{
|
||||||
|
getString(R.string.add_new_player),
|
||||||
|
getString(R.string.add_existing_player),
|
||||||
|
getString(R.string.add_import)},
|
||||||
|
new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
if (which == 0) {
|
||||||
|
startActivity(new Intent(activity, PlayerEditor.class).putExtra("first_time", true));
|
||||||
|
} else if (which == 1) {
|
||||||
|
startActivity(new Intent(activity, PlayerEditor.class).putExtra("first_time", false));
|
||||||
|
} else if (which == 2) {
|
||||||
|
AlertDialog.Builder importDialog = new AlertDialog.Builder(activity);
|
||||||
|
final EditText input = new EditText(activity);
|
||||||
|
input.setHint(getString(R.string.paste_here));
|
||||||
|
importDialog.setView(input);
|
||||||
|
importDialog.setTitle(R.string.add_import);
|
||||||
|
importDialog.setPositiveButton(R.string.import_confirmation, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
Gson gson = new Gson();
|
||||||
|
Player player = gson
|
||||||
|
.fromJson(input.getText().toString(), Player.class);
|
||||||
|
p.edit().putString(
|
||||||
|
"player" + p.getInt("players", 0),
|
||||||
|
player.getName())
|
||||||
|
.apply();
|
||||||
|
player.saveToPreferences(
|
||||||
|
getSharedPreferences(player.getName(), MODE_PRIVATE)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
alert.show();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
@ -117,7 +164,8 @@ public class Welcome extends ActionBarActivity {
|
||||||
new String[]{
|
new String[]{
|
||||||
getString(R.string.delete),
|
getString(R.string.delete),
|
||||||
getString(R.string.edit),
|
getString(R.string.edit),
|
||||||
getString(R.string.export)},
|
getString(R.string.export),
|
||||||
|
"Test new PlayerDisplay"},
|
||||||
new DialogInterface.OnClickListener() {
|
new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
@ -156,23 +204,67 @@ public class Welcome extends ActionBarActivity {
|
||||||
}),
|
}),
|
||||||
activity
|
activity
|
||||||
);
|
);
|
||||||
} else if(which==1) {
|
} else if (which == 1) {
|
||||||
//TODO: edit the player
|
//TODO: edit the player
|
||||||
/**TEMP*/
|
/**TEMP*/
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
activity, "Editor not implemented yet", Toast.LENGTH_LONG)
|
activity, "Editor not implemented yet", Toast.LENGTH_LONG)
|
||||||
.show();
|
.show();
|
||||||
} else {
|
} else if (which == 2) {
|
||||||
//TODO: export as files
|
//TODO: export as files
|
||||||
|
String name = p.getString("player" + position, "");
|
||||||
|
// File file = new File(getCacheDir() + File.separator + name + ".dm");
|
||||||
|
// ObjectOutputStream oos = null;
|
||||||
|
SharedPreferences current = getSharedPreferences(name, MODE_PRIVATE);
|
||||||
|
int n = current.getInt("powers", 0);
|
||||||
|
String[] export = new String[n + 1];
|
||||||
|
Gson gson = new Gson();
|
||||||
|
export[0] = gson.toJson(new Player(current));
|
||||||
|
// for (int i = 0; i < n; i++) {
|
||||||
|
// SharedPreferences sav = getSharedPreferences(current.getString("power" + i, ""), MODE_PRIVATE);
|
||||||
|
// export[i + 1] = gson.toJson(new Power(sav));
|
||||||
|
// }
|
||||||
|
Intent shareIntent = new Intent();
|
||||||
|
shareIntent.setAction(Intent.ACTION_SEND);
|
||||||
|
shareIntent.putExtra(Intent.EXTRA_TEXT, export[0]);
|
||||||
|
startActivity(Intent.createChooser(shareIntent, "Compartir con..."));
|
||||||
|
|
||||||
|
// try {
|
||||||
|
// oos = new ObjectOutputStream(
|
||||||
|
// new BufferedOutputStream(
|
||||||
|
// new FileOutputStream(string)
|
||||||
|
// )
|
||||||
|
// );
|
||||||
|
//
|
||||||
|
// SharedPreferences current = getSharedPreferences(name, MODE_PRIVATE);
|
||||||
|
// oos.writeObject(new Player(current));
|
||||||
|
// int n = current.getInt("powers", 0);
|
||||||
|
// for (int i = 0; i < n; i++) {
|
||||||
|
// SharedPreferences sav = getSharedPreferences(current.getString("power" + i, ""), MODE_PRIVATE);
|
||||||
|
// oos.writeObject(new Power(sav));
|
||||||
|
// }
|
||||||
|
// TODO: fix URI share action (needs a FileProvider)
|
||||||
|
// Intent shareIntent = new Intent();
|
||||||
|
// shareIntent.setAction(Intent.ACTION_SEND);
|
||||||
|
// shareIntent.putExtra(Intent.EXTRA_TEXT, string);
|
||||||
|
// shareIntent.setType("text/*");
|
||||||
|
// startActivity(Intent.createChooser(shareIntent, "Compartir con..."));
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// } finally {
|
||||||
|
// if (oos != null) try {
|
||||||
|
// oos.close();
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// e.printStackTrace();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
} else {
|
||||||
/**TEMP*/
|
/**TEMP*/
|
||||||
startActivity(new Intent(
|
startActivity(new Intent(
|
||||||
getApplicationContext(), Display.class
|
getApplicationContext(), Display.class
|
||||||
).putExtra("player", position));
|
).putExtra("player", position));
|
||||||
Toast.makeText(
|
|
||||||
activity, "Exporting feature not implemented yet", Toast.LENGTH_LONG)
|
|
||||||
.show();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
Reference in a new issue