diff --git a/src/app/build.gradle b/src/app/build.gradle
index 74bed1d..5841a0d 100644
--- a/src/app/build.gradle
+++ b/src/app/build.gradle
@@ -21,13 +21,14 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:support-v4:28.0.0'
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
+ compile 'com.android.support:support-v4:28.0.0'
compile 'com.android.support:appcompat-v7:28.+'
compile 'com.squareup.okhttp3:okhttp:3.10.0'
compile 'com.google.code.gson:gson:2.8.5'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
+ compile 'com.android.support:design:28.+'
testCompile 'junit:junit:4.12'
}
diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml
index dc8f6a6..44e678b 100644
--- a/src/app/src/main/AndroidManifest.xml
+++ b/src/app/src/main/AndroidManifest.xml
@@ -16,6 +16,10 @@
+
\ No newline at end of file
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/base/contracts/BaseContracts.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/base/contracts/BaseContracts.java
index 49a713f..b4b09ee 100644
--- a/src/app/src/main/java/com/games/mkvs/interstellarmanager/base/contracts/BaseContracts.java
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/base/contracts/BaseContracts.java
@@ -10,4 +10,8 @@ public interface Presenter{
void subscribe(T view);
void unsubscribe();
}
+
+ public interface Navigator {
+ void navigate(Class clazz);
+ }
}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/GameMenuActivity.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/GameMenuActivity.java
new file mode 100644
index 0000000..8e45c3d
--- /dev/null
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/GameMenuActivity.java
@@ -0,0 +1,85 @@
+package com.games.mkvs.interstellarmanager.views.game_menu;
+import android.support.v7.app.AppCompatActivity;
+
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentManager;
+import android.support.v4.app.FragmentPagerAdapter;
+import android.support.v4.view.ViewPager;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.Window;
+import android.view.WindowManager;
+
+import com.games.mkvs.interstellarmanager.R;
+import com.games.mkvs.interstellarmanager.views.game_menu.overview.OverviewFragment;
+
+public class GameMenuActivity extends AppCompatActivity {
+
+ /**
+ * The {@link android.support.v4.view.PagerAdapter} that will provide
+ * fragments for each of the sections. We use a
+ * {@link FragmentPagerAdapter} derivative, which will keep every
+ * loaded fragment in memory. If this becomes too memory intensive, it
+ * may be best to switch to a
+ * {@link android.support.v4.app.FragmentStatePagerAdapter}.
+ */
+ private SectionsPagerAdapter mSectionsPagerAdapter;
+
+ /**
+ * The {@link ViewPager} that will host the section contents.
+ */
+ private ViewPager mViewPager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ this.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ setContentView(R.layout.activity_game_menu);
+ // Create the adapter that will return a fragment for each of the three
+ // primary sections of the activity.
+ mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
+
+ // Set up the ViewPager with the sections adapter.
+ mViewPager = findViewById(R.id.container);
+ mViewPager.setAdapter(mSectionsPagerAdapter);
+ }
+
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu; this adds items to the action bar if it is present.
+ getMenuInflater().inflate(R.menu.menu_game_menu, menu);
+ return true;
+ }
+
+ /**
+ * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
+ * one of the sections/tabs/pages.
+ */
+ public class SectionsPagerAdapter extends FragmentPagerAdapter {
+
+ public SectionsPagerAdapter(FragmentManager fm) {
+ super(fm);
+ }
+
+ @Override
+ public Fragment getItem(int position) {
+ Fragment fragment;
+ switch (position) {
+ case 0:
+ fragment = new OverviewFragment();
+ break;
+ default:
+ fragment = new OverviewFragment();
+ break;
+ }
+ return fragment;
+ }
+
+ @Override
+ public int getCount() {
+ return 4;
+ }
+ }
+}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewContracts.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewContracts.java
new file mode 100644
index 0000000..f3b66b8
--- /dev/null
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewContracts.java
@@ -0,0 +1,17 @@
+package com.games.mkvs.interstellarmanager.views.game_menu.overview;
+
+import com.games.mkvs.interstellarmanager.base.contracts.BaseContracts;
+
+/**
+ * Created by Martin on 3.1.2019 г..
+ */
+
+public class OverviewContracts {
+ public interface IOverviewView extends BaseContracts.View {
+
+ }
+
+ public interface IOverviewPresenter extends BaseContracts.Presenter {
+
+ }
+}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewFragment.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewFragment.java
new file mode 100644
index 0000000..4ae00ca
--- /dev/null
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewFragment.java
@@ -0,0 +1,36 @@
+package com.games.mkvs.interstellarmanager.views.game_menu.overview;
+
+
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.games.mkvs.interstellarmanager.R;
+import com.games.mkvs.interstellarmanager.base.contracts.BaseContracts;
+
+/**
+ * A simple {@link Fragment} subclass.
+ */
+public class OverviewFragment extends Fragment implements OverviewContracts.IOverviewView {
+ private View root;
+ private OverviewContracts.IOverviewPresenter mPresenter;
+
+ public OverviewFragment() {
+ // Required empty public constructor
+ }
+
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ root = inflater.inflate(R.layout.fragment_overview, container, false);
+ return root;
+ }
+
+ @Override
+ public void setPresenter(BaseContracts.Presenter presenter) {
+ this.mPresenter = (OverviewContracts.IOverviewPresenter) presenter;
+ }
+}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewPresenter.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewPresenter.java
new file mode 100644
index 0000000..7a2bd8f
--- /dev/null
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/game_menu/overview/OverviewPresenter.java
@@ -0,0 +1,25 @@
+package com.games.mkvs.interstellarmanager.views.game_menu.overview;
+
+import com.games.mkvs.interstellarmanager.base.contracts.BaseContracts;
+import com.games.mkvs.interstellarmanager.web.repositories.base.CompanyRepository;
+
+/**
+ * Created by Martin on 3.1.2019 г..
+ */
+
+public class OverviewPresenter implements OverviewContracts.IOverviewPresenter {
+ private final CompanyRepository companyRepository;
+ private OverviewContracts.IOverviewView mView;
+ public OverviewPresenter(CompanyRepository companyRepository) {
+ this.companyRepository = companyRepository;
+ }
+ @Override
+ public void subscribe(BaseContracts.View view) {
+ this.mView = (OverviewContracts.IOverviewView) view;
+ }
+
+ @Override
+ public void unsubscribe() {
+ this.mView = null;
+ }
+}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartContracts.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartContracts.java
index 71b7a05..da1a69e 100644
--- a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartContracts.java
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartContracts.java
@@ -4,11 +4,15 @@
public class StartContracts{
- public interface IStartPresenter extends BaseContracts.Presenter{
+ public interface IStartPresenter extends BaseContracts.Presenter {
}
- public interface IStartView extends BaseContracts.View{
+ public interface IStartView extends BaseContracts.View, BaseContracts.Navigator {
void addBackground();
+
+ void addButtonListeners();
+
+ void startGameBtnClicked();
}
}
diff --git a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartFragment.java b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartFragment.java
index 2a86568..fde64e4 100644
--- a/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartFragment.java
+++ b/src/app/src/main/java/com/games/mkvs/interstellarmanager/views/start/StartFragment.java
@@ -1,14 +1,15 @@
package com.games.mkvs.interstellarmanager.views.start;
+import android.content.Intent;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
-import android.widget.TextView;
import com.games.mkvs.interstellarmanager.R;
import com.games.mkvs.interstellarmanager.base.contracts.BaseContracts;
@@ -17,13 +18,14 @@
import com.games.mkvs.interstellarmanager.engine.models.menu_background.StarsBackgroundPanel;
import com.games.mkvs.interstellarmanager.engine.services.DrawingService;
import com.games.mkvs.interstellarmanager.engine.services.SortingService;
+import com.games.mkvs.interstellarmanager.views.game_menu.GameMenuActivity;
import java.util.ArrayList;
/**
* A simple {@link Fragment} subclass.
*/
-public class StartFragment extends Fragment implements StartContracts.IStartView {
+public class StartFragment extends Fragment implements StartContracts.IStartView, View.OnClickListener {
private View root;
private StartContracts.IStartPresenter mPresenter;
private RelativeLayout mMainContainer;
@@ -43,6 +45,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
mContentContainer = root.findViewById(R.id.content_container);
addBackground();
mContentContainer.bringToFront();
+ addButtonListeners();
return root;
}
@@ -60,4 +63,34 @@ public void addBackground() {
objects);
mMainContainer.addView(panel);
}
+
+ @Override
+ public void addButtonListeners() {
+ Button startGameBtn = root.findViewById(R.id.start_game_btn);
+ startGameBtn.setOnClickListener(this);
+ }
+
+ @Override
+ public void startGameBtnClicked() {
+ this.navigate(GameMenuActivity.class);
+ }
+
+ @Override
+ public void navigate(Class clazz) {
+ Intent intent;
+ if(clazz == GameMenuActivity.class) {
+ intent = new Intent(getActivity(), clazz);
+ startActivity(intent);
+ getActivity().finish();
+ }
+ }
+
+ @Override
+ public void onClick(View view) {
+ switch (view.getId()) {
+ case R.id.start_game_btn:
+ startGameBtnClicked();
+ break;
+ }
+ }
}
diff --git a/src/app/src/main/res/layout/activity_game_menu.xml b/src/app/src/main/res/layout/activity_game_menu.xml
new file mode 100644
index 0000000..293160e
--- /dev/null
+++ b/src/app/src/main/res/layout/activity_game_menu.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/src/app/src/main/res/layout/fragment_game_menu.xml b/src/app/src/main/res/layout/fragment_game_menu.xml
new file mode 100644
index 0000000..42be42c
--- /dev/null
+++ b/src/app/src/main/res/layout/fragment_game_menu.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/src/app/src/main/res/layout/fragment_overview.xml b/src/app/src/main/res/layout/fragment_overview.xml
new file mode 100644
index 0000000..8c92708
--- /dev/null
+++ b/src/app/src/main/res/layout/fragment_overview.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/app/src/main/res/menu/menu_game_menu.xml b/src/app/src/main/res/menu/menu_game_menu.xml
new file mode 100644
index 0000000..c5c76e6
--- /dev/null
+++ b/src/app/src/main/res/menu/menu_game_menu.xml
@@ -0,0 +1,10 @@
+
diff --git a/src/app/src/main/res/values-w820dp/dimens.xml b/src/app/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..62df187
--- /dev/null
+++ b/src/app/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+
+
+ 64dp
+
diff --git a/src/app/src/main/res/values/dimens.xml b/src/app/src/main/res/values/dimens.xml
index 3e5fb57..12bc4dc 100644
--- a/src/app/src/main/res/values/dimens.xml
+++ b/src/app/src/main/res/values/dimens.xml
@@ -1,4 +1,9 @@
30dp
+
+ 16dp
+ 16dp
+ 16dp
+ 8dp
\ No newline at end of file
diff --git a/src/app/src/main/res/values/strings.xml b/src/app/src/main/res/values/strings.xml
index 8683674..37acc94 100644
--- a/src/app/src/main/res/values/strings.xml
+++ b/src/app/src/main/res/values/strings.xml
@@ -6,5 +6,9 @@
START GAME
LOAD GAME
OPTIONS
+ GameMenuActivity
+ Settings
+ Hello World from section: %1$d
+ Loading...
diff --git a/src/app/src/main/res/values/styles.xml b/src/app/src/main/res/values/styles.xml
index 2801a15..83f051f 100644
--- a/src/app/src/main/res/values/styles.xml
+++ b/src/app/src/main/res/values/styles.xml
@@ -25,4 +25,13 @@
- #7f7f7f
- #FFFFFF
+
+
+
+
+
+