json testing

This commit is contained in:
X1nto 2020-05-20 18:33:53 +04:00
parent dab09b1ce7
commit 6ebe6e4987
5 changed files with 102 additions and 30 deletions

File diff suppressed because one or more lines are too long

View File

@ -73,6 +73,7 @@ dependencies {
implementation 'androidx.navigation:navigation-ui-ktx:2.2.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.github.ssseasonnn.RxDownload:rxdownload4:1.0.9'
implementation 'com.github.100rabhkr:GetJSON:1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

View File

@ -9,6 +9,8 @@ import android.widget.Button
import android.widget.ImageView
import android.widget.TextView
import androidx.navigation.findNavController
import com.dezlum.codelabs.getjson.GetJson
import com.google.gson.JsonObject
import com.vanced.manager.R
import com.vanced.manager.core.base.BaseFragment
@ -38,6 +40,20 @@ open class Home : BaseFragment() {
val microgStatus = pm?.let { isPackageInstalled("com.mgoogle.android.gms", it) }
val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it) }
val vancedLatestTxt = view.findViewById<TextView>(R.id.vanced_latest_version)
val microgLatestTxt = view.findViewById<TextView>(R.id.vanced_latest_version)
if (GetJson().isConnected(requireContext())) {
val vancedVer: JsonObject = GetJson().AsJSONObject("https://github.com/X1nto/VancedFiles/blob/master/vanced.json")
val microgVer: JsonObject = GetJson().AsJSONObject("https://github.com/X1nto/VancedFiles/blob/master/microg.json")
vancedLatestTxt.text = vancedVer.get("version").asString
microgLatestTxt.text = microgVer.get("version").asString
} else {
vancedLatestTxt.text = getString(R.string.unavailable)
microgLatestTxt.text = getString(R.string.unavailable)
}
vancedinstallbtn.setOnClickListener {
view.findNavController().navigate(R.id.toInstallThemeFragment)
}

View File

@ -10,6 +10,7 @@ import android.os.Bundle
import android.view.*
import androidx.core.animation.addListener
import androidx.viewpager2.widget.ViewPager2
import com.dezlum.codelabs.getjson.GetJson
import com.google.android.material.card.MaterialCardView
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
@ -34,7 +35,8 @@ class HomeFragment : Home() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
connectionStatus()
//connectionStatus()
checkNetwork()
super.onViewCreated(view, savedInstanceState)
@ -57,7 +59,48 @@ class HomeFragment : Home() {
super .onCreateOptionsMenu(menu, inflater)
}
private var networkCallback = object: ConnectivityManager.NetworkCallback() {
private fun checkNetwork() {
if (!GetJson().isConnected(requireContext())) {
activity?.runOnUiThread {
val networkErrorLayout = view?.findViewById<MaterialCardView>(R.id.home_network_wrapper)
val oa2 = ObjectAnimator.ofFloat(networkErrorLayout, "yFraction", -1f, 0.3f)
val oa3 = ObjectAnimator.ofFloat(networkErrorLayout, "yFraction", 0.3f, 0f)
oa2.apply {
oa2.addListener(onStart = {
networkErrorLayout?.visibility = View.VISIBLE
})
start()
}
oa3.start()
}
} else {
activity?.runOnUiThread {
val networkErrorLayout = view?.findViewById<MaterialCardView>(R.id.home_network_wrapper)
val oa2 = ObjectAnimator.ofFloat(networkErrorLayout, "yFraction", 0f, 0.3f)
val oa3 = ObjectAnimator.ofFloat(networkErrorLayout, "yFraction", 0.3f, -1f)
oa2.start()
oa3.apply {
oa3.addListener(onEnd = {
networkErrorLayout?.visibility = View.GONE
})
start()
}
}
}
}
/*private var networkCallback = object: ConnectivityManager.NetworkCallback() {
override fun onLost(network: Network) {
super.onLost(network)
@ -114,7 +157,7 @@ class HomeFragment : Home() {
connectivityManager.unregisterNetworkCallback(networkCallback)
} catch (e: Exception) {}
connectivityManager.registerNetworkCallback(networkRequest, networkCallback)
}
}*/
}

View File

@ -12,6 +12,8 @@ import android.widget.Button
import android.widget.ProgressBar
import android.widget.TextView
import androidx.fragment.app.DialogFragment
import com.dezlum.codelabs.getjson.GetJson
import com.vanced.manager.BuildConfig
import com.vanced.manager.R
import io.reactivex.android.schedulers.AndroidSchedulers
@ -43,36 +45,45 @@ class UpdateCheckFragment : DialogFragment() {
closebtn.setOnClickListener { dismiss() }
recheckbtn.visibility = View.GONE
checkingTxt.text = "Update Found!"
loadCircle.visibility = View.GONE
if (GetJson().isConnected(requireContext())) {
val checkUrl = GetJson().AsJSONObject("https://github.com/X1nto/VancedFiles/blob/master/manager.json")
val remoteVersion = checkUrl.get("versionCode").asInt
updatebtn.setOnClickListener {
val url =
"https://github.com/X1nto/VancedFiles/blob/master/release.apk"
url.download()
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onNext = { progress ->
loadBar.visibility = View.VISIBLE
loadBar.progress =
"${progress.downloadSizeStr()}/${progress.totalSizeStr()}".toInt()
},
onComplete = {
val apk = url.file()
val uri = Uri.fromFile(apk)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
startActivity(intent)
},
onError = {
checkingTxt.text = "Something went wrong"
}
)
}
if (remoteVersion > BuildConfig.VERSION_CODE) {
recheckbtn.visibility = View.GONE
checkingTxt.text = "Update Found!"
loadCircle.visibility = View.GONE
updatebtn.setOnClickListener {
val url =
"https://github.com/X1nto/VancedFiles/blob/master/release.apk"
url.download()
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onNext = { progress ->
loadBar.visibility = View.VISIBLE
loadBar.progress =
"${progress.downloadSizeStr()}/${progress.totalSizeStr()}".toInt()
},
onComplete = {
val apk = url.file()
val uri = Uri.fromFile(apk)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
startActivity(intent)
},
onError = {
checkingTxt.text = "Something went wrong"
}
)
}
} else {
checkingTxt.text = "No updates found"
}
} else checkingTxt.text = "No connection"
}