aboutsummaryrefslogtreecommitdiffhomepage
path: root/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java')
-rw-r--r--platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java54
1 files changed, 50 insertions, 4 deletions
diff --git a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
index 49f711d517..ce5bb0deda 100644
--- a/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
+++ b/platform_tools/android/apps/viewer/src/main/java/org/skia/viewer/ViewerActivity.java
@@ -8,9 +8,10 @@
package org.skia.viewer;
import android.app.Activity;
+import android.content.res.Configuration;
import android.os.Bundle;
-import android.util.Log;
-import android.view.GestureDetector;
+import android.support.v4.widget.DrawerLayout;
+import android.support.v7.app.ActionBarDrawerToggle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
@@ -20,11 +21,17 @@ import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
+import android.widget.ListView;
public class ViewerActivity
extends Activity implements SurfaceHolder.Callback, View.OnTouchListener {
private static final float FLING_VELOCITY_THRESHOLD = 1000;
+ private DrawerLayout mDrawerLayout;
+ private ActionBarDrawerToggle mDrawerToggle;
+ private ListView mDrawerList;
+ private StateAdapter mStateAdapter;
+
private SurfaceView mView;
private ViewerApplication mApplication;
@@ -33,6 +40,7 @@ public class ViewerActivity
private native void onSurfaceDestroyed(long handle);
private native void onKeyPressed(long handle, int keycode);
private native void onTouched(long handle, int owner, int state, float x, float y);
+ private native void onUIStateChanged(long handle, String stateName, String stateValue);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
@@ -43,6 +51,12 @@ public class ViewerActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
+ // Pass the event to ActionBarDrawerToggle, if it returns
+ // true, then it has handled the app icon touch event
+ if (mDrawerToggle.onOptionsItemSelected(item)) {
+ return true;
+ }
+
switch (item.getItemId()) {
case R.id.action_left:
onKeyPressed(mApplication.getNativeHandle(), KeyEvent.KEYCODE_SOFT_LEFT);
@@ -60,12 +74,36 @@ public class ViewerActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- mApplication = (ViewerApplication) getApplication();
- mApplication.setViewerActivity(this);
mView = (SurfaceView) findViewById(R.id.surfaceView);
mView.getHolder().addCallback(this);
mView.setOnTouchListener(this);
+
+ mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
+ mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
+ R.string.drawer_open, R.string.drawer_close);
+ mDrawerLayout.addDrawerListener(mDrawerToggle);
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ getActionBar().setHomeButtonEnabled(true);
+
+ mDrawerList = (ListView) findViewById(R.id.leftDrawer);
+ mStateAdapter = new StateAdapter(this);
+ mDrawerList.setAdapter(mStateAdapter);
+
+ mApplication = (ViewerApplication) getApplication();
+ mApplication.setViewerActivity(this);
+ }
+
+ @Override
+ protected void onPostCreate(Bundle savedInstanceState) {
+ super.onPostCreate(savedInstanceState);
+ mDrawerToggle.syncState();
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ mDrawerToggle.onConfigurationChanged(newConfig);
}
@Override
@@ -107,4 +145,12 @@ public class ViewerActivity
}
return true;
}
+
+ public void setState(String stateJson) {
+ mStateAdapter.setState(stateJson);
+ }
+
+ public void onStateChanged(String stateName, String stateValue) {
+ onUIStateChanged(mApplication.getNativeHandle(), stateName, stateValue);
+ }
}