Android: Add version, GitHub, Discord to app

This commit is contained in:
Connor McLaughlin 2020-12-07 01:07:13 +10:00
parent e579cd2eb2
commit ead1be4728
4 changed files with 54 additions and 0 deletions

View file

@ -793,6 +793,11 @@ DEFINE_JNI_ARGS_METHOD(jstring, AndroidHostInterface_getScmVersion, jobject unus
return env->NewStringUTF(g_scm_tag_str); return env->NewStringUTF(g_scm_tag_str);
} }
DEFINE_JNI_ARGS_METHOD(jstring, AndroidHostInterface_getFullScmVersion, jobject unused)
{
return env->NewStringUTF(SmallString::FromFormat("DuckStation for Android %s (%s)\nBuilt %s %s", g_scm_tag_str, g_scm_branch_str, __DATE__, __TIME__));
}
DEFINE_JNI_ARGS_METHOD(jobject, AndroidHostInterface_create, jobject unused, jobject context_object, DEFINE_JNI_ARGS_METHOD(jobject, AndroidHostInterface_create, jobject unused, jobject context_object,
jstring user_directory) jstring user_directory)
{ {

View file

@ -19,6 +19,7 @@ public class AndroidHostInterface {
private Context mContext; private Context mContext;
static public native String getScmVersion(); static public native String getScmVersion();
static public native String getFullScmVersion();
static public native AndroidHostInterface create(Context context, String userDirectory); static public native AndroidHostInterface create(Context context, String userDirectory);

View file

@ -1,6 +1,8 @@
package com.github.stenzek.duckstation; package com.github.stenzek.duckstation;
import android.Manifest; import android.Manifest;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
@ -170,6 +172,15 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(this, SettingsActivity.class); Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent); startActivity(intent);
return true; return true;
} else if (id == R.id.action_show_version) {
showVersion();
return true;
} else if (id == R.id.action_github_respository) {
openGithubRepository();
return true;
} else if (id == R.id.action_discord_server) {
openDiscordServer();
return true;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@ -377,4 +388,32 @@ public class MainActivity extends AppCompatActivity {
.create() .create()
.show(); .show();
} }
private void showVersion() {
final String message = AndroidHostInterface.getFullScmVersion();
new AlertDialog.Builder(this)
.setTitle("Version")
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
})
.setNeutralButton("Copy", (dialog, button) -> {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
if (clipboard != null)
clipboard.setPrimaryClip(ClipData.newPlainText("Version", message));
})
.create()
.show();
}
private void openGithubRepository() {
final String url = "https://github.com/stenzek/duckstation";
final Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);
}
private void openDiscordServer() {
final String url = "https://discord.gg/Buktv3t";
final Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);
}
} }

View file

@ -26,6 +26,15 @@
<item <item
android:id="@+id/action_import_bios" android:id="@+id/action_import_bios"
android:title="Import BIOS" /> android:title="Import BIOS" />
<item
android:id="@+id/action_show_version"
android:title="Show Version" />
<item
android:id="@+id/action_github_respository"
android:title="GitHub Repository" />
<item
android:id="@+id/action_discord_server"
android:title="Discord Server" />
</group> </group>
<item <item
android:id="@+id/action_settings" android:id="@+id/action_settings"