François Gautrais 9 年之前
父节点
当前提交
8d7d28aa12

+ 1 - 0
app/build.gradle

@@ -24,4 +24,5 @@ dependencies {
     testCompile 'junit:junit:4.12'
     compile 'com.android.support:appcompat-v7:24.1.1'
     compile 'com.android.support:support-v4:24.1.1'
+    compile 'com.android.support:design:24.1.1'
 }

+ 11 - 2
app/src/main/AndroidManifest.xml

@@ -20,7 +20,7 @@
         android:label="@string/app_name"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
-        <activity android:name=".ARActivity"></activity>
+        <activity android:name=".ARActivity" />
         <activity
             android:name=".SplashActivity"
             android:label="@string/app_name">
@@ -34,7 +34,16 @@
             android:name=".ViewerActivity"
             android:configChanges="orientation|keyboardHidden|screenSize"
             android:label="@string/title_activity_viewer"
-            android:theme="@style/FullscreenTheme"></activity>
+            android:theme="@style/FullscreenTheme" />
+        <activity
+            android:name=".ResourceListActivity"
+            android:configChanges="orientation|keyboardHidden|screenSize"
+            android:label="@string/title_activity_resource_list"
+            android:theme="@style/FullscreenTheme" />
+        <activity
+            android:name="app.brest.app.brest.ui.MenuActivity"
+            android:label="@string/title_activity_menu"
+            android:theme="@style/AppTheme.NoActionBar"></activity>
     </application>
 
 </manifest>

+ 31 - 0
app/src/main/java/app/brest/app/brest/ui/MenuActivity.java

@@ -0,0 +1,31 @@
+package app.brest.app.brest.ui;
+
+import android.os.Bundle;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.View;
+
+import app.brest.testmin3d.R;
+
+public class MenuActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_menu);
+        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+        setSupportActionBar(toolbar);
+
+        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+        fab.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+                        .setAction("Action", null).show();
+            }
+        });
+    }
+
+}

+ 52 - 0
app/src/main/java/app/brest/app/brest/ui/ResourceArrayAdapter.java

@@ -0,0 +1,52 @@
+package app.brest.app.brest.ui;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Color;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import java.util.List;
+
+import app.brest.testmin3d.ResourceListActivity;
+import app.brest.testmin3d.ViewerActivity;
+import app.brest.utils.app.brest.game.Resource;
+
+/**
+ * Created by ptitcois on 22/08/16.
+ */
+public class ResourceArrayAdapter extends ArrayAdapter<Resource> implements  AdapterView.OnItemClickListener{
+    protected Context mContext;
+
+    public ResourceArrayAdapter(Context context, int resource, List<Resource> objects) {
+        super(context, resource, objects);
+        mContext=context;
+
+    }
+
+    @Override
+    public View getView(int position, View convertView,
+                        ViewGroup parent) {
+        View view =super.getView(position, convertView, parent);
+
+        TextView textView=(TextView) view.findViewById(android.R.id.text1);
+
+            /*YOUR CHOICE OF COLOR*/
+        textView.setTextColor(Color.rgb(0x33, 0xb5, 0xe5));
+
+        return view;
+    }
+
+    @Override
+    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+        Resource item = (Resource)adapterView.getItemAtPosition(i);
+
+        Intent intent = new Intent(mContext, ViewerActivity.class);
+        intent.putExtra("resource", item);
+        mContext.startActivity(intent);
+    }
+}

+ 11 - 0
app/src/main/java/app/brest/testmin3d/ARActivity.java

@@ -1,5 +1,6 @@
 package app.brest.testmin3d;
 import android.app.Activity;
+import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.graphics.PixelFormat;
 import android.hardware.Camera;
@@ -158,6 +159,14 @@ public class ARActivity extends RendererActivity
 
         return scene.numChildren()>0;
     }
