// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/Demo.java
// public interface Demo {
// 
//   /**
//    * @return The summary of the demo.
//    */
//   String getSummary();
// 
//   /**
//    * @return The title of the demo.
//    */
//   String getTitle();
// 
//   /**
//    * Checks to see if the demo is running.
//    * @return True if the demo has been started and not stopped.
//    */
//   boolean isDemoStarted();
// 
//   /**
//    * Starts the demo.
//    */
//   void startDemo();
// 
//   /**
//    * Stops the demo.
//    */
//   void stopDemo();
// }
// 
// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/FatBeaconHelloWorld.java
// public class FatBeaconHelloWorld implements Demo {
//   private static final String TAG = FatBeaconHelloWorld.class.getSimpleName();
//   private static boolean mIsDemoStarted = false;
//   private Context mContext;
// 
//   public FatBeaconHelloWorld(Context context) {
//     mContext = context;
//   }
// 
//   @Override
//   public String getSummary() {
//     return mContext.getString(R.string.fat_beacon_demo_summary);
//   }
// 
//   @Override
//   public String getTitle() {
//     return mContext.getString(R.string.fat_beacon_demo_title);
//   }
// 
//   @Override
//   public boolean isDemoStarted() {
//     return mIsDemoStarted;
//   }
// 
//   @Override
//   public void startDemo() {
//     Intent intent = new Intent(mContext, FatBeaconBroadcastService.class);
//     intent.putExtra(FatBeaconBroadcastService.TITLE_KEY, "Hello World");
//     String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
//         mContext.getPackageName() + "/" + R.raw.fatbeacon_default_webpage;
//     intent.putExtra(FatBeaconBroadcastService.URI_KEY, uriString);
//     mContext.startService(intent);
//     mIsDemoStarted = true;
//   }
// 
//   @Override
//   public void stopDemo() {
//     mContext.stopService(new Intent(mContext, FatBeaconBroadcastService.class));
//     mIsDemoStarted = false;
//   }
// }
// 
// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/WifiDirectHelloWorld.java
// public class WifiDirectHelloWorld implements Demo {
//   private static final String TAG = WifiDirectHelloWorld.class.getSimpleName();
//   private static boolean mIsDemoStarted = false;
//   private final Context mContext;
// 
//   public WifiDirectHelloWorld(Context context) {
//     mContext = context;
//   }
// 
//   @Override
//   public String getSummary() {
//     return mContext.getString(R.string.wifi_direct_demo_summary);
//   }
// 
//   @Override
//   public String getTitle() {
//     return mContext.getString(R.string.wifi_direct_demo_title);
//   }
// 
//   @Override
//   public boolean isDemoStarted() {
//     return mIsDemoStarted;
//   }
// 
//   @Override
//   public void startDemo() {
//     Intent intent = new Intent(mContext, FileBroadcastService.class);
//     String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
//         mContext.getPackageName() + "/" + R.raw.wifi_direct_default_webpage;
//     intent.putExtra(FileBroadcastService.FILE_KEY, uriString);
//     intent.putExtra(FileBroadcastService.MIME_TYPE_KEY, "text/html");
//     intent.putExtra(FileBroadcastService.TITLE_KEY, "Hello World");
//     mContext.startService(intent);
//     mIsDemoStarted = true;
//   }
// 
//   @Override
//   public void stopDemo() {
//     mContext.stopService(new Intent(mContext, FileBroadcastService.class));
//     mIsDemoStarted = false;
//   }
// }


import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import org.physical_web.demos.Demo;
import org.physical_web.demos.FatBeaconHelloWorld;
import org.physical_web.demos.WifiDirectHelloWorld;
import android.app.ListFragment;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
  }

  @Override
  public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    Utils.hideAllMenuItems(menu);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    Demo demo = mAdapter.getItem(position);
    if (demo.isDemoStarted()) {
      demo.stopDemo();
    } else {
      demo.startDemo();
    }
    setBackgroundColor(v, demo.isDemoStarted());
  }

  private void initialize() {
    if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
      mAdapter.addItem(new FatBeaconHelloWorld(getActivity()));
    }
    mAdapter.addItem(new WifiDirectHelloWorld(getActivity()));
  }

  private void setBackgroundColor(View view, boolean isStarted) {
    if (isStarted) {
      view.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.physical_web_logo));
    } else {
// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/Demo.java
// public interface Demo {
// 
//   /**
//    * @return The summary of the demo.
//    */
//   String getSummary();
// 
//   /**
//    * @return The title of the demo.
//    */
//   String getTitle();
// 
//   /**
//    * Checks to see if the demo is running.
//    * @return True if the demo has been started and not stopped.
//    */
//   boolean isDemoStarted();
// 
//   /**
//    * Starts the demo.
//    */
//   void startDemo();
// 
//   /**
//    * Stops the demo.
//    */
//   void stopDemo();
// }
// 
// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/FatBeaconHelloWorld.java
// public class FatBeaconHelloWorld implements Demo {
//   private static final String TAG = FatBeaconHelloWorld.class.getSimpleName();
//   private static boolean mIsDemoStarted = false;
//   private Context mContext;
// 
//   public FatBeaconHelloWorld(Context context) {
//     mContext = context;
//   }
// 
//   @Override
//   public String getSummary() {
//     return mContext.getString(R.string.fat_beacon_demo_summary);
//   }
// 
//   @Override
//   public String getTitle() {
//     return mContext.getString(R.string.fat_beacon_demo_title);
//   }
// 
//   @Override
//   public boolean isDemoStarted() {
//     return mIsDemoStarted;
//   }
// 
//   @Override
//   public void startDemo() {
//     Intent intent = new Intent(mContext, FatBeaconBroadcastService.class);
//     intent.putExtra(FatBeaconBroadcastService.TITLE_KEY, "Hello World");
//     String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
//         mContext.getPackageName() + "/" + R.raw.fatbeacon_default_webpage;
//     intent.putExtra(FatBeaconBroadcastService.URI_KEY, uriString);
//     mContext.startService(intent);
//     mIsDemoStarted = true;
//   }
// 
//   @Override
//   public void stopDemo() {
//     mContext.stopService(new Intent(mContext, FatBeaconBroadcastService.class));
//     mIsDemoStarted = false;
//   }
// }
// 
// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/demos/WifiDirectHelloWorld.java
// public class WifiDirectHelloWorld implements Demo {
//   private static final String TAG = WifiDirectHelloWorld.class.getSimpleName();
//   private static boolean mIsDemoStarted = false;
//   private final Context mContext;
// 
//   public WifiDirectHelloWorld(Context context) {
//     mContext = context;
//   }
// 
//   @Override
//   public String getSummary() {
//     return mContext.getString(R.string.wifi_direct_demo_summary);
//   }
// 
//   @Override
//   public String getTitle() {
//     return mContext.getString(R.string.wifi_direct_demo_title);
//   }
// 
//   @Override
//   public boolean isDemoStarted() {
//     return mIsDemoStarted;
//   }
// 
//   @Override
//   public void startDemo() {
//     Intent intent = new Intent(mContext, FileBroadcastService.class);
//     String uriString = ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
//         mContext.getPackageName() + "/" + R.raw.wifi_direct_default_webpage;
//     intent.putExtra(FileBroadcastService.FILE_KEY, uriString);
//     intent.putExtra(FileBroadcastService.MIME_TYPE_KEY, "text/html");
//     intent.putExtra(FileBroadcastService.TITLE_KEY, "Hello World");
//     mContext.startService(intent);
//     mIsDemoStarted = true;
//   }
// 
//   @Override
//   public void stopDemo() {
//     mContext.stopService(new Intent(mContext, FileBroadcastService.class));
//     mIsDemoStarted = false;
//   }
// }


// Path: android/PhysicalWeb/app/src/main/java/org/physical_web/physicalweb/DemosFragment.java
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import org.physical_web.demos.Demo;
import org.physical_web.demos.FatBeaconHelloWorld;
import org.physical_web.demos.WifiDirectHelloWorld;
import android.app.ListFragment;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;

  }

  @Override
  public void onPrepareOptionsMenu(Menu menu) {
    super.onPrepareOptionsMenu(menu);
    Utils.hideAllMenuItems(menu);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    Demo demo = mAdapter.getItem(position);
    if (demo.isDemoStarted()) {
      demo.stopDemo();
    } else {
      demo.startDemo();
    }
    setBackgroundColor(v, demo.isDemoStarted());
  }

  private void initialize() {
    if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
      mAdapter.addItem(new FatBeaconHelloWorld(getActivity()));
    }
    mAdapter.addItem(new WifiDirectHelloWorld(getActivity()));
  }

  private void setBackgroundColor(View view, boolean isStarted) {
    if (isStarted) {
      view.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.physical_web_logo));
    } else {
      view.setBackgroundColor(0xFFFFFFFF);