diff --git a/app/src/androidTest/java/hu/paroczaioliver/paredu/ExampleInstrumentedTest.java b/app/src/androidTest/java/hu/paroczaioliver/paredu/ExampleInstrumentedTest.java new file mode 100644 index 0000000..7459404 --- /dev/null +++ b/app/src/androidTest/java/hu/paroczaioliver/paredu/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package hu.paroczaioliver.paredu; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("hu.paroczaioliver.projectlancer", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9b3c6d3..98ce9c7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ + package="hu.paroczaioliver.paredu"> diff --git a/app/src/main/java/hu/paroczaioliver/paredu/MainActivity.java b/app/src/main/java/hu/paroczaioliver/paredu/MainActivity.java new file mode 100644 index 0000000..55078f9 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/MainActivity.java @@ -0,0 +1,90 @@ +package hu.paroczaioliver.paredu; + +import android.os.Bundle; +import android.view.Gravity; +import android.view.MenuItem; +import android.view.View; +import android.view.Menu; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.android.material.snackbar.Snackbar; +import com.google.android.material.navigation.NavigationView; + +import androidx.fragment.app.Fragment; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import android.content.Intent; + +public class MainActivity extends AppCompatActivity { + + private AppBarConfiguration mAppBarConfiguration; + private Fragment mFragment; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + FloatingActionButton fab = findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Jelenleg letiltva", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + DrawerLayout drawer = findViewById(R.id.drawer_layout); + NavigationView navigationView = findViewById(R.id.nav_view); + mAppBarConfiguration = new AppBarConfiguration.Builder( + R.id.nav_home, R.id.nav_events, R.id.nav_schools, R.id.nav_map, R.id.nav_projects, R.id.nav_chats) + .setDrawerLayout(drawer) + .build(); + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); + NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); + NavigationUI.setupWithNavController(navigationView, navController); + navigationView.bringToFront(); + if(getIntent().getExtras() != null){ + navController.navigate(getIntent().getExtras().getInt("frgname")); + } + navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(MenuItem item) { + if(item.getItemId() == R.id.nav_map) { + drawer.closeDrawer(Gravity.LEFT); + MainActivity.this.startActivity(new Intent(MainActivity.this, MapActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)); + return false; + }else{ + drawer.closeDrawer(Gravity.LEFT); + navController.navigate(item.getItemId()); + item.setChecked(true); + return true; + } + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onSupportNavigateUp() { + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); + return NavigationUI.navigateUp(navController, mAppBarConfiguration) + || super.onSupportNavigateUp(); + } + + @Override + public void onBackPressed() { + finishAffinity(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/MapActivity.java b/app/src/main/java/hu/paroczaioliver/paredu/MapActivity.java new file mode 100644 index 0000000..ef85cbc --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/MapActivity.java @@ -0,0 +1,85 @@ +package hu.paroczaioliver.paredu; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.Gravity; +import android.view.Menu; +import android.view.MenuItem; + +import com.google.android.material.navigation.NavigationView; + +import org.osmdroid.api.IMapController; +import org.osmdroid.tileprovider.tilesource.TileSourceFactory; +import org.osmdroid.util.GeoPoint; +import org.osmdroid.views.MapView; +import org.osmdroid.config.Configuration; + +public class MapActivity extends AppCompatActivity { + MapView map = null; + private AppBarConfiguration mAppBarConfiguration; + + @Override public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_map); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + DrawerLayout drawer = findViewById(R.id.drawer_layout); + NavigationView navigationView = findViewById(R.id.nav_view); + mAppBarConfiguration = new AppBarConfiguration.Builder( + R.id.nav_home, R.id.nav_events, R.id.nav_schools, R.id.nav_map, R.id.nav_projects, R.id.nav_chats) + .setDrawerLayout(drawer) + .build(); + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); + NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); + NavigationUI.setupWithNavController(navigationView, navController); + navigationView.setCheckedItem(R.id.nav_map); + Context ctx = getApplicationContext(); + Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx)); + map = (MapView) findViewById(R.id.map); + map.setTileSource(TileSourceFactory.MAPNIK); + IMapController mapController = map.getController(); + mapController.setZoom(9.00); + GeoPoint startPoint = new GeoPoint(47.497913, 19.040236); + mapController.setCenter(startPoint); + navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { + public boolean onNavigationItemSelected(MenuItem item) { + drawer.closeDrawer(Gravity.LEFT); + Intent i = new Intent(MapActivity.this, MainActivity.class).addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + i.putExtra("frgname", item.getItemId()); + startActivity(i); + return false; + } + }); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onSupportNavigateUp() { + NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); + return NavigationUI.navigateUp(navController, mAppBarConfiguration) + || super.onSupportNavigateUp(); + } + + @Override + public void onBackPressed() { + finishAffinity(); + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsFragment.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsFragment.java new file mode 100644 index 0000000..68a7cb6 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsFragment.java @@ -0,0 +1,35 @@ +package hu.paroczaioliver.paredu.ui.chats; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import hu.paroczaioliver.paredu.R; + +public class ChatsFragment extends Fragment { + + private ChatsViewModel chatsViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + chatsViewModel = + new ViewModelProvider(this).get(ChatsViewModel.class); + View root = inflater.inflate(R.layout.fragment_chats, container, false); + final TextView textView = root.findViewById(R.id.text_chats); + chatsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsViewModel.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsViewModel.java new file mode 100644 index 0000000..86047ac --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/chats/ChatsViewModel.java @@ -0,0 +1,19 @@ +package hu.paroczaioliver.paredu.ui.chats; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class ChatsViewModel extends ViewModel { + + private MutableLiveData mText; + + public ChatsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("Üzenetek - Fejlesztés alatt"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsFragment.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsFragment.java new file mode 100644 index 0000000..10bd4dd --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsFragment.java @@ -0,0 +1,35 @@ +package hu.paroczaioliver.paredu.ui.events; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import hu.paroczaioliver.paredu.R; + +public class EventsFragment extends Fragment { + + private EventsViewModel eventViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + eventViewModel = + new ViewModelProvider(this).get(EventsViewModel.class); + View root = inflater.inflate(R.layout.fragment_events, container, false); + final TextView textView = root.findViewById(R.id.text_events); + eventViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsViewModel.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsViewModel.java new file mode 100644 index 0000000..dced286 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/events/EventsViewModel.java @@ -0,0 +1,19 @@ +package hu.paroczaioliver.paredu.ui.events; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class EventsViewModel extends ViewModel { + + private MutableLiveData mText; + + public EventsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("Rendezvények - Fejlesztés alatt"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeFragment.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeFragment.java new file mode 100644 index 0000000..d4c9b29 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeFragment.java @@ -0,0 +1,33 @@ +package hu.paroczaioliver.paredu.ui.home; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import hu.paroczaioliver.paredu.R; + +public class HomeFragment extends Fragment { + + private HomeViewModel homeViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + homeViewModel = + new ViewModelProvider(this).get(hu.paroczaioliver.paredu.ui.home.HomeViewModel.class); + View root = inflater.inflate(R.layout.fragment_home, container, false); + homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeViewModel.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeViewModel.java new file mode 100644 index 0000000..67c2685 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/home/HomeViewModel.java @@ -0,0 +1,19 @@ +package hu.paroczaioliver.paredu.ui.home; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class HomeViewModel extends ViewModel { + + private MutableLiveData mText; + + public HomeViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("Kezdőlap"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsFragment.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsFragment.java new file mode 100644 index 0000000..8b68f5a --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsFragment.java @@ -0,0 +1,35 @@ +package hu.paroczaioliver.paredu.ui.projects; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import hu.paroczaioliver.paredu.R; + +public class ProjectsFragment extends Fragment { + + private hu.paroczaioliver.paredu.ui.projects.ProjectsViewModel ProjectsViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + ProjectsViewModel = + new ViewModelProvider(this).get(hu.paroczaioliver.paredu.ui.projects.ProjectsViewModel.class); + View root = inflater.inflate(R.layout.fragment_projects, container, false); + final TextView textView = root.findViewById(R.id.text_projects); + ProjectsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsViewModel.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsViewModel.java new file mode 100644 index 0000000..2a26385 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/projects/ProjectsViewModel.java @@ -0,0 +1,19 @@ +package hu.paroczaioliver.paredu.ui.projects; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class ProjectsViewModel extends ViewModel { + + private MutableLiveData mText; + + public ProjectsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("Projektek - Fejlesztés alatt"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsFragment.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsFragment.java new file mode 100644 index 0000000..333a838 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsFragment.java @@ -0,0 +1,35 @@ +package hu.paroczaioliver.paredu.ui.schools; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import hu.paroczaioliver.paredu.R; + +public class SchoolsFragment extends Fragment { + + private SchoolsViewModel schoolsViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + schoolsViewModel = + new ViewModelProvider(this).get(SchoolsViewModel.class); + View root = inflater.inflate(R.layout.fragment_schools, container, false); + final TextView textView = root.findViewById(R.id.text_schools); + schoolsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} \ No newline at end of file diff --git a/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsViewModel.java b/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsViewModel.java new file mode 100644 index 0000000..4545926 --- /dev/null +++ b/app/src/main/java/hu/paroczaioliver/paredu/ui/schools/SchoolsViewModel.java @@ -0,0 +1,19 @@ +package hu.paroczaioliver.paredu.ui.schools; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class SchoolsViewModel extends ViewModel { + + private MutableLiveData mText; + + public SchoolsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("Iskolák - Fejlesztés alatt"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index 2b068d1..6ca3486 100644 --- a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -1,30 +1,5 @@ - - - - - - - - - - - \ No newline at end of file + + + diff --git a/app/src/main/res/drawable/ic_baseline_book_48.xml b/app/src/main/res/drawable/ic_baseline_book_48.xml new file mode 100644 index 0000000..440e699 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_book_48.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_book_64.xml b/app/src/main/res/drawable/ic_baseline_book_64.xml new file mode 100644 index 0000000..f465899 --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_book_64.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_baseline_book_96.xml b/app/src/main/res/drawable/ic_baseline_book_96.xml new file mode 100644 index 0000000..bce799b --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_book_96.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml index 07d5da9..de9c743 100644 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -5,166 +5,6 @@ android:viewportWidth="108" android:viewportHeight="108"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/nav_header_main.xml b/app/src/main/res/layout/nav_header_main.xml index b3094a8..28d054f 100644 --- a/app/src/main/res/layout/nav_header_main.xml +++ b/app/src/main/res/layout/nav_header_main.xml @@ -17,7 +17,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/nav_header_vertical_spacing" - app:srcCompat="@mipmap/ic_launcher_round" /> + app:srcCompat="@drawable/ic_baseline_book_48" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b5e1c3c..41ca6af 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,8 @@ - Project Lancer + ParEdu Navigációs menü megnyitása Navigációs menü bezárása - Project Lancer + ParEdu Fejlesztés alatt Beállítások diff --git a/app/src/test/java/hu/paroczaioliver/paredu/ExampleUnitTest.java b/app/src/test/java/hu/paroczaioliver/paredu/ExampleUnitTest.java new file mode 100644 index 0000000..85d21bf --- /dev/null +++ b/app/src/test/java/hu/paroczaioliver/paredu/ExampleUnitTest.java @@ -0,0 +1,17 @@ +package hu.paroczaioliver.paredu; + +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + assertEquals(4, 2 + 2); + } +} \ No newline at end of file