diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/denizd/substitutionplan/CardAdapter.java b/app/src/main/java/com/denizd/substitutionplan/CardAdapter.java
index 765847a..75d782d 100644
--- a/app/src/main/java/com/denizd/substitutionplan/CardAdapter.java
+++ b/app/src/main/java/com/denizd/substitutionplan/CardAdapter.java
@@ -206,342 +206,6 @@ public class CardAdapter extends RecyclerView.Adapter 0) {
cs--;
} else {
- Toast.makeText(getContext(), getString(R.string.donttell), Toast.LENGTH_LONG).show();
- cs = 7;
- customTabsIntent.launchUrl(getContext(), Uri.parse("http://www.flussufer.de/gerd/person.htm"));
+ try {
+ cs = 7;
+ customTabsIntent.launchUrl(getContext(), Uri.parse("http://www.flussufer.de/gerd/person.htm"));
+ Toast.makeText(getContext(), getString(R.string.donttell), Toast.LENGTH_LONG).show();
+ } catch (ActivityNotFoundException e) {
+ Toast.makeText(getContext(), getString(R.string.chromecompatible), Toast.LENGTH_LONG).show();
+ }
}
}
});
@@ -896,14 +734,16 @@ public class FragmentSettings extends Fragment implements View.OnClickListener {
break;
}
case "2018-04-20":
- Toast.makeText(getActivity(), getEmojiByUnicode(0x1F494),
- Toast.LENGTH_LONG).show();
- Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/watch?v=ynHYW1iTcq0")); // FTL
-
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setPackage("com.google.android.youtube");
- startActivity(intent);
-
+ try {
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.youtube.com/watch?v=u8tdT5pAE34")); // SOS
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setPackage("com.google.android.youtube");
+ startActivity(intent);
+ Toast.makeText(getActivity(), getEmojiByUnicode(0x1F494),
+ Toast.LENGTH_LONG).show();
+ } catch (ActivityNotFoundException e) {
+ Toast.makeText(getActivity(), R.string.noyoutube, Toast.LENGTH_LONG).show();
+ }
break;
case "Q1 Matchmaker": {
final Random gen = new Random();
diff --git a/app/src/main/java/com/denizd/substitutionplan/MainActivity.java b/app/src/main/java/com/denizd/substitutionplan/MainActivity.java
index c134590..0994971 100644
--- a/app/src/main/java/com/denizd/substitutionplan/MainActivity.java
+++ b/app/src/main/java/com/denizd/substitutionplan/MainActivity.java
@@ -2,7 +2,6 @@ package com.denizd.substitutionplan;
import android.app.ActivityManager;
import android.app.AlertDialog;
-import android.app.SearchManager;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.ComponentName;
@@ -28,6 +27,7 @@ import com.jaredrummler.android.device.DeviceName;
import androidx.annotation.NonNull;
import androidx.coordinatorlayout.widget.CoordinatorLayout;
+import androidx.core.widget.NestedScrollView;
import androidx.fragment.app.Fragment;
import androidx.core.content.ContextCompat;
@@ -36,13 +36,13 @@ import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.RecyclerView;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
-import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -82,6 +82,8 @@ public class MainActivity extends AppCompatActivity {
finish();
}
+ final Context context = this;
+
edit.putInt("launchDev", prefs.getInt("launchDev", 0) + 1);
edit.apply();
@@ -109,6 +111,10 @@ public class MainActivity extends AppCompatActivity {
final BottomNavigationView bottomNav = findViewById(R.id.bottom_nav);
final Chip chip = findViewById(R.id.chip);
+ if (!prefs.getBoolean("showinfotab", true)) {
+ bottomNav.getMenu().removeItem(R.id.openinfopanel);
+ }
+
final CoordinatorLayout fragmentContainer = findViewById(R.id.fragment_container);
fragmentContainer.setOnClickListener(new View.OnClickListener() {
@Override
@@ -123,6 +129,7 @@ public class MainActivity extends AppCompatActivity {
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (bottomSheetBehaviour.getState() == BottomSheetBehavior.STATE_EXPANDED) { // 2 = expanded, 4 = collapsed
bottomSheetCloser.setVisibility(View.VISIBLE);
+
}
if (bottomSheetBehaviour.getState() == BottomSheetBehavior.STATE_COLLAPSED) { // 2 = expanded, 4 = collapsed
bottomSheetCloser.setVisibility(View.GONE);
@@ -153,8 +160,6 @@ public class MainActivity extends AppCompatActivity {
}
}
- final Context context = this;
-
// TODO Huawei dialog
if (prefs.getBoolean("huaweiDeviceDialog", true)) {
@@ -268,7 +273,7 @@ public class MainActivity extends AppCompatActivity {
final Animation animationOut = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.chip_slide_out);
final Random generator = new Random();
Resources res = getResources();
- String greetings[] = res.getStringArray(R.array.greeting8_array);
+ String[] greetings = res.getStringArray(R.array.greeting8_array);
Calendar rightNow = Calendar.getInstance();
int currentHour = rightNow.get(Calendar.HOUR_OF_DAY);
@@ -397,24 +402,51 @@ public class MainActivity extends AppCompatActivity {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Fragment fragment = null;
+ boolean switcher = false;
switch (item.getItemId()) {
case R.id.plan:
- fragment = new FragmentPlan();
- toolbarTxt.setText(getString(R.string.app_name));
+ if (getCurrentFragment().toString().contains("FragmentPlan")) {
+ final RecyclerView recyclerView = findViewById(R.id.linearRecycler);
+ recyclerView.post(new Runnable() {
+ @Override
+ public void run() {
+ recyclerView.smoothScrollToPosition(0);
+ appbarlayout.setExpanded(true);
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ }
+ });
+ } else {
+ fragment = new FragmentPlan();
+ toolbarTxt.setText(getString(R.string.app_name));
+ switcher = true;
+ }
break;
case R.id.personal:
- fragment = new FragmentPersonal();
- if (!prefs.getString("username", "").isEmpty()) {
- if (Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("s")
- || Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("x")
- || Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("z")) {
- toolbarTxt.setText(prefs.getString("username", "") + getString(R.string.nosplan));
- } else {
- toolbarTxt.setText(prefs.getString("username", "") + getString(R.string.splan));
- }
+ if (getCurrentFragment().toString().contains("FragmentPersonal")) {
+ final RecyclerView recyclerView = findViewById(R.id.linearRecycler);
+ recyclerView.post(new Runnable() {
+ @Override
+ public void run() {
+ recyclerView.smoothScrollToPosition(0);
+ appbarlayout.setExpanded(true);
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ }
+ });
} else {
- toolbarTxt.setText(getString(R.string.personalplan));
+ fragment = new FragmentPersonal();
+ if (!prefs.getString("username", "").isEmpty()) {
+ if (Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("s")
+ || Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("x")
+ || Character.toString(prefs.getString("username", "").charAt(prefs.getString("username", "").length() - 1)).toLowerCase().equals("z")) {
+ toolbarTxt.setText(prefs.getString("username", "") + getString(R.string.nosplan));
+ } else {
+ toolbarTxt.setText(prefs.getString("username", "") + getString(R.string.splan));
+ }
+ } else {
+ toolbarTxt.setText(getString(R.string.personalplan));
+ }
+ switcher = true;
}
break;
// case R.id.search:
@@ -422,22 +454,65 @@ public class MainActivity extends AppCompatActivity {
// toolbarTxt.setText(getString(R.string.search));
// break;
case R.id.menu:
- fragment = new FragmentFood();
- toolbarTxt.setText(getString(R.string.foodmenu));
+ if (getCurrentFragment().toString().contains("FragmentFood")) {
+ final RecyclerView recyclerView = findViewById(R.id.linear_food);
+ recyclerView.post(new Runnable() {
+ @Override
+ public void run() {
+ recyclerView.smoothScrollToPosition(0);
+ appbarlayout.setExpanded(true);
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ }
+ });
+ } else {
+ fragment = new FragmentFood();
+ toolbarTxt.setText(getString(R.string.foodmenu));
+ switcher = true;
+ }
break;
case R.id.settings:
- fragment = new FragmentSettings();
- toolbarTxt.setText(getString(R.string.settings));
+ if (getCurrentFragment().toString().contains("FragmentSettings")) {
+ final NestedScrollView nsv = findViewById(R.id.nsvsettings);
+ nsv.post(new Runnable() {
+ @Override
+ public void run() {
+// recyclerView.fling(0);
+ nsv.smoothScrollTo(0, 0);
+ appbarlayout.setExpanded(true);
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ }
+ });
+ } else {
+ fragment = new FragmentSettings();
+ toolbarTxt.setText(getString(R.string.settings));
+ switcher = true;
+ }
break;
+ case R.id.openinfopanel:
+ if (bottomSheetBehaviour.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_EXPANDED);
+ break;
+ } else if (bottomSheetBehaviour.getState() == BottomSheetBehavior.STATE_EXPANDED) {
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ break;
+ }
+ }
+ if (switcher) {
+ appbarlayout.setExpanded(true);
+ bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
+ return loadFragment(fragment);
+ } else {
+ return false;
}
- appbarlayout.setExpanded(true);
- bottomSheetBehaviour.setState(BottomSheetBehavior.STATE_COLLAPSED);
- return loadFragment(fragment);
}
});
}
+ private Fragment getCurrentFragment() {
+ return getSupportFragmentManager().findFragmentById(R.id.fragment_container);
+ }
+
private boolean loadFragment(Fragment fragment) {
if (fragment != null) {
getSupportFragmentManager()
diff --git a/app/src/main/res/drawable/ic_information.xml b/app/src/main/res/drawable/ic_information.xml
new file mode 100644
index 0000000..1a1b4d1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_information.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
index 2bfa1cb..a2ec6aa 100644
--- a/app/src/main/res/layout/app_bar_main.xml
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -19,10 +19,10 @@
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorBackground"
- app:layout_scrollFlags="scroll|enterAlwaysCollapsed"
app:popupTheme="@style/AppThemeLight.PopupOverlay"
app:titleTextColor="?attr/colorAccent"
- app:contentInsetStart="0dp">
+ app:contentInsetStart="0dp"
+ app:layout_scrollFlags="scroll|enterAlwaysCollapsed">
+ android:backgroundTint="@color/red"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/pink"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/purple"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/deeppurple"
+ app:cornerRadius="16dp"/>
@@ -45,25 +49,29 @@
android:id="@+id/colourLavender"
android:layout_margin="8dp"
android:layout_weight="1"
- android:backgroundTint="@color/lavender"/>
+ android:backgroundTint="@color/lavender"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/indigo"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/blue"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/lightblue"
+ app:cornerRadius="16dp"/>
@@ -75,25 +83,29 @@
android:id="@+id/colourTeal"
android:layout_margin="8dp"
android:layout_weight="1"
- android:backgroundTint="@color/teal"/>
+ android:backgroundTint="@color/teal"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/green"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/yellow"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/orange"
+ app:cornerRadius="16dp"/>
@@ -112,25 +124,29 @@
android:id="@+id/colourNeonRed"
android:layout_margin="8dp"
android:layout_weight="1"
- android:backgroundTint="@color/neonred"/>
+ android:backgroundTint="@color/neonred"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neonpink"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neonpurple"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neondeeppurple"
+ app:cornerRadius="16dp"/>
@@ -142,25 +158,29 @@
android:id="@+id/colourNeonBlue"
android:layout_margin="8dp"
android:layout_weight="1"
- android:backgroundTint="@color/neonblue"/>
+ android:backgroundTint="@color/neonblue"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neongreen"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neonyellow"
+ app:cornerRadius="16dp"/>
+ android:backgroundTint="@color/neonorange"
+ app:cornerRadius="16dp"/>
diff --git a/app/src/main/res/layout/content_settings.xml b/app/src/main/res/layout/content_settings.xml
index 4d7e964..fb0272d 100644
--- a/app/src/main/res/layout/content_settings.xml
+++ b/app/src/main/res/layout/content_settings.xml
@@ -7,6 +7,7 @@
android:background="?attr/colorBackground">
@@ -129,6 +130,40 @@
app:layout_constraintStart_toStartOf="@+id/txtDark"
app:layout_constraintTop_toTopOf="@+id/txtDark" />
+
+
+
+
+
+
+
+
+ app:layout_constraintStart_toStartOf="@+id/txtHideInfo2"
+ app:layout_constraintTop_toBottomOf="@+id/txtHideInfo2" />
+ app:layout_constraintTop_toBottomOf="@+id/txtHideInfo2" />
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:layout_marginTop="3dp"
+ android:layout_marginBottom="3dp"
+ app:cardElevation="2dp">
diff --git a/app/src/main/res/layout/just_a_card.xml b/app/src/main/res/layout/just_a_card.xml
index c51caff..3e545c3 100644
--- a/app/src/main/res/layout/just_a_card.xml
+++ b/app/src/main/res/layout/just_a_card.xml
@@ -6,11 +6,11 @@
app:cardCornerRadius="4dp"
android:clickable="true"
android:focusable="true"
- android:layout_marginStart="4dp"
- android:layout_marginEnd="4dp"
- android:layout_marginTop="1dp"
- android:layout_marginBottom="1dp"
- app:cardElevation="1dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
+ android:layout_marginTop="3dp"
+ android:layout_marginBottom="3dp"
+ app:cardElevation="2dp"
xmlns:android="http://schemas.android.com/apk/res/android">
+
-
\ No newline at end of file
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index a97f2c1..4444a18 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -124,4 +124,8 @@
Farben für alle Kurse wurden gelöscht
Farbe löschen
Fertigstellen
+ Kein Chrome-kompatibler Browser gefunden
+ YouTube-App nicht gefunden
+ Unabhängig von Wischgeste
+ Zeige Info-Tab in Navigationsleisete
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 82091bc..3cbf7ca 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -141,6 +141,12 @@
Colours for all courses have been cleared
Finish
+ No Chrome-compatible browser found
+ YouTube app not found
+
+ Show info tab in navigation bar
+ Independent of swipe gesture
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 299d00c..7b9dfc6 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -41,7 +41,7 @@
- #1B1B1B
- #448aff
- #1B1B1B
- - #1B1B1B
+ - #212121
- #e0e0e0
- #e0e0e0
- #9e9e9e
diff --git a/build.gradle b/build.gradle
index f39a804..8a6bb68 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,7 +8,7 @@ buildscript {
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.2'
+ classpath 'com.android.tools.build:gradle:3.5.0-alpha13'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e9f6cd5..f8711fc 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Mar 17 18:33:17 CET 2019
+#Mon May 06 17:16:56 CEST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4-rc-1-all.zip