package com.apigee.sdkexplorer; import com.apigee.sdkexplorer.R; import android.app.Activity; import android.app.AlertDialog; import android.app.Fragment; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.ImageButton; public class AboutFragment extends Fragment { private Button buttonAppLogs; private Button buttonCrashLogs; private Button buttonNetworkPerf; private Button buttonConfigs; private ImageButton buttonApigee; private ImageButton buttonMobileAnalytics; private TextView textVersionString; private SDKExplorerActivity mainActivity; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Create a new TextView and set its text to the fragment's section // number argument value. return inflater.inflate(R.layout.about_layout, container, false); } public boolean isDeviceNetworkConnected() { return mainActivity.haveConnectivityNow(); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); final Activity activity = getActivity(); mainActivity = (SDKExplorerActivity) activity; buttonAppLogs = (Button) activity.findViewById(R.id.buttonAppLogs); buttonCrashLogs = (Button) activity.findViewById(R.id.buttonCrashLogs); buttonNetworkPerf = (Button) activity.findViewById(R.id.buttonNetworkPerf); buttonConfigs = (Button) activity.findViewById(R.id.buttonConfigs); buttonApigee = (ImageButton) activity.findViewById(R.id.buttonApigee); buttonMobileAnalytics = (ImageButton) activity.findViewById(R.id.buttonMobileAnalytics); buttonAppLogs.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("fileName", "file:///android_asset/appLogs.html"); startActivity(intent); } }); buttonCrashLogs.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("fileName", "file:///android_asset/crashLogs.html"); startActivity(intent); } }); buttonNetworkPerf.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("fileName", "file:///android_asset/networkPerf.html"); startActivity(intent); } }); buttonConfigs.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("fileName", "file:///android_asset/configs.html"); startActivity(intent); } }); buttonApigee.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if( isDeviceNetworkConnected() ) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("url", "http://apigee.com"); startActivity(intent); } } }); buttonMobileAnalytics.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if( isDeviceNetworkConnected() ) { Intent intent = new Intent(activity, WebViewActivity.class); intent.putExtra("url", "http://apigee.com/about/mobile-analytics"); startActivity(intent); } } }); textVersionString = (TextView) activity.findViewById(R.id.textVersionString); Context context = buttonAppLogs.getContext(); String textVersionLabel; PackageInfo packageInfo; try { packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0); textVersionLabel = "Version " + packageInfo.versionName; } catch (NameNotFoundException e) { textVersionLabel = "Version: unavailable"; } textVersionString.setText(textVersionLabel); if( ! mainActivity.hadConnectivityOnStartup() ) { // display alert String message = "A network connection is required on startup. Please close this app and restart it once the device is connected to the network."; new AlertDialog.Builder(context).setTitle("Network Required").setMessage(message).setPositiveButton("OK", null).show(); } } }