Skip to content

Commit e196f8b

Browse files
2dustAnGgIt886
authored andcommitted
Add HTTP protocol
1 parent f70cdcb commit e196f8b

File tree

20 files changed

+56
-20
lines changed

20 files changed

+56
-20
lines changed

app/src/main/kotlin/com/neko/v2ray/AppConfig.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ object AppConfig {
145145
const val CUSTOM = ""
146146
const val SHADOWSOCKS = "ss://"
147147
const val SOCKS = "socks://"
148+
const val HTTP = "http://"
148149
const val VLESS = "vless://"
149150
const val TROJAN = "trojan://"
150151
const val WIREGUARD = "wireguard://"

app/src/main/kotlin/com/neko/v2ray/dto/EConfigType.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ enum class EConfigType(val value: Int, val protocolScheme: String) {
1010
SOCKS(4, AppConfig.SOCKS),
1111
VLESS(5, AppConfig.VLESS),
1212
TROJAN(6, AppConfig.TROJAN),
13-
WIREGUARD(7, AppConfig.WIREGUARD);
13+
WIREGUARD(7, AppConfig.WIREGUARD),
14+
HTTP(10, AppConfig.HTTP);
1415

1516
companion object {
1617
fun fromInt(value: Int) = values().firstOrNull { it.value == value }

app/src/main/kotlin/com/neko/v2ray/dto/ServerConfig.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ data class ServerConfig(
3535
EConfigType.CUSTOM ->
3636
return ServerConfig(configType = configType)
3737

38-
EConfigType.SHADOWSOCKS, EConfigType.SOCKS, EConfigType.TROJAN ->
38+
EConfigType.SHADOWSOCKS,
39+
EConfigType.SOCKS,
40+
EConfigType.HTTP,
41+
EConfigType.TROJAN ->
3942
return ServerConfig(
4043
configType = configType,
4144
outboundBean = V2rayConfig.OutboundBean(

app/src/main/kotlin/com/neko/v2ray/dto/V2rayConfig.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ data class V2rayConfig(
137137

138138
data class ServersBean(
139139
var address: String = "",
140-
var method: String = "chacha20-poly1305",
140+
var method: String? = null,
141141
var ota: Boolean = false,
142-
var password: String = "",
142+
var password: String? = null,
143143
var port: Int = DEFAULT_PORT,
144144
var level: Int = DEFAULT_LEVEL,
145145
val email: String? = null,
@@ -425,6 +425,7 @@ data class V2rayConfig(
425425
return settings?.vnext?.get(0)?.address
426426
} else if (protocol.equals(EConfigType.SHADOWSOCKS.name, true)
427427
|| protocol.equals(EConfigType.SOCKS.name, true)
428+
|| protocol.equals(EConfigType.HTTP.name, true)
428429
|| protocol.equals(EConfigType.TROJAN.name, true)
429430
) {
430431
return settings?.servers?.get(0)?.address
@@ -441,6 +442,7 @@ data class V2rayConfig(
441442
return settings?.vnext?.get(0)?.port
442443
} else if (protocol.equals(EConfigType.SHADOWSOCKS.name, true)
443444
|| protocol.equals(EConfigType.SOCKS.name, true)
445+
|| protocol.equals(EConfigType.HTTP.name, true)
444446
|| protocol.equals(EConfigType.TROJAN.name, true)
445447
) {
446448
return settings?.servers?.get(0)?.port
@@ -465,7 +467,8 @@ data class V2rayConfig(
465467
|| protocol.equals(EConfigType.TROJAN.name, true)
466468
) {
467469
return settings?.servers?.get(0)?.password
468-
} else if (protocol.equals(EConfigType.SOCKS.name, true)) {
470+
} else if (protocol.equals(EConfigType.SOCKS.name, true)
471+
|| protocol.equals(EConfigType.HTTP.name, true)) {
469472
return settings?.servers?.get(0)?.users?.get(0)?.pass
470473
} else if (protocol.equals(EConfigType.WIREGUARD.name, true)) {
471474
return settings?.secretKey

app/src/main/kotlin/com/neko/v2ray/ui/MainActivity.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,11 @@ class MainActivity : BaseActivity(), NavigationView.OnNavigationItemSelectedList
413413
true
414414
}
415415

416+
R.id.import_manually_http -> {
417+
importManually(EConfigType.HTTP.value)
418+
true
419+
}
420+
416421
R.id.import_manually_trojan -> {
417422
importManually(EConfigType.TROJAN.value)
418423
true

app/src/main/kotlin/com/neko/v2ray/ui/ServerActivity.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ class ServerActivity : BaseActivity() {
144144
EConfigType.CUSTOM -> return
145145
EConfigType.SHADOWSOCKS -> setContentView(R.layout.activity_server_shadowsocks)
146146
EConfigType.SOCKS -> setContentView(R.layout.activity_server_socks)
147+
EConfigType.HTTP -> setContentView(R.layout.activity_server_socks)
147148
EConfigType.VLESS -> setContentView(R.layout.activity_server_vless)
148149
EConfigType.TROJAN -> setContentView(R.layout.activity_server_trojan)
149150
EConfigType.WIREGUARD -> setContentView(R.layout.activity_server_wireguard)
@@ -305,7 +306,9 @@ class ServerActivity : BaseActivity() {
305306
et_id.text = Utils.getEditable(outbound.getPassword().orEmpty())
306307
et_alterId?.text =
307308
Utils.getEditable(outbound.settings?.vnext?.get(0)?.users?.get(0)?.alterId.toString())
308-
if (config.configType == EConfigType.SOCKS) {
309+
if (config.configType == EConfigType.SOCKS
310+
|| config.configType == EConfigType.HTTP
311+
) {
309312
et_security?.text =
310313
Utils.getEditable(outbound.settings?.servers?.get(0)?.users?.get(0)?.user.orEmpty())
311314
} else if (config.configType == EConfigType.VLESS) {
@@ -460,7 +463,10 @@ class ServerActivity : BaseActivity() {
460463
}
461464
val config =
462465
MmkvManager.decodeServerConfig(editGuid) ?: ServerConfig.create(createConfigType)
463-
if (config.configType != EConfigType.SOCKS && TextUtils.isEmpty(et_id.text.toString())) {
466+
if (config.configType != EConfigType.SOCKS
467+
&& config.configType != EConfigType.HTTP
468+
&& TextUtils.isEmpty(et_id.text.toString())
469+
) {
464470
if (config.configType == EConfigType.TROJAN || config.configType == EConfigType.SHADOWSOCKS) {
465471
toast(R.string.server_lab_id3)
466472
} else {
@@ -533,7 +539,7 @@ class ServerActivity : BaseActivity() {
533539
if (config.configType == EConfigType.SHADOWSOCKS) {
534540
server.password = et_id.text.toString().trim()
535541
server.method = shadowsocksSecuritys[sp_security?.selectedItemPosition ?: 0]
536-
} else if (config.configType == EConfigType.SOCKS) {
542+
} else if (config.configType == EConfigType.SOCKS || config.configType == EConfigType.HTTP) {
537543
if (TextUtils.isEmpty(et_security?.text) && TextUtils.isEmpty(et_id.text)) {
538544
server.users = null
539545
} else {

app/src/main/kotlin/com/neko/v2ray/util/AngConfigManager.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ object AngConfigManager {
8787
EConfigType.CUSTOM -> ""
8888
EConfigType.SHADOWSOCKS -> ShadowsocksFmt.toUri(config)
8989
EConfigType.SOCKS -> SocksFmt.toUri(config)
90+
EConfigType.HTTP -> ""
9091
EConfigType.VLESS -> VlessFmt.toUri(config)
9192
EConfigType.TROJAN -> TrojanFmt.toUri(config)
9293
EConfigType.WIREGUARD -> WireguardFmt.toUri(config)

app/src/main/kotlin/com/neko/v2ray/util/V2rayConfigUtil.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,7 @@ object V2rayConfigUtil {
377377
val protocol = outbound.protocol
378378
if (protocol.equals(EConfigType.SHADOWSOCKS.name, true)
379379
|| protocol.equals(EConfigType.SOCKS.name, true)
380+
|| protocol.equals(EConfigType.HTTP.name, true)
380381
|| protocol.equals(EConfigType.TROJAN.name, true)
381382
|| protocol.equals(EConfigType.WIREGUARD.name, true)
382383
) {

app/src/main/res/menu/menu_main.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
android:id="@+id/import_manually_socks"
4242
android:title="@string/menu_item_import_config_manually_socks"
4343
app:showAsAction="never" />
44+
<item
45+
android:id="@+id/import_manually_http"
46+
android:title="@string/menu_item_import_config_manually_http"
47+
app:showAsAction="never" />
4448
<item
4549
android:id="@+id/import_manually_trojan"
4650
android:title="@string/menu_item_import_config_manually_trojan"

app/src/main/res/values-ar/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
<string name="menu_item_import_config_manually_vless">اكتب يدويًا[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">اكتب يدويًا[Shadowsocks]</string>
3030
<string name="menu_item_import_config_manually_socks">اكتب يدويًا[الجوارب]</string>
31-
<string name="menu_item_import_config_manually_trojan">اكتب يدويًا[حصان طروادة]</string>
31+
<string name="menu_item_import_config_manually_http">اكتب يدويًا[HTTP]</string>/
32+
<string name="menu_item_import_config_manually_trojan">اكتب يدويًا[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">اكتب يدويًا[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">التكوين المخصص</string>
3435
<string name="menu_item_import_config_custom_clipboard">استيراد التكوين المخصص من الحافظة</string>

app/src/main/res/values-fa/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
<string name="menu_item_import_config_manually_vmess">به صورت دستی تایپ کنید[Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">به صورت دستی تایپ کنید[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">تایپ دستی [Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">تایپ دستی [جوراب]</string>
30+
<string name="menu_item_import_config_manually_socks">تایپ دستی [Socks]</string>
31+
<string name="menu_item_import_config_manually_http">به صورت دستی تایپ کنید[HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">به صورت دستی تایپ کنید[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">به صورت دستی تایپ کنید[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">پیکربندی سفارشی</string>

app/src/main/res/values-in/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<string name="menu_item_import_config_manually_vless">Ketik secara manual[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Ketik secara manual[Shadowsocks]</string>
3030
<string name="menu_item_import_config_manually_socks">Ketik secara manual[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">Ketik secara manual[HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">Ketik secara manual[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Ketik secara manual[Wireguard ]</string>
3334
<string name="menu_item_import_config_custom">Config khusus</string>

app/src/main/res/values-ja/strings.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
<string name="menu_item_import_config_manually_vmess">手動で入力[Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">手動で入力[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">手動で入力[Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">手動で入力[靴下]</string>
31-
<string name="menu_item_import_config_manually_trojan">手動で入力[トロイの木馬]</string>
32-
<string name="menu_item_import_config_manually_wireguard">手動で入力[ワイヤーガード]</string>
30+
<string name="menu_item_import_config_manually_socks">手動で入力[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">手動で入力[HTTP]</string>
32+
<string name="menu_item_import_config_manually_trojan">手動で入力[Trojan]</string>
33+
<string name="menu_item_import_config_manually_wireguard">手動で入力[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">カスタム構成</string>
3435
<string name="menu_item_import_config_custom_clipboard">クリップボードからカスタム構成をインポートする</string>
3536
<string name="menu_item_import_config_custom_local">カスタム構成をローカルからインポートする</string>

app/src/main/res/values-jw/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<string name="menu_item_import_config_manually_vless">Ketik manual[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Ketik manual[Shadowsocks]</string>
3030
<string name="menu_item_import_config_manually_socks">Ketik manual[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">Ketik manual[HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">Ketik manual[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Ketik kanthi manual[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">Konfigurasi kustom</string>

app/src/main/res/values-ru/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727
<string name="menu_item_import_config_manually_vmess">Введите вручную [Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">Введите вручную[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Введите вручную[Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">Введите вручную [Носки]</string>
31-
<string name="menu_item_import_config_manually_trojan">Введите вручную [Троян]</string>
30+
<string name="menu_item_import_config_manually_socks">Введите вручную [Socks]</string>
31+
<string name="menu_item_import_config_manually_http">Введите вручную[HTTP]</string>
32+
<string name="menu_item_import_config_manually_trojan">Введите вручную [Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Введите вручную [Wireguard]</string>
3334
<string name="menu_item_import_config_custom">Пользовательская конфигурация</string>
3435
<string name="menu_item_import_config_custom_clipboard">Импортировать пользовательскую конфигурацию из буфера обмена</string>

app/src/main/res/values-su/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<string name="menu_item_import_config_manually_vless">Ketik sacara manual[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Ketik sacara manual[Shadowsocks]</string>
3030
<string name="menu_item_import_config_manually_socks">Ketik sacara manual[Kaos kaki]</string>
31+
<string name="menu_item_import_config_manually_http">Ketik secara manual[HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">Ketik sacara manual[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Ketik sacara manual[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">Konfigurasi custom</string>

app/src/main/res/values-vi/strings.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
<string name="menu_item_import_config_manually_vmess">Nhập thủ công [Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">Nhập thủ công[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Nhập thủ công [Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">Nhập thủ công [Tất]</string>
30+
<string name="menu_item_import_config_manually_socks">Nhập thủ công [Socks]</string>
31+
<string name="menu_item_import_config_manually_http">Nhập thủ công [HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">Nhập thủ công [Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Nhập thủ công [Wireguard]</string>
3334
<string name="menu_item_import_config_custom">Cấu hình tùy chỉnh</string>

app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727
<string name="menu_item_import_config_manually_vmess">手动输入[Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">手动输入[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">手动输入[Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">手动输入[袜子]</string>
31-
<string name="menu_item_import_config_manually_trojan">手动输入[木马]</string>
30+
<string name="menu_item_import_config_manually_socks">手动输入[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">手动输入[HTTP]</string>
32+
<string name="menu_item_import_config_manually_trojan">手动输入[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">手动输入[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">自定义配置</string>
3435
<string name="menu_item_import_config_custom_clipboard">从剪贴板导入自定义配置</string>

app/src/main/res/values-zh-rTW/strings.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727
<string name="menu_item_import_config_manually_vmess">手動輸入[Vmess]</string>
2828
<string name="menu_item_import_config_manually_vless">手動輸入[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">手動輸入[Shadowsocks]</string>
30-
<string name="menu_item_import_config_manually_socks">手動輸入[襪子]</string>
31-
<string name="menu_item_import_config_manually_trojan">手動輸入[木馬]</string>
30+
<string name="menu_item_import_config_manually_socks">手動輸入[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">手动输入[HTTP]</string>
32+
<string name="menu_item_import_config_manually_trojan">手動輸入[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">手動輸入[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">自訂配置</string>
3435
<string name="menu_item_import_config_custom_clipboard">從剪貼簿匯入自訂配置</string>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<string name="menu_item_import_config_manually_vless">Type manually[VLESS]</string>
2929
<string name="menu_item_import_config_manually_ss">Type manually[Shadowsocks]</string>
3030
<string name="menu_item_import_config_manually_socks">Type manually[Socks]</string>
31+
<string name="menu_item_import_config_manually_http">Type manually[HTTP]</string>
3132
<string name="menu_item_import_config_manually_trojan">Type manually[Trojan]</string>
3233
<string name="menu_item_import_config_manually_wireguard">Type manually[Wireguard]</string>
3334
<string name="menu_item_import_config_custom">Custom config</string>

0 commit comments

Comments
 (0)