+
+    protected void onList()
+    {
+        Intent intent = new Intent(this, ARActivity.class);
+        intent.putExtra("game", mGame);
+        startActivity(intent);
+    }
+
      @Override
     protected void onCreate(Bundle savedInstanceState)
     {
@@ -170,6 +179,7 @@ public class ARActivity extends RendererActivity
         {
             String n = getIntent().getStringExtra("game_name");
             mGame = new Game(n, this);
+
         }else if (g!= null) {
             mGame = g;
             mGame.newSensorManager(this);
@@ -177,6 +187,7 @@ public class ARActivity extends RendererActivity
         {
             throw new Error("Le jeu n'est pas sauvegardé");
         }
+        ResourceListActivity.setGame(mGame);
 
     }
 

+ 90 - 0
app/src/main/java/app/brest/testmin3d/ResourceListActivity.java

@@ -0,0 +1,90 @@
+package app.brest.testmin3d;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
+import android.os.Bundle;
+import android.os.Handler;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+import app.brest.app.brest.ui.ResourceArrayAdapter;
+import app.brest.utils.app.brest.game.Game;
+import app.brest.utils.app.brest.game.Resource;
+
+/**
+ * An example full-screen activity that shows and hides the system UI (i.e.
+ * status bar and navigation/system bar) with user interaction.
+ */
+public class ResourceListActivity extends AppCompatActivity {
+
+    protected static Game mGame;
+    protected LinearLayout mLayout;
+
+
+    protected void addStage(ArrayList<Resource> ar, int stage)
+    {
+        LinearLayout nl = new LinearLayout(this);
+        ListView lv = new ListView(this);
+        TextView b = new TextView(this);
+        ResourceArrayAdapter aa;
+        b.setText("Etape "+stage);
+        b.setTextColor(Color.rgb(0x33, 0xb5, 0xe5));
+        b.setTextSize(30);
+        b.setTypeface(null, Typeface.BOLD);
+        b.setBackgroundColor(Color.rgb(0,0,0));
+
+        aa = new ResourceArrayAdapter(this, android.R.layout.simple_list_item_1, ar);
+        lv.setOnItemClickListener(aa);
+
+        lv.setAdapter(aa);
+        lv.setBackgroundColor(Color.rgb(0,0,0));
+
+        nl.setOrientation(LinearLayout.VERTICAL);
+        nl.addView(b);
+        nl.addView(lv);
+        mLayout.addView(nl);
+    }
+
+    protected void fill()
+    {
+        if(mGame!=null)
+        {
+            ArrayList< ArrayList<Resource> > resources = mGame.getResourceByStage();
+            for(int i = 0; i< resources.size(); i++)
+                addStage(resources.get(i), i);
+        }
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_resource_list);
+        if(mGame!=null)
+        {
+            mGame.pickResource("camaro");
+            mGame.pickResource("face");
+        }
+        mLayout = (LinearLayout) findViewById(R.id.list_layout);
+        fill();
+    }
+
+    public static void setGame(Game g)
+    {
+        mGame = g;
+    }
+
+}

+ 14 - 1
app/src/main/java/app/brest/testmin3d/SplashActivity.java

@@ -7,6 +7,7 @@ import android.util.Log;
 import android.view.View;
 
 import app.brest.utils.app.brest.game.Game;
