package org.commcare.activities.components;
import android.media.MediaPlayer;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.FrameLayout;
import android.widget.GridView;
import org.commcare.CommCareApplication;
import org.commcare.adapters.GridMenuAdapter;
import org.commcare.dalvik.R;
import org.commcare.google.services.ads.AdLocation;
import org.commcare.google.services.ads.AdMobManager;
import org.commcare.suite.model.MenuDisplayable;
import org.javarosa.core.reference.InvalidReferenceException;
import org.javarosa.core.reference.ReferenceManager;
import java.io.IOException;
/**
* Handles the alternative Grid appearance for Module and Form navigation
*
* @author wspride
*/
public class MenuGrid extends MenuList implements OnItemLongClickListener {
@Override
public int getLayoutFileResource() {
return R.layout.grid_menu_layout;
}
@Override
protected void initViewAndAdapter(String menuId) {
adapterView = (GridView)activity.findViewById(R.id.grid_menu_grid);
adapterView.setOnItemLongClickListener(this);
adapter = new GridMenuAdapter(activity,
CommCareApplication.instance().getCommCarePlatform(), menuId);
}
@Override
protected void requestBannerAd() {
AdMobManager.requestBannerAdForView(activity,
(FrameLayout)activity.findViewById(R.id.ad_container), AdLocation.MenuGrid);
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
MenuDisplayable value = (MenuDisplayable)parent.getAdapter().getItem(position);
String audioURI = value.getAudioURI();
MediaPlayer mp = new MediaPlayer();
String audioFilename;
if (audioURI != null && !audioURI.equals("")) {
try {
audioFilename = ReferenceManager.instance().DeriveReference(audioURI).getLocalURI();
mp.setDataSource(audioFilename);
mp.prepare();
mp.start();
} catch (IOException | IllegalStateException
| InvalidReferenceException e) {
e.printStackTrace();
}
}
return false;
}
}