Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Side by Side Diff: platform_tools/android/apps/sample_app/src/main/java/com/skia/SkiaSampleActivity.java

Issue 2117793002: Try fix the mac build bot after removing Android SampleApp (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Try fix the build bot Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 package com.skia;
9
10 import android.app.ActionBar;
11 import android.app.Activity;
12 import android.app.DownloadManager;
13 import android.content.Intent;
14 import android.content.Context;
15 import android.os.Build;
16 import android.os.Bundle;
17 import android.os.Handler;
18 import android.os.Message;
19 import android.view.KeyEvent;
20 import android.view.Menu;
21 import android.view.MenuItem;
22 import android.view.ViewGroup;
23 import android.widget.ArrayAdapter;
24 import android.widget.LinearLayout;
25 import android.widget.TextView;
26
27 import java.io.File;
28
29 public class SkiaSampleActivity extends Activity
30 {
31 private TextView mTitle;
32 private SkiaSampleView mSampleView;
33
34 private ArrayAdapter<String> mSlideList;
35
36 @Override
37 public void onCreate(Bundle savedInstanceState) {
38 super.onCreate(savedInstanceState);
39
40 setContentView(R.layout.layout);
41 mTitle = (TextView) findViewById(R.id.title_view);
42 mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expa ndable_list_item_1);
43
44 try {
45 System.loadLibrary("skia_android");
46 } catch (UnsatisfiedLinkError e) {
47 // This might be because skia was linked to SampleApp statically.
48 }
49
50 try {
51 System.loadLibrary("SampleApp");
52
53 createSampleView(false, 0);
54
55 setupActionBar();
56 } catch (UnsatisfiedLinkError e) {
57 mTitle.setText("ERROR: native library could not be loaded");
58 }
59 }
60
61 private void createSampleView(boolean useOpenGLAPI, int msaaSampleCount) {
62 if (mSampleView != null) {
63 ViewGroup viewGroup = (ViewGroup) mSampleView.getParent();
64 viewGroup.removeView(mSampleView);
65 mSampleView.terminate();
66 }
67
68 // intent get intent extras if triggered from the command line
69 Intent intent = this.getIntent();
70 String flags = intent.getStringExtra("cmdLineFlags");
71
72 if (flags == null || flags.isEmpty()) {
73 flags = "--pictureDir /data/local/tmp/skia_skp ";
74 flags += "--resourcePath /data/local/tmp/skia_resources ";
75 }
76
77 mSampleView = new SkiaSampleView(this, flags, useOpenGLAPI, msaaSampleCo unt);
78 LinearLayout holder = (LinearLayout) findViewById(R.id.holder);
79 holder.addView(mSampleView, new LinearLayout.LayoutParams(
80 ViewGroup.LayoutParams.MATCH_PARENT,
81 ViewGroup.LayoutParams.MATCH_PARENT));
82 }
83
84 private void setupActionBar() {
85 ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavi gationListener() {
86 @Override
87 public boolean onNavigationItemSelected(int position, long itemId) {
88 mSampleView.goToSample(position);
89 return true;
90 }
91 };
92
93 ActionBar actionBar = getActionBar();
94 actionBar.setDisplayShowHomeEnabled(false);
95 actionBar.setDisplayShowTitleEnabled(false);
96 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
97 actionBar.setListNavigationCallbacks(mSlideList, navigationCallback);
98 }
99
100 @Override
101 protected void onResume () {
102 super.onResume();
103 if (mSampleView != null && mSampleView.getWidth() > 0 && mSampleView.get Height() > 0) {
104 //TODO try mSampleView.requestRender() instead
105 mSampleView.inval();
106 }
107 }
108
109 @Override
110 public void onDestroy() {
111 if (mSampleView != null) {
112 mSampleView.terminate();
113 }
114 super.onDestroy();
115 }
116
117 @Override
118 public boolean onCreateOptionsMenu(Menu menu) {
119 getMenuInflater().inflate(R.menu.action_bar, menu);
120 return true;
121 }
122
123 @Override
124 public boolean onPrepareOptionsMenu(Menu menu) {
125 if (mSampleView != null) {
126 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
127 ((MenuItem) menu.findItem(R.id.glcontext_menu))
128 .setEnabled(false);
129
130 } else {
131 boolean usesOpenGLAPI = mSampleView.getUsesOpenGLAPI();
132 boolean isMSAA4 = mSampleView.getMSAASampleCount() == 4;
133
134 ((MenuItem) menu.findItem(R.id.glcontext_opengles))
135 .setChecked(!usesOpenGLAPI && !isMSAA4);
136
137 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengles))
138 .setChecked(!usesOpenGLAPI && isMSAA4);
139
140 ((MenuItem) menu.findItem(R.id.glcontext_opengl))
141 .setChecked(usesOpenGLAPI && !isMSAA4);
142
143 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengl))
144 .setChecked(usesOpenGLAPI && isMSAA4);
145 }
146 }
147 return true;
148 }
149
150 @Override
151 public boolean onOptionsItemSelected(MenuItem item) {
152 if (mSampleView == null) {
153 return false;
154 }
155
156 switch (item.getItemId()) {
157 case R.id.overview:
158 mSampleView.showOverview();
159 return true;
160 case R.id.prev:
161 mSampleView.previousSample();
162 return true;
163 case R.id.next:
164 mSampleView.nextSample();
165 return true;
166 case R.id.toggle_rendering:
167 mSampleView.toggleRenderingMode();
168 return true;
169 case R.id.slideshow:
170 mSampleView.toggleSlideshow();
171 return true;
172 case R.id.fps:
173 mSampleView.toggleFPS();
174 return true;
175 case R.id.tiling:
176 mSampleView.toggleTiling();
177 return true;
178 case R.id.bbox:
179 mSampleView.toggleBBox();
180 return true;
181 case R.id.save_to_pdf:
182 mSampleView.saveToPDF();
183 return true;
184 case R.id.glcontext_opengles:
185 return setOpenGLContextSettings(false, 0);
186 case R.id.glcontext_msaa4_opengles:
187 return setOpenGLContextSettings(false, 4);
188 case R.id.glcontext_opengl:
189 return setOpenGLContextSettings(true, 0);
190 case R.id.glcontext_msaa4_opengl:
191 return setOpenGLContextSettings(true, 4);
192 default:
193 return false;
194 }
195 }
196
197 @Override
198 public boolean dispatchKeyEvent(KeyEvent event) {
199 final int keycode = event.getKeyCode();
200 if (keycode == KeyEvent.KEYCODE_BACK) {
201 if (event.getAction() == KeyEvent.ACTION_UP) {
202 finish();
203 }
204 return true;
205 }
206 return false;
207 }
208
209 private static final int SET_TITLE = 1;
210 private static final int SET_SLIDES = 2;
211
212 private Handler mHandler = new Handler() {
213 @Override
214 public void handleMessage(Message msg) {
215 switch (msg.what) {
216 case SET_TITLE:
217 mTitle.setText((String) msg.obj);
218 SkiaSampleActivity.this.getActionBar().setSubtitle((String) msg. obj);
219 break;
220 case SET_SLIDES:
221 mSlideList.addAll((String[]) msg.obj);
222 break;
223 default:
224 break;
225 }
226 }
227 };
228
229 // Called by JNI
230 @Override
231 public void setTitle(CharSequence title) {
232 mHandler.obtainMessage(SET_TITLE, title).sendToTarget();
233 }
234
235 // Called by JNI
236 public void setSlideList(String[] slideList) {
237 mHandler.obtainMessage(SET_SLIDES, slideList).sendToTarget();
238 }
239
240 private boolean setOpenGLContextSettings(boolean requestedOpenGLAPI, int req uestedSampleCount) {
241 if (mSampleView != null &&
242 mSampleView.getMSAASampleCount() == requestedSampleCount &&
243 mSampleView.getUsesOpenGLAPI() == requestedOpenGLAPI) {
244 return true;
245 }
246
247 createSampleView(requestedOpenGLAPI, requestedSampleCount);
248
249 return true;
250 }
251 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698