diff --git a/app/app.iml b/app/app.iml
index d098939..8ac3f6e 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -87,7 +87,7 @@
-
+
diff --git a/app/build.gradle b/app/build.gradle
index 87b24b8..1f1edf6 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,19 +1,20 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 28
+ compileSdkVersion 29
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "de.sebse.fuplanner"
- minSdkVersion 15
- targetSdkVersion 28
+ minSdkVersion 21
+ targetSdkVersion 29
versionCode 39
versionName "1.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
- minifyEnabled false
+ minifyEnabled true
+ shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7e2ef90..04fe56a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -62,7 +62,9 @@
-
+
diff --git a/app/src/main/java/de/sebse/fuplanner/MainActivity.java b/app/src/main/java/de/sebse/fuplanner/MainActivity.java
index 64b1e54..6f6f55a 100644
--- a/app/src/main/java/de/sebse/fuplanner/MainActivity.java
+++ b/app/src/main/java/de/sebse/fuplanner/MainActivity.java
@@ -9,7 +9,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.net.Uri;
-import android.os.Build;
import android.os.Bundle;
import android.os.IBinder;
import android.text.TextUtils;
@@ -69,7 +68,6 @@ import de.sebse.fuplanner.tools.Preferences;
import de.sebse.fuplanner.tools.Regex;
import de.sebse.fuplanner.tools.RequestPermissionsResultListener;
import de.sebse.fuplanner.tools.logging.Logger;
-import de.sebse.fuplanner.tools.network.NukeSSLCerts;
import de.sebse.fuplanner.tools.types.News;
public class MainActivity extends AppCompatActivity
@@ -404,10 +402,7 @@ public class MainActivity extends AppCompatActivity
case R.id.nav_rate:
Uri uri = Uri.parse("market://details?id=" + getApplicationContext().getPackageName());
Intent viewIntent = new Intent(Intent.ACTION_VIEW, uri);
- if (Build.VERSION.SDK_INT <= 21)
- viewIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
- else
- viewIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
+ viewIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_NEW_DOCUMENT | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
try {
startActivity(viewIntent);
} catch (ActivityNotFoundException e) {
@@ -439,7 +434,7 @@ public class MainActivity extends AppCompatActivity
}
@Override
- protected void onSaveInstanceState(Bundle savedInstanceState) {
+ protected void onSaveInstanceState(@NonNull Bundle savedInstanceState) {
if (mFragmentPage != FRAGMENT_STARTUP && mFragmentPage != FRAGMENT_NONE) {
Fragment fragment = mFragmentManager.findFragmentByTag(String.valueOf(mFragmentPage));
savedInstanceState.putInt(ARG_FRAGMENT_PAGE, mFragmentPage);
@@ -627,7 +622,6 @@ public class MainActivity extends AppCompatActivity
int size = mNavigationView.getMenu().size();
try {
Canteen canteen = success.getCanteen(Integer.parseInt(mFragmentData));
- //noinspection ConstantConditions
String title = canteen == null ? null : canteen.getName();
for (int k = 0; k < size; k++) {
MenuItem menuItem = mNavigationView.getMenu().getItem(k);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/CanteensAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/CanteensAdapter.java
index 51aa807..b284aee 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/CanteensAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/CanteensAdapter.java
@@ -1,6 +1,5 @@
package de.sebse.fuplanner.fragments;
-import android.os.Build;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -24,7 +23,6 @@ import de.sebse.fuplanner.tools.ui.StringViewHolder;
*/
class CanteensAdapter extends RecyclerView.Adapter {
- private static final int TYPE_NO_LIST_AVAILABLE = 0;
private static final int TYPE_DELETE_BUTTON = 1;
private static final int TYPE_ENTRY = 2;
private Canteens mValues;
@@ -46,11 +44,7 @@ class CanteensAdapter extends RecyclerView.Adapter {
@NonNull
@Override
public CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- if (viewType == TYPE_NO_LIST_AVAILABLE) {
- View view = LayoutInflater.from(parent.getContext())
- .inflate(R.layout.list_all_no_items, parent, false);
- return new StringViewHolder(view);
- } else if (viewType == TYPE_DELETE_BUTTON) {
+ if (viewType == TYPE_DELETE_BUTTON) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_canteens_btn_delete, parent, false);
return new StringViewHolder(view);
@@ -63,9 +57,7 @@ class CanteensAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(@NonNull CustomViewHolder holder, int position) {
int viewType = getItemViewType(position);
- if (viewType == TYPE_NO_LIST_AVAILABLE) {
- ((StringViewHolder) holder).mString.setText(R.string.canteen_not_available);
- } else if (viewType == TYPE_DELETE_BUTTON) {
+ if (viewType == TYPE_DELETE_BUTTON) {
((StringViewHolder) holder).mString.setOnClickListener(v -> endDeletion());
} else {
if (mIsShowDeletion) {
@@ -108,9 +100,6 @@ class CanteensAdapter extends RecyclerView.Adapter {
@Override
public int getItemCount() {
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- return 1;
- }
if (mValues != null) {
return mIsShowDeletion ? mValues.size() + 1 : mValues.size();
}
@@ -119,9 +108,6 @@ class CanteensAdapter extends RecyclerView.Adapter {
@Override
public int getItemViewType(int position) {
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- return TYPE_NO_LIST_AVAILABLE;
- }
return mIsShowDeletion && position == 0 ? TYPE_DELETE_BUTTON : TYPE_ENTRY;
}
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/CanteensFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/CanteensFragment.java
index 6d18a52..9a93d51 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/CanteensFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/CanteensFragment.java
@@ -13,8 +13,6 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.R;
@@ -88,7 +86,7 @@ public class CanteensFragment extends Fragment {
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof OnCanteensFragmentInteractionListener) {
mListener = (OnCanteensFragmentInteractionListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/ModulesFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/ModulesFragment.java
index 0d2ebeb..739cc9d 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/ModulesFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/ModulesFragment.java
@@ -82,7 +82,7 @@ public class ModulesFragment extends Fragment {
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof OnModulesFragmentInteractionListener) {
mListener = (OnModulesFragmentInteractionListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/NewsFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/NewsFragment.java
index b497406..d6aecc1 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/NewsFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/NewsFragment.java
@@ -53,7 +53,7 @@ public class NewsFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
mListener = (MainActivityListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java
index 83666c0..08b2bbd 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/ScheduleFragment.java
@@ -103,7 +103,7 @@ public class ScheduleFragment extends Fragment implements
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
mListener = (MainActivityListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherAdapter.java
index b47436c..0f816f1 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherAdapter.java
@@ -1,5 +1,6 @@
package de.sebse.fuplanner.fragments.canteen;
+import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
@@ -11,7 +12,7 @@ class DaySwitcherAdapter extends FragmentStatePagerAdapter {
private Canteen mCanteen = null;
DaySwitcherAdapter(FragmentManager fm) {
- super(fm);
+ super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
}
public void setModule(Canteen canteen) {
@@ -31,6 +32,7 @@ class DaySwitcherAdapter extends FragmentStatePagerAdapter {
}
// Returns the fragment to display for that page
+ @NonNull
@Override
public Fragment getItem(int position) {
return MealFragment.newInstance(mCanteen.getId(), position);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherFragment.java
index 5fe8bf8..feac72f 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/DaySwitcherFragment.java
@@ -101,7 +101,7 @@ public class DaySwitcherFragment extends Fragment implements DaySwitcherListener
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
mListener = (MainActivityListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealFragment.java
index d65d647..8962ff4 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/canteen/MealFragment.java
@@ -85,7 +85,7 @@ public class MealFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
Fragment parentFragment = getParentFragment();
if (parentFragment != null) {
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAdapter.java
index cba575b..814cff4 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAdapter.java
@@ -1,6 +1,8 @@
package de.sebse.fuplanner.fragments.moddetails;
import android.content.Context;
+
+import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
@@ -12,7 +14,7 @@ class ModDetailAdapter extends FragmentStatePagerAdapter {
private final Context mContext;
ModDetailAdapter(FragmentManager fm, String itemPosition, Context context) {
- super(fm);
+ super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.mContext = context;
this.mItemPos = itemPosition;
}
@@ -25,6 +27,7 @@ class ModDetailAdapter extends FragmentStatePagerAdapter {
}
// Returns the fragment to display for that page
+ @NonNull
@Override
public Fragment getItem(int position) {
switch (ModulePart.getPartByPage(position)) {
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceAdapter.java
index c5efa3b..7c06647 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceAdapter.java
@@ -93,10 +93,7 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter {
try {
return URLDecoder.decode(Regex.regex("/([^/]*)$", url), "UTF-8");
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- return res.getString(R.string.attachment_nr, index);
- } catch (UnsupportedEncodingException e) {
+ } catch (NoSuchFieldException | UnsupportedEncodingException e) {
e.printStackTrace();
return res.getString(R.string.attachment_nr, index);
}
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceFragment.java
index b88cb60..ce9d727 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAnnounceFragment.java
@@ -110,7 +110,7 @@ public class ModDetailAnnounceFragment extends Fragment implements Download.OnDo
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentAdapter.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentAdapter.java
index 730ad00..27111d1 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentAdapter.java
@@ -93,10 +93,7 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter
try {
return URLDecoder.decode(Regex.regex("/([^/]*)$", url), "UTF-8");
- } catch (NoSuchFieldException e) {
- e.printStackTrace();
- return res.getString(R.string.attachment_nr, index);
- } catch (UnsupportedEncodingException e) {
+ } catch (NoSuchFieldException | UnsupportedEncodingException e) {
e.printStackTrace();
return res.getString(R.string.attachment_nr, index);
}
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentFragment.java
index d4ebfb4..c4a8dcc 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailAssignmentFragment.java
@@ -110,7 +110,7 @@ public class ModDetailAssignmentFragment extends Fragment implements Download.On
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailEventFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailEventFragment.java
index f2abeb3..1e54a81 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailEventFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailEventFragment.java
@@ -96,7 +96,7 @@ public class ModDetailEventFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailFragment.java
index 2344df7..bf9e397 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailFragment.java
@@ -97,7 +97,7 @@ public class ModDetailFragment extends Fragment implements ModDetailListener {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
mListener = (MainActivityListener) context;
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailGradebookFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailGradebookFragment.java
index 4cf0830..72dcaa7 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailGradebookFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailGradebookFragment.java
@@ -96,7 +96,7 @@ public class ModDetailGradebookFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
index 23ab709..474976c 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailOverviewFragment.java
@@ -100,7 +100,7 @@ public class ModDetailOverviewFragment extends Fragment {
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailResourceFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailResourceFragment.java
index c85d993..c70a02b 100644
--- a/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailResourceFragment.java
+++ b/app/src/main/java/de/sebse/fuplanner/fragments/moddetails/ModDetailResourceFragment.java
@@ -135,7 +135,7 @@ public class ModDetailResourceFragment extends Fragment implements Download.OnDo
}
@Override
- public void onAttach(Context context) {
+ public void onAttach(@NonNull Context context) {
super.onAttach(context);
if (context instanceof MainActivityListener) {
this.mListener = ((MainActivityListener) context);
diff --git a/app/src/main/java/de/sebse/fuplanner/services/canteen/CanteenBrowser.java b/app/src/main/java/de/sebse/fuplanner/services/canteen/CanteenBrowser.java
index 8d4a00b..54abecc 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/canteen/CanteenBrowser.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/canteen/CanteenBrowser.java
@@ -1,14 +1,12 @@
package de.sebse.fuplanner.services.canteen;
import android.content.Context;
-import android.os.Build;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
-import java.util.HashSet;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.canteen.types.Canteen;
@@ -37,9 +35,7 @@ public class CanteenBrowser extends HTTPService {
throw new RuntimeException(context.toString() + " must implement CanteenListener");
try {
this.canteens = Canteens.load(context);
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
@@ -68,11 +64,6 @@ public class CanteenBrowser extends HTTPService {
}
private void upgradeCanteens(final NetworkCallback callback, final NetworkErrorCallback errorCallback) {
- // TSL 1.2 not supported (https://github.com/google/volley/issues/77)
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- callback.onResponse(new Canteens());
- return;
- }
int[] visibleCanteens = Preferences.getArrayInt(context, R.string.pref_canteen_selection);
if (visibleCanteens == null) {
Preferences.setArrayInt(context, R.string.pref_canteen_selection, Canteens.availableCanteens);
@@ -144,11 +135,6 @@ public class CanteenBrowser extends HTTPService {
}
private void upgradeCanteen(Canteen canteen, final NetworkCallback callback, final NetworkErrorCallback errorCallback) {
- // TSL 1.2 not supported (https://github.com/google/volley/issues/77)
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- callback.onResponse(canteen);
- return;
- }
get(String.format("https://openmensa.org/api/v2/canteens/%s/days", canteen.getId()), null, response -> {
String body = response.getParsed();
if (body == null) {
@@ -196,11 +182,6 @@ public class CanteenBrowser extends HTTPService {
}
private void upgradeDay(Day day, final NetworkCallback callback, final NetworkErrorCallback errorCallback) {
- // TSL 1.2 not supported (https://github.com/google/volley/issues/77)
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- callback.onResponse(day);
- return;
- }
get(String.format("https://openmensa.org/api/v2/canteens/%s/days/%s/meals/", day.getCanteenId(), Canteen.calendarToKey(day.getCalendar())), null, response -> {
String body = response.getParsed();
if (body == null) {
diff --git a/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticator.java b/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticator.java
index 0a6bdcf..e33032c 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticator.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/fulogin/FUAuthenticator.java
@@ -73,9 +73,7 @@ public class FUAuthenticator extends AbstractAccountAuthenticator {
throw new NetworkErrorException(authToken);
else authToken = null;
}
- } catch (InterruptedException e) {
- e.printStackTrace();
- } catch (ExecutionException e) {
+ } catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java b/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java
index 8f779c5..669f01b 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/fulogin/UserLoginTask.java
@@ -5,7 +5,6 @@ import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
-import android.os.Build;
import org.jetbrains.annotations.NotNull;
@@ -67,7 +66,7 @@ public class UserLoginTask extends AsyncTask {
AtomicReference login = new AtomicReference<>();
NetworkErrorCallback errorFunc = error -> {
log.e(error);
- login.set("Error: "+String.valueOf(error.getCode()));
+ login.set("Error: "+ error.getCode());
latch.countDown();
};
switch (mTokenType) {
@@ -123,7 +122,7 @@ public class UserLoginTask extends AsyncTask {
protected void onPostExecute(final String success) {
if (mActivity == null || mActivity.isFinishing())
return;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mActivity.isDestroyed())
+ if (mActivity.isDestroyed())
return;
mActivity.mAuthTask = null;
mActivity.showProgress(false);
@@ -149,7 +148,7 @@ public class UserLoginTask extends AsyncTask {
protected void onCancelled() {
if (mActivity == null || mActivity.isFinishing())
return;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 && mActivity.isDestroyed())
+ if (mActivity.isDestroyed())
return;
mActivity.mAuthTask = null;
mActivity.showProgress(false);
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java
index 3e1efb1..8711582 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/Login.java
@@ -16,7 +16,6 @@ import de.sebse.fuplanner.services.kvv.types.LoginTokenKVV;
import de.sebse.fuplanner.tools.CustomAccountManager;
import de.sebse.fuplanner.tools.NetworkCallbackCollector;
import de.sebse.fuplanner.tools.Preferences;
-import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.network.HTTPService;
import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkError;
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java
index 6702517..132aa6d 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEvents.java
@@ -1,7 +1,6 @@
package de.sebse.fuplanner.services.kvv;
import android.content.Context;
-import android.os.Build;
import android.text.TextUtils;
import org.json.JSONArray;
@@ -89,11 +88,6 @@ public class ModulesEvents extends PartModules {
@Override
protected void upgradeBB(String ID, NetworkCallback callback, NetworkErrorCallback errorCallback) {
- // TSL 1.2 not supported (https://github.com/google/volley/issues/77)
- if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
- callback.onResponse(new EventList());
- return;
- }
if (!mLogin.isInOnlineMode() || mLogin.getLoginTokenBB() == null || !mLogin.getLoginTokenBB().isAvailable()) {
errorCallback.onError(new NetworkError(101414, 500, "Currently running in offline mode!"));
return;
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEventsNumber.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEventsNumber.java
index 5815101..3f7de08 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEventsNumber.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesEventsNumber.java
@@ -2,17 +2,9 @@ package de.sebse.fuplanner.services.kvv;
import android.content.Context;
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedHashSet;
import de.sebse.fuplanner.services.kvv.types.CacheBBEventNumber;
-import de.sebse.fuplanner.services.kvv.types.CacheLecturer;
-import de.sebse.fuplanner.services.kvv.types.Lecturer;
import de.sebse.fuplanner.tools.Regex;
import de.sebse.fuplanner.tools.network.HTTPService;
import de.sebse.fuplanner.tools.network.NetworkCallback;
@@ -27,9 +19,7 @@ class ModulesEventsNumber extends HTTPService {
CacheBBEventNumber storage = null;
try {
storage = CacheBBEventNumber.load(context);
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
if (storage == null) {
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java
index 3c0241c..7a6b267 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesList.java
@@ -102,9 +102,7 @@ public class ModulesList extends HTTPService {
try {
this.mModules = Modules.load(getContext());
} catch (FileNotFoundException ignored) {
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
if (this.mModules == null) {
@@ -429,9 +427,7 @@ public class ModulesList extends HTTPService {
if (mBBCache == null) {
try {
mBBCache = CacheBBCourse.load(getContext());
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
@@ -444,9 +440,7 @@ public class ModulesList extends HTTPService {
if (mKVVCache == null) {
try {
mKVVCache = CacheKVVCourse.load(getContext());
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesListLecturer.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesListLecturer.java
index 8ca32b0..20de45b 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesListLecturer.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesListLecturer.java
@@ -27,9 +27,7 @@ class ModulesListLecturer extends HTTPService {
CacheLecturer storage = null;
try {
storage = CacheLecturer.load(context);
- } catch (IOException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
+ } catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
if (storage == null) {
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java
index 7f8abf1..63451f4 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ModulesResources.java
@@ -1,7 +1,6 @@
package de.sebse.fuplanner.services.kvv;
import android.content.Context;
-import android.os.Build;
import android.os.Environment;
import org.json.JSONArray;
@@ -101,9 +100,7 @@ public class ModulesResources extends PartModules> {
for (Resource res2: resources) {
try {
String utf8Name;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT)
- utf8Name = StandardCharsets.UTF_8.name();
- else utf8Name = "UTF-8";
+ utf8Name = StandardCharsets.UTF_8.name();
if (URLDecoder.decode(res2.getUrl(), utf8Name).endsWith(res.getContainer()) && res2 instanceof Resource.Folder) {
// Append File/Folder to list
((Resource.Folder) res2).add(res);
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java
index 8b8d047..b9727c1 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java
@@ -1,7 +1,6 @@
package de.sebse.fuplanner.services.kvv.sync;
import android.accounts.Account;
-import android.accounts.AccountManager;
import android.content.AbstractThreadedSyncAdapter;
import android.content.ComponentName;
import android.content.ContentProviderClient;
@@ -19,7 +18,6 @@ import androidx.annotation.StringRes;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.fragments.moddetails.ModulePart;
import de.sebse.fuplanner.services.kvv.KVV;
-import de.sebse.fuplanner.services.kvv.KVVListener;
import de.sebse.fuplanner.services.kvv.types.Announcement;
import de.sebse.fuplanner.services.kvv.types.Assignment;
import de.sebse.fuplanner.services.kvv.types.AssignmentList;
@@ -27,7 +25,6 @@ import de.sebse.fuplanner.services.kvv.types.EventList;
import de.sebse.fuplanner.services.kvv.types.Grade;
import de.sebse.fuplanner.services.kvv.types.Modules;
import de.sebse.fuplanner.services.kvv.types.Resource;
-import de.sebse.fuplanner.tools.CustomAccountManager;
import de.sebse.fuplanner.tools.CustomNotificationManager;
import de.sebse.fuplanner.tools.NewAsyncQueue;
import de.sebse.fuplanner.tools.UtilsDate;
@@ -139,7 +136,7 @@ public class KVVSyncAdapter extends AbstractThreadedSyncAdapter {
sendNotifications(assignments, module.assignments, module.title, Assignment::getTitle, Assignment::getId,
module.getID(), ModulePart.ASSIGNMENT,
R.string.assignment_updated, R.string.assignment_added, R.string.assignment_removed);
- sendNotifications(events, module.events, module.title, evt -> evt.getTitle()+" - "+UtilsDate.getModifiedDate(evt.getStartDate()), event -> String.valueOf(event.getStartDate())+event.getType()+event.getTitle(),
+ sendNotifications(events, module.events, module.title, evt -> evt.getTitle()+" - "+UtilsDate.getModifiedDate(evt.getStartDate()), event -> event.getStartDate() +event.getType()+event.getTitle(),
module.getID(), ModulePart.EVENT,
R.string.event_updated, R.string.event_added, R.string.event_removed);
sendNotifications(gradebook, module.gradebook, module.title, Grade::getItemName, Grade::getItemName,
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/CacheKVVCourse.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/CacheKVVCourse.java
index 10dd993..c8b029d 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/CacheKVVCourse.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/CacheKVVCourse.java
@@ -9,7 +9,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
-import java.util.HashSet;
public class CacheKVVCourse implements Serializable {
private transient static final long RESAVE_TIMER = 1000L * 60 * 60 * 24 * 30;
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Event.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Event.java
index c94c975..6dee558 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Event.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Event.java
@@ -69,11 +69,7 @@ public class Event implements Serializable {
return null;
}
byte[] encodedHash;
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
- encodedHash = digest.digest(siteId.getBytes(StandardCharsets.UTF_8));
- } else {
- encodedHash = digest.digest(siteId.getBytes());
- }
+ encodedHash = digest.digest(siteId.getBytes(StandardCharsets.UTF_8));
int h = (0xff & encodedHash[0]) + (0xff & encodedHash[1]) * 255;
h = h * 360 / 0xffff;
//int s = 0xff & encodedHash[2];
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java
index 146f9fa..90ff6a6 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/types/Modules.java
@@ -174,7 +174,7 @@ public class Modules implements Iterable, Serializable {
@Nullable public final String type;
@Nullable public final String description;
@NotNull private final String ID;
- @NotNull private final int moduleType;
+ private final int moduleType;
@Nullable public ArrayList announcements;
@Nullable public AssignmentList assignments;
@Nullable public EventList events;
@@ -195,7 +195,7 @@ public class Modules implements Iterable, Serializable {
return userPoint/maxPoint;
}
- private Module(@Nullable Semester semester, @NotNull HashSet lvNumber, @NotNull String title, @NotNull LinkedHashSet lecturer, @Nullable String type, @Nullable String description, @NotNull String ID, @NotNull int moduleType) {
+ private Module(@Nullable Semester semester, @NotNull HashSet lvNumber, @NotNull String title, @NotNull LinkedHashSet lecturer, @Nullable String type, @Nullable String description, @NotNull String ID, int moduleType) {
title = title.replaceAll("(.*?) (S[0-9]{2}|W[0-9/]{5})", "$1");
@@ -238,6 +238,7 @@ public class Modules implements Iterable, Serializable {
return moduleType;
}
+ @NonNull
public Module clone() {
return new Module(semester, lvNumber, title, new LinkedHashSet<>(lecturer), type, description, ID, moduleType);
}
diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/ui/Download.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/ui/Download.java
index 27a86ca..8f39440 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/kvv/ui/Download.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/ui/Download.java
@@ -10,7 +10,6 @@ import android.net.Uri;
import android.os.Environment;
import java.io.File;
-import java.util.ArrayList;
import java.util.Arrays;
import androidx.annotation.Nullable;
@@ -148,11 +147,6 @@ public class Download {
showDownloadError();
return;
}
- ArrayList intList = new ArrayList<>();
- for (int i : grantResults)
- {
- intList.add(i);
- }
int pos = Arrays.asList(permissions).indexOf("android.permission.WRITE_EXTERNAL_STORAGE");
if (pos != -1) {
if (grantResults[pos] != -1) {
@@ -194,11 +188,7 @@ public class Download {
Uri uri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".my.provider", url);
Intent intent;
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
- intent = new Intent(Intent.ACTION_VIEW);
- } else {
- intent = new Intent();
- }
+ intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
// Check what kind of file you are trying to open, by comparing the url with extensions.
diff --git a/app/src/main/java/de/sebse/fuplanner/services/news/NewsManager.java b/app/src/main/java/de/sebse/fuplanner/services/news/NewsManager.java
index 1ffd446..b1c0f19 100644
--- a/app/src/main/java/de/sebse/fuplanner/services/news/NewsManager.java
+++ b/app/src/main/java/de/sebse/fuplanner/services/news/NewsManager.java
@@ -8,6 +8,7 @@ import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import java.util.Locale;
import de.sebse.fuplanner.R;
@@ -82,7 +83,7 @@ public class NewsManager {
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
- return new String(buffer, "UTF-8");
+ return new String(buffer, StandardCharsets.UTF_8);
} catch (IOException ex) {
ex.printStackTrace();
return null;
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/CustomAccountManager.java b/app/src/main/java/de/sebse/fuplanner/tools/CustomAccountManager.java
index 05ed592..d9f0ad2 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/CustomAccountManager.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/CustomAccountManager.java
@@ -34,11 +34,7 @@ public class CustomAccountManager {
try {
String token = mAccountManager.blockingGetAuthToken(account, authTokenType, true);
mAccountManager.invalidateAuthToken(accountType, token);
- } catch (AuthenticatorException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (OperationCanceledException e) {
+ } catch (AuthenticatorException | OperationCanceledException | IOException e) {
e.printStackTrace();
}
}
@@ -53,11 +49,7 @@ public class CustomAccountManager {
if (callback != null)
callback.run(true);
return;
- } catch (AuthenticatorException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (OperationCanceledException e) {
+ } catch (AuthenticatorException | OperationCanceledException | IOException e) {
e.printStackTrace();
}
if (callback != null)
@@ -102,11 +94,7 @@ public class CustomAccountManager {
Account account = mAccountManager.getAccountsByType(accountType)[0];
try {
return mAccountManager.blockingGetAuthToken(account, authTokenType, true);
- } catch (AuthenticatorException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } catch (OperationCanceledException e) {
+ } catch (AuthenticatorException | OperationCanceledException | IOException e) {
e.printStackTrace();
}
return null;
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/MainActivityListener.java b/app/src/main/java/de/sebse/fuplanner/tools/MainActivityListener.java
index f26c797..8585f51 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/MainActivityListener.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/MainActivityListener.java
@@ -4,8 +4,6 @@ import androidx.annotation.StringRes;
import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.services.canteen.CanteenBrowser;
-import de.sebse.fuplanner.services.kvv.KVV;
-import de.sebse.fuplanner.services.kvv.KVVListener;
import de.sebse.fuplanner.services.news.NewsManager;
public interface MainActivityListener {
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/NewAsyncQueue.java b/app/src/main/java/de/sebse/fuplanner/tools/NewAsyncQueue.java
index 1bce40c..e7da1b1 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/NewAsyncQueue.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/NewAsyncQueue.java
@@ -2,7 +2,6 @@ package de.sebse.fuplanner.tools;
import java.util.LinkedList;
-import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/UtilsDate.java b/app/src/main/java/de/sebse/fuplanner/tools/UtilsDate.java
index 26e3a35..70d513b 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/UtilsDate.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/UtilsDate.java
@@ -49,11 +49,7 @@ public class UtilsDate {
skeleton = skeleton.replaceAll("h", "H");
if (context != null && !DateFormat.is24HourFormat(context))
skeleton = skeleton.replaceAll("H", "h");
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
- dateFormat = new SimpleDateFormat(getDateFormat(locale, skeleton));
- } else {
- dateFormat = new SimpleDateFormat(skeleton, locale);
- }
+ dateFormat = new SimpleDateFormat(getDateFormat(locale, skeleton));
return dateFormat.format(new Date(modified));
}
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/network/HTTPNetwork.java b/app/src/main/java/de/sebse/fuplanner/tools/network/HTTPNetwork.java
index bcdf58a..b9a55b0 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/network/HTTPNetwork.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/network/HTTPNetwork.java
@@ -16,6 +16,7 @@ import com.android.volley.toolbox.Volley;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
@@ -144,11 +145,7 @@ public class HTTPNetwork extends Service {
}
}
String requestBody = sb.toString();
- try {
- return requestBody.getBytes("utf-8");
- } catch (UnsupportedEncodingException e) {
- return null;
- }
+ return requestBody.getBytes(StandardCharsets.UTF_8);
}
@Override
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/network/NetworkError.java b/app/src/main/java/de/sebse/fuplanner/tools/network/NetworkError.java
index 972e618..6561ca6 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/network/NetworkError.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/network/NetworkError.java
@@ -31,6 +31,6 @@ public class NetworkError {
@NonNull
public String toString() {
- return String.valueOf(getCode()) + " - " + getHttpStatus() + " - " + getMessage();
+ return getCode() + " - " + getHttpStatus() + " - " + getMessage();
}
}
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/network/NukeSSLCerts.java b/app/src/main/java/de/sebse/fuplanner/tools/network/NukeSSLCerts.java
deleted file mode 100644
index a5f9aaf..0000000
--- a/app/src/main/java/de/sebse/fuplanner/tools/network/NukeSSLCerts.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package de.sebse.fuplanner.tools.network;
-
-import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSession;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-public class NukeSSLCerts {
- protected static final String TAG = "NukeSSLCerts";
-
- public static void nuke() {
- try {
- TrustManager[] trustAllCerts = new TrustManager[] {
- new X509TrustManager() {
- public X509Certificate[] getAcceptedIssuers() {
- X509Certificate[] myTrustedAnchors = new X509Certificate[0];
- return myTrustedAnchors;
- }
-
- @Override
- public void checkClientTrusted(X509Certificate[] certs, String authType) {}
-
- @Override
- public void checkServerTrusted(X509Certificate[] certs, String authType) {}
- }
- };
-
- SSLContext sc = SSLContext.getInstance("SSL");
- sc.init(null, trustAllCerts, new SecureRandom());
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
- HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
- @Override
- public boolean verify(String arg0, SSLSession arg1) {
- return true;
- }
- });
- } catch (Exception e) {
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/types/News.java b/app/src/main/java/de/sebse/fuplanner/tools/types/News.java
index 11a59e7..d8b64e3 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/types/News.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/types/News.java
@@ -1,5 +1,7 @@
package de.sebse.fuplanner.tools.types;
+import androidx.annotation.NonNull;
+
public class News {
public static final int CATEGORY_TRICKS = 0;
public static final int CATEGORY_UPDATE = 1;
@@ -32,6 +34,7 @@ public class News {
return text;
}
+ @NonNull
@Override
public String toString() {
return "News{" +
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/CanteensViewHolder.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/CanteensViewHolder.java
index 102ed2f..44086fd 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/ui/CanteensViewHolder.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/CanteensViewHolder.java
@@ -2,9 +2,6 @@ package de.sebse.fuplanner.tools.ui;
import android.view.View;
import android.widget.ImageView;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/cardview/ExpandableCardView.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/cardview/ExpandableCardView.java
index 37ffa08..503ea07 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/ui/cardview/ExpandableCardView.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/cardview/ExpandableCardView.java
@@ -103,11 +103,9 @@ public class ExpandableCardView extends CardView {
(int) UtilsUi.convertDpToPixels(getContext(), 10),
(int) UtilsUi.convertDpToPixels(getContext(), 10)
);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- TypedValue outValue = new TypedValue();
- context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
- imageButton.setBackgroundResource(outValue.resourceId);
- }
+ TypedValue outValue = new TypedValue();
+ context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true);
+ imageButton.setBackgroundResource(outValue.resourceId);
isExpanded = startExpanded;
}
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/treeview/TreeNode.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/treeview/TreeNode.java
index b6e8c61..f2e9375 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/ui/treeview/TreeNode.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/treeview/TreeNode.java
@@ -140,7 +140,8 @@ public class TreeNode implements Cloneable {
}
- @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException", "MethodDoesntCallSuperMethod"})
+ @NonNull
+ @SuppressWarnings({"CloneDoesntDeclareCloneNotSupportedException"})
@Override
protected TreeNode clone() {
TreeNode clone = new TreeNode<>(this.content);
diff --git a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java
index 368435e..9b1b734 100644
--- a/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java
+++ b/app/src/main/java/de/sebse/fuplanner/tools/ui/weekview/WeekView.java
@@ -309,7 +309,7 @@ public class WeekView extends View {
mDoubleTapListener.onDoubleTapListener((Calendar) selectedTime.clone());
}
if (mDoubleTapLeftRightListener != null)
- mDoubleTapLeftRightListener.onDoubleTapLeftRightListener(getWidth()/2 < e.getX());
+ mDoubleTapLeftRightListener.onDoubleTapLeftRightListener(getWidth() / 2.0 < e.getX());
return super.onDoubleTap(e);
}
diff --git a/app/src/main/res/layout/item_dir.xml b/app/src/main/res/layout/item_dir.xml
index 3c51c10..d9e0e7a 100644
--- a/app/src/main/res/layout/item_dir.xml
+++ b/app/src/main/res/layout/item_dir.xml
@@ -18,7 +18,6 @@
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:drawableLeft="@drawable/ic_folder"
android:drawablePadding="10sp"
android:gravity="center_vertical"
tools:text="@string/app_name"
diff --git a/app/src/main/res/layout/item_file.xml b/app/src/main/res/layout/item_file.xml
index 42494fe..d9387b9 100644
--- a/app/src/main/res/layout/item_file.xml
+++ b/app/src/main/res/layout/item_file.xml
@@ -6,7 +6,6 @@
xmlns:tools="http://schemas.android.com/tools">
+ android:layout_marginStart="18dp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_all_items.xml b/app/src/main/res/layout/list_all_items.xml
index 143b08c..dc5ea08 100644
--- a/app/src/main/res/layout/list_all_items.xml
+++ b/app/src/main/res/layout/list_all_items.xml
@@ -39,7 +39,6 @@
android:textColor="#343434"
android:textSize="12sp"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
tools:text="20.03.18 18:42 Uhr" />
diff --git a/app/src/main/res/layout/list_all_mails.xml b/app/src/main/res/layout/list_all_mails.xml
index 75ed1fd..c781e5b 100644
--- a/app/src/main/res/layout/list_all_mails.xml
+++ b/app/src/main/res/layout/list_all_mails.xml
@@ -35,8 +35,6 @@
android:layout_alignTop="@id/title"
android:layout_alignBottom="@id/sub_left"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:layout_marginRight="10dp"
android:contentDescription="@string/mail_icon"
android:scaleType="fitCenter"
android:src="@drawable/ic_mail"
diff --git a/app/src/main/res/layout/list_canteen_body.xml b/app/src/main/res/layout/list_canteen_body.xml
index 605898f..151612b 100644
--- a/app/src/main/res/layout/list_canteen_body.xml
+++ b/app/src/main/res/layout/list_canteen_body.xml
@@ -11,7 +11,6 @@
@@ -20,7 +19,6 @@
android:layout_height="wrap_content"
android:text="@string/vegan"
android:drawableStart="@mipmap/ic_vegan"
- android:drawableLeft="@mipmap/ic_vegan"
android:gravity="center_vertical"
app:compoundDrawableHeight="16dp"
app:compoundDrawableWidth="16dp" />
@@ -30,7 +28,6 @@
android:layout_height="wrap_content"
android:text="@string/msc"
android:drawableStart="@mipmap/ic_msc"
- android:drawableLeft="@mipmap/ic_msc"
android:gravity="center_vertical"
app:compoundDrawableHeight="16dp"
app:compoundDrawableWidth="16dp" />
@@ -40,7 +37,6 @@
android:layout_height="wrap_content"
android:text="@string/bio"
android:drawableStart="@mipmap/ic_organic"
- android:drawableLeft="@mipmap/ic_organic"
android:gravity="center_vertical"
app:compoundDrawableHeight="16dp"
app:compoundDrawableWidth="16dp" />
diff --git a/app/src/main/res/layout/list_canteens_items.xml b/app/src/main/res/layout/list_canteens_items.xml
index 5b7887f..3026259 100644
--- a/app/src/main/res/layout/list_canteens_items.xml
+++ b/app/src/main/res/layout/list_canteens_items.xml
@@ -10,7 +10,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_remove_circle_outline"
- android:contentDescription="TODO"
+ android:contentDescription="@string/remove_entry"
android:layout_gravity="center"
android:padding="8dp"/>
diff --git a/app/src/main/res/layout/list_moddetails_description.xml b/app/src/main/res/layout/list_moddetails_description.xml
index 0173b71..7991eaa 100644
--- a/app/src/main/res/layout/list_moddetails_description.xml
+++ b/app/src/main/res/layout/list_moddetails_description.xml
@@ -1,13 +1,12 @@
@@ -27,7 +25,6 @@
android:textColor="#343434"
android:textSize="12sp"
tools:text="8"
- android:layout_toLeftOf="@id/slash"
android:layout_toStartOf="@id/slash"
android:layout_alignTop="@id/title" />
@@ -39,7 +36,6 @@
android:textColor="#343434"
android:textSize="30sp"
android:text="@string/grade_separator"
- android:layout_toLeftOf="@id/grade_max"
android:layout_toStartOf="@id/grade_max"
android:layout_alignTop="@id/title" />
@@ -52,6 +48,5 @@
android:textColor="#343434"
android:textSize="12sp"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
tools:text="10" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/list_news_item.xml b/app/src/main/res/layout/list_news_item.xml
index 808e140..fa702fa 100644
--- a/app/src/main/res/layout/list_news_item.xml
+++ b/app/src/main/res/layout/list_news_item.xml
@@ -45,7 +45,6 @@
tools:text="20.09.2018"
android:textColor="@color/colorFUOrange"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
android:layout_below="@id/header" />
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 5d1fe95..ae7379b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -86,10 +86,6 @@
Tipps/Tricks
Klicke ZURÜCK erneut zum Beenden!
Sign in
- Benutzername
- Passwort (optional)
- Log in
- Log in
Das Passwort ist zu kurz.
Das Passwort ist nicht korrekt.
Pflichtfeld
@@ -117,4 +113,5 @@
Die Kantinenliste ist für Android 4 und darunter nicht verfügbar!
Einträge zurücksetzen
Einträge löschen
+ Entrag entfernen
\ No newline at end of file
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
deleted file mode 100644
index a5bb54c..0000000
--- a/app/src/main/res/values-v21/styles.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
\ 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 b57fafe..5320b8d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -94,10 +94,6 @@
Tips/Tricks
Please click BACK again to exit!
Sign in
- Username
- Password (optional)
- Sign in or register
- Sign in
This password is too short
This password is incorrect
This field is required
@@ -125,4 +121,5 @@
The canteen list is not available for Android 4 and below!
Restore Defaults
Delete Items
+ Remove entry
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 2799bbe..00d8fab 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -13,12 +13,7 @@
-
+