/* * This file is part of WhereYouGo. * * WhereYouGo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * WhereYouGo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with WhereYouGo. If not, see <http://www.gnu.org/licenses/>. * * Copyright (C) 2012 Menion <whereyougo@asamm.cz> */ package menion.android.whereyougo.gui; import menion.android.whereyougo.Main; import menion.android.whereyougo.R; import menion.android.whereyougo.gui.extension.CustomActivity; import menion.android.whereyougo.gui.extension.CustomDialog; import menion.android.whereyougo.utils.Logger; import se.krka.kahlua.vm.LuaClosure; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import cz.matejcik.openwig.Engine; import cz.matejcik.openwig.Media; public class PushDialog extends CustomActivity { private static final String TAG = "PushDialog"; private static String menu01Text = null; private static String menu02Text = null; // STATIC CONTENT private static String[] texts; private static Media[] media; private static LuaClosure callback; private static int page = -1; public static void setDialog(String[] texts, Media[] media, String button1, String button2, LuaClosure callback) { PushDialog.texts = texts; PushDialog.media = media; PushDialog.callback = callback; PushDialog.page = -1; if (button1 == null) button1 = "OK"; menu01Text = button1; menu02Text = button2; Logger.d(TAG, "setDialog() - finish, callBack:" + (callback != null)); } private ImageView ivImage; private TextView tvImageText; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_details); findViewById(R.id.layoutDetailsTextViewName).setVisibility(View.GONE); findViewById(R.id.layoutDetailsTextViewState).setVisibility(View.GONE); findViewById(R.id.layoutDetailsTextViewDescription).setVisibility(View.GONE); ivImage = (ImageView) findViewById(R.id.layoutDetailsImageViewImage); tvImageText = (TextView) findViewById(R.id.layoutDetailsTextViewImageText); findViewById(R.id.layoutDetailsTextViewDistance).setVisibility(View.GONE); if (menu02Text == null || menu02Text.length() == 0) { menu02Text = null; } CustomDialog.setBottom(this, menu01Text, new CustomDialog.OnClickListener() { @Override public boolean onClick(CustomDialog dialog, View v, int btn) { nextPage(); return true; } }, null, null, menu02Text, new CustomDialog.OnClickListener() { @Override public boolean onClick(CustomDialog dialog, View v, int btn) { if (callback != null) Engine.invokeCallback(callback, "Button2"); callback = null; PushDialog.this.finish(); return true; } }); if (page == -1) { nextPage(); } } private void nextPage() { Logger.d(TAG, "nextpage() - page:" + page + ", texts:" + texts.length + ", callback:" + (callback != null)); page++; if (page >= texts.length) { if (callback != null) { LuaClosure call = callback; callback = null; Engine.invokeCallback(call, "Button1"); } PushDialog.this.finish(); return; } tvImageText.setText(""); Media m = media[page]; if (m != null) { try { byte[] img = Engine.mediaFile(m); Main.setBitmapToImageView(BitmapFactory.decodeByteArray(img, 0, img.length), ivImage); } catch (Exception e) { tvImageText.setText(m.altText); } } else { ivImage.setImageBitmap(null); ivImage.setMinimumWidth(0); ivImage.setMinimumHeight(0); } tvImageText.setText(tvImageText.getText().toString() + "\n" + texts[page]); } public boolean onKeyDown(int keyCode, KeyEvent event) { Logger.d(TAG, "onKeyDown(" + keyCode + ", " + event + ")"); if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) { return true; } else { return super.onKeyDown(keyCode, event); } } }