mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-13 09:35:23 -04:00
Add broken support for auto sharing screenshots taken on android
This commit is contained in:
parent
fe44fb336d
commit
2cdd20b4ae
@ -465,6 +465,23 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
|
|||||||
// wait for dialog to be closed
|
// wait for dialog to be closed
|
||||||
// TODO: this fails because multiple dialog boxes show
|
// TODO: this fails because multiple dialog boxes show
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String shareScreenshot(String path) {
|
||||||
|
try {
|
||||||
|
File file = new File(getExternalAppDir() + path);
|
||||||
|
Intent intent = new Intent();
|
||||||
|
|
||||||
|
intent.setAction(Intent.ACTION_SEND);
|
||||||
|
intent.putExtra(Intent.EXTRA_TEXT, "Check out my app.");
|
||||||
|
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
|
||||||
|
intent.setType("image/png");
|
||||||
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||||
|
startActivity(Intent.createChooser(intent, "share via"));
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return ex.toString();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
// ======================================
|
// ======================================
|
||||||
// ---------------- HTTP ----------------
|
// ---------------- HTTP ----------------
|
||||||
|
10
src/Game.c
10
src/Game.c
@ -568,8 +568,16 @@ void Game_TakeScreenshot(void) {
|
|||||||
|
|
||||||
res = stream.Close(&stream);
|
res = stream.Close(&stream);
|
||||||
if (res) { Logger_Warn2(res, "closing", &path); return; }
|
if (res) { Logger_Warn2(res, "closing", &path); return; }
|
||||||
|
|
||||||
Chat_Add1("&eTaken screenshot as: %s", &filename);
|
Chat_Add1("&eTaken screenshot as: %s", &filename);
|
||||||
|
|
||||||
|
#ifdef CC_BUILD_ANDROID
|
||||||
|
filename.length = 0;
|
||||||
|
JavaCall_String_String("shareScreenshot", &path, &filename);
|
||||||
|
if (!filename.length) return;
|
||||||
|
|
||||||
|
Chat_AddRaw("&cError sharing screenshot");
|
||||||
|
Chat_Add1(" &c%s", &filename);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1938,21 +1938,36 @@ void JavaCall_String_Void(const char* name, const String* value) {
|
|||||||
(*env)->DeleteLocalRef(env, args[0].l);
|
(*env)->DeleteLocalRef(env, args[0].l);
|
||||||
}
|
}
|
||||||
|
|
||||||
void JavaCall_Void_String(const char* name, String* dst) {
|
static void ReturnString(JNIEnv* env, jobject obj, String* dst) {
|
||||||
const jchar* src;
|
const jchar* src;
|
||||||
jsize len;
|
jsize len;
|
||||||
|
if (!obj) return;
|
||||||
|
|
||||||
|
src = (*env)->GetStringChars(env, obj, NULL);
|
||||||
|
len = (*env)->GetStringLength(env, obj);
|
||||||
|
String_AppendUtf16(dst, src, len * 2);
|
||||||
|
(*env)->ReleaseStringChars(env, obj, src);
|
||||||
|
(*env)->DeleteLocalRef(env, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
void JavaCall_Void_String(const char* name, String* dst) {
|
||||||
JNIEnv* env;
|
JNIEnv* env;
|
||||||
jobject obj;
|
jobject obj;
|
||||||
JavaGetCurrentEnv(env);
|
JavaGetCurrentEnv(env);
|
||||||
|
|
||||||
obj = JavaCallObject(env, name, "()Ljava/lang/String;", NULL);
|
obj = JavaCallObject(env, name, "()Ljava/lang/String;", NULL);
|
||||||
if (!obj) return;
|
ReturnString(env, obj, dst);
|
||||||
|
}
|
||||||
|
|
||||||
src = (*env)->GetStringChars(env, obj, NULL);
|
void JavaCall_String_String(const char* name, const String* arg, String* dst) {
|
||||||
len = (*env)->GetStringLength(env, obj);
|
JNIEnv* env;
|
||||||
String_AppendUtf16(dst, src, len * 2);
|
jobject obj;
|
||||||
|
jvalue args[1];
|
||||||
|
JavaGetCurrentEnv(env);
|
||||||
|
|
||||||
(*env)->ReleaseStringChars(env, obj, src);
|
args[0].l = JavaMakeString(env, arg);
|
||||||
(*env)->DeleteLocalRef(env, obj);
|
obj = JavaCallObject(env, name, "(Ljava/lang/String;)Ljava/lang/String;", args);
|
||||||
|
ReturnString(env, obj, dst);
|
||||||
|
(*env)->DeleteLocalRef(env, args[0].l);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -258,5 +258,7 @@ jobject JavaCallObject(JNIEnv* env, const char* name, const char* sig, jvalue* a
|
|||||||
void JavaCall_String_Void(const char* name, const String* value);
|
void JavaCall_String_Void(const char* name, const String* value);
|
||||||
/* Calls a method in the activity class that takes no arguments and returns a string. */
|
/* Calls a method in the activity class that takes no arguments and returns a string. */
|
||||||
void JavaCall_Void_String(const char* name, String* dst);
|
void JavaCall_Void_String(const char* name, String* dst);
|
||||||
|
/* Calls a method in the activity class that takes a string and returns a string. */
|
||||||
|
void JavaCall_String_String(const char* name, const String* arg, String* dst);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user