package com.rockchip.alexa.jacky.activity; import android.app.Activity; import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; import android.os.SystemClock; import android.support.v7.widget.Toolbar; import android.text.method.HideReturnsTransformationMethod; import android.text.method.PasswordTransformationMethod; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.rockchip.alexa.jacky.R; import com.rockchip.alexa.jacky.app.AuthManager; import com.rockchip.alexa.jacky.app.BaseApplication; import com.rockchip.alexa.jacky.app.Context; import com.rockchip.alexa.jacky.info.ProvisioningClient; import com.rockchip.alexa.jacky.info.WifiInfo; import com.rockchip.alexa.jacky.listener.OnSingleClickListener; import com.rockchip.alexa.jacky.listener.OnSingleDialogListener; import com.rockchip.alexa.jacky.utils.Env; import com.rockchip.alexa.jacky.utils.SharedPreference; import com.rockchip.alexa.jacky.views.LoadingView; import org.json.JSONException; import java.io.IOException; /** * Created by Administrator on 2017/4/7. */ public class WifiInputActivity extends Activity { private static final String TAG = "WifiInputFragment"; private LoadingView mLoadingView; private Toolbar mToolbar; private TextView mWifiSSID, mConfirm; private TextView mToolbarBack; private ImageView mWifiPwdLock; private boolean mShowPwd; private EditText mWifiPwd; private boolean mSmartConfiged; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wifi_input); Intent intent = getIntent(); final String ssid = intent.getStringExtra("ssid"); mToolbar = (Toolbar) findViewById(R.id.toolbar); mToolbarBack = (TextView) findViewById(R.id.toolbar_back); mToolbarBack.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View view) { WifiInputActivity.this.finish(); } }); mWifiSSID = (TextView) findViewById(R.id.frag_wifi_input_ssid); mWifiSSID.setText(ssid); mWifiPwdLock = (ImageView) findViewById(R.id.frag_wifi_input_lock); mWifiPwd = (EditText) findViewById(R.id.frag_wifi_input_pwd); if (!SharedPreference.getString(ssid, "").equals("")) { mWifiPwd.setText(SharedPreference.getString(ssid, "")); } mConfirm = (TextView) findViewById(R.id.frag_wifi_input_confirm); mConfirm.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View v) { if (!Env.isWifiEnable(WifiInputActivity.this) || !Env.isWifiConnected(WifiInputActivity.this) || !Env.getConnectingSSID(WifiInputActivity.this).startsWith(Context.HOTSPOT_PREFIX)) { Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.device_not_connected), Toast.LENGTH_SHORT).show(); return; } String pwd = mWifiPwd.getText().toString(); if (pwd == null || pwd.length() < 8) { Toast.makeText(BaseApplication.getApplication(), getResources().getString(R.string.error_pwd), Toast.LENGTH_SHORT).show(); } else { SharedPreference.putString(ssid, mWifiPwd.getText().toString()); if (mLoadingView != null && !mLoadingView.isShowing()) { runOnUiThread(new Runnable() { @Override public void run() { mLoadingView.show(); mSmartConfiged = false; new Thread(new Runnable() { @Override public void run() { try { boolean result = false; if (!BaseApplication.getApplication().isSetupWifi()) { if (SystemClock.uptimeMillis() - BaseApplication.getApplication().getAuthorizeTime() > 100 * 1000) { runOnUiThread(new Runnable() { @Override public void run() { mLoadingView.dismiss(); Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.author_info_expire), Toast.LENGTH_SHORT).show(); } }); return; } result = ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postCompanionProvisioningInfo(AuthManager.getAuthManager().getCompanionProvisioningInfo());//ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postWifiSetupInfo(ssid, mWifiPwd.getText().toString().trim()); if (result) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.author_info_send_success), Toast.LENGTH_SHORT).show(); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { AlertDialog.Builder alert=new AlertDialog.Builder(WifiInputActivity.this); alert.setTitle(getResources().getString(R.string.title_prompt)); alert.setMessage(getResources().getString(R.string.if_continue_setup_wifi_after_fail)); alert.setPositiveButton(getResources().getString(R.string.confirm), new OnSingleDialogListener() { @Override protected void onSingleClick(View v) { boolean result1 = ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postWifiSetupInfo(ssid, mWifiPwd.getText().toString().trim(), true); if (result1) { mSmartConfiged = true; runOnUiThread(new Runnable() { @Override public void run() { mLoadingView.dismiss(); Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.wifi_send_success), Toast.LENGTH_SHORT).show(); // ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postWifiSetupInfo(ssid, mWifiPwd.getText().toString().trim(), true); } }); } else { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.wifi_send_fail), Toast.LENGTH_SHORT).show(); } }); } } }); alert.setNegativeButton(getResources().getString(R.string.cancel), new OnSingleDialogListener() { @Override protected void onSingleClick(View v) { } }); alert.create(); alert.show(); } }); return; } } result = ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postWifiSetupInfo(ssid, mWifiPwd.getText().toString().trim(), true); if (result) { mSmartConfiged = true; runOnUiThread(new Runnable() { @Override public void run() { mLoadingView.dismiss(); Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.wifi_send_success), Toast.LENGTH_SHORT).show(); } }); // ProvisioningClient.getProvisioningClient(WifiInputActivity.this).postWifiSetupInfo(ssid, mWifiPwd.getText().toString().trim(), true); } else { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(WifiInputActivity.this, getResources().getString(R.string.wifi_send_fail), Toast.LENGTH_SHORT).show(); } }); } } catch (IOException e) { e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } } }).start(); } }); } } } }); mWifiPwdLock.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View v) { mShowPwd = !mShowPwd; if (mShowPwd) { mWifiPwdLock.setImageResource(R.drawable.password_input_02); mWifiPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } else { mWifiPwdLock.setImageResource(R.drawable.password_input_01); mWifiPwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); } } }); mLoadingView = new LoadingView(this, getResources().getString(R.string.wifi_setting_up)); } }