Skip to content

Commit

Permalink
v1.1
Browse files Browse the repository at this point in the history
Settings deleted.
Minor improvements.
  • Loading branch information
MrArashAzizi committed Jul 21, 2021
1 parent b4a25d0 commit ce08c52
Show file tree
Hide file tree
Showing 10 changed files with 88 additions and 159 deletions.
6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ android {
applicationId "github.arash.kotlin.proxychecker"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.1"

archivesBaseName = "ProxyChecker - v$versionCode"

Expand Down
11 changes: 0 additions & 11 deletions app/src/main/java/github/arash/kotlin/proxychecker/G.java

This file was deleted.

11 changes: 11 additions & 0 deletions app/src/main/java/github/arash/kotlin/proxychecker/G.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package github.arash.kotlin.proxychecker

class G {
companion object {
const val SaveCredential_SharedPreferencesKey: String = "SaveCredentialP"
const val ProxyAddress_SharedPreferencesKey = "ProxyAddressP"
const val PortNumber_SharedPreferencesKey = "PortNumberP"
const val Username_SharedPreferencesKey = "UsernameP"
const val Password_SharedPreferencesKey = "PasswordP"
}
}
165 changes: 61 additions & 104 deletions app/src/main/java/github/arash/kotlin/proxychecker/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,34 +1,31 @@
package github.arash.kotlin.proxychecker

import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Intent
import android.net.ConnectivityManager
import android.net.Uri
import android.os.Bundle
import android.os.StrictMode
import android.util.Log
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.*
import android.view.View.GONE
import android.view.View.VISIBLE
import android.widget.CompoundButton
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import com.androidnetworking.AndroidNetworking
import com.androidnetworking.error.ANError
import com.androidnetworking.interfaces.JSONObjectRequestListener
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
import com.google.android.material.snackbar.Snackbar
import github.arash.kotlin.proxychecker.databinding.ActivityMainBinding
import github.arash.kotlin.proxychecker.databinding.DesignSettingBtmBinding
import github.arash.kotlin.proxychecker.databinding.DesignTelegramInputDialogBinding
import okhttp3.OkHttpClient
import org.json.JSONObject
import java.lang.Exception
import java.net.Authenticator
import java.net.InetSocketAddress
import java.net.PasswordAuthentication
Expand All @@ -48,26 +45,15 @@ class MainActivity : AppCompatActivity() {
AndroidNetworking.initialize(this)
PreferenceHelper.initialize(this)

binding.ProxyAddress.setText(
PreferenceHelper.getInstance().getString(G.ProxyAddress_SharedPreferencesKey, "")
)
binding.ProxyPort.setText(
PreferenceHelper.getInstance().getString(G.PortNumber_SharedPreferencesKey, "")
)
binding.ProxyUsername.setText(
PreferenceHelper.getInstance().getString(G.Username_SharedPreferencesKey, "")
)
binding.ProxyPassword.setText(
PreferenceHelper.getInstance().getString(G.Password_SharedPreferencesKey, "")
)

PreferenceHelper.getInstance().getString(G.PortNumber_SharedPreferencesKey, "")
PreferenceHelper.getInstance().getString(G.Username_SharedPreferencesKey, "")
PreferenceHelper.getInstance().getString(G.Password_SharedPreferencesKey, "")


val connectivityManager: ConnectivityManager =
getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
StrictMode.setThreadPolicy(StrictMode.ThreadPolicy.Builder().permitAll().build())

//Enter data from SharedPreferences
binding.ProxyAddress.setText(PreferenceHelper.getInstance().getString(G.ProxyAddress_SharedPreferencesKey, ""))
binding.ProxyPort.setText(PreferenceHelper.getInstance().getString(G.PortNumber_SharedPreferencesKey, ""))
binding.ProxyUsername.setText(PreferenceHelper.getInstance().getString(G.Username_SharedPreferencesKey, ""))
binding.ProxyPassword.setText(PreferenceHelper.getInstance().getString(G.Password_SharedPreferencesKey, ""))

val connectivityManager: ConnectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_VPN)!!.isConnectedOrConnecting)
binding.vpnAlertTV.visibility = VISIBLE

Expand All @@ -79,36 +65,21 @@ class MainActivity : AppCompatActivity() {

//Proxy Type
if (binding.ProxyTypeToggleGroup.checkedButtonId == R.id.ProxyTypeHTTPS)
okHttpClient = OkHttpClient.Builder()
.proxy(
Proxy(
Proxy.Type.HTTP, InetSocketAddress(
binding.ProxyAddress.text.toString(),
binding.ProxyPort.text.toString().toInt()
)
)
).build()
okHttpClient = OkHttpClient.Builder().proxy(Proxy(Proxy.Type.HTTP,
InetSocketAddress(binding.ProxyAddress.text.toString(),
binding.ProxyPort.text.toString().toInt()))).build()
else
okHttpClient = OkHttpClient.Builder().proxy(
Proxy(
Proxy.Type.SOCKS, InetSocketAddress(
binding.ProxyAddress.text.toString(),
binding.ProxyPort.text.toString().toInt()
)
)
).build()
okHttpClient = OkHttpClient.Builder().proxy(Proxy(Proxy.Type.SOCKS,
InetSocketAddress(binding.ProxyAddress.text.toString(),
binding.ProxyPort.text.toString().toInt()))).build()

//Proxy Credential
Authenticator.setDefault(object : Authenticator() {
override fun getPasswordAuthentication(): PasswordAuthentication? {
if (requestingHost.equals(
binding.ProxyAddress.text.toString(),
)
) if (binding.ProxyPort.text.toString()
.toInt() == requestingPort
) return PasswordAuthentication(
binding.ProxyUsername.text.toString(),
binding.ProxyPassword.text.toString().toCharArray()
if (requestingHost.equals(binding.ProxyAddress.text.toString()))
if (requestingPort == binding.ProxyPort.text.toString().toInt())
return PasswordAuthentication(binding.ProxyUsername.text.toString(),
binding.ProxyPassword.text.toString().toCharArray()
)
return null
}
Expand Down Expand Up @@ -150,29 +121,33 @@ class MainActivity : AppCompatActivity() {
binding.ProgressBar.visibility = GONE
binding.StartTheTestButton.text = "Test The Proxy"
binding.StartTheTestButton.isEnabled = true
Snackbar.make(binding.root, "Connection failed", Snackbar.LENGTH_LONG)
.setAction("Copy info") {
val clipboard = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clip = ClipData.newPlainText("Copied Text", anError?.message.toString())
clipboard.setPrimaryClip(clip)
}.show()
}
})

PreferenceHelper.getInstance().setString(
G.ProxyAddress_SharedPreferencesKey,
binding.ProxyAddress.text.toString()
)
PreferenceHelper.getInstance()
.setString(G.PortNumber_SharedPreferencesKey, binding.ProxyPort.text.toString())
PreferenceHelper.getInstance().setString(G.ProxyAddress_SharedPreferencesKey, binding.ProxyAddress.text.toString())
PreferenceHelper.getInstance().setString(G.PortNumber_SharedPreferencesKey, binding.ProxyPort.text.toString())

if (PreferenceHelper.getInstance().getBoolean(G.SaveCredential_SharedPreferencesKey)) {
PreferenceHelper.getInstance()
.setString(
G.Username_SharedPreferencesKey,
binding.ProxyUsername.text.toString()
)
.setString(G.Username_SharedPreferencesKey, binding.ProxyUsername.text.toString())
PreferenceHelper.getInstance()
.setString(
G.Password_SharedPreferencesKey,
binding.ProxyPassword.text.toString()
)
.setString(G.Password_SharedPreferencesKey, binding.ProxyPassword.text.toString())
}
}

binding.SaveCredentialCheckBox.isChecked =
PreferenceHelper.getInstance().getBoolean(G.SaveCredential_SharedPreferencesKey)
binding.SaveCredentialCheckBox.setOnCheckedChangeListener { _, isChecked ->
PreferenceHelper.getInstance()
.setBoolean(G.SaveCredential_SharedPreferencesKey, isChecked)
}

}

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
Expand All @@ -184,58 +159,40 @@ class MainActivity : AppCompatActivity() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.Action_Github ->
startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("https://github.com/MrArashAzizi/Proxy-Checking-Tool")
)
)
R.id.Action_Setting -> settingBottomSheetDialog()
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(getString(R.string.github_address))))

R.id.Action_ImportTelegramProxy -> importTelegramProxy()
}
return super.onOptionsItemSelected(item)
}

