package com.rockchip.alexa.jacky.activity; import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.rockchip.alexa.jacky.R; import com.rockchip.alexa.jacky.adapter.BluListAdapter; import com.rockchip.alexa.jacky.app.Context; import com.rockchip.alexa.jacky.info.BluInfo; import com.rockchip.alexa.jacky.info.ProvisioningClient; import com.rockchip.alexa.jacky.listener.OnSingleClickListener; import com.rockchip.alexa.jacky.listener.OnSingleDialogListener; import com.rockchip.alexa.jacky.listener.OnSingleItemClickListener; import com.rockchip.alexa.jacky.utils.Env; import com.rockchip.alexa.jacky.views.LoadingView; import org.json.JSONException; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class BluListActivity extends Activity { public static final String TAG = "BluListActivity"; private ListView mListView; private TextView mBtnBack; private LoadingView mLoadingView; private List mBluList; private BluListAdapter mListAdapter; private long mInitialTime; private boolean mCompleted; private boolean mActivityStoped; private String mConnected; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_blu_list); initViews(); initGlobals(); initViewListeners(); } private void initViews() { mListView = (ListView) findViewById(R.id.blu_list); mBtnBack = (TextView) findViewById(R.id.toolbar_back); mLoadingView = new LoadingView(this, getResources().getString(R.string.dialog_loading)); } private void initGlobals() { } private void initViewListeners() { mListView.setOnItemClickListener(new OnSingleItemClickListener() { @Override protected void onSingleItemClick(final AdapterView adapterView, View view, final int position, long id) { new Thread(new Runnable() { @Override public void run() { final boolean result = ProvisioningClient.getProvisioningClient(BluListActivity.this).postBluSetupInfo(mBluList.get(position).getName(), mBluList.get(position).getAddr(), mConnected); runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(BluListActivity.this, result ? getResources().getString(R.string.request_send_success) : getResources().getString(R.string.request_send_fail), Toast.LENGTH_SHORT).show(); } }); } }).start(); } }); mBtnBack.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View v) { BluListActivity.this.finish(); } }); } @Override protected void onStart() { super.onStart(); mActivityStoped = false; if (!Env.isWifiEnable(this) || !Env.isWifiConnected(this) || !Env.getConnectingSSID(this).startsWith(Context.HOTSPOT_PREFIX)) { AlertDialog.Builder alert=new AlertDialog.Builder(BluListActivity.this); alert.setTitle(getResources().getString(R.string.title_prompt)); alert.setMessage(getResources().getString(R.string.device_not_connected)); alert.setPositiveButton(getResources().getString(R.string.confirm), new OnSingleDialogListener() { @Override protected void onSingleClick(View v) { BluListActivity.this.finish(); } }); alert.create(); alert.show(); } else { new Thread(new Runnable() { @Override public void run() { mLoadingView.show(); mInitialTime = SystemClock.uptimeMillis(); getBluList(); while (!mActivityStoped){ if (mCompleted) { return; } else if (!mCompleted && (SystemClock.uptimeMillis() - mInitialTime > 3000)) { } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } } }).start(); } } @Override protected void onResume() { super.onResume(); } @Override protected void onPause() { super.onPause(); } @Override protected void onStop() { super.onStop(); mActivityStoped = true; } @Override protected void onDestroy() { super.onDestroy(); } public void getBluList() { try { mBluList = ProvisioningClient.getProvisioningClient(this).getBluListInfo(); List paired = new ArrayList<>(); List scan = new ArrayList<>(); BluInfo bluConnected = null; for (int i=0; i 0) { mListView.setAdapter(mListAdapter); } } }); } catch (JSONException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }