package com.project.fplus.fplusapp.Fragment import android.content.ContentValues.TAG import android.content.Context import android.os.AsyncTask import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import com.project.fplus.fplusapp.Adapter.ListOrderAdapter import com.project.fplus.fplusapp.Model.OrderItem import com.project.fplus.fplusapp.Model.UserManager import com.project.fplus.fplusapp.R import kotlinx.android.synthetic.main.view_fragment_order.* import okhttp3.MultipartBody import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.Response import org.json.JSONArray import org.json.JSONException import java.io.IOException /** * Created by todsapon on 3/23/2017 AD. */ class FragmentOrder : Fragment() { private var mOrderList = ArrayList() private var cono:String?=null private var cuname:String?=null private var amount:String?=null private var date_time:String?=null private var status:String?=null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) retainInstance = true } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = inflater.inflate(R.layout.view_fragment_order, container, false) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) var jsonArray = JSONArray(OrderAsyncTask(requireContext()).execute(0).get()) try { for (jsonIndex in 0..(jsonArray.length() - 1)) { cono = jsonArray.getJSONObject(jsonIndex).getString("cono") cuname = jsonArray.getJSONObject(jsonIndex).getString("cuno")+": "+jsonArray.getJSONObject(jsonIndex).getString("CUS_NAME") amount = jsonArray.getJSONObject(jsonIndex).getString("price") status = jsonArray.getJSONObject(jsonIndex).getString("sts") date_time = jsonArray.getJSONObject(jsonIndex).getString("orderdate") mOrderList.add(OrderItem(amount!!,status!!,cono!!,OrderItem.DetailCustomer(cuname!!,date_time!!))) } rc_list_order.apply { layoutManager = LinearLayoutManager(requireContext()!!) adapter = ListOrderAdapter(mOrderList,requireContext()!!) setHasFixedSize(true) } } catch (e: JSONException) { //Toast.makeText(context,"NULL DATA", Toast.LENGTH_SHORT).show() Log.e(TAG, "" + e.localizedMessage) } } override fun onDestroyView() { super.onDestroyView() mOrderList.clear() Log.i(TAG, "clear : " +mOrderList.size ) } companion object { class OrderAsyncTask internal constructor(var context: Context) : AsyncTask() { private var resp: String? = null private val DF_PORT = "http://58.181.206.159:9814" private var MAIN_URL = DF_PORT + "/FplusProject/index.php/JsonMobile/getOrder" private var mManager: UserManager? = null override fun onPreExecute() { } override fun doInBackground(vararg params: Int?): String? { var response: Response? mManager = UserManager(context) try { val requestBody = MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("itemArea", mManager!!.area.toString().trim()) .build() val client = OkHttpClient() val request = Request.Builder() .url(MAIN_URL) .post(requestBody) .build() response = client.newCall(request).execute() resp = response.body()!!.string() publishProgress(resp) } catch (e: IOException) { Log.e(TAG, "" + e.localizedMessage) } catch (e: JSONException) { Log.e(TAG, "" + e.localizedMessage) } return resp } override fun onPostExecute(result: String?) { } override fun onProgressUpdate(vararg text: String?) { //Toast.makeText(context, text.firstOrNull(), Toast.LENGTH_SHORT).show() } } } }