private fun settingBottomSheetDialog() {
val settingBTM = BottomSheetDialog(this)
val inflater: LayoutInflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
val view: View = inflater.inflate(R.layout.design_setting_btm, null)
val settingBottomSheetBinding: DesignSettingBtmBinding =
DesignSettingBtmBinding.bind(view)

settingBottomSheetBinding.SettingSaveCredential.isChecked =
PreferenceHelper.getInstance().getBoolean(G.SaveCredential_SharedPreferencesKey)
settingBottomSheetBinding.SettingSaveCredential.setOnCheckedChangeListener { _, isChecked ->
PreferenceHelper.getInstance()
.setBoolean(G.SaveCredential_SharedPreferencesKey, isChecked)
}

settingBTM.setContentView(view)
settingBTM.behavior.state = BottomSheetBehavior.STATE_EXPANDED
settingBTM.show()
}

private fun importTelegramProxy() {
val inputDialog: AlertDialog = AlertDialog.Builder(this@MainActivity).create()
val inflater: LayoutInflater = getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
val view: View = inflater.inflate(R.layout.design_telegram_input_dialog, null)
val telegramProxyInputBinding: DesignTelegramInputDialogBinding =
DesignTelegramInputDialogBinding.bind(view)

telegramProxyInputBinding.btnOK.setOnClickListener {
try {

val myURI: Uri = Uri.parse(telegramProxyInputBinding.TelegramProxy.text.toString())
binding.ProxyAddress.setText(myURI.getQueryParameter("server").toString())
binding.ProxyPort.setText(myURI.getQueryParameter("port").toString())
telegramProxyInputBinding.TelegramProxy.requestFocus()
inputDialog.window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)

if (myURI.equals("username")) {
binding.ProxyUsername.setText(myURI.getQueryParameter("user").toString())
binding.ProxyPassword.setText(myURI.getQueryParameter("pass").toString())
telegramProxyInputBinding.btnOK.setOnClickListener {
if (telegramProxyInputBinding.TelegramProxy.text?.length!! < 5)
telegramProxyInputBinding.TelegramProxyLayout.error = "Enter the proxy"
else {
try {
val myURI: Uri =
Uri.parse(telegramProxyInputBinding.TelegramProxy.text.toString())
binding.ProxyAddress.setText(myURI.getQueryParameter("server").toString())
binding.ProxyPort.setText(myURI.getQueryParameter("port").toString())

if (myURI.equals("username")) {
binding.ProxyUsername.setText(myURI.getQueryParameter("user").toString())
binding.ProxyPassword.setText(myURI.getQueryParameter("pass").toString())
}
inputDialog.dismiss()
} catch (ex: Exception) {
}
inputDialog.dismiss()
} catch (ex: Exception) {
}
}
telegramProxyInputBinding.btnCancel.setOnClickListener { inputDialog.dismiss() }
Expand Down
8 changes: 7 additions & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,6 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:orientation="vertical"
app:passwordToggleEnabled="true">

Expand All @@ -195,6 +194,13 @@
android:textSize="17sp" />

</com.google.android.material.textfield.TextInputLayout>

<CheckBox
android:id="@+id/SaveCredentialCheckBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:text="Save Credential" />
</LinearLayout>

<com.google.android.material.button.MaterialButton
Expand Down
32 changes: 0 additions & 32 deletions app/src/main/res/layout/design_setting_btm.xml

This file was deleted.

2 changes: 0 additions & 2 deletions app/src/main/res/layout/design_telegram_input_dialog.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:layoutDirection="rtl"
android:orientation="vertical">

<LinearLayout
Expand Down Expand Up @@ -36,7 +35,6 @@
android:layout_height="wrap_content"
android:hint="Telegram Proxy"
android:singleLine="true"
android:text="Jack"
android:textColor="@color/black"
android:textCursorDrawable="@null"
android:textSize="17sp" />
Expand Down
7 changes: 0 additions & 7 deletions app/src/main/res/menu/toolbar_menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,4 @@
android:orderInCategory="100"
android:title="Github"
app:showAsAction="never" />

<item
android:id="@+id/Action_Setting"
android:icon="@drawable/ic_settings"
android:orderInCategory="100"
android:title="Setting"
app:showAsAction="never" />
</menu>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<resources>
<string name="app_name">ProxyChecker</string>
<string name="github_address" translatable="false">https://github.com/MrArashAzizi/ProxyChecker</string>
</resources>

0 comments on commit ce08c52

Please sign in to comment.