Commit 2f52e8ce authored by kenan's avatar kenan

open yrp

parent 3144ceef
......@@ -63,7 +63,7 @@ irr::io::path getExternalStorageDir(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -95,7 +95,7 @@ irr::io::path getExternalFilesDir(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -125,7 +125,7 @@ float getScreenHeight(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -150,7 +150,7 @@ float getScreenWidth(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -175,7 +175,7 @@ irr::io::path getDBDir(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -204,7 +204,7 @@ irr::io::path getCardImagePath(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -233,7 +233,7 @@ irr::io::path getCoreConfigVersion(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -261,7 +261,7 @@ int getOpenglVersion(ANDROID_APP app) {
int ret = 1;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -285,7 +285,7 @@ int getCardQuality(ANDROID_APP app) {
int ret = 1;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -310,7 +310,7 @@ irr::io::path getFontPath(ANDROID_APP app) {
irr::io::path ret;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -338,7 +338,7 @@ irr::io::path getResourcePath(ANDROID_APP app) {
irr::io::path ret;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -366,7 +366,7 @@ float getXScale(ANDROID_APP app){
float ret = 1;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -390,7 +390,7 @@ float getYScale(ANDROID_APP app){
float ret = 1;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -424,7 +424,7 @@ irr::io::path getSetting(ANDROID_APP app, const char* key) {
irr::io::path ret;
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -468,7 +468,7 @@ void setLastCategory(ANDROID_APP app, const char* catename) {
int getIntSetting(ANDROID_APP app, const char* key,int defvalue){
if (!app || !app->activity || !app->activity->vm)
return defvalue;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return defvalue;
......@@ -496,7 +496,7 @@ int getIntSetting(ANDROID_APP app, const char* key,int defvalue){
void saveIntSetting(ANDROID_APP app, const char* key, int value) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return;
......@@ -522,7 +522,7 @@ void saveIntSetting(ANDROID_APP app, const char* key, int value) {
void saveSetting(ANDROID_APP app, const char* key, const char* value) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return;
......@@ -553,7 +553,7 @@ bool perfromTrick(ANDROID_APP app) {
bool ret = true;
if (!app || !app->activity || !app->activity->vm)
return false;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return false;
......@@ -582,7 +582,7 @@ bool getFontAntiAlias(ANDROID_APP app) {
bool ret = true;
if (!app || !app->activity || !app->activity->vm)
return true;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return true;
......@@ -611,7 +611,7 @@ bool getFontAntiAlias(ANDROID_APP app) {
void perfromHapticFeedback(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return;
......@@ -629,7 +629,7 @@ irr::io::path getCacheDir(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return ret;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return ret;
......@@ -662,7 +662,7 @@ irr::io::path getCacheDir(ANDROID_APP app) {
void toggleIME(ANDROID_APP app, bool pShow, const char* hint) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
// Retrieves NativeActivity.
jobject lNativeActivity = app->activity->clazz;
......@@ -686,7 +686,7 @@ void toggleGlobalIME(ANDROID_APP app, bool pShow) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jint lFlags = 2;
......@@ -752,7 +752,7 @@ void toggleGlobalIME(ANDROID_APP app, bool pShow) {
core::position2di initJavaBridge(ANDROID_APP app, void* handle) {
if (!app || !app->activity || !app->activity->vm)
return core::position2di(0, 0);
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
......@@ -777,7 +777,7 @@ core::position2di initJavaBridge(ANDROID_APP app, void* handle) {
InitOptions* getInitOptions(ANDROID_APP app) {
if (!app || !app->activity || !app->activity->vm)
return NULL;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
......@@ -795,7 +795,7 @@ int getLocalAddr(ANDROID_APP app) {
int addr = -1;
if (!app || !app->activity || !app->activity->vm)
return addr;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
......@@ -807,11 +807,29 @@ int getLocalAddr(ANDROID_APP app) {
return addr;
}
void OnShareFile(ANDROID_APP app, char* title, char* path){
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, nullptr);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
jmethodID MethodGetAddr = jni->GetMethodID(ClassNativeActivity,
"shareFile", "(Ljava/lang/String;Ljava/lang/String;)V");
jstring s_title = jni->NewStringUTF(title);
jstring s_path = jni->NewStringUTF(path);
jni->CallVoidMethod(lNativeActivity, MethodGetAddr, s_title, s_path;
jni->ReleaseStringUTFChars(s_title, title);
jni->ReleaseStringUTFChars(s_path, path);
jni->DeleteLocalRef(ClassNativeActivity);
app->activity->vm->DetachCurrentThread();
}
void showAndroidComboBoxCompat(ANDROID_APP app, bool pShow, char** pContents,
int count, int mode) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
......@@ -834,7 +852,7 @@ void showAndroidComboBoxCompat(ANDROID_APP app, bool pShow, char** pContents,
void toggleOverlayView(ANDROID_APP app, bool pShow) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
jobject lNativeActivity = app->activity->clazz;
jclass ClassNativeActivity = jni->GetObjectClass(lNativeActivity);
......@@ -956,7 +974,7 @@ bool android_deck_delete(const char* deck_name) {
void runWindbot(ANDROID_APP app, const char* args) {
if (!app || !app->activity || !app->activity->vm)
return;
JNIEnv* jni = 0;
JNIEnv* jni = nullptr;
app->activity->vm->AttachCurrentThread(&jni, NULL);
if (!jni)
return;
......
......@@ -98,6 +98,8 @@ extern float getScreenWidth(ANDROID_APP app);
extern float getScreenHeight(ANDROID_APP app);
extern void OnShareFile(ANDROID_APP app, char* title, char* path);
// Get SDCard path.
extern irr::io::path getExternalStorageDir(ANDROID_APP app);
......
......@@ -6,8 +6,10 @@
*/
package cn.garymb.ygomobile;
import android.app.AlertDialog;
import android.app.NativeActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.res.Resources;
......@@ -522,4 +524,24 @@ public class YGOMobileActivity extends NativeActivity implements
}
super.surfaceRedrawNeeded(holder);
}
@Override
public void shareFile(final String title, final String path) {
//TODO 分享文件
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(YGOMobileActivity.this);
builder.setTitle(title);
builder.setMessage(path);
builder.setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
}
});
}
}
......@@ -197,6 +197,8 @@ public final class IrrlichtBridge {
void showComboBoxCompat(String[] items, boolean isShow, int mode);
void shareFile(String title, String path);
void performHapticFeedback();
/**
......
......@@ -30,6 +30,7 @@ import static cn.garymb.ygomobile.Constants.QUERY_NAME;
public class GameUriManager {
private Activity activity;
private String fname;
public GameUriManager(Activity activity) {
this.activity = activity;
......@@ -56,7 +57,7 @@ public class GameUriManager {
options.mUserName = intent.getStringExtra(Constants.QUERY_USER);
options.mPort = intent.getIntExtra(Constants.QUERY_PORT, 0);
options.mRoomName = intent.getStringExtra(Constants.QUERY_ROOM);
YGOStarter.startGame(getActivity(), options);
YGOStarter.startGame(getActivity(), options, null);
} catch (Exception e) {
Toast.makeText(getActivity(), R.string.start_game_error, Toast.LENGTH_SHORT).show();
activity.finish();
......@@ -133,7 +134,7 @@ public class GameUriManager {
}
activity.startActivity(startdeck);
} else if (file.getName().toLowerCase(Locale.US).endsWith(".ypk")) {
File ypk = new File(AppsSettings.get().getExpansionsPath() + "/" + file.getName().toLowerCase(Locale.US));
File ypk = new File(AppsSettings.get().getExpansionsPath() + "/" + file.getName());
if (ypk.exists() && file.lastModified() == ypk.lastModified()) {
Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_LONG).show();
} else {
......@@ -151,9 +152,8 @@ public class GameUriManager {
Toast.makeText(activity, R.string.ypk_installed, Toast.LENGTH_LONG).show();
}
} else if (file.getName().toLowerCase(Locale.US).endsWith(".yrp")) {
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + file.getName().toLowerCase(Locale.US));
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + file.getName());
if (yrp.exists()) {
YGOStarter.startGame(getActivity(), null);
Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_LONG).show();
} else {
try {
......@@ -161,10 +161,10 @@ public class GameUriManager {
} catch (Throwable e) {
Toast.makeText(activity, activity.getString(R.string.install_failed_bcos) + e, Toast.LENGTH_LONG).show();
}
if (!ComponentUtils.isActivityRunning(getActivity(), new ComponentName(getActivity(), YGOMobileActivity.class))) {
YGOStarter.startGame(getActivity(), null);
Toast.makeText(activity, activity.getString(R.string.yrp_installed), Toast.LENGTH_LONG).show();
}
}
if (!ComponentUtils.isActivityRunning(getActivity(), new ComponentName(getActivity(), YGOMobileActivity.class))) {
YGOStarter.startGame(getActivity(), null, "-r" + yrp.getName());
Toast.makeText(activity, ""+yrp.getName(), Toast.LENGTH_LONG).show();
}
}
} else if ("content".equals(uri.getScheme())) {
......@@ -221,11 +221,10 @@ public class GameUriManager {
Toast.makeText(activity, R.string.ypk_installed, Toast.LENGTH_LONG).show();
}
} else if (urifile.getName().toLowerCase(Locale.US).endsWith(".yrp")) {
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + urifile.getName().toLowerCase(Locale.US));
try {
File yrp = new File(AppsSettings.get().getResourcePath() + "/" + CORE_REPLAY_PATH + "/" + urifile.getName().toLowerCase(Locale.US));
ParcelFileDescriptor pfd = getActivity().getContentResolver().openFileDescriptor(uri, "r");
if (yrp.exists()) {
YGOStarter.startGame(getActivity(), null);
Toast.makeText(activity, activity.getString(R.string.file_exist), Toast.LENGTH_SHORT).show();
} else {
if (pfd == null) {
......@@ -244,7 +243,7 @@ public class GameUriManager {
e.printStackTrace();
}
if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) {
YGOStarter.startGame(activity, null);
YGOStarter.startGame(getActivity(), null, "-r " + yrp.getName());
Toast.makeText(activity, activity.getString(R.string.yrp_installed), Toast.LENGTH_LONG).show();
}
}
......@@ -273,7 +272,7 @@ public class GameUriManager {
// options.mUserName = uri.getQueryParameter(Constants.QUERY_USER);
// options.mPort = Integer.parseInt(uri.getQueryParameter(Constants.QUERY_PORT));
// options.mRoomName = uri.getQueryParameter(Constants.QUERY_ROOM);
// YGOStarter.startGame(getActivity(), options);
// YGOStarter.startGame(getActivity(), options, null);
// } catch (Exception e) {
// Toast.makeText(getActivity(), R.string.start_game_error, Toast.LENGTH_SHORT).show();
// activity.finish();
......
......@@ -23,7 +23,7 @@ public class LogoActivity extends Activity {
hideBottomUIMenu();
setContentView(R.layout.activity_logo);
if (AppsSettings.get().isOnlyGame()) {
YGOStarter.startGame(this, null);
YGOStarter.startGame(this, null, null);
finish();
return;
} else {
......
......@@ -473,7 +473,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
options.mUserName = serverInfo.getPlayerName();
options.mPort = serverInfo.getPort();
options.mRoomName = name;
YGOStarter.startGame(this, options);
YGOStarter.startGame(this, options, null);
}
protected abstract void checkResourceDownload(ResCheckTask.ResCheckListener listener);
......
......@@ -246,7 +246,7 @@ public class MainActivity extends HomeActivity {
@Override
protected void openGame() {
if (enableStart) {
YGOStarter.startGame(this, null);
YGOStarter.startGame(this, null, null);
} else {
VUiKit.show(this, R.string.dont_start_game);
}
......
......@@ -257,7 +257,7 @@ public class MyCard {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
YGOStarter.startGame(activity, options);
YGOStarter.startGame(activity, options, null);
}
});
} catch (Exception e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment