mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2026-07-11 02:14:43 -06:00
Do not use username setting
This commit is contained in:
parent
d21fc62366
commit
51c3ad08f0
@ -76,7 +76,7 @@ class ChatDialog(context: Context) : BottomSheetDialog(context) {
|
||||
}
|
||||
|
||||
private fun sendMessage(message: String) {
|
||||
val username = NetPlayManager.getUsername(context)
|
||||
val username = NetPlayManager.getUsername()
|
||||
NetPlayManager.netPlaySendMessage(message)
|
||||
|
||||
val chatMessage = ChatMessage(
|
||||
|
||||
@ -123,7 +123,7 @@ class LobbyBrowser(context: Context) : BottomSheetDialog(context) {
|
||||
}
|
||||
|
||||
private fun joinRoom(room: NetPlayManager.RoomInfo, password: String) {
|
||||
val username = NetPlayManager.getUsername(context)
|
||||
val username = NetPlayManager.getUsername()
|
||||
|
||||
Thread {
|
||||
val result = NetPlayManager.netPlayJoinRoom(room.ip, room.port, username, password)
|
||||
|
||||
@ -102,6 +102,15 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) {
|
||||
dismiss()
|
||||
}
|
||||
btnLobbyBrowser.setOnClickListener {
|
||||
if (!NetPlayManager.isUsernameValid()) {
|
||||
Toast.makeText(
|
||||
it.context,
|
||||
it.context.getString(R.string.username_invalid),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
LobbyBrowser(context).show()
|
||||
dismiss()
|
||||
}
|
||||
@ -178,9 +187,9 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) {
|
||||
PopupMenu(view.context, view).apply {
|
||||
inflate(R.menu.menu_netplay_member)
|
||||
menu.findItem(R.id.action_kick).isEnabled =
|
||||
isModerator && netPlayItems.name != NetPlayManager.getUsername(context)
|
||||
isModerator && netPlayItems.name != NetPlayManager.getUsername()
|
||||
menu.findItem(R.id.action_ban).isEnabled =
|
||||
isModerator && netPlayItems.name != NetPlayManager.getUsername(context)
|
||||
isModerator && netPlayItems.name != NetPlayManager.getUsername()
|
||||
setOnMenuItemClickListener { item ->
|
||||
if (item.itemId == R.id.action_kick) {
|
||||
NetPlayManager.netPlayKickUser(netPlayItems.name)
|
||||
@ -322,7 +331,7 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) {
|
||||
}
|
||||
)
|
||||
binding.ipPort.setText(NetPlayManager.getRoomPort(activity))
|
||||
binding.username.setText(NetPlayManager.getUsername(activity))
|
||||
binding.username.setText(NetPlayManager.getUsername())
|
||||
|
||||
binding.dropdownPreferedGameName.apply {
|
||||
setAdapter(ArrayAdapter(activity, R.layout.dropdown_item, gameNameList.map { it[0] }))
|
||||
@ -341,7 +350,25 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) {
|
||||
context.getString(R.string.multiplayer_max_players_value, value.toInt())
|
||||
}
|
||||
|
||||
binding.username.setOnClickListener {
|
||||
Toast.makeText(
|
||||
it.context,
|
||||
it.context.getString(R.string.username_uses_system),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
true
|
||||
}
|
||||
|
||||
binding.btnConfirm.setOnClickListener {
|
||||
if (!NetPlayManager.isUsernameValid()) {
|
||||
Toast.makeText(
|
||||
it.context,
|
||||
it.context.getString(R.string.username_invalid),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
binding.btnConfirm.isEnabled = false
|
||||
binding.btnConfirm.text = activity.getString(R.string.disabled_button_text)
|
||||
|
||||
@ -404,7 +431,6 @@ class NetPlayDialog(context: Context) : BottomSheetDialog(context) {
|
||||
}
|
||||
|
||||
if (result == 0) {
|
||||
NetPlayManager.setUsername(activity, username)
|
||||
NetPlayManager.setRoomPort(activity, portStr)
|
||||
if (!isCreateRoom) NetPlayManager.setRoomAddress(activity, ipAddress)
|
||||
Toast.makeText(
|
||||
|
||||
@ -128,7 +128,6 @@ object SettingKeys {
|
||||
external fun udp_pad_index(): String
|
||||
external fun record_frame_times(): String
|
||||
external fun web_api_url(): String
|
||||
external fun network_username(): String
|
||||
external fun network_token(): String
|
||||
|
||||
// Android
|
||||
|
||||
@ -27,7 +27,6 @@ enum class StringSetting(
|
||||
"_back"
|
||||
),
|
||||
WEB_API_URL(SettingKeys.web_api_url(), Settings.SECTION_NETWORK, ""),
|
||||
NETWORK_USERNAME(SettingKeys.network_username(), Settings.SECTION_NETWORK, "Azahar"),
|
||||
NETWORK_TOKEN(SettingKeys.network_token(), Settings.SECTION_NETWORK, "");
|
||||
|
||||
override var string: String = defaultValue
|
||||
|
||||
@ -15,7 +15,6 @@ import android.text.TextUtils
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.citra.citra_emu.CitraApplication
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.display.ScreenLayout
|
||||
import org.citra.citra_emu.display.StereoMode
|
||||
@ -1762,7 +1761,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
|
||||
}
|
||||
}
|
||||
|
||||
private fun addNetworkSettings (sl: ArrayList<SettingsItem>) {
|
||||
private fun addNetworkSettings(sl: ArrayList<SettingsItem>) {
|
||||
settingsActivity.setToolbarTitle(settingsActivity.getString(R.string.preferences_network))
|
||||
sl.apply {
|
||||
add(
|
||||
@ -1771,7 +1770,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
|
||||
R.string.web_api_url,
|
||||
R.string.web_api_url_description,
|
||||
StringSetting.WEB_API_URL.key,
|
||||
StringSetting.WEB_API_URL.defaultValue,
|
||||
StringSetting.WEB_API_URL.defaultValue
|
||||
)
|
||||
)
|
||||
add(
|
||||
@ -1780,7 +1779,7 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
|
||||
R.string.network_token,
|
||||
R.string.network_token_description,
|
||||
StringSetting.NETWORK_TOKEN.key,
|
||||
StringSetting.NETWORK_TOKEN.defaultValue,
|
||||
StringSetting.NETWORK_TOKEN.defaultValue
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@ -76,6 +76,8 @@ object NetPlayManager {
|
||||
private var messageListener: ((Int, String) -> Unit)? = null
|
||||
private var adapterRefreshListener: ((Int, String) -> Unit)? = null
|
||||
|
||||
private val usernameRegex = Regex("^[a-zA-Z0-9._\\- ]{4,20}$")
|
||||
|
||||
fun setOnMessageReceivedListener(listener: (Int, String) -> Unit) {
|
||||
messageListener = listener
|
||||
}
|
||||
@ -129,16 +131,12 @@ object NetPlayManager {
|
||||
adapterRefreshListener = listener
|
||||
}
|
||||
|
||||
fun getUsername(activity: Context): String {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
val name = "Azahar${(Math.random() * 100).toInt()}"
|
||||
return prefs.getString("NetPlayUsername", name) ?: name
|
||||
fun getUsername(): String {
|
||||
SystemSaveGame.load()
|
||||
return SystemSaveGame.getUsername()
|
||||
}
|
||||
|
||||
fun setUsername(activity: Activity, name: String) {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
prefs.edit().putString("NetPlayUsername", name).apply()
|
||||
}
|
||||
fun isUsernameValid(): Boolean = getUsername().matches(usernameRegex)
|
||||
|
||||
fun getRoomAddress(activity: Activity): String {
|
||||
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
|
||||
@ -330,8 +330,7 @@ void Config::ReadValues() {
|
||||
|
||||
// Web Service
|
||||
ReadSetting("WebService", Settings::values.web_api_url);
|
||||
ReadSetting("WebService", Settings::values.citra_username);
|
||||
ReadSetting("WebService", Settings::values.citra_token);
|
||||
ReadSetting("WebService", Settings::values.network_token);
|
||||
}
|
||||
|
||||
void Config::Reload() {
|
||||
|
||||
@ -583,8 +583,7 @@ static const char* android_config_default_file_content = (BOOST_HANA_STRING(R"(
|
||||
[WebService]
|
||||
# URL for Web API
|
||||
)") DECLARE_KEY(web_api_url) BOOST_HANA_STRING(R"(
|
||||
# Username and token for Citra Web Service
|
||||
)") DECLARE_KEY(network_username) BOOST_HANA_STRING(R"(
|
||||
# Token for Web Service
|
||||
)") DECLARE_KEY(network_token) BOOST_HANA_STRING("\n")
|
||||
|
||||
).c_str();
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
|
||||
#include <chrono>
|
||||
#include <thread>
|
||||
#include <network/network_settings.h>
|
||||
#include "common/logging/log.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/service/cfg/cfg.h"
|
||||
@ -171,8 +170,8 @@ NetPlayStatus AndroidMultiplayer::NetPlayCreateRoom(const std::string& ipaddress
|
||||
return NetPlayStatus::CREATE_ROOM_ERROR;
|
||||
}
|
||||
|
||||
if (!room->Create(room_name, "", ipaddress, port, password, std::min(max_players, 16),
|
||||
NetSettings::values.citra_username, preferedGameName, preferedGameId,
|
||||
if (!room->Create(room_name, "", ipaddress, port, password, std::min(max_players, 16), username,
|
||||
preferedGameName, preferedGameId,
|
||||
std::make_unique<Network::VerifyUser::NullBackend>(), {})) {
|
||||
return NetPlayStatus::CREATE_ROOM_ERROR;
|
||||
}
|
||||
|
||||
@ -105,7 +105,7 @@ std::condition_variable running_cv;
|
||||
|
||||
std::string inserted_cartridge;
|
||||
|
||||
// Abdroid Multiplayer which can be initialized with parameters
|
||||
// Android Multiplayer which can be initialized with parameters
|
||||
std::unique_ptr<AndroidMultiplayer> multiplayer{nullptr};
|
||||
std::shared_ptr<Network::AnnounceMultiplayerSession> announce_multiplayer_session;
|
||||
|
||||
@ -1020,7 +1020,8 @@ Java_org_citra_citra_1emu_NativeLibrary_initMultiplayer(JNIEnv* env, [[maybe_unu
|
||||
return;
|
||||
}
|
||||
|
||||
announce_multiplayer_session = std::make_shared<Network::AnnounceMultiplayerSession>();
|
||||
announce_multiplayer_session = std::make_shared<Network::AnnounceMultiplayerSession>(
|
||||
Service::CFG::GetUsername(Core::System::GetInstance()));
|
||||
|
||||
multiplayer = std::make_unique<AndroidMultiplayer>(Core::System::GetInstance(),
|
||||
announce_multiplayer_session);
|
||||
|
||||
@ -56,7 +56,12 @@
|
||||
android:id="@+id/username"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text" />
|
||||
android:cursorVisible="false"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"
|
||||
android:inputType="text"
|
||||
android:longClickable="true"
|
||||
android:textIsSelectable="true" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
|
||||
@ -43,6 +43,8 @@
|
||||
<string name="web_api_url_description">Web API URL for public room functionality</string>
|
||||
<string name="network_token">Network Token</string>
|
||||
<string name="network_token_description">Token for public room functionality</string>
|
||||
<string name="username_uses_system">This property is linked to the 3DS system username.</string>
|
||||
<string name="username_invalid">Username is not valid. Must be 4 to 20 alphanumeric characters.</string>
|
||||
|
||||
<!-- GPU driver installation -->
|
||||
<string name="select_gpu_driver">Select GPU driver</string>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
// Copyright 2017 Citra Emulator Project
|
||||
// Copyright Citra Emulator Project / Azahar Emulator Project
|
||||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user