Code cleanup

This commit is contained in:
Caesar2011
2018-11-17 00:08:08 +01:00
parent 7a7e56bdf5
commit 6523d82d6b
62 changed files with 113 additions and 180 deletions

1
.gitignore vendored
View File

@@ -7,3 +7,4 @@
/build
/captures
.externalNativeBuild
app/release/*

View File

@@ -76,9 +76,9 @@ public class MainActivity extends AppCompatActivity
private int fragmentPage = FRAGMENT_NONE;
private String fragmentData = "";
private CanteenBrowser mCanteenBrowser;
private HashMap<String, RequestPermissionsResultListener> permissionListeners = new HashMap<>();
private final HashMap<String, RequestPermissionsResultListener> permissionListeners = new HashMap<>();
private boolean mOfflineBanner;
private NewAsyncQueue mQueue = new NewAsyncQueue();
private final NewAsyncQueue mQueue = new NewAsyncQueue();
@Override
protected void onCreate(Bundle savedInstanceState) {

View File

@@ -13,7 +13,7 @@ import de.sebse.fuplanner.services.Canteen.types.Canteens;
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
/**
* {@link RecyclerView.Adapter} that can display a {@link Modules.Module} and makes a call to the
* {@link RecyclerView.Adapter} that can display a {@link Canteen} and makes a call to the
* specified {@link OnCanteensFragmentInteractionListener}.
*/
class CanteensAdapter extends RecyclerView.Adapter<ItemViewHolder> {

View File

@@ -20,12 +20,12 @@ import de.sebse.fuplanner.tools.ui.MealViewHolder;
import de.sebse.fuplanner.tools.ui.StringViewHolder;
class MealAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private String[] CATEGORY_KEYS = new String[]{"Essen", "Aktionen", "Beilagen", "Desserts", "Salate", "Suppen", "Vorspeisen"};
private final String[] CATEGORY_KEYS = new String[]{"Essen", "Aktionen", "Beilagen", "Desserts", "Salate", "Suppen", "Vorspeisen"};
@StringRes
private int[] CATEGORY_VALS = new int[]{R.string.meals, R.string.special_meals, R.string.side_dishes, R.string.desserts, R.string.salads, R.string.soups, R.string.starters};
private final int[] CATEGORY_VALS = new int[]{R.string.meals, R.string.special_meals, R.string.side_dishes, R.string.desserts, R.string.salads, R.string.soups, R.string.starters};
@StringRes
private int CATEGORY_OTHER = R.string.others;
private ArrayList<Object> matches = new ArrayList<>();
private final int CATEGORY_OTHER = R.string.others;
private final ArrayList<Object> matches = new ArrayList<>();
private Day mDay = null;
private final Context mContext;

View File

@@ -29,7 +29,7 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter<CustomViewHolder> {
@Nullable private Modules.Module mModule = null;
private Logger log = new Logger(this);
@NonNull private Download.OnDownloadRequestInterface requestInterface;
@NonNull private final Download.OnDownloadRequestInterface requestInterface;
ModDetailAnnounceAdapter(@NonNull Download.OnDownloadRequestInterface requestInterface) {
this.requestInterface = requestInterface;
@@ -40,7 +40,7 @@ class ModDetailAnnounceAdapter extends RecyclerView.Adapter<CustomViewHolder> {
this.setModule();
}
public void setModule() {
private void setModule() {
this.notifyDataSetChanged();
}

View File

@@ -124,7 +124,7 @@ public class ModDetailAnnounceFragment extends Fragment implements Download.OnDo
}
}
Download getDownload() {
private Download getDownload() {
if (download == null)
download = new Download(this::getContext, () -> (MainActivity) getActivity());
return download;

View File

@@ -29,7 +29,7 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter<CustomViewHolder>
@Nullable private Modules.Module mModule = null;
private Logger log = new Logger(this);
@NonNull private Download.OnDownloadRequestInterface requestInterface;
@NonNull private final Download.OnDownloadRequestInterface requestInterface;
ModDetailAssignmentAdapter(@NonNull Download.OnDownloadRequestInterface requestInterface) {
this.requestInterface = requestInterface;
@@ -40,7 +40,7 @@ class ModDetailAssignmentAdapter extends RecyclerView.Adapter<CustomViewHolder>
this.setModule();
}
public void setModule() {
private void setModule() {
this.notifyDataSetChanged();
}

View File

@@ -124,7 +124,7 @@ public class ModDetailAssignmentFragment extends Fragment implements Download.On
}
}
Download getDownload() {
private Download getDownload() {
if (download == null)
download = new Download(this::getContext, () -> (MainActivity) getActivity());
return download;

View File

@@ -18,12 +18,10 @@ import de.sebse.fuplanner.services.KVV.types.Event;
import de.sebse.fuplanner.services.KVV.types.EventList;
import de.sebse.fuplanner.services.KVV.types.GroupedEvents;
import de.sebse.fuplanner.services.KVV.types.Modules;
import de.sebse.fuplanner.tools.Triplet;
import de.sebse.fuplanner.tools.UtilsDate;
import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.ui.CustomViewHolder;
import de.sebse.fuplanner.tools.ui.ItemViewHolder;
import de.sebse.fuplanner.tools.ui.ListViewHolder;
import de.sebse.fuplanner.tools.ui.StringViewHolder;
class ModDetailEventAdapter extends RecyclerView.Adapter<CustomViewHolder> {
@@ -56,7 +54,7 @@ class ModDetailEventAdapter extends RecyclerView.Adapter<CustomViewHolder> {
this.setModule();
}
public void setModule() {
private void setModule() {
LinkedHashMap<String, GroupedEvents> listsGrouped = new LinkedHashMap<>();
LinkedHashMap<String, EventList> listsUngrouped = new LinkedHashMap<>();
for (String value : VALUES_GROUPED) listsGrouped.put(value, new GroupedEvents());

View File

@@ -36,20 +36,16 @@ class ModDetailGradebookAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
this.setModule();
}
public void setModule() {
private void setModule() {
mPositionalData.clear();
mPositionalData.add(new Pair<>(TYPE_TOTAL, SECTION_GRADE));
addPositionalListData(getGradesCount(), SECTION_GRADE);
for (int i = 0; i < getGradesCount(); i++) {
mPositionalData.add(new Pair<>(TYPE_GRADE, SECTION_GRADE +1024*i));
}
this.notifyDataSetChanged();
}
private void addPositionalListData(int count, int category) {
for (int i = 0; i < count; i++) {
mPositionalData.add(new Pair<>(TYPE_GRADE, category+1024*i));
}
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@@ -131,6 +127,7 @@ class ModDetailGradebookAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
mGradeMax = view.findViewById(R.id.grade_max);
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + " '" + mGrade.getText() + " '" + mGradeMax.getText() + "'";

View File

@@ -53,7 +53,7 @@ class ModDetailOverviewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
this.setModule();
}
public void setModule() {
private void setModule() {
mPositionalData.clear();
mPositionalData.add(new Pair<>(TYPE_HEADER, ModulePart.DESCRIPTION));
mPositionalData.add(new Pair<>(TYPE_DESCRIPTION, null));

View File

@@ -21,7 +21,7 @@ class ModDetailResourceAdapter extends TreeViewAdapter {
this.setModule();
}
public void setModule() {
private void setModule() {
if (mValue == null || mValue.resources == null) {
return;
}

View File

@@ -150,7 +150,7 @@ public class ModDetailResourceFragment extends Fragment {
}, forceRefresh);
}
Download getDownload() {
private Download getDownload() {
if (download == null)
download = new Download(this::getContext, () -> (MainActivity) getActivity());
return download;

View File

@@ -121,6 +121,7 @@ public class Canteen implements Serializable, Iterable<Day> {
return lng;
}
@NonNull
@Override
public String toString() {
return id+": "+name+"\n"+list.toString()+"\n";

View File

@@ -94,6 +94,7 @@ public class Canteens implements Serializable, Iterable<Canteen> {
context.deleteFile(FILE_NAME);
}
@NonNull
@Override
public String toString() {
return this.list.toString();

View File

@@ -58,6 +58,7 @@ public class Day implements Serializable, Iterable<Meal> {
return canteenId;
}
@NonNull
@Override
public String toString() {
return Canteen.calendarToKey(getCalendar())+"\n"+this.list+"\n";

View File

@@ -5,6 +5,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import androidx.annotation.NonNull;
public class Meal implements Serializable {
private static final int LIGHT_NONE = 0;
private static final int LIGHT_GREEN = 1;
@@ -112,6 +114,7 @@ public class Meal implements Serializable {
return certificates;
}
@NonNull
@Override
public String toString() {
return name + " (" + category + ")";

View File

@@ -1,7 +1,6 @@
package de.sebse.fuplanner.services.KVV;
import android.content.Context;
import android.util.Pair;
import org.jetbrains.annotations.NotNull;
@@ -11,9 +10,6 @@ import org.json.JSONObject;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -26,11 +22,11 @@ import de.sebse.fuplanner.tools.network.NetworkError;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
public class Login extends HTTPService {
private KVVListener mListener;
private final KVVListener mListener;
@Nullable private LoginToken mToken;
private boolean mLoginPending = false;
private boolean mOnlineMode = false;
private NetworkCallbackCollector<LoginToken> mRefreshCallbacks = new NetworkCallbackCollector<>();
private final NetworkCallbackCollector<LoginToken> mRefreshCallbacks = new NetworkCallbackCollector<>();
Login(KVVListener listener, Context context) {
super(context);
@@ -156,14 +152,13 @@ public class Login extends HTTPService {
void refreshLogin(NetworkCallback<LoginToken> success, NetworkErrorCallback error) {
boolean isFirst = mRefreshCallbacks.isEmpty();
log.d("refresh", mRefreshCallbacks.size(), isFirst);
mRefreshCallbacks.add(success, error);
if (!isFirst)
return;
mListener.getCredentials(credentials -> {
doOnlineLogin(credentials.getUsername(), credentials.getPassword(),
success1 -> mRefreshCallbacks.responseResponse(success1),
error1 -> mRefreshCallbacks.responseError(error1));
mRefreshCallbacks::responseResponse,
mRefreshCallbacks::responseError);
}, e -> {
logout(false);
mRefreshCallbacks.responseError(e);

View File

@@ -10,7 +10,7 @@ public class Modules {
private final HashMap<String, Part> mAddons = new HashMap<>();
private ModulesList mList = null;
private final Login mLogin;
private KVVListener mListener;
private final KVVListener mListener;
private final Context context;
Modules(Login login, KVVListener listener, Context context) {

View File

@@ -29,7 +29,7 @@ public class ModulesList extends HTTPService {
private final Login mLogin;
private final KVVListener mListener;
@Nullable private Modules mModules;
private NewAsyncQueue mQueue = new NewAsyncQueue();
private final NewAsyncQueue mQueue = new NewAsyncQueue();
ModulesList(Login login, KVVListener listener, Context context) {
super(context);
@@ -51,7 +51,7 @@ public class ModulesList extends HTTPService {
}
private void find(String moduleID, NetworkCallback<Modules.Module> moduleNetworkCallback, NetworkErrorCallback errorCallback, int retries) {
if (mModules != null && mLogin.getLoginToken() != null && !mLogin.getLoginToken().isSameUser(mModules.getUsername()))
if (mModules != null && mLogin.getLoginToken() != null && mLogin.getLoginToken().isOtherUser(mModules.getUsername()))
delete();
if (retries < 0) {
errorCallback.onError(new NetworkError(101107, -1, "Too many retries!"));
@@ -104,7 +104,7 @@ public class ModulesList extends HTTPService {
}
private void recv(final NetworkCallback<Modules> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh, final int retries) {
if (mModules != null && mLogin.getLoginToken() != null && !mLogin.getLoginToken().isSameUser(mModules.getUsername()))
if (mModules != null && mLogin.getLoginToken() != null && mLogin.getLoginToken().isOtherUser(mModules.getUsername()))
delete();
mQueue.add(() -> {
if (this.mModules != null && !forceRefresh) {

View File

@@ -124,7 +124,7 @@ public class ModulesResources extends PartModules<ArrayList<Resource>> {
file(filename, url, modulename, callback, errorCallback, forceRefresh, RETRY_COUNT);
}
public void file(final String filename, final String url, final String modulename, final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh, int retries) {
private void file(final String filename, final String url, final String modulename, final NetworkCallback<String> callback, final NetworkErrorCallback errorCallback, boolean forceRefresh, int retries) {
if (isExternalStorageReadable()){
File f = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS)+"/"+modulename+"/"+filename);

View File

@@ -9,8 +9,8 @@ import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
public abstract class Part<T> extends HTTPService {
static final int RETRY_COUNT = 1;
protected final Login mLogin;
protected final ModulesList mList;
final Login mLogin;
final ModulesList mList;
Part(Login login, ModulesList list, Context context) {
super(context);

View File

@@ -11,7 +11,7 @@ import de.sebse.fuplanner.tools.network.NetworkCallback;
import de.sebse.fuplanner.tools.network.NetworkErrorCallback;
abstract class PartModules<T> extends Part<Modules.Module> {
private NewAsyncQueue mQueue = new NewAsyncQueue();
private final NewAsyncQueue mQueue = new NewAsyncQueue();
PartModules(Login login, ModulesList list, Context context) {
super(login, list, context);

View File

@@ -5,6 +5,8 @@ import com.google.android.gms.common.internal.Objects;
import java.io.Serializable;
import java.util.ArrayList;
import androidx.annotation.NonNull;
public class Announcement implements Serializable {
private final String id;
private final String title;
@@ -47,6 +49,7 @@ public class Announcement implements Serializable {
return createdOn;
}
@NonNull
@Override
public String toString() {
return "ID: "+getId()+

View File

@@ -5,6 +5,8 @@ import com.google.android.gms.common.internal.Objects;
import java.io.Serializable;
import java.util.ArrayList;
import androidx.annotation.NonNull;
public class Assignment implements Serializable {
private final String id;
private final String title;
@@ -44,6 +46,7 @@ public class Assignment implements Serializable {
return instructions;
}
@NonNull
@Override
public String toString() {
return "ID: "+getId()+

View File

@@ -7,6 +7,7 @@ import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.tools.ColorRGB;
public class Event implements Serializable {
@@ -106,6 +107,7 @@ public class Event implements Serializable {
}
}
@NonNull
@Override
public String toString() {
return "ID: "+getId()+

View File

@@ -4,6 +4,8 @@ import com.google.android.gms.common.internal.Objects;
import java.io.Serializable;
import androidx.annotation.NonNull;
public class Grade implements Serializable {
private final String itemName;
private final double grade;
@@ -27,6 +29,7 @@ public class Grade implements Serializable {
return itemName;
}
@NonNull
@Override
public String toString() {
return "Name: "+getItemName()+

View File

@@ -9,10 +9,9 @@ import java.util.Collections;
import java.util.List;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.tools.logging.Logger;
public class GroupedEvents extends EventList {
private ArrayList<Group> arrayList = new ArrayList<>();
private final ArrayList<Group> arrayList = new ArrayList<>();
private int skippedDayCount = 0;
public boolean add(Event event) {
@@ -40,11 +39,11 @@ public class GroupedEvents extends EventList {
public class Group {
private long firstDate;
private long lastDate;
private ArrayList<Long> skippedDates;
private final ArrayList<Long> skippedDates;
private int dayOfWeek;
private long startTime;
private long duration;
private final int dayOfWeek;
private final long startTime;
private final long duration;
private Group(Event event) {
Calendar calendar = Calendar.getInstance();

View File

@@ -4,6 +4,8 @@ import java.io.Serializable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import androidx.annotation.NonNull;
public class Lecturer implements Serializable {
private final String firstName;
private final String surname;
@@ -46,6 +48,7 @@ public class Lecturer implements Serializable {
return getFirstName().substring(0, 1) + ". " + getSurname();
}
@NonNull
@Override
public String toString() {
return "First name: "+ getFirstName()+

View File

@@ -11,6 +11,7 @@ import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.HashMap;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/**
@@ -85,10 +86,12 @@ public class LoginToken implements Serializable {
return JSESSIONID;
}
@Nullable
public String getFullName() {
return fullName;
}
@Nullable
public String getEmail() {
return email;
}
@@ -101,10 +104,11 @@ public class LoginToken implements Serializable {
return cookies;
}
public boolean isSameUser(String username) {
return this.getUsername().equals(username);
public boolean isOtherUser(String username) {
return !this.getUsername().equals(username);
}
@NonNull
@Override
public String toString() {
StringBuilder result = new StringBuilder();

View File

@@ -6,6 +6,7 @@ import java.io.Serializable;
import java.util.ArrayList;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.tools.ui.treeview.LayoutItemType;
import de.sebse.fuplanner.tools.ui.treeview.TreeNode;
@@ -69,6 +70,7 @@ public abstract class Resource implements Serializable {
this.type = type;
}
@NonNull
@Override
public String toString() {
return "Resource{" +
@@ -111,6 +113,7 @@ public abstract class Resource implements Serializable {
return children.size();
}
@NonNull
@Override
public String toString() {
return "Resource{" +

View File

@@ -31,7 +31,7 @@ public class Download {
private final ContextInterface contextInterface;
private final ActivityInterface activityInterface;
private RequestedDownload requestedDownload;
private Logger log = new Logger(this);
private final Logger log = new Logger(this);
public Download(ContextInterface contextInterface, ActivityInterface activityInterface) {
@@ -106,7 +106,7 @@ public class Download {
}
activity.getKVV().modules().resources().file(file.getTitle(), file.getUrl(), folderName, success -> {
Context context = contextInterface.get();
if (success.equals("")) {
if (success.equals("") || context== null) {
showDownloadError();
} else {
if (Regex.has("^http", success)){
@@ -116,7 +116,6 @@ public class Download {
else {
fileOpen(new File(success));
}
}
}, log::e, downloadNew);
}
@@ -165,9 +164,9 @@ public class Download {
}
private class RequestedDownload {
Resource.File file;
String folderName;
boolean downloadNew;
final Resource.File file;
final String folderName;
final boolean downloadNew;
RequestedDownload(Resource.File file, String folderName, boolean downloadNew) {
this.file = file;
@@ -187,7 +186,10 @@ public class Download {
}
private void fileOpen(File url){
Uri uri = FileProvider.getUriForFile(contextInterface.get(), contextInterface.get().getApplicationContext().getPackageName() + ".my.provider", url);
Context context = contextInterface.get();
if (context == null)
return;
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) {
@@ -242,7 +244,7 @@ public class Download {
intent.setDataAndType(uri, "*/*");
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
contextInterface.get().startActivity(intent);
context.startActivity(intent);
}

View File

@@ -3,7 +3,7 @@ package de.sebse.fuplanner.tools;
import java.util.HashMap;
public class EventListener<T> {
private HashMap<String, EventFunction<T>> list = new HashMap<>();
private final HashMap<String, EventFunction<T>> list = new HashMap<>();
public void add(String id,EventFunction<T> listener) {
list.put(id, listener);

View File

@@ -120,6 +120,7 @@ public abstract class SortedList<T, I, F> implements Iterable<T>, Serializable {
};
}
@NonNull
@Override
public String toString() {
return this.internalList.toString();

View File

@@ -1,14 +0,0 @@
package de.sebse.fuplanner.tools;
public class Triplet<T, U, V> {
public final T first;
public final U second;
public final V third;
public Triplet(T first, U second, V third) {
this.first = first;
this.second = second;
this.third = third;
}
}

View File

@@ -27,9 +27,9 @@ import de.sebse.fuplanner.tools.logging.Logger;
public class HTTPService {
private final RequestQueue requestQueue;
private final Context mContext;
protected Logger log = new Logger(this);
private EventListener<VolleyError> errorResponseListener = new EventListener<>();
private EventListener<Result> successResponseListener = new EventListener<>();
protected final Logger log = new Logger(this);
private final EventListener<VolleyError> errorResponseListener = new EventListener<>();
private final EventListener<Result> successResponseListener = new EventListener<>();
protected HTTPService(Context context) {
this.mContext = context;

View File

@@ -1,5 +1,7 @@
package de.sebse.fuplanner.tools.network;
import androidx.annotation.NonNull;
/**
* Created by sebastian on 24.10.17.
*/
@@ -27,6 +29,7 @@ public class NetworkError {
return message;
}
@NonNull
public String toString() {
return String.valueOf(getCode()) + " - " + getHttpStatus() + " - " + getMessage();
}

View File

@@ -5,6 +5,7 @@ import android.widget.TextView;
import com.cunoraz.tagview.TagView;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
public class AnnouncementViewHolder extends ExpandableCardViewHolder {
@@ -25,6 +26,7 @@ public class AnnouncementViewHolder extends ExpandableCardViewHolder {
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubTitle.getText() + "'";

View File

@@ -3,6 +3,7 @@ package de.sebse.fuplanner.tools.ui;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
public class ItemViewHolder extends CustomViewHolder {
@@ -19,6 +20,7 @@ public class ItemViewHolder extends CustomViewHolder {
mTopRight = view.findViewById(R.id.top_right);
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubLeft.getText() + "' '" + mSubRight.getText() + "' '" + mTopRight.getText() + "'";

View File

@@ -1,20 +0,0 @@
package de.sebse.fuplanner.tools.ui;
import android.view.View;
import androidx.recyclerview.widget.RecyclerView;
import de.sebse.fuplanner.R;
public class ListViewHolder extends StringViewHolder {
public final RecyclerView mList;
public ListViewHolder(View view) {
super(view);
mList = view.findViewById(R.id.list);
}
@Override
public String toString() {
return super.toString() + " '" + mString.getText() + "'";
}
}

View File

@@ -4,7 +4,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
public class MailViewHolder extends StringViewHolder {
@@ -19,6 +19,7 @@ public class MailViewHolder extends StringViewHolder {
mIcon = view.findViewById(R.id.icon);
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubLeft.getText() + "'";

View File

@@ -4,6 +4,7 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
public class MealViewHolder extends ExpandableCardViewHolder {
@@ -30,6 +31,7 @@ public class MealViewHolder extends ExpandableCardViewHolder {
mIconMsc = innerView.findViewById(R.id.icon_msc);
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mTitle.getText() + "' '" + mSubTitle.getText() + "'";

View File

@@ -3,6 +3,7 @@ package de.sebse.fuplanner.tools.ui;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import de.sebse.fuplanner.R;
public class StringViewHolder extends CustomViewHolder {
@@ -13,6 +14,7 @@ public class StringViewHolder extends CustomViewHolder {
mString = view.findViewById(R.id.string);
}
@NonNull
@Override
public String toString() {
return super.toString() + " '" + mString.getText() + "'";

View File

@@ -65,11 +65,11 @@ public class ExpandableCardView extends CardView {
private OnExpandedListener listener;
private OnClickListener defaultClickListener = v -> {
private final OnClickListener defaultClickListener = v -> {
if(isExpanded()) collapse();
else expand();
};
private Logger log = new Logger(this);
private final Logger log = new Logger(this);
public ExpandableCardView(Context context) {
super(context);

View File

@@ -36,8 +36,8 @@ public class DirectoryNodeBinder extends TreeViewBinder<DirectoryNodeBinder.View
}
public static class ViewHolder extends TreeViewBinder.ViewHolder {
private ImageView ivArrow;
private TextView tvName;
private final ImageView ivArrow;
private final TextView tvName;
ViewHolder(View rootView) {
super(rootView);

View File

@@ -28,7 +28,7 @@ public class FileNodeBinder extends TreeViewBinder<FileNodeBinder.ViewHolder> {
}
public class ViewHolder extends TreeViewBinder.ViewHolder {
TextView tvName;
final TextView tvName;
ViewHolder(View rootView) {
super(rootView);

View File

@@ -128,6 +128,7 @@ public class TreeNode<T extends LayoutItemType> implements Cloneable {
return isLocked;
}
@NonNull
@Override
public String toString() {
return "TreeNode{" +
@@ -138,6 +139,8 @@ public class TreeNode<T extends LayoutItemType> implements Cloneable {
'}';
}
@SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException")
@Override
protected TreeNode<T> clone() {
TreeNode<T> clone = new TreeNode<>(this.content);

View File

@@ -21,7 +21,7 @@ import androidx.recyclerview.widget.RecyclerView;
public class TreeViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private static final String KEY_IS_EXPAND = "IS_EXPAND";
private final List<? extends TreeViewBinder> viewBinders;
private List<TreeNode> displayNodes;
private final List<TreeNode> displayNodes;
private int padding = 30;
private OnTreeNodeListener onTreeNodeListener;
private boolean toCollapseChild;

View File

@@ -82,7 +82,7 @@ public class WeekView extends View {
private float mHeaderHeight;
private GestureDetectorCompat mGestureDetector;
private OverScroller mScroller;
private PointF mCurrentOrigin = new PointF(0f, 0f);
private final PointF mCurrentOrigin = new PointF(0f, 0f);
private Direction mCurrentScrollDirection = Direction.NONE;
private Paint mHeaderBackgroundPaint;
private float mWidthPerDay;
@@ -1259,8 +1259,8 @@ public class WeekView extends View {
* instance will be stored in "event".
*/
private class EventRect {
public WeekViewEvent event;
WeekViewEvent originalEvent;
public final WeekViewEvent event;
final WeekViewEvent originalEvent;
RectF rectF;
public float left;
public float width;

View File

@@ -9,7 +9,6 @@
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/app_bar_layout"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ExpandableListView
android:id="@+id/list"
android:name=".fragments.moddetails.ModDetailAnnounceFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
tools:context=".fragments.moddetails.ModDetailAnnounceFragment"
tools:listitem="@layout/list_all_caption" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -4,7 +4,8 @@
android:layout_height="match_parent"
android:background="@color/colorFUGreen"
android:fitsSystemWindows="true"
tools:context="de.sebse.fuplanner.fragments.StartupFragment">
tools:context="de.sebse.fuplanner.fragments.StartupFragment"
tools:ignore="Overdraw">
<ImageView
android:layout_width="@android:dimen/thumbnail_width"

View File

@@ -3,7 +3,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
xmlns:tools="http://schemas.android.com/tools">
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/iv_arrow"

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_margin="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/string"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"
tools:text="Caption"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Headline" />
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.cardview.widget.CardView>

View File

@@ -5,7 +5,6 @@
android:orientation="horizontal">
<TextView
android:id="@+id/caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"

View File

@@ -5,7 +5,6 @@
android:orientation="horizontal">
<TextView
android:id="@+id/caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/text_margin"

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dip" >
<TextView
android:id="@+id/string"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="sans"
tools:text="Test this new stuff!" />
</RelativeLayout>

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<de.sebse.fuplanner.tools.ui.cardview.ExpandableCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<de.sebse.fuplanner.tools.ui.cardview.ExpandableCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"

View File

@@ -21,13 +21,11 @@
<string name="assignments_count">Aufgaben (%1$d)</string>
<string name="assignments">Aufgaben</string>
<string name="upcoming_events_count">Nächste Veranstaltungen (%1$d)</string>
<string name="upcoming_events">Nächste Veranstaltungen</string>
<string name="date_scale">%1$s - %2$s</string>
<string name="open">Offen</string>
<string name="closed">Geschlossen</string>
<string name="enter_offline_mode">Starte Offline-Modus (%1$s)</string>
<string name="no_items_available">Keine Einträge vorhanden!</string>
<string name="past_events">Vergangene Veranstaltungen</string>
<string name="events">Veranstaltungen</string>
<string name="gradebook">Noten</string>
<string name="current_percentage">Aktuelle Prozentzahl: %1$.2f \%%</string>
@@ -74,7 +72,6 @@
<string name="lecture">Vorlesung</string>
<string name="tutorial">Tutorium</string>
<string name="exam">Klausur</string>
<string name="other">Andere</string>
<string name="deadline">Abgabe</string>
<string name="winter_semester">Wintersemester %1$d/%2$d</string>
<string name="summer_semester">Sommersemester %1$d</string>

View File

@@ -7,6 +7,4 @@
<dimen name="text_margin">16dp</dimen>
<dimen name="default_card_height">50dp</dimen>
<dimen name="default_vertical_padding">10dp</dimen>
</resources>

View File

@@ -22,14 +22,12 @@
<string name="assignments_count">Assignments (%1$d)</string>
<string name="assignments">Assignments</string>
<string name="upcoming_events_count">Upcoming Events (%1$d)</string>
<string name="upcoming_events">Upcoming Events</string>
<string name="date_scale">%1$s - %2$s</string>
<string name="open">Open</string>
<string name="closed">Closed</string>
<string name="hello_blank_fragment" translatable="false" tools:keep="@string/hello_blank_fragment">Hello blank fragment</string>
<string name="enter_offline_mode">Enter Offline Mode (%1$s)</string>
<string name="no_items_available">No items available!</string>
<string name="past_events">Past Events</string>
<string name="events">Events</string>
<string name="gradebook">Gradebook</string>
<string name="current_percentage">Current Percentage: %1$.2f \%%</string>
@@ -82,7 +80,6 @@
<string name="lecture">Lecture</string>
<string name="tutorial">Tutorial</string>
<string name="exam">Exam</string>
<string name="other">Other</string>
<string name="deadline">Deadline</string>
<string name="winter_semester">Winter Semester %1$d/%2$d</string>
<string name="summer_semester">Summer Semester %1$d</string>