diff --git a/app/build.gradle b/app/build.gradle index 49c8eb3..4c653ce 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,6 +15,7 @@ android { buildTypes { release { minifyEnabled true + shrinkResources true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ff06d8a..81c11f3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,13 +31,14 @@ + + - diff --git a/app/src/main/java/com/denizd/substitutionplan/FragmentPersonal.java b/app/src/main/java/com/denizd/substitutionplan/FragmentPersonal.java index 3fb0756..71b3425 100644 --- a/app/src/main/java/com/denizd/substitutionplan/FragmentPersonal.java +++ b/app/src/main/java/com/denizd/substitutionplan/FragmentPersonal.java @@ -1,6 +1,7 @@ package com.denizd.substitutionplan; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -15,6 +16,7 @@ import com.madapps.prefrences.EasyPrefrences; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -49,7 +51,9 @@ public class FragmentPersonal extends Fragment { private RecyclerView recyclerView; private CardAdapter mAdapter; - private RecyclerView.LayoutManager layoutManager; + private RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext()), + linearLayoutManager = new LinearLayoutManager(getContext()), + gridLayoutManager = new GridLayoutManager(getContext(), 2); private ArrayList planCardList; private TextView bottomSheetText; private SubstViewModel substViewModel; @@ -62,6 +66,19 @@ public class FragmentPersonal extends Fragment { return inflater.inflate(R.layout.plan, null); } + @Override + public void onConfigurationChanged(@NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { + layoutManager = linearLayoutManager; + recyclerView.setLayoutManager(layoutManager); + } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { + layoutManager = gridLayoutManager; + recyclerView.setLayoutManager(layoutManager); + } + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); @@ -75,8 +92,15 @@ public class FragmentPersonal extends Fragment { planCardList = new ArrayList<>(); recyclerView = getView().findViewById(R.id.linearRecycler); - layoutManager = new LinearLayoutManager(getContext()); recyclerView.setHasFixedSize(true); + + int orientation = getResources().getConfiguration().orientation; + + if (orientation == Configuration.ORIENTATION_PORTRAIT) { + layoutManager = linearLayoutManager; + } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + layoutManager = gridLayoutManager; + } recyclerView.setLayoutManager(layoutManager); mAdapter = new CardAdapter(planCardList); recyclerView.setAdapter(mAdapter); diff --git a/app/src/main/java/com/denizd/substitutionplan/FragmentPlan.java b/app/src/main/java/com/denizd/substitutionplan/FragmentPlan.java index df7f1ae..4d7e9b9 100644 --- a/app/src/main/java/com/denizd/substitutionplan/FragmentPlan.java +++ b/app/src/main/java/com/denizd/substitutionplan/FragmentPlan.java @@ -1,6 +1,7 @@ package com.denizd.substitutionplan; import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -14,6 +15,7 @@ import com.google.android.material.snackbar.Snackbar; import androidx.fragment.app.Fragment; import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -45,7 +47,9 @@ public class FragmentPlan extends Fragment { private RecyclerView recyclerView; private CardAdapter mAdapter; - private RecyclerView.LayoutManager layoutManager; + private RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext()), + linearLayoutManager = new LinearLayoutManager(getContext()), + gridLayoutManager = new GridLayoutManager(getContext(), 2); private ArrayList planCardList; private TextView bottomSheetText; private SubstViewModel substViewModel; @@ -56,6 +60,19 @@ public class FragmentPlan extends Fragment { return inflater.inflate(R.layout.plan, null); } + @Override + public void onConfigurationChanged(@NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { + layoutManager = linearLayoutManager; + recyclerView.setLayoutManager(layoutManager); + } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { + layoutManager = gridLayoutManager; + recyclerView.setLayoutManager(layoutManager); + } + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); @@ -68,8 +85,15 @@ public class FragmentPlan extends Fragment { planCardList = new ArrayList<>(); recyclerView = getView().findViewById(R.id.linearRecycler); - layoutManager = new LinearLayoutManager(getContext()); recyclerView.setHasFixedSize(true); + + int orientation = getResources().getConfiguration().orientation; + + if (orientation == Configuration.ORIENTATION_PORTRAIT) { + layoutManager = linearLayoutManager; + } else if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + layoutManager = gridLayoutManager; + } recyclerView.setLayoutManager(layoutManager); mAdapter = new CardAdapter(planCardList); recyclerView.setAdapter(mAdapter); diff --git a/app/src/main/java/com/denizd/substitutionplan/Main.kt b/app/src/main/java/com/denizd/substitutionplan/Main.kt index a8d0122..a6b04dd 100644 --- a/app/src/main/java/com/denizd/substitutionplan/Main.kt +++ b/app/src/main/java/com/denizd/substitutionplan/Main.kt @@ -289,9 +289,13 @@ class Main : AppCompatActivity(R.layout.activity_main) { }, 600) } - val userPlan: String = when (prefs.getString("username", "")[prefs.getString("username", "").length - 1].toString().toLowerCase()) { - "s", "x", "z" -> prefs.getString("username", "") + getString(R.string.nosplan) - else -> prefs.getString("username", "") + getString(R.string.splan) + val userPlan: String = if (prefs.getString("username", "").toString().isNotEmpty()) { + when (prefs.getString("username", "")[prefs.getString("username", "").length - 1].toString().toLowerCase()) { + "s", "x", "z" -> prefs.getString("username", "") + getString(R.string.nosplan) + else -> prefs.getString("username", "") + getString(R.string.splan) + } + } else { + getString(R.string.personalplan) } if (prefs.getBoolean("defaultPersonalised", false)) { diff --git a/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt b/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt index ca50f32..bfdbb60 100644 --- a/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt +++ b/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt @@ -115,7 +115,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen override fun afterTextChanged(s: Editable) {} override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { - edit.putString("classes", txtName.text.toString()).apply() + edit.putString("classes", txtClasses.text.toString()).apply() } }) @@ -124,7 +124,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen override fun afterTextChanged(s: Editable) {} override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {} override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) { - edit.putString("courses", txtName.text.toString()).apply() + edit.putString("courses", txtCourses.text.toString()).apply() } }) @@ -451,11 +451,16 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen else -> Toast.makeText(mContext, getString(R.string.nothinghappened), Toast.LENGTH_LONG).show() } } - alertDialog.setView(dialogView); - alertDialog.show(); + alertDialog.setView(dialogView) + alertDialog.show() return true } +// override fun onDetach() { +// super.onDetach() +// edit.apply() +// } + private fun getDiagnosticsText(prefs: SharedPreferences): String { return "First Launch: " + prefs.getString("firstTimeDev", "") + "\n\nApp launched: " + prefs.getInt("launchDev", 0) +