From 8d3d2665068a4395db966fa3113fef96b2ccfd81 Mon Sep 17 00:00:00 2001 From: xVemu <38427679+xVemu@users.noreply.github.com> Date: Fri, 28 Aug 2020 13:19:06 +0200 Subject: [PATCH] * remove login fragment * fix auto switch to day in table --- app/build.gradle | 4 +- .../main/java/pl/vemu/zsme/MainActivity.java | 4 -- .../moreFragment/contact/ContactItem.java | 4 +- .../pl/vemu/zsme/timetableFragment/Login.java | 8 --- .../login/LoginFragment.java | 48 -------------- .../login/LoginFragmentVM.java | 60 ----------------- .../login/LoginInterface.java | 5 -- .../timetableFragment/login/LoginRepo.java | 19 ------ .../table/TableFragment.java | 10 ++- .../timetable/TimetableFragment.java | 2 +- .../timetable/TimetableRepo.java | 8 +-- app/src/main/res/layout/fragment_login.xml | 64 ------------------- .../main/res/navigation/mobile_navigation.xml | 39 ++--------- app/src/main/res/values-en/strings.xml | 5 -- app/src/main/res/values/strings.xml | 5 -- 15 files changed, 17 insertions(+), 268 deletions(-) delete mode 100644 app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragment.java delete mode 100644 app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragmentVM.java delete mode 100644 app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginInterface.java delete mode 100644 app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginRepo.java delete mode 100644 app/src/main/res/layout/fragment_login.xml diff --git a/app/build.gradle b/app/build.gradle index 02b40a9..2edef18 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "pl.vemu.zsme" minSdkVersion 23 targetSdkVersion 30 - versionCode 31 - versionName "1.5" + versionCode 32 + versionName "1.5.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/pl/vemu/zsme/MainActivity.java b/app/src/main/java/pl/vemu/zsme/MainActivity.java index b7b6b92..0cc5dc1 100644 --- a/app/src/main/java/pl/vemu/zsme/MainActivity.java +++ b/app/src/main/java/pl/vemu/zsme/MainActivity.java @@ -27,8 +27,6 @@ import pl.vemu.zsme.databinding.ActivityMainBinding; import pl.vemu.zsme.newsFragment.NewsFragmentDirections; import pl.vemu.zsme.newsFragment.NewsWorker; -import pl.vemu.zsme.timetableFragment.Login; -import pl.vemu.zsme.timetableFragment.timetable.TimetableFragmentDirections; public class MainActivity extends AppCompatActivity implements NavController.OnDestinationChangedListener { @@ -83,8 +81,6 @@ public void onDestinationChanged(@NonNull NavController controller, @NonNull Nav params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_ENTER_ALWAYS); else params.setScrollFlags(0); - if (!Login.INSTANCE.isLogged() && destination.getId() == R.id.timetableFragment) - controller.navigate(TimetableFragmentDirections.actionTimetableFragmentToLoginFragment()); } private void createNotificationChannel() { diff --git a/app/src/main/java/pl/vemu/zsme/moreFragment/contact/ContactItem.java b/app/src/main/java/pl/vemu/zsme/moreFragment/contact/ContactItem.java index 51a3fff..68a6702 100644 --- a/app/src/main/java/pl/vemu/zsme/moreFragment/contact/ContactItem.java +++ b/app/src/main/java/pl/vemu/zsme/moreFragment/contact/ContactItem.java @@ -17,8 +17,8 @@ public enum ContactItem implements View.OnClickListener { PHONE(R.drawable.ic_phone, R.string.school_phone, R.string.school_phone_text, R.string.school_phone_text), FAX(R.drawable.ic_phone, R.string.school_phone_fax, R.string.school_phone_fax_text, R.string.school_phone_fax_text), HEADMASTER(R.drawable.ic_mail, R.string.school_principal, R.string.school_principal_text, R.string.school_principal_action), - VICE_HEADMASTER_1(R.drawable.ic_mail, R.string.school_vice_principal, R.string.school_vice1_text, R.string.school_vice1_text), - VICE_HEADMASTER_2(R.drawable.ic_mail, R.string.school_vice_principal, R.string.school_vice2_text, R.string.school_vice2_text), + VICE_HEADMASTER_1(R.drawable.ic_mail, R.string.school_vice_principal, R.string.school_vice1_text, R.string.school_vice1_action), + VICE_HEADMASTER_2(R.drawable.ic_mail, R.string.school_vice_principal, R.string.school_vice2_text, R.string.school_vice2_action), SOURCE_CODE(R.drawable.ic_github, R.string.source_code, R.string.source_code_text, R.string.github_url); @Getter diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/Login.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/Login.java index 89e1406..9192a70 100644 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/Login.java +++ b/app/src/main/java/pl/vemu/zsme/timetableFragment/Login.java @@ -7,27 +7,19 @@ import java.io.IOException; import lombok.Getter; -import lombok.Setter; @Getter public enum Login { INSTANCE; - @Setter - private String base64login; - - private boolean logged; - public Document login(String aurl) throws IOException { String url = "https://www.zsme.tarnow.pl/plan/" + aurl; Connection.Response response = Jsoup.connect(url) .timeout(30000) .method(Connection.Method.GET) .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0") - .header("Authorization", "Basic " + base64login) .execute(); - logged = true; return response.parse(); } } diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragment.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragment.java deleted file mode 100644 index 7bff74c..0000000 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragment.java +++ /dev/null @@ -1,48 +0,0 @@ -package pl.vemu.zsme.timetableFragment.login; - - -import android.content.Context; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; - -import androidx.annotation.NonNull; -import androidx.databinding.DataBindingUtil; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProvider; -import androidx.navigation.NavController; -import androidx.navigation.Navigation; - -import pl.vemu.zsme.R; -import pl.vemu.zsme.databinding.FragmentLoginBinding; - -public class LoginFragment extends Fragment implements LoginInterface { - - private LoginFragmentVM viewModel; - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - FragmentLoginBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_login, container, false); - viewModel = new ViewModelProvider(this).get(LoginFragmentVM.class); - viewModel.setLogin(this); - binding.setLifecycleOwner(this); - binding.setViewmodel(viewModel); - return binding.getRoot(); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - viewModel.onActivityDestroyed(); - } - - @Override - public void login() { - InputMethodManager imm = (InputMethodManager) requireActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getView().getWindowToken(), 0); - NavController navController = Navigation.findNavController(requireActivity(), R.id.nav_host_fragment); - navController.navigate(LoginFragmentDirections.actionLoginFragmentToTimetableFragment()); - } -} diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragmentVM.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragmentVM.java deleted file mode 100644 index b1ef270..0000000 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginFragmentVM.java +++ /dev/null @@ -1,60 +0,0 @@ -package pl.vemu.zsme.timetableFragment.login; - -import android.app.Application; -import android.os.Handler; -import android.os.Looper; - -import androidx.lifecycle.AndroidViewModel; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.MutableLiveData; - -import org.jsoup.HttpStatusException; - -import java.io.IOException; - -import lombok.Setter; -import pl.vemu.zsme.R; - -public class LoginFragmentVM extends AndroidViewModel { - - @Setter - private LoginInterface login; - - private final MutableLiveData error = new MutableLiveData<>(); - private String wrongPasswordOrLogin; - private String errorString; - - public LoginFragmentVM(Application context) { - super(context); - this.wrongPasswordOrLogin = context.getString(R.string.wrong_password_or_login); - this.errorString = context.getString(R.string.error); - } - - public void onActivityDestroyed() { - login = null; - } - - public void loginClick(String loginText, String passwordText) { - new Thread(() -> { - try { - LoginRepo.INSTANCE.login(loginText, passwordText); - new Handler(Looper.getMainLooper()).post(() -> login.login()); - } catch (HttpStatusException e) { - reject(e.getStatusCode()); - } catch (IOException e) { - reject(404); - } - }).start(); - } - - public LiveData getError() { - return error; - } - - private void reject(int code) { - String errorText; - if (code == 401) errorText = wrongPasswordOrLogin; - else errorText = errorString + " " + code; - error.postValue(errorText); - } -} diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginInterface.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginInterface.java deleted file mode 100644 index af7de55..0000000 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginInterface.java +++ /dev/null @@ -1,5 +0,0 @@ -package pl.vemu.zsme.timetableFragment.login; - -public interface LoginInterface { - void login(); -} diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginRepo.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginRepo.java deleted file mode 100644 index 7e33e79..0000000 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/login/LoginRepo.java +++ /dev/null @@ -1,19 +0,0 @@ -package pl.vemu.zsme.timetableFragment.login; - -import android.util.Base64; - -import java.io.IOException; - -import pl.vemu.zsme.timetableFragment.Login; - -public enum LoginRepo { - INSTANCE; - - public void login(String login, String password) throws IOException { - String credentials = login + ":" + password; - String base64login = Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); - Login.INSTANCE.setBase64login(base64login); - Login.INSTANCE.login(""); - } - -} diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/table/TableFragment.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/table/TableFragment.java index 0dfdd37..2a8dd2f 100644 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/table/TableFragment.java +++ b/app/src/main/java/pl/vemu/zsme/timetableFragment/table/TableFragment.java @@ -1,6 +1,5 @@ package pl.vemu.zsme.timetableFragment.table; -import android.icu.util.Calendar; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -13,6 +12,7 @@ import com.google.android.material.tabs.TabLayoutMediator; +import java.util.Calendar; import java.util.List; import pl.vemu.zsme.R; @@ -47,15 +47,13 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat TableTimetableAdapter adapter = new TableTimetableAdapter(R.layout.item_table, (List) viewmodel.getList().getValue()); binding.viewPager.setAdapter(adapter); String[] names = {getString(R.string.monday), getString(R.string.tuesday), getString(R.string.wednesday), getString(R.string.thursday), getString(R.string.friday)}; - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { - int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); - day = (day == 1) || (day == 7) ? 0 : day - 2; - binding.viewPager.setCurrentItem(day); - } new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> tab.setText(names[position])).attach(); viewmodel.getList().observe(getViewLifecycleOwner(), lists -> { adapter.setList((List) lists); adapter.notifyDataSetChanged(); + int day = Calendar.getInstance().get(Calendar.DAY_OF_WEEK); + day = (day == 1) || (day == 7) ? 0 : day - 2; + binding.viewPager.setCurrentItem(day); }); } } diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableFragment.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableFragment.java index b7ee535..2754e0e 100644 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableFragment.java +++ b/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableFragment.java @@ -44,7 +44,7 @@ public void onDestroyView() { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { TableTimetableAdapter adapter = new TableTimetableAdapter(R.layout.item_timetable, (List) viewmodel.getList().getValue()); binding.viewPager.setAdapter(adapter); - String[] names = {getString(R.string.classes), getString(R.string.teachers), getString(R.string.classroom)}; + String[] names = {getString(R.string.classes), getString(R.string.teachers)/*, getString(R.string.classroom)*/}; new TabLayoutMediator(binding.tabLayout, binding.viewPager, (tab, position) -> tab.setText(names[position])).attach(); viewmodel.getList().observe(getViewLifecycleOwner(), lists -> { adapter.setList((List) lists); diff --git a/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableRepo.java b/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableRepo.java index 0b535ba..055fd3c 100644 --- a/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableRepo.java +++ b/app/src/main/java/pl/vemu/zsme/timetableFragment/timetable/TimetableRepo.java @@ -17,11 +17,11 @@ public enum TimetableRepo { public List> downloadTimetable() throws IOException { Document document = Login.INSTANCE.login("lista.html"); List elements = Arrays.asList(document.selectFirst("#oddzialy").children(), - document.selectFirst("#nauczyciele").children(), - document.selectFirst("#sale").children()); + document.selectFirst("#nauczyciele").children()/*, + document.selectFirst("#sale").children()*/); List> maps = Arrays.asList(new ArrayList<>(), - new ArrayList<>(), - new ArrayList<>()); + new ArrayList<>()/*, + new ArrayList<>()*/); for (int i = 0; i < elements.size(); i++) { for (Element element : elements.get(i)) { maps.get(i).add(new Timetable(element.text(), element.child(0).attr("href"))); diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml deleted file mode 100644 index 6256afa..0000000 --- a/app/src/main/res/layout/fragment_login.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - -