/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.commcare.android.framework; import org.commcare.dalvik.R; import org.commcare.dalvik.activities.CommCareWiFiDirectActivity; import android.annotation.SuppressLint; import android.app.ProgressDialog; import android.net.wifi.p2p.WifiP2pDevice; import android.net.wifi.p2p.WifiP2pInfo; import android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; /** * A fragment that manages a particular peer and allows interaction with device * i.e. setting up network connection and transferring data. */ @SuppressLint("NewApi") public class DeviceDetailFragment extends Fragment implements ConnectionInfoListener { protected static final int CHOOSE_FILE_RESULT_CODE = 1; private View mContentView = null; private WifiP2pDevice device; private WifiP2pInfo info; ProgressDialog progressDialog = null; final String baseDirectory = "wifidirect"; final String targetDirectory = baseDirectory + "/target"; final String zipDirectory = baseDirectory + "/zipfolder.zip"; /* * (non-Javadoc) * @see android.support.v4.app.Fragment#onActivityCreated(android.os.Bundle) */ @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } /* * (non-Javadoc) * @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle) */ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContentView = inflater.inflate(R.layout.device_detail, container); return mContentView; } /* * (non-Javadoc) * @see android.net.wifi.p2p.WifiP2pManager.ConnectionInfoListener#onConnectionInfoAvailable(android.net.wifi.p2p.WifiP2pInfo) */ @Override public void onConnectionInfoAvailable(final WifiP2pInfo info) { Log.d(CommCareWiFiDirectActivity.TAG, "onConnectionInfoAvailable"); if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } this.info = info; this.getView().setVisibility(View.VISIBLE); } /** * Updates the UI with device data * * @param device the device to be displayed */ public void showDetails(WifiP2pDevice device) { Log.d(CommCareWiFiDirectActivity.TAG, "showing details in ddfragment with device: " +device.deviceAddress ); this.device = device; this.getView().setVisibility(View.VISIBLE); TextView view = (TextView) mContentView.findViewById(R.id.device_address); view.setText(device.deviceAddress); } /** * Clears the UI fields after a disconnect or direct mode disable operation. */ public void resetViews() { Log.d(CommCareWiFiDirectActivity.TAG, "resetting views"); mContentView.findViewById(R.id.btn_connect).setVisibility(View.VISIBLE); TextView view = (TextView) mContentView.findViewById(R.id.device_address); view.setText(""); view = (TextView) mContentView.findViewById(R.id.group_owner); view.setText(""); view = (TextView) mContentView.findViewById(R.id.status_text); view.setText(""); mContentView.findViewById(R.id.btn_start_client).setVisibility(View.GONE); this.getView().setVisibility(View.GONE); } }