Skip to content

Commit

Permalink
StartActivity: init.
Browse files Browse the repository at this point in the history
Add menu to ProblemActivity (not completed)
  • Loading branch information
matveevk committed Apr 9, 2017
1 parent 7bc70f2 commit b7cbcf6
Show file tree
Hide file tree
Showing 12 changed files with 139 additions and 54 deletions.
18 changes: 14 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,32 @@
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ProblemActivity"></activity>
<activity
android:name=".ProblemActivity"
android:parentActivityName=".MainActivity"
android:launchMode="singleTop" />

<activity
android:name=".ProblemInfo"
android:label="@string/title_activity_problem_info"
android:theme="@style/AppTheme.NoActionBar"
android:parentActivityName=".ProblemActivity"
android:theme="@style/AppTheme.NoActionBar" />
android:label="@string/title_activity_problem_info" />

<activity
android:name=".MainActivity"
android:label="@string/title_activity_problem_list"
android:theme="@style/AppTheme.NoActionBar">
</activity>

<activity
android:name=".Start"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

</manifest>
23 changes: 2 additions & 21 deletions app/src/main/java/com/example/root/prepolymp/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
package com.example.root.prepolymp;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
Expand All @@ -20,12 +17,9 @@
import com.example.root.prepolymp.fragments.SolveLater;
import com.example.root.prepolymp.fragments.Solved;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

public static ArrayList<Problem> problems= new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
Expand All @@ -34,15 +28,6 @@ protected void onCreate(Bundle savedInstanceState) {
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();
}
});

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
Expand All @@ -53,10 +38,6 @@ public void onClick(View view) {
navigationView.setNavigationItemSelectedListener(this);

displaySelectedFragment(R.id.nav_problem_list);

Problem problem = new Problem(1, "Найдите наименьшее натуральное число, кратное 99, в десятичной записи которого участвуют только чётные цифры.", "228888", "алгебра");
MainActivity.problems.add(problem);
problems.add(new Problem(2, "Посчитайте 2 + 3", "5", "алгебра"));
}

@Override
Expand Down Expand Up @@ -130,4 +111,4 @@ private void displaySelectedFragment(int id) {
DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
}
}
40 changes: 32 additions & 8 deletions app/src/main/java/com/example/root/prepolymp/ProblemActivity.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package com.example.root.prepolymp;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

import java.lang.reflect.Array;
import java.util.ArrayList;
import com.example.root.prepolymp.fragments.ProblemList;

public class ProblemActivity extends AppCompatActivity {

Expand All @@ -28,6 +28,15 @@ public class ProblemActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.problem_view);

Intent intent = getIntent();
int i = intent.getIntExtra(ProblemList.EXTRA, -1);

Log.d("problemactivity", "" + i);
Problem problem = Start.problems.get(i);

setTitle("Задача № " + problem.id);

/*
// stretching the linearLayout to what we need (and problemText)
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayoutProblemInfo);
Expand All @@ -44,8 +53,6 @@ protected void onCreate(Bundle savedInstanceState) {
tv.setWidth(screenWidth() / 10 * 9);
*/

Problem problem = new Problem(1, "Найдите наименьшее натуральное число, кратное 99, в десятичной записи которого участвуют только чётные цифры.", "228888", "алгебра");

showProblem(problem);

openInfo(problem);
Expand Down Expand Up @@ -96,4 +103,21 @@ public int screenWidth() {
getWindowManager().getDefaultDisplay().getMetrics(dm);
return dm.widthPixels;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_problem_activity, menu);
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.add_to_favourites:
Toast.makeText(this, "Лайк!", Toast.LENGTH_SHORT).show();
break;
}
return super.onOptionsItemSelected(item);
}
}
11 changes: 2 additions & 9 deletions app/src/main/java/com/example/root/prepolymp/ProblemInfo.java
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
package com.example.root.prepolymp;

import android.app.ActionBar;
import android.content.Intent;
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.util.DisplayMetrics;
import android.view.View;
import android.widget.TextView;

import org.w3c.dom.Text;

public class ProblemInfo extends AppCompatActivity {

@Override
Expand All @@ -21,12 +15,11 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_problem_info);
Toolbar toolbar = (Toolbar)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar ab = getActionBar();
//ab.setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Intent intent = getIntent();
int problemId = intent.getIntExtra(ProblemActivity.EXTRA_MESSAGE, 1);
Problem problem = MainActivity.problems.get(problemId - 1);
Problem problem = Start.problems.get(problemId - 1);

