Project

General

Profile

Download (14.5 KB) Statistics
| Branch: | Revision:

examples / src / main / java / org / distorted / examples / TableOfContents.java @ 77e66c58

1 bc0a685b Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4 71c8884f Leszek Koltunski
// This file is part of Distorted.                                                               //
5 bc0a685b Leszek Koltunski
//                                                                                               //
6 71c8884f Leszek Koltunski
// Distorted is free software: you can redistribute it and/or modify                             //
7 bc0a685b Leszek Koltunski
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11 71c8884f Leszek Koltunski
// Distorted is distributed in the hope that it will be useful,                                  //
12 bc0a685b Leszek Koltunski
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17 71c8884f Leszek Koltunski
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18 bc0a685b Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
19
20 5068fa06 Leszek Koltunski
package org.distorted.examples;
21 427ab7bf Leszek Koltunski
22
import java.util.ArrayList;
23
import java.util.HashMap;
24
import java.util.List;
25
import java.util.Map;
26
27
import android.app.Activity;
28
import android.app.ListActivity;
29
import android.content.Intent;
30
import android.os.Bundle;
31
import android.util.SparseArray;
32
import android.view.View;
33
import android.widget.AdapterView;
34
import android.widget.AdapterView.OnItemClickListener;
35
import android.widget.SimpleAdapter;
36
37 887e1853 Leszek Koltunski
import org.distorted.examples.deferredjob.DeferredJobActivity;
38 5068fa06 Leszek Koltunski
import org.distorted.examples.monalisa.MonaLisaActivity;
39 0e65f4da Leszek Koltunski
import org.distorted.examples.flatblur.FlatBlurActivity;
40 29fdea14 Leszek Koltunski
import org.distorted.examples.flatblur2.FlatBlur2Activity;
41 5068fa06 Leszek Koltunski
import org.distorted.examples.sink.SinkActivity;
42 10d53839 Leszek Koltunski
import org.distorted.examples.projection.ProjectionActivity;
43 5068fa06 Leszek Koltunski
import org.distorted.examples.deform.DeformActivity;
44
import org.distorted.examples.listener.ListenerActivity;
45 f988589e Leszek Koltunski
import org.distorted.examples.dynamic.DynamicActivity;
46 5068fa06 Leszek Koltunski
import org.distorted.examples.girl.GirlActivity;
47 f26ab2fd Leszek Koltunski
import org.distorted.examples.catanddog.CatAndDogActivity;
48 5068fa06 Leszek Koltunski
import org.distorted.examples.movingeffects.MovingEffectsActivity;
49
import org.distorted.examples.olimpic.OlimpicActivity;
50
import org.distorted.examples.differenteffects.DifferentEffectsActivity;
51
import org.distorted.examples.differentbitmaps.DifferentBitmapsActivity;
52 758303a3 Leszek Koltunski
import org.distorted.examples.effectqueue.EffectQueueActivity;
53 5068fa06 Leszek Koltunski
import org.distorted.examples.check.CheckActivity;
54
import org.distorted.examples.bean.BeanActivity;
55 5ceea148 Leszek Koltunski
import org.distorted.examples.objecttree.ObjectTreeActivity;
56 5068fa06 Leszek Koltunski
import org.distorted.examples.starwars.StarWarsActivity;
57 64558e4e Leszek Koltunski
import org.distorted.examples.inflate.InflateActivity;
58 5068fa06 Leszek Koltunski
import org.distorted.examples.quaternion.QuaternionActivity;
59 46b26cdc Leszek Koltunski
import org.distorted.examples.generic.GenericActivity;
60 0de83d97 Leszek Koltunski
import org.distorted.examples.surfaceview.SurfaceViewActivity;
61 a2cb31e9 Leszek Koltunski
import org.distorted.examples.save.SaveActivity;
62 175f355d Leszek Koltunski
import org.distorted.examples.flag.FlagActivity;
63 14122c52 Leszek Koltunski
import org.distorted.examples.wind.WindActivity;
64 4f39a7d1 Leszek Koltunski
import org.distorted.examples.aroundtheworld.AroundTheWorldActivity;
65 03a2fd30 Leszek Koltunski
import org.distorted.examples.mirror.MirrorActivity;
66 43bda3db Leszek Koltunski
import org.distorted.examples.blur.BlurActivity;
67 58059374 Leszek Koltunski
import org.distorted.examples.multiblur.MultiblurActivity;
68 80f37d1b Leszek Koltunski
import org.distorted.examples.triblur.TriblurActivity;
69 664a0e45 Leszek Koltunski
import org.distorted.examples.transparency.TransparencyActivity;
70 efc280af Leszek Koltunski
import org.distorted.examples.postprocesstree.PostprocessTreeActivity;
71 32d08f39 Leszek Koltunski
import org.distorted.examples.stencil.StencilActivity;
72 cb9d104d Leszek Koltunski
import org.distorted.examples.glow.GlowActivity;
73 11298b49 Leszek Koltunski
import org.distorted.examples.movingglow.MovingGlowActivity;
74 64558e4e Leszek Koltunski
import org.distorted.examples.earth.EarthActivity;
75 5b4a2d76 Leszek Koltunski
import org.distorted.examples.rubik.RubikActivity;
76 508ee98f Leszek Koltunski
import org.distorted.examples.meshjoin.MeshJoinActivity;
77 59835a0a Leszek Koltunski
import org.distorted.examples.predeform.PredeformActivity;
78 90940caf Leszek Koltunski
import org.distorted.examples.singlemesh.SingleMeshActivity;
79 42aa970f Leszek Koltunski
import org.distorted.examples.meshfile.MeshFileActivity;
80 4bfffdd5 Leszek Koltunski
import org.distorted.examples.polymesh.PolymeshActivity;
81 427ab7bf Leszek Koltunski
82
///////////////////////////////////////////////////////////////////////////////////////////////////
83
84
public class TableOfContents extends ListActivity 
85
  {
86 bca41c80 Leszek Koltunski
  private static final String ITEM_IMAGE    = "item_image";
87
  private static final String ITEM_TITLE    = "item_title";
88 427ab7bf Leszek Koltunski
  private static final String ITEM_SUBTITLE = "item_subtitle"; 
89
90 bca41c80 Leszek Koltunski
  private enum Application
91
    {
92 77e66c58 Leszek Koltunski
    MESHFILE          (R.drawable.icon_example_meshfile        , R.string.example_meshfile           , R.string.example_meshfile_subtitle           ,            MeshFileActivity.class),
93 bca41c80 Leszek Koltunski
    MONALISA          (R.drawable.icon_example_monalisa        , R.string.example_monalisa        , R.string.example_monalisa_subtitle        ,         MonaLisaActivity.class),
94
    SINK              (R.drawable.icon_example_sink            , R.string.example_sink            , R.string.example_sink_subtitle            ,             SinkActivity.class),
95
    BEAN              (R.drawable.icon_example_bean            , R.string.example_bean            , R.string.example_bean_subtitle            ,             BeanActivity.class),
96
    PROJECTION        (R.drawable.icon_example_projection      , R.string.example_projection      , R.string.example_projection_subtitle      ,       ProjectionActivity.class),
97
    DEFORM            (R.drawable.icon_example_deform          , R.string.example_deform          , R.string.example_deform_subtitle          ,           DeformActivity.class),
98
    LISTENER          (R.drawable.icon_example_listener        , R.string.example_listener        , R.string.example_listener_subtitle        ,         ListenerActivity.class),
99
    DYNAMIC           (R.drawable.icon_example_dynamic         , R.string.example_dynamic         , R.string.example_dynamic_subtitle         ,          DynamicActivity.class),
100
    GIRL              (R.drawable.icon_example_girl            , R.string.example_girl            , R.string.example_girl_subtitle            ,             GirlActivity.class),
101
    CATANDDOG         (R.drawable.icon_example_catanddog       , R.string.example_catanddog       , R.string.example_catanddog_subtitle       ,        CatAndDogActivity.class),
102
    MOVINGEFFECTS     (R.drawable.icon_example_movingeffects   , R.string.example_movingeffects   , R.string.example_movingeffects_subtitle   ,    MovingEffectsActivity.class),
103
    DIFFERENTEFFECTS  (R.drawable.icon_example_differenteffects, R.string.example_differenteffects, R.string.example_differenteffects_subtitle, DifferentEffectsActivity.class),
104
    DIFFERENTBITMAPS  (R.drawable.icon_example_differentbitmaps, R.string.example_differentbitmaps, R.string.example_differentbitmaps_subtitle, DifferentBitmapsActivity.class),
105
    EFFECTQUEUE       (R.drawable.icon_example_effectqueue     , R.string.example_effectqueue     , R.string.example_effectqueue_subtitle     ,      EffectQueueActivity.class),
106
    CHECK             (R.drawable.icon_example_check           , R.string.example_check           , R.string.example_check_subtitle           ,            CheckActivity.class),
107
    OBJECTTREE        (R.drawable.icon_example_objecttree      , R.string.example_objecttree      , R.string.example_objecttree_subtitle      ,       ObjectTreeActivity.class),
108
    STARWARS          (R.drawable.icon_example_starwars        , R.string.example_starwars        , R.string.example_starwars_subtitle        ,         StarWarsActivity.class),
109
    OLIMPIC           (R.drawable.icon_example_olimpic         , R.string.example_olimpic         , R.string.example_olimpic_subtitle         ,          OlimpicActivity.class),
110
    QUATERNION        (R.drawable.icon_example_quaternion      , R.string.example_quaternion      , R.string.example_quaternion_subtitle      ,       QuaternionActivity.class),
111
    INFLATE           (R.drawable.icon_example_inflate         , R.string.example_inflate         , R.string.example_inflate_subtitle         ,          InflateActivity.class),
112
    GENERIC           (R.drawable.icon_example_generic         , R.string.example_generic         , R.string.example_generic_subtitle         ,          GenericActivity.class),
113 386fd702 Leszek Koltunski
    SURFACEVIEW       (R.drawable.icon_example_monalisa        , R.string.example_surfaceview   , R.string.example_surfaceview_subtitle   ,    SurfaceViewActivity.class),
114 bca41c80 Leszek Koltunski
    SAVE              (R.drawable.icon_example_save            , R.string.example_save            , R.string.example_save_subtitle            ,             SaveActivity.class),
115
    FLAG              (R.drawable.icon_example_flag            , R.string.example_flag            , R.string.example_flag_subtitle            ,             FlagActivity.class),
116
    WIND              (R.drawable.icon_example_wind            , R.string.example_wind            , R.string.example_wind_subtitle            ,             WindActivity.class),
117
    AROUNDTHEWORLD    (R.drawable.icon_example_aroundtheworld  , R.string.example_aroundtheworld  , R.string.example_aroundtheworld_subtitle  ,   AroundTheWorldActivity.class),
118
    MIRROR            (R.drawable.icon_example_mirror          , R.string.example_mirror          , R.string.example_mirror_subtitle          ,           MirrorActivity.class),
119
    STENCIL           (R.drawable.icon_example_stencil         , R.string.example_stencil         , R.string.example_stencil_subtitle         ,          StencilActivity.class),
120
    BLUR              (R.drawable.icon_example_blur            , R.string.example_blur            , R.string.example_blur_subtitle            ,             BlurActivity.class),
121
    MULTIBLUR         (R.drawable.icon_example_multiblur       , R.string.example_multiblur       , R.string.example_multiblur_subtitle       ,        MultiblurActivity.class),
122
    TRIBLUR           (R.drawable.icon_example_triblur         , R.string.example_triblur         , R.string.example_triblur_subtitle         ,          TriblurActivity.class),
123
    TRANSPARENCY      (R.drawable.icon_example_transparency    , R.string.example_transparency    , R.string.example_transparency_subtitle    ,     TransparencyActivity.class),
124
    POSTPROCESSTREE   (R.drawable.icon_example_postprocesstree , R.string.example_postprocesstree , R.string.example_postprocesstree_subtitle ,  PostprocessTreeActivity.class),
125
    GLOW              (R.drawable.icon_example_glow            , R.string.example_glow            , R.string.example_glow_subtitle            ,             GlowActivity.class),
126
    MOVINGGLOW        (R.drawable.icon_example_movingglow      , R.string.example_moving_glow     , R.string.example_moving_glow_subtitle     ,       MovingGlowActivity.class),
127
    EARTH             (R.drawable.icon_example_earth           , R.string.example_earth           , R.string.example_earth_subtitle           ,            EarthActivity.class),
128 508ee98f Leszek Koltunski
    RUBIK             (R.drawable.icon_example_rubik           , R.string.example_rubik           , R.string.example_rubik_subtitle           ,            RubikActivity.class),
129 a71ef7f1 Leszek Koltunski
    MESHJOIN          (R.drawable.icon_example_meshjoin        , R.string.example_meshjoin           , R.string.example_meshjoin_subtitle           ,            MeshJoinActivity.class),
130 3c219720 Leszek Koltunski
    PREDEFORM         (R.drawable.icon_example_predeform       , R.string.example_predeform           , R.string.example_predeform_subtitle           ,            PredeformActivity.class),
131 fcb09e1f Leszek Koltunski
    DEFERREDJOB       (R.drawable.icon_example_deferredjob     , R.string.example_deferredjob           , R.string.example_deferredjob_subtitle           ,            DeferredJobActivity.class),
132 304cdff5 Leszek Koltunski
    SINGLEMESH        (R.drawable.icon_example_singlemesh      , R.string.example_singlemesh           , R.string.example_singlemesh_subtitle           ,            SingleMeshActivity.class),
133 dc10a48d Leszek Koltunski
    FLATBLUR2         (R.drawable.icon_example_flatblur        , R.string.example_flatblur         , R.string.example_flatblur_subtitle         , FlatBlur2Activity.class ),
134 4bfffdd5 Leszek Koltunski
    POLYMESH          (R.drawable.icon_example_wip             , R.string.example_polymesh         , R.string.example_polymesh_subtitle         , PolymeshActivity.class ),
135 bca41c80 Leszek Koltunski
    ;
136
137
    final int icon, title, subtitle;
138
    final Class<? extends Activity> activity;
139
140
    Application(int i, int t, int s, Class<? extends Activity> a)
141
      {
142
      icon     = i;
143
      title    = t;
144
      subtitle = s;
145
      activity = a;
146
      }
147
    }
148
149 427ab7bf Leszek Koltunski
///////////////////////////////////////////////////////////////////////////////////////////////////
150
   
151
  @Override
152
  public void onCreate(Bundle savedInstanceState) 
153 f209a803 Leszek Koltunski
    {
154
    super.onCreate(savedInstanceState);
155
    setContentView(R.layout.table_of_contents);
156 427ab7bf Leszek Koltunski
      
157 f209a803 Leszek Koltunski
    final List<Map<String, Object>> data = new ArrayList<>();
158
    final SparseArray<Class<? extends Activity>> activityMapping = new SparseArray<>();
159 6ce08079 Leszek Koltunski
160 f209a803 Leszek Koltunski
    int index=0;
161 efc280af Leszek Koltunski
162 f209a803 Leszek Koltunski
    for( Application app : Application.values() )
163
      {
164
      final Map<String, Object> item = new HashMap<>();
165
      item.put(ITEM_IMAGE, app.icon);
166
      item.put(ITEM_TITLE, (index+1)+". "+getText(app.title));
167
      item.put(ITEM_SUBTITLE, getText(app.subtitle));
168
      data.add(item);
169
      activityMapping.put(index++, app.activity);
170
      }
171 bca41c80 Leszek Koltunski
172 f209a803 Leszek Koltunski
    final SimpleAdapter dataAdapter = new SimpleAdapter( this,
173
                                                         data,
174
                                                         R.layout.toc_item,
175
                                                         new String[] {ITEM_IMAGE, ITEM_TITLE, ITEM_SUBTITLE},
176
                                                         new int[] {R.id.Image, R.id.Title, R.id.SubTitle}  );
177
    setListAdapter(dataAdapter);
178 427ab7bf Leszek Koltunski
      
179 f209a803 Leszek Koltunski
    getListView().setOnItemClickListener(new OnItemClickListener()
180 427ab7bf Leszek Koltunski
      {
181 f209a803 Leszek Koltunski
      @Override
182
      public void onItemClick(AdapterView<?> parent, View view, int position, long id)
183 427ab7bf Leszek Koltunski
        {
184 f209a803 Leszek Koltunski
        final Class<? extends Activity> activityToLaunch = activityMapping.get(position);
185
            
186
        if (activityToLaunch != null)
187
          {
188
          final Intent launchIntent = new Intent(TableOfContents.this, activityToLaunch);
189
          startActivity(launchIntent);
190
          }
191
        }
192
      });
193
    }
194 427ab7bf Leszek Koltunski
  }