Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MainActivity : AppCompatActivity() , PlaceSelectionListener
- {
- companion object {
- private const val PLACE_PICKER_REQUEST = 1
- }
- /*Оперируемые переменные*/
- private var Provider_value:String = "Поставщик не выбран"
- private var Coal_value:String = "Уголь не выбран"
- private var Coal_price_value:Int = 0
- private var Coal_mass_value:Int = 0
- private var Address_value:String = ""
- private var Distance_value:Int = 0
- private var Delivery_price_value:Int = 0
- private var Total_price_value:Int = 0
- private var Start_ll:LatLng = LatLng(53.716, 91.429)
- private var End_ll: LatLng?=null
- private var Check: Boolean = false
- private var CheckArray: Boolean = true
- private var Provider_array = StartArray()
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- supportActionBar?.setDisplayHomeAsUpEnabled(true)
- initializeUI()
- }
- fun initializeUI() {
- val autocompleteFragment = fragmentManager.findFragmentById(R.id.autocomplete_fragment) as PlaceAutocompleteFragment
- autocompleteFragment.setOnPlaceSelectedListener(this)
- btnPickAddress.setOnClickListener { PlacePickerStart() }
- OneSpinnerContent(Provider_array)
- spinnerListener()
- MassTextListener()
- }
- override fun onPlaceSelected(p0: Place?) {
- if (p0 != null) {
- End_ll = p0.latLng
- Address_value = p0.address as String
- End_ll?.latitude?.let { End_ll?.longitude?.let { it1 -> LatLng(it, it1) } }?.let { urlRead(LatLng(Start_ll.latitude, Start_ll.longitude), it, "DRIVING") }
- }
- }
- override fun onError(p0: Status?) {
- TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
- }
- fun OneSpinnerContent(arg:Array<coalProvider>) {
- val adapter = ArrayAdapter<coalProvider>(applicationContext, android.R.layout.simple_spinner_item, arg)
- adapter.setDropDownViewResource(android.R.layout.simple_spinner_item)
- Provider_Vive_element_text.adapter = adapter
- }
- fun TwoSpinnerContent(Coal_array: Array<coalProvider.Coal>) {
- val adapterSpTwo = ArrayAdapter<coalProvider.Coal>(applicationContext, android.R.layout.simple_spinner_item, Coal_array)
- adapterSpTwo.setDropDownViewResource(android.R.layout.simple_spinner_item)
- Coal_Vive_element_text.adapter = adapterSpTwo
- }
- fun spinnerListener(){
- Provider_Vive_element_text.setOnTouchListener { v, event ->
- if (event.getAction() === MotionEvent.ACTION_UP) {
- if(CheckArray){
- Provider_array=arrayOfcoalProvider()
- OneSpinnerContent(Provider_array)
- CheckArray=false
- }
- }
- false
- }
- Provider_Vive_element_text.onItemSelectedListener = object: AdapterView.OnItemSelectedListener {
- override fun onItemSelected(parent:AdapterView<*>, view:View, position:Int, id:Long)
- {
- val spinner_one_selected_item:coalProvider = Provider_Vive_element_text.selectedItem as coalProvider
- spinner_one_selected_item.Provider_latlng?.let { Start_ll = it }
- spinner_one_selected_item.Provider_coal[0].Coal_price?.let { Coal_price_value = it }
- TwoSpinnerContent(spinner_one_selected_item.Provider_coal)
- Provider_value = spinner_one_selected_item.Provider_name.toString()
- if(End_ll !=null){
- End_ll?.latitude?.let { End_ll?.longitude?.let { it1 -> LatLng(it, it1) } }?.let { urlRead(LatLng(Start_ll.latitude, Start_ll.longitude), it, "DRIVING") }
- }
- resUpdate()
- /*Предзданное значение на первую позицию при смене поставщика*/
- OnPiceParceUpdate(spinner_one_selected_item.Provider_coal[0].Coal_price)
- }
- override fun onNothingSelected(parent:AdapterView<*>) {
- }
- }
- Coal_Vive_element_text.onItemSelectedListener = object: AdapterView.OnItemSelectedListener
- {
- override fun onItemSelected(parent:AdapterView<*>, view:View, position:Int, id:Long) {
- val spinner_two_selected_item:coalProvider.Coal = Coal_Vive_element_text.selectedItem as coalProvider.Coal
- spinner_two_selected_item.Coal_price?.let { Coal_price_value = it }
- Coal_value = spinner_two_selected_item.Coal_name.toString()
- resUpdate()
- Mass_price_Vive_element_text.text = Coal_price_value.toString()
- }
- override fun onNothingSelected(parent:AdapterView<*>) {
- }
- }
- }
- fun MassTextListener() {
- Coal_mass_Vive_element_text.addTextChangedListener(object: TextWatcher
- {
- override fun afterTextChanged(s: Editable) {}
- override fun beforeTextChanged(s:CharSequence, start:Int, count:Int, after:Int) {}
- override fun onTextChanged(s:CharSequence, start:Int, before:Int, count:Int)
- {
- if (s.isNotBlank()) {
- when (s.toString().toInt()) {
- 0 -> Coal_mass_Vive_element_text.setText("1")
- !in 1..40 -> Coal_mass_Vive_element_text.setText("40")
- }
- Coal_mass_value = Coal_mass_Vive_element_text.text.toString().toInt()
- resUpdate()
- }
- }
- })
- }
- fun PlacePickerStart() {
- val builder = PlacePicker.IntentBuilder()
- val latLng = LatLng(53.716, 91.429)
- builder.setLatLngBounds(LatLngBounds.builder().include(latLng).build())
- startActivityForResult(builder.build(this), PLACE_PICKER_REQUEST)
- }
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
- if (requestCode === PLACE_PICKER_REQUEST) {
- if (resultCode === AppCompatActivity.RESULT_OK) {
- val place = PlacePicker.getPlace(data, this)
- place.latLng?.let { End_ll = it }
- Address_value = place.address as String
- //urlRead(LatLng(0.0,0.0), LatLng(0.0,0.0),"DRIVING")
- End_ll?.latitude?.let { End_ll?.longitude?.let { it1 -> LatLng(it, it1) } }?.let { urlRead(LatLng(Start_ll.latitude, Start_ll.longitude), it, "DRIVING") }
- }
- }
- }
- fun urlRead (start: LatLng, end: LatLng, mode: String):LatLng {
- val url = ("http://maps.googleapis.com/maps/api/directions/json?"
- + "origin=" + start.latitude + "," + start.longitude
- + "&destination=" + end.latitude + "," + end.longitude
- + "&sensor=false&units=metric&mode=" + mode)
- url.httpGet().responseString { request, response, result ->
- when (result) {
- is Result.Failure -> {
- }
- is Result.Success -> {
- if(jsonParse(result.value).isNotBlank()){
- Distance_value = jsonParse(result.value).toInt() / 1000
- resUpdate()
- Distance_Vive_element_text.text=Distance_value.toString()
- }
- else{
- Toast.makeText(this, "Нет пути", Toast.LENGTH_SHORT).show()
- }
- }
- }
- }
- return end
- }
- fun jsonParse(res: String):String{
- println("Result: $res")
- val parser: Parser = Parser()
- val stringBuilder: StringBuilder = StringBuilder(res)
- val json: JsonObject = parser.parse(stringBuilder) as JsonObject
- var jojo = json.lookup<String?>("routes.legs.distance.value").value.toString()
- return jojo.replace("[", "").replace("]", "")
- }
- fun arrayOfcoalProvider(): Array<coalProvider> {
- val Provider_one = coalProvider("Разрез Аршановский", 0,LatLng(53.402971, 91.083748), Provider_coal = arrayOf(coalProvider.Coal("ДМСШ 0-25/1", 1500),coalProvider.Coal("ДО 25-50", 1700),coalProvider.Coal("ДПК 50-200", 1900),coalProvider.Coal("ДР 0-300 ", 1200)))
- val Provider_two = coalProvider("Разрез Белоярский", 1, LatLng(53.529799, 91.410684),Provider_coal = arrayOf(coalProvider.Coal("ДМСШ 0-25/2", 1501),coalProvider.Coal("ДО 25-50", 1701),coalProvider.Coal("ДПК 50-200", 1901),coalProvider.Coal("ДР 0-300 ", 1201)))
- val Provider_Three = coalProvider( "Разрез Черногорский", 2, LatLng(53.759367, 91.061604),Provider_coal = arrayOf(coalProvider.Coal("ДМСШ 0-25/3", 1502),coalProvider.Coal("ДО 25-50", 1702),coalProvider.Coal("ДПК 50-200", 1902),coalProvider.Coal("ДР 0-300 ", 1202)))
- val Provider_four = coalProvider( "Разрез Восточнобейский", 3, LatLng(53.326586, 91.361016),Provider_coal = arrayOf(coalProvider.Coal("ДМСШ 0-25/4", 1503),coalProvider.Coal("ДО 25-50", 1703),coalProvider.Coal("ДПК 50-200", 1903),coalProvider.Coal("ДР 0-300 ", 1203)))
- val Provider_Five = coalProvider( "Разрез Изыхский", 4, LatLng(53.630114, 91.436063),Provider_coal = arrayOf(coalProvider.Coal("ДМСШ 0-25/5", 1504),coalProvider.Coal("ДО 25-50", 1704),coalProvider.Coal("ДПК 50-200", 1904),coalProvider.Coal("ДР 0-300 ", 1204)))
- return arrayOf(Provider_one,Provider_two,Provider_Three,Provider_four,Provider_Five)
- }
- fun StartArray(): Array<coalProvider> {
- val Provider_Start = coalProvider("Выюерите поставщика", 0,LatLng(0.0, 0.0), Provider_coal = arrayOf(coalProvider.Coal("Поставщик не выбран", null)))
- return arrayOf(Provider_Start)
- }
- fun resUpdate(){
- if(Address_value.isNotBlank()){
- findViewById<EditText>(R.id.place_autocomplete_search_input).setText(Address_value)
- }
- if(Distance_value != 0 && Coal_mass_value != 0){
- when (Coal_mass_value) {
- in 1..3 -> Delivery_price_value =(Distance_value * 10)
- in 4..7 -> Delivery_price_value =(Distance_value * 15)
- in 8..20 -> Delivery_price_value =(Distance_value * 35)
- in 21..40 -> Delivery_price_value =(Distance_value * 80)
- else -> 0f
- }
- Delivery_price_Vive_element_text.text=Delivery_price_value.toString()
- }
- if(Coal_mass_value!=0 && Distance_value!=0 && Coal_price_value!=0){
- Total_price_value = Coal_mass_value * Coal_price_value + Delivery_price_value
- Total_price_Vive_element_text.text = Total_price_value.toString()
- Check = true
- }
- }
- fun OnPiceParceUpdate(PriceValue: Int?){
- Mass_price_Vive_element_text.text = PriceValue.toString()
- }
- fun sendMessage(view:View) {
- resUpdate()
- if(Check){
- val intent = Intent(this, miActivity::class.java)
- intent.putExtra(Provider.t, Provider_value.toString())
- intent.putExtra(Coal.t, Coal_value.toString())
- intent.putExtra(Coal_price.t, Coal_price_value.toString())
- intent.putExtra(Coal_mass.t, Coal_mass_value.toString())
- intent.putExtra(Address.t, Address_value.toString())
- intent.putExtra(Delivery_price.t, Delivery_price_value.toString())
- intent.putExtra(Distance.t, Distance_value.toString())
- intent.putExtra(Total_price.t, Total_price_value.toString())
- startActivity(intent)
- }
- }
- }
- class miActivity : AppCompatActivity() {
- private var PLC: Int? =null
- private var Status:String =""
- private var Login: String= "_________"
- private var pass: String="___________"
- private var PhoneNumProvider: Long = 79131816542
- private var PhoneNumUser: String = ""
- private var Provider_value :String= ""
- private var Coal_value :String= ""
- private var Coal_price_value :String= ""
- private var Coal_mass_value :String= ""
- private var Address_value :String= ""
- private var Delivery_price_value :String= ""
- private var Distance_value :String= ""
- private var Total_price_value :String= ""
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.missage)
- val intent = intent
- Provider_value = intent.getStringExtra(Provider.t)
- Coal_value = intent.getStringExtra(Coal.t)
- Coal_price_value = intent.getStringExtra(Coal_price.t)
- Coal_mass_value = intent.getStringExtra(Coal_mass.t)
- Address_value = intent.getStringExtra(Address.t)
- Delivery_price_value = intent.getStringExtra(Delivery_price.t)
- Distance_value = intent.getStringExtra(Distance.t)
- Total_price_value = intent.getStringExtra(Total_price.t)
- bindVive()
- alDig()
- phoneNum()
- }
- fun alDig(){
- Order_Button_element.setOnClickListener {
- Show_Alert()
- }
- }
- private fun Show_Alert() {
- alert("Вы уверенны что хотите совершить заказ? ","Подтверждение заказа") {
- positiveButton("Да") {
- toast("You clicked on YES")
- PLC = callNumber(VerificationCode())
- println(PLC.toString())
- VerCode()
- }
- negativeButton("Нет") {
- toast("You clicked on NO")
- }
- }.show()
- }
- fun callNumber (code:Int): Int {
- val url = ("https://smsc.ru/sys/send.php?"
- + "login=" + "$Login"
- + "&psw=" + "$pass"
- + "&phones=" + "$PhoneNumUser"
- +"&mes="+"$code")
- url.httpGet().responseString { request, response, result ->
- when (result) {
- is Result.Failure -> {
- }
- is Result.Success -> {
- }
- }
- }
- return code
- }
- private fun VerCode() {
- alert {
- customView {
- verticalLayout {
- //Dialog Title
- toolbar {
- lparams(width = matchParent, height = wrapContent)
- title = "Код подтверждение"
- }
- val task = editText {
- hint = "Code hire "
- padding = dip(20)
- }
- positiveButton("Подтвердить") {
- if(task.text.toString() == PLC.toString() ){
- sendMissage()
- Status="Успешно"
- }
- else{
- Status="Введен не верный код"
- }
- alert("$Status","Подтверждение заказа") {
- positiveButton("Закрыть") {
- }
- }.show()
- }
- }
- }
- }.show()
- }
- fun VerificationCode(): Int {
- fun Random.nextInt(range: IntRange): Int {
- return range.start + nextInt(range.last - range.start)
- }
- val random = Random()
- val verificationCode = random.nextInt(10000..999999)
- return verificationCode
- }
- fun sendMissage (): Int {
- val url = ("https://smsc.ru/sys/send.php?"
- + "login=" + "$Login"
- + "&psw=" + "$pass"
- + "&phones=" + "$PhoneNumProvider"
- +"&mes="+"" +
- "Поставщик $Provider_valuen" +
- "Уголь $Coal_valuen" +
- "Цена $Coal_price_valuen" +
- "Масс $Coal_mass_valuen" +
- "Адрес $Address_valuen" +
- "Цена доставки $Delivery_price_valuen" +
- "Дистанция $Distance_valuen" +
- "Общая стоимость $Total_price_value")+"&charset="+"utf-8"
- url.httpGet().responseString { request, response, result ->
- when (result) {
- is Result.Failure -> {
- }
- is Result.Success -> {
- }
- }
- }
- return end
- }
- fun phoneNum(){
- Phone_number_Vive_element_text.addTextChangedListener(object : TextWatcher {
- override fun afterTextChanged(p0: Editable?) {}
- override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {}
- override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
- val p0 = p0.toString()
- PhoneNumUser = Phone_number_Vive_element_text.text.toString()
- }
- })
- }
- fun bindVive(){
- Provider_Vive_element_text.text = Provider_value
- Coal_Vive_element_text.text = Coal_value
- Mass_price_Vive_element.text = Coal_price_value
- Coal_mass_Vive_element_text.text = Coal_mass_value
- Address_Vive_element_text.text = Address_value
- Distance_Vive_element_text.text = Distance_value
- Delivery_price_Vive_element_text.text = Delivery_price_value
- Total_price_Vive_element_text.text = Total_price_value
- }
- }
Add Comment
Please, Sign In to add comment