package com.rockchip.alexa.jacky.fragment; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.amazon.identity.auth.device.AuthError; import com.amazon.identity.auth.device.api.Listener; import com.amazon.identity.auth.device.api.authorization.AuthorizationManager; import com.rockchip.alexa.jacky.R; import com.rockchip.alexa.jacky.activity.AlexaActivity; import com.rockchip.alexa.jacky.activity.HotspotActivity; import com.rockchip.alexa.jacky.activity.WifiListActivity; import com.rockchip.alexa.jacky.app.BaseApplication; import com.rockchip.alexa.jacky.app.Context; import com.rockchip.alexa.jacky.async.AsyncFactory; import com.rockchip.alexa.jacky.info.ProvisioningClient; import com.rockchip.alexa.jacky.listener.OnSingleClickListener; import com.rockchip.alexa.jacky.utils.Env; import com.rockchip.alexa.jacky.views.LoadingView; import static android.R.id.list; /** * Created by Administrator on 2017/3/22. */ public class AlexaAuthorSuccessFragment extends NoFragment { private static final String TAG = "AlexaIndexFragment"; private Toolbar mToolbar; private TextView mBtnBack; private TextView mTvHint; private TextView mBtnLoginOut; private LinearLayout mLayoutSuccessHint; private LinearLayout mLayoutSuccessInfo; private TextView mLayoutSuccessHintTitle; private Button mBtnDeviceSetup; private boolean mShowInfo; private LoadingView mLoadingView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate(R.layout.frag_alexa_author_success, container, false); } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); mLoadingView = new LoadingView(getActivity(), getString(R.string.wifi_connecting)); mToolbar = (Toolbar) view.findViewById(R.id.toolbar); mBtnBack = (TextView) view.findViewById(R.id.toolbar_back); mTvHint = (TextView) view.findViewById(R.id.frag_alexa_auth_success_hint_title); mBtnLoginOut = (TextView) view.findViewById(R.id.toolbar_loginout); mLayoutSuccessHint = (LinearLayout) view.findViewById(R.id.frag_alexa_auth_success_hint); mLayoutSuccessInfo = (LinearLayout) view.findViewById(R.id.frag_alexa_auth_success_info); mLayoutSuccessHintTitle = (TextView) view.findViewById(R.id.frag_alexa_auth_success_hint_title); mBtnDeviceSetup = (Button) view.findViewById(R.id.frag_alexa_auth_success_info_device_setup); updateView(); if (!((AlexaActivity)getActivity()).isAuthorized()) { Log.d(TAG, "It's authorized befor"); new Thread(new Runnable() { @Override public void run() { int time = 5; final String txt = getString(R.string.auth_success_time_hint); for (int i = 0; i < time; time--) { final int tmp = time; getActivity().runOnUiThread(new Runnable() { @Override public void run() { mLayoutSuccessHintTitle.setText(String.format(txt, tmp)); } }); try { Thread.sleep(1000); } catch (Exception e) { } } mShowInfo = true; updateView(); } }).start(); } else { Log.d(TAG, "It's not authorized befor"); mShowInfo = true; updateView(); } mBtnBack.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View view) { startFragment(SupportsFragment.class, false); } }); mBtnLoginOut.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View view) { AuthorizationManager.signOut(getActivity(), new Listener() { @Override public void onSuccess(Void aVoid) { Log.d(TAG, "SignOut Success"); } @Override public void onError(AuthError authError) { Log.d(TAG, "SignOut Error"); } }); } }); mBtnDeviceSetup.setOnClickListener(new OnSingleClickListener() { @Override protected void onSingleClick(View view) { // startActivity(new Intent(getActivity(), HotspotActivity.class)); if (Env.isWifiEnable(getActivity())) { if (Env.isWifiConnected(getActivity()) && Env.getConnectingSSID(getActivity()).startsWith(Context.HOTSPOT_PREFIX)) { startActivity(new Intent(getActivity(), WifiListActivity.class)); return; } new Thread(new Runnable() { @Override public void run() { mLoadingView.show(); int res = 0; for (int i = 0; i < 5; i++) { res = AsyncFactory.getAsyncThread().connect(BaseApplication.getApplication().getDeviceSsid()); if (res == 1) { break; } } if (mLoadingView != null && mLoadingView.isShowing()) { mLoadingView.dismiss(); } final int result = res; if (result == 1) { startActivity(new Intent(getActivity(), WifiListActivity.class)); } else { getActivity().runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(getActivity(), (result == -1) ? getString(R.string.wifi_connected_fail) : (result == 0) ? getString(R.string.wifi_connected_timeout) : "", Toast.LENGTH_LONG).show(); } }); } } }).start(); } } }); } private void updateView() { getActivity().runOnUiThread(new Runnable() { @Override public void run() { if (mShowInfo) { mLayoutSuccessInfo.setVisibility(View.VISIBLE); mLayoutSuccessHint.setVisibility(View.GONE); } else { mLayoutSuccessInfo.setVisibility(View.GONE); mLayoutSuccessHint.setVisibility(View.VISIBLE); } } }); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); ((AlexaActivity)getActivity()).setFragment(this); setToolbar(mToolbar); // Set title for toolbar: // setTitle("Author Success"); // Display close button. // displayHomeAsUpEnabled(R.drawable.ic_toolbar_back); } }