+import app.brest.utils.app.brest.game.Resource;
 import app.brest.utils.geometry.GPSPoint;
 
 public class SplashActivity extends AppCompatActivity {
@@ -19,7 +20,7 @@ public class SplashActivity extends AppCompatActivity {
         GPSPoint a = new GPSPoint(48.3845125, -4.493831);
         GPSPoint b = new GPSPoint(48.3840495, -4.5037464);
         Log.e("GPS", "OUT:"+a.getDistanceWith(b));
-        onClickView(null);
+        onClickNew(null);
     }
 
     public void onClickNew(View v)
@@ -37,10 +38,22 @@ public class SplashActivity extends AppCompatActivity {
 
     public void onClickView(View v)
     {
+        Resource r = new Resource("camaro", 1, this);
         Intent intent = new Intent(this, ViewerActivity.class);
+        intent.putExtra("resource", r);
         startActivity(intent);
     }
 
+
+
+    public void onClickList(View v)
+    {
+        Intent intent = new Intent(this, ResourceListActivity.class);
+        startActivity(intent);
+    }
+
+
+
     protected void onResume()
     {
         super.onResume();

+ 73 - 10
app/src/main/java/app/brest/testmin3d/ViewerActivity.java

@@ -1,41 +1,104 @@
 package app.brest.testmin3d;
 
 import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.provider.ContactsContract;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.WindowManager;
+import android.widget.Button;
+import android.widget.FrameLayout;
 import android.widget.ImageView;
+import android.widget.TextView;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+
+import app.brest.utils.app.brest.game.Resource;
+import min3d.core.Object3d;
+import min3d.core.Object3dContainer;
+import min3d.core.RendererActivity;
+import min3d.parser.IParser;
+import min3d.parser.Parser;
+import min3d.vos.Light;
 
 /**
  * An example full-screen activity that shows and hides the system UI (i.e.
  * status bar and navigation/system bar) with user interaction.
  */
-public class ViewerActivity extends AppCompatActivity {
+public class ViewerActivity extends RendererActivity {
 
 
+    private Resource mResource;
+    private FrameLayout mFrameLayout;
+    private ImageView mImageView;
+    private Button mButton;
+    private TextView mText;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_viewer);
+        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+        mFrameLayout = (FrameLayout) findViewById(R.id.frame_viewer);
+        mImageView = (ImageView) findViewById(R.id.imageView);
+        mButton = (Button) findViewById(R.id.button_info);
+        mText = (TextView) findViewById(R.id.tv_comment);
 
-        //mControlsView = findViewById(R.id.fullscreen_content_controls);
-        //mContentView = findViewById(R.id.fullscreen_content);
-
+        if(getIntent().hasExtra("resource"))
+        {
+            mResource = (Resource) getIntent().getSerializableExtra("resource");
+            setTitle(mResource.getTitle());
+        }
 
-        // Set up the user interaction to manually show or hide the system UI.
+        if(mResource != null && !getIntent().hasExtra("information"))
+        {
+            if(mResource.getType().compareTo("Image")==0)
+            {
+                int id = getResources().getIdentifier(mResource.getName()+"_res","drawable", getPackageName());
+                mImageView.setImageResource(id);
+            }
+            else if(mResource.getType().compareTo("3D")==0)
+            {
+                mFrameLayout.addView(_glSurfaceView);
+            }
+        }else if(mResource != null)
+        {
+            mButton.setVisibility(View.INVISIBLE);
+            mText.setVisibility(View.VISIBLE);
+            mText.setText(mResource.getComment());
+        }
 
-        // Upon interacting with UI controls, delay any scheduled hide()
-        // operations to prevent the jarring behavior of controls going away
-        // while interacting with the UI.
-        //findViewById(R.id.dummy_button).setOnTouchListener(mDelayHideTouchListener);
     }
 
     public void onClickInfo(View v)
     {
-        ImageView iv = (ImageView) findViewById(R.id.imageView);
+        Intent intent = new Intent(this, ViewerActivity.class);
+        intent.putExtra("resource", mResource);
+        intent.putExtra("information", true);
+        startActivity(intent);
+    }
+
+    public void initScene()
+    {
+
+        scene.backgroundColor().setAll(0x00000000);
+        scene.lights().add(new Light());
+        scene.lights().add(new Light());
+
+        Light myLight = new Light();
+        myLight.position.setZ(150);
+        scene.lights().add(myLight);
+        scene.addChild(mResource.get3DModel(this));
+    }
+
+    @Override
+    public void updateScene() {
+
     }
 
 }

+ 2 - 2
app/src/main/java/app/brest/utils/ResourceManager.java

@@ -31,7 +31,7 @@ public class ResourceManager implements Serializable{
     {
         for(int i=0; i<mResourcesLeft.size(); i++)
         {
-            if(mResourcesLeft.get(i).getName()==name)
+            if(mResourcesLeft.get(i).getName().compareTo(name)==0)
                 return mResourcesLeft.get(i);
         }
         return null;
@@ -50,7 +50,7 @@ public class ResourceManager implements Serializable{
     {
         for(int i=0; i<mResourcesLeft.size(); i++)
         {
-            if(mResourcesLeft.get(i).getName()==name)
+            if(mResourcesLeft.get(i).getName().compareTo(name)==0)
             {
                 mResourcesAquiered.get(mResourcesAquiered.size()-1).add(mResourcesLeft.get(i));
                 mResourcesLeft.remove(i);

+ 20 - 2
app/src/main/java/app/brest/utils/app/brest/game/Game.java

@@ -104,7 +104,7 @@ public class Game  implements Serializable {
     public void removeArea(String name)
     {
         for(int i=0; i<mCurrentStageAreas.size(); i++)
-            if(mCurrentStageAreas.get(i).getName() == name)
+            if(mCurrentStageAreas.get(i).getName().compareTo(name)==0)
                 mCurrentStageAreas.remove(i);
     }
 
@@ -118,7 +118,7 @@ public class Game  implements Serializable {
         ArrayList<Resource> r = getResourcesNextToPlayer();
         for(int i=0; i<r.size(); i++) {
             for (int j = 0; j < mCurrentStageAreas.size(); j++)
-                if (r.get(i).getName() == mCurrentStageAreas.get(j).getName()) {
+                if (r.get(i).getName().compareTo(mCurrentStageAreas.get(j).getName())==0) {
                     removeArea(j);
                 }
             mResources.pickUpResource(r.get(i).getName());
@@ -126,6 +126,19 @@ public class Game  implements Serializable {
         return mCurrentStageAreas.size()==0;
     }
 
+    public boolean pickResource(String name)
+    {
+
+        for (int j = 0; j < mCurrentStageAreas.size(); j++)
+            if (name.compareTo(mCurrentStageAreas.get(j).getName())==0) {
+                removeArea(j);
+            }
+        mResources.pickUpResource(name);
+
+        return mCurrentStageAreas.size()==0;
+    }
+
+
 
 
     public String toString()
@@ -290,5 +303,10 @@ public class Game  implements Serializable {
         mPlayer.newSensorManager(act);
     }
 
+    public ArrayList< ArrayList<Resource> > getResourceByStage()
+    {
+        return mResources.getResourceAquiered();
+    }
+
 
 }

+ 22 - 0
app/src/main/java/app/brest/utils/app/brest/game/Resource.java

@@ -28,6 +28,8 @@ public class Resource implements Serializable {
     protected String mComment = "null";
     protected String mModelPath = "";
     protected boolean isLoaded = false;
+    protected String mType = ""; //3D Image Audio Video
+    protected String mTitle= ""; //3D Image Audio Video
 
     protected void loadResourceData(Activity act)
     {
@@ -50,6 +52,8 @@ public class Resource implements Serializable {
 
 
             mModelPath = obj.getString("model");
+            mType = obj.getString("type");
+            mTitle = obj.getString("title");
             isLoaded=true;
         } catch (JSONException e) {
             e.printStackTrace();
@@ -78,6 +82,19 @@ public class Resource implements Serializable {
         return mName;
     }
 
+    public String getType() {
+        return mType;
+    }
+
+    public String getTitle() {
+        return mTitle;
+    }
+
+
+    public String getComment() {
+        return mComment;
+    }
+
     public int getStage() {
         return mStage;
     }
@@ -128,4 +145,9 @@ public class Resource implements Serializable {
         if(m3DModel!=null)
             m3DModel.scale().x = m3DModel.scale().y = m3DModel.scale().z = factor;
     }
+
+    public String toString()
+    {
+        return mTitle;
+    }
 }

+ 0 - 0
app/src/main/res/drawable/earth.jpg → app/src/main/res/drawable/camaro_res.jpg


+ 34 - 0
app/src/main/res/layout/activity_menu.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:fitsSystemWindows="true"
+    tools:context="app.brest.app.brest.ui.MenuActivity">
+
+    <android.support.design.widget.AppBarLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:theme="@style/AppTheme.AppBarOverlay">
+
+        <android.support.v7.widget.Toolbar
+            android:id="@+id/toolbar"
+            android:layout_width="match_parent"
+            android:layout_height="?attr/actionBarSize"
+            android:background="?attr/colorPrimary"
+            app:popupTheme="@style/AppTheme.PopupOverlay" />
+
+    </android.support.design.widget.AppBarLayout>
+
+    <include layout="@layout/content_menu" />
+
+    <android.support.design.widget.FloatingActionButton
+        android:id="@+id/fab"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|end"
+        android:layout_margin="@dimen/fab_margin"
+        android:src="@android:drawable/ic_dialog_email" />
+
+</android.support.design.widget.CoordinatorLayout>

+ 23 - 0
app/src/main/res/layout/activity_resource_list.xml

@@ -0,0 +1,23 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#000000"
+    android:orientation="vertical"
+    tools:context="app.brest.testmin3d.ResourceListActivity">
+
+    <!-- The primary full-screen view. This can be replaced with whatever view
+         is needed to present your content, e.g. VideoView, SurfaceView,
+         TextureView, etc. -->
+
+    <!-- This FrameLayout insets its children based on system windows using
+         android:fitsSystemWindows. -->
+
+    <LinearLayout
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:id="@+id/list_layout">
+
+    </LinearLayout>
+</LinearLayout>

+ 15 - 0
app/src/main/res/layout/activity_splash.xml

@@ -38,4 +38,19 @@
         android:layout_alignLeft="@+id/button2"
         android:layout_alignStart="@+id/button2"
         android:layout_marginBottom="165dp" />
+
+    <Button
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="ListItems"
+        android:id="@+id/button"
+        android:textColor="#33b5e5"
+        android:textSize="30dp"
+        android:background="#000000"
+        android:textStyle="bold"
+        android:layout_below="@+id/button2"
+        android:layout_alignLeft="@+id/button2"
+        android:layout_alignStart="@+id/button2"
+        android:layout_marginTop="63dp"
+        android:onClick="onClickList" />
 </RelativeLayout>

+ 13 - 1
app/src/main/res/layout/activity_viewer.xml

@@ -28,7 +28,8 @@
     <FrameLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_above="@+id/button_info">
+        android:layout_above="@+id/button_info"
+        android:id="@+id/frame_viewer">
 
         <ImageView
             android:layout_width="fill_parent"
@@ -40,5 +41,16 @@
             android:focusableInTouchMode="true"
             android:focusable="true"
             android:visibility="visible" />
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="Medium Text"
+            android:id="@+id/tv_comment"
+            android:layout_gravity="center"
+            android:textColor="#33b5e5"
+            android:textSize="20dp"
+            android:visibility="invisible" />
     </FrameLayout>
 </RelativeLayout>

+ 15 - 0
app/src/main/res/layout/content_menu.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:paddingBottom="@dimen/activity_vertical_margin"
+    android:paddingLeft="@dimen/activity_horizontal_margin"
+    android:paddingRight="@dimen/activity_horizontal_margin"
+    android:paddingTop="@dimen/activity_vertical_margin"
+    app:layout_behavior="@string/appbar_scrolling_view_behavior"
+    tools:context="app.brest.app.brest.ui.MenuActivity"
+    tools:showIn="@layout/activity_menu">
+
+</RelativeLayout>

+ 3 - 1
app/src/main/res/raw/camaro_res

@@ -3,5 +3,7 @@
     "position" : [0,0,0],
     "scale" : [1,1,1],
     "rotation" : [0,0,0],
-    "comment" : "A une trs belle voiture !"
+    "comment" : "A une très belle voiture !",
+    "type" : "Image",
+    "title" : "Camaro SS"
 }

+ 3 - 1
app/src/main/res/raw/face_res

@@ -3,5 +3,7 @@
     "position" : [0,0,0],
     "scale" : [0.01,0.01,0.01],
     "rotation" : [0,0,0],
-    "comment" : "A un tres beau visgae"
+    "comment" : "A un tres beau visgae",
+    "type" : "3D",
+    "title" : "Un visage"
 }

+ 9 - 0
app/src/main/res/values-v21/styles.xml

@@ -0,0 +1,9 @@
+<resources>
+
+    <style name="AppTheme.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+        <item name="android:statusBarColor">@android:color/transparent</item>
+    </style>
+</resources>

+ 1 - 0
app/src/main/res/values/dimens.xml

@@ -2,4 +2,5 @@
     <!-- Default screen margins, per the Android Design guidelines. -->
     <dimen name="activity_horizontal_margin">16dp</dimen>
     <dimen name="activity_vertical_margin">16dp</dimen>
+    <dimen name="fab_margin">16dp</dimen>
 </resources>

+ 3 - 0
app/src/main/res/values/strings.xml

@@ -8,4 +8,7 @@
     <string name="title_activity_viewer">ViewerActivity</string>
     <string name="dummy_button">Dummy Button</string>
     <string name="dummy_content">DUMMY\nCONTENT</string>
+
+    <string name="title_activity_resource_list">ResourceListActivity</string>
+    <string name="title_activity_menu">MenuActivity</string>
 </resources>

+ 9 - 0
app/src/main/res/values/styles.xml

@@ -20,4 +20,13 @@
         <item name="android:background">@color/black_overlay</item>
     </style>
 
+    <style name="AppTheme.NoActionBar">
+        <item name="windowActionBar">false</item>
+        <item name="windowNoTitle">true</item>
+    </style>
+
+    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
+
+    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
+
 </resources>