/* * Copyright 2012 Javier Pérez Pacheco and Francisco Díaz Rodriguez * TweetTopics 2.0 * javielinux@gmail.com * * 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 com.javielinux.dialogs; import android.app.AlertDialog; import android.app.Dialog; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.Gravity; import android.view.View; import android.widget.AdapterView; import android.widget.GridView; import com.android.dataframework.DataFramework; import com.android.dataframework.Entity; import com.javielinux.adapters.ImageResourcesAdapter; import com.javielinux.tweettopics2.R; import java.util.ArrayList; public class SelectIconDialogFragment extends DialogFragment { public interface SelectIconListener { void onSelectIcon(long id); } private SelectIconListener selectIconListener; public void setSelectIconListener(SelectIconListener selectIconListener) { this.selectIconListener = selectIconListener; } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { int title = R.string.select_icon; final ArrayList<Entity> icons = DataFramework.getInstance().getEntityList("icons"); ArrayList<Integer> resources = new ArrayList<Integer>(); for (Entity icon : icons) { resources.add(getResources().getIdentifier(DataFramework.getInstance().getPackage() + ":drawable/" + icon.getString("icon"), null, null)); } ImageResourcesAdapter adapter = new ImageResourcesAdapter(getActivity(), resources); GridView gridView = new GridView(getActivity()); gridView.setNumColumns(3); gridView.setPadding(5,5,5,5); gridView.setVerticalSpacing(5); gridView.setGravity(Gravity.CENTER); gridView.setAdapter(adapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int pos, long l) { if (selectIconListener != null) { selectIconListener.onSelectIcon(icons.get(pos).getId()); } dismiss(); } }); return new AlertDialog.Builder(getActivity()) .setTitle(title) .setView(gridView) .create(); } }