TextView tv5 = (TextView)findViewById(R.id.problemTextInfo);
tv5.setWidth(screenWidth() / 10 * 9);
Expand Down
26 changes: 26 additions & 0 deletions app/src/main/java/com/example/root/prepolymp/Start.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.example.root.prepolymp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import java.util.ArrayList;

public class Start extends AppCompatActivity {

public static ArrayList<Problem> problems = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);

Problem problem = new Problem(1, "Найдите наименьшее натуральное число, кратное 99, в десятичной записи которого участвуют только чётные цифры.", "228888", "алгебра");
problems.add(problem);
problems.add(new Problem(2, "Посчитайте 2 + 3", "5", "алгебра"));
problems.add(new Problem(3, "Посчитайте 25 + 3", "28", "алгебра"));

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@
import android.view.View;
import android.view.ViewGroup;

import com.example.root.prepolymp.Problem;
import com.example.root.prepolymp.R;

import java.util.ArrayList;

public class Favourites extends Fragment {

public static ArrayList<Problem> favourites = new ArrayList<>();

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,27 +1,28 @@
package com.example.root.prepolymp.fragments;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import com.example.root.prepolymp.Problem;
import com.example.root.prepolymp.ProblemActivity;
import com.example.root.prepolymp.R;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;

import static com.example.root.prepolymp.MainActivity.problems;
import static com.example.root.prepolymp.Start.problems;

public class ProblemList extends Fragment {

public static final String EXTRA = "ProblemList";

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
Expand All @@ -41,5 +42,13 @@ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
ListView listView = (ListView)view.findViewById(R.id.list_problems);
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), R.layout.custom_textview, probText);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(getActivity(), ProblemActivity.class);
intent.putExtra(EXTRA, i);
getActivity().startActivity(intent);
}
});
}
}
20 changes: 20 additions & 0 deletions app/src/main/res/layout/activity_start.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.example.root.prepolymp.Start">

<!--
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="30dp"
android:elegantTextHeight="true"
android:textColor="@color/colorPrimary"
android:text="PrepOlymp beta"
android:gravity="center" />
-->

</android.support.constraint.ConstraintLayout>
2 changes: 2 additions & 0 deletions app/src/main/res/layout/app_bar_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,14 @@

<include layout="@layout/content_main" />

<!--
<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"
app:srcCompat="@android:drawable/ic_dialog_email" />
-->

</android.support.design.widget.CoordinatorLayout>
9 changes: 5 additions & 4 deletions app/src/main/res/layout/problem_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
android:layout_height="match_parent"
tools:context="com.example.root.prepolymp.ProblemActivity"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="0dp">
tools:layout_editor_absoluteX="0dp"
app:theme="@style/AppTheme.NoActionBar">

<TextView
android:id="@+id/problemText"
Expand Down Expand Up @@ -49,10 +50,10 @@
android:id="@+id/linearLayoutProblemInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/problemText"
app:layout_constraintBottom_toTopOf="@+id/problemText"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="@id/vertical_hl_3"
app:layout_constraintRight_toRightOf="@id/vertical_hl_4">
app:layout_constraintLeft_toLeftOf="@+id/vertical_hl_3"
app:layout_constraintRight_toLeftOf="@+id/vertical_hl_4">

<TextView
android:id="@+id/problemInfo"
Expand Down
14 changes: 14 additions & 0 deletions app/src/main/res/menu/menu_problem_activity.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<group>
<item
android:id="@+id/add_to_favourites"
android:title="Лайкнуть"
android:icon="@drawable/ic_menu_favourites"
app:showAsAction="always">
</item>
</group>

</menu>
3 changes: 1 addition & 2 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,11 @@

<string name="problem_data" formatted="false">Задача № %d. Класс: %d. Сложность: %d</string>
<string name="title_activity_problem_info">Информация о задаче</string>
<string name="title_activity_problem_list">ProblemList</string>
<string name="title_activity_problem_list">Задачи</string>

<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Close navigation drawer</string>

<string name="action_settings">Settings</string>
<string name="title_activity_nav_drawer_favourites">NavDrawerFavourites</string>

</resources>

0 comments on commit b7cbcf6

Please sign in to comment.