Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 package com.skia; | 8 package com.skia; |
| 9 | 9 |
| 10 import android.app.ActionBar; | 10 import android.app.ActionBar; |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 private SkiaSampleView mSampleView; | 31 private SkiaSampleView mSampleView; |
| 32 | 32 |
| 33 private ArrayAdapter<String> mSlideList; | 33 private ArrayAdapter<String> mSlideList; |
| 34 | 34 |
| 35 @Override | 35 @Override |
| 36 public void onCreate(Bundle savedInstanceState) { | 36 public void onCreate(Bundle savedInstanceState) { |
| 37 super.onCreate(savedInstanceState); | 37 super.onCreate(savedInstanceState); |
| 38 | 38 |
| 39 setContentView(R.layout.layout); | 39 setContentView(R.layout.layout); |
| 40 mTitle = (TextView) findViewById(R.id.title_view); | 40 mTitle = (TextView) findViewById(R.id.title_view); |
| 41 mSampleView = new SkiaSampleView(this); | |
| 42 mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expa ndable_list_item_1); | 41 mSlideList = new ArrayAdapter<String>(this, android.R.layout.simple_expa ndable_list_item_1); |
| 43 | 42 |
| 44 try { | 43 try { |
| 45 System.loadLibrary("skia_android"); | 44 System.loadLibrary("skia_android"); |
| 46 System.loadLibrary("SampleApp"); | 45 System.loadLibrary("SampleApp"); |
| 47 | 46 |
| 48 LinearLayout holder = (LinearLayout) findViewById(R.id.holder); | 47 createSampleView(false, 0); |
| 49 holder.addView(mSampleView, new LinearLayout.LayoutParams( | |
| 50 ViewGroup.LayoutParams.MATCH_PARENT, | |
| 51 ViewGroup.LayoutParams.MATCH_PARENT)); | |
| 52 | 48 |
| 53 setupActionBar(); | 49 setupActionBar(); |
| 54 | |
| 55 } catch (UnsatisfiedLinkError e) { | 50 } catch (UnsatisfiedLinkError e) { |
| 56 mTitle.setText("ERROR: native library could not be loaded"); | 51 mTitle.setText("ERROR: native library could not be loaded"); |
| 57 } | 52 } |
| 58 } | 53 } |
| 59 | 54 |
| 55 private void createSampleView(boolean useOpenGLAPI, int msaaSampleCount) { | |
| 56 if (mSampleView != null) { | |
| 57 ViewGroup viewGroup = (ViewGroup) mSampleView.getParent(); | |
| 58 viewGroup.removeView(mSampleView); | |
| 59 mSampleView.terminate(); | |
| 60 } | |
| 61 | |
| 62 mSampleView = new SkiaSampleView(this, useOpenGLAPI, msaaSampleCount); | |
| 63 LinearLayout holder = (LinearLayout) findViewById(R.id.holder); | |
| 64 holder.addView(mSampleView, new LinearLayout.LayoutParams( | |
| 65 ViewGroup.LayoutParams.MATCH_PARENT, | |
| 66 ViewGroup.LayoutParams.MATCH_PARENT)); | |
| 67 } | |
| 68 | |
| 60 private void setupActionBar() { | 69 private void setupActionBar() { |
| 61 ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavi gationListener() { | 70 ActionBar.OnNavigationListener navigationCallback = new ActionBar.OnNavi gationListener() { |
| 62 @Override | 71 @Override |
| 63 public boolean onNavigationItemSelected(int position, long itemId) { | 72 public boolean onNavigationItemSelected(int position, long itemId) { |
| 64 mSampleView.goToSample(position); | 73 mSampleView.goToSample(position); |
| 65 return true; | 74 return true; |
| 66 } | 75 } |
| 67 }; | 76 }; |
| 68 | 77 |
| 69 ActionBar actionBar = getActionBar(); | 78 ActionBar actionBar = getActionBar(); |
| 70 actionBar.setDisplayShowHomeEnabled(false); | 79 actionBar.setDisplayShowHomeEnabled(false); |
| 71 actionBar.setDisplayShowTitleEnabled(false); | 80 actionBar.setDisplayShowTitleEnabled(false); |
| 72 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); | 81 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); |
| 73 actionBar.setListNavigationCallbacks(mSlideList, navigationCallback); | 82 actionBar.setListNavigationCallbacks(mSlideList, navigationCallback); |
| 74 } | 83 } |
| 75 | 84 |
| 76 @Override | 85 @Override |
| 77 protected void onResume () { | 86 protected void onResume () { |
| 78 super.onResume(); | 87 super.onResume(); |
| 79 if (mSampleView.getWidth() > 0 && mSampleView.getHeight() > 0) { | 88 if (mSampleView != null && mSampleView.getWidth() > 0 && mSampleView.get Height() > 0) { |
| 80 //TODO try mSampleView.requestRender() instead | 89 //TODO try mSampleView.requestRender() instead |
| 81 mSampleView.inval(); | 90 mSampleView.inval(); |
| 82 } | 91 } |
| 83 } | 92 } |
| 84 | 93 |
| 85 @Override | 94 @Override |
| 86 public void onDestroy() { | 95 public void onDestroy() { |
| 87 mSampleView.terminate(); | 96 if (mSampleView != null) { |
| 97 mSampleView.terminate(); | |
| 98 } | |
| 88 super.onDestroy(); | 99 super.onDestroy(); |
| 89 } | 100 } |
| 90 | 101 |
| 91 @Override | 102 @Override |
| 92 public boolean onCreateOptionsMenu(Menu menu) { | 103 public boolean onCreateOptionsMenu(Menu menu) { |
| 93 getMenuInflater().inflate(R.menu.action_bar, menu); | 104 getMenuInflater().inflate(R.menu.action_bar, menu); |
| 94 return true; | 105 return true; |
| 95 } | 106 } |
| 96 | 107 |
| 97 @Override | 108 @Override |
| 109 public boolean onPrepareOptionsMenu(Menu menu) { | |
| 110 if (mSampleView != null) { | |
| 111 boolean usesOpenGLAPI = mSampleView.getUsesOpenGLAPI(); | |
| 112 boolean isMSAA4 = mSampleView.getMSAASampleCount() == 4; | |
| 113 | |
| 114 ((MenuItem) menu.findItem(R.id.glcontext_opengles)).setChecked(!uses OpenGLAPI && !isMSAA4); | |
|
djsollen
2013/11/07 16:57:43
style nit, but a few of these lines exceed 100 cha
Kimmo Kinnunen
2013/11/20 13:45:00
Done.
| |
| 115 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengles)).setChecked (!usesOpenGLAPI && isMSAA4); | |
| 116 ((MenuItem) menu.findItem(R.id.glcontext_opengl)).setChecked(usesOpe nGLAPI && !isMSAA4); | |
| 117 ((MenuItem) menu.findItem(R.id.glcontext_msaa4_opengl)).setChecked(u sesOpenGLAPI && isMSAA4); | |
| 118 } | |
| 119 return true; | |
| 120 } | |
| 121 | |
| 122 @Override | |
| 98 public boolean onOptionsItemSelected(MenuItem item) { | 123 public boolean onOptionsItemSelected(MenuItem item) { |
| 124 if (mSampleView == null) { | |
| 125 return false; | |
| 126 } | |
| 127 | |
| 99 switch (item.getItemId()) { | 128 switch (item.getItemId()) { |
| 100 case R.id.overview: | 129 case R.id.overview: |
| 101 mSampleView.showOverview(); | 130 mSampleView.showOverview(); |
| 102 return true; | 131 return true; |
| 103 case R.id.prev: | 132 case R.id.prev: |
| 104 mSampleView.previousSample(); | 133 mSampleView.previousSample(); |
| 105 return true; | 134 return true; |
| 106 case R.id.next: | 135 case R.id.next: |
| 107 mSampleView.nextSample(); | 136 mSampleView.nextSample(); |
| 108 return true; | 137 return true; |
| 109 case R.id.toggle_rendering: | 138 case R.id.toggle_rendering: |
| 110 mSampleView.toggleRenderingMode(); | 139 mSampleView.toggleRenderingMode(); |
| 111 return true; | 140 return true; |
| 112 case R.id.slideshow: | 141 case R.id.slideshow: |
| 113 mSampleView.toggleSlideshow(); | 142 mSampleView.toggleSlideshow(); |
| 114 return true; | 143 return true; |
| 115 case R.id.fps: | 144 case R.id.fps: |
| 116 mSampleView.toggleFPS(); | 145 mSampleView.toggleFPS(); |
| 117 return true; | 146 return true; |
| 118 case R.id.tiling: | 147 case R.id.tiling: |
| 119 mSampleView.toggleTiling(); | 148 mSampleView.toggleTiling(); |
| 120 return true; | 149 return true; |
| 121 case R.id.bbox: | 150 case R.id.bbox: |
| 122 mSampleView.toggleBBox(); | 151 mSampleView.toggleBBox(); |
| 123 return true; | 152 return true; |
| 124 case R.id.save_to_pdf: | 153 case R.id.save_to_pdf: |
| 125 mSampleView.saveToPDF(); | 154 mSampleView.saveToPDF(); |
| 126 return true; | 155 return true; |
| 156 case R.id.glcontext_opengles: | |
| 157 return setOpenGLContextSettings(false, 0); | |
| 158 case R.id.glcontext_msaa4_opengles: | |
| 159 return setOpenGLContextSettings(false, 4); | |
| 160 case R.id.glcontext_opengl: | |
| 161 return setOpenGLContextSettings(true, 0); | |
| 162 case R.id.glcontext_msaa4_opengl: | |
| 163 return setOpenGLContextSettings(true, 4); | |
| 127 default: | 164 default: |
| 128 return false; | 165 return false; |
| 129 } | 166 } |
| 130 } | 167 } |
| 131 | 168 |
| 132 @Override | 169 @Override |
| 133 public boolean dispatchKeyEvent(KeyEvent event) { | 170 public boolean dispatchKeyEvent(KeyEvent event) { |
| 134 final int keycode = event.getKeyCode(); | 171 final int keycode = event.getKeyCode(); |
| 135 if (keycode == KeyEvent.KEYCODE_BACK) { | 172 if (keycode == KeyEvent.KEYCODE_BACK) { |
| 136 if (event.getAction() == KeyEvent.ACTION_UP) { | 173 if (event.getAction() == KeyEvent.ACTION_UP) { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 191 final DownloadManager manager = | 228 final DownloadManager manager = |
| 192 (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); | 229 (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); |
| 193 new Thread("Add PDF to downloads") { | 230 new Thread("Add PDF to downloads") { |
| 194 @Override | 231 @Override |
| 195 public void run() { | 232 public void run() { |
| 196 final String mimeType = "application/pdf"; | 233 final String mimeType = "application/pdf"; |
| 197 manager.addCompletedDownload(title, desc, true, mimeType, path, length, true); | 234 manager.addCompletedDownload(title, desc, true, mimeType, path, length, true); |
| 198 } | 235 } |
| 199 }.start(); | 236 }.start(); |
| 200 } | 237 } |
| 238 | |
| 239 private boolean setOpenGLContextSettings(boolean requestedOpenGLAPI, int req uestedSampleCount) { | |
| 240 if (mSampleView != null && | |
| 241 mSampleView.getMSAASampleCount() == requestedSampleCount && | |
| 242 mSampleView.getUsesOpenGLAPI() == requestedOpenGLAPI) { | |
| 243 return true; | |
| 244 } | |
| 245 | |
| 246 createSampleView(requestedOpenGLAPI, requestedSampleCount); | |
| 247 | |
| 248 return (mSampleView.getMSAASampleCount() == 0) == (requestedSampleCount == 0) && | |
| 249 mSampleView.getUsesOpenGLAPI() == requestedOpenGLAPI; | |
| 250 } | |
| 201 } | 251 } |
| OLD | NEW |