Project cleanup; removed unused resources and test classes. Fixed memory leak bug in DataFetcher.kt

This commit is contained in:
Deniz Düzgören
2019-09-15 12:01:17 +02:00
parent bf52312d99
commit 8f4c604eed
31 changed files with 68 additions and 321 deletions
@@ -1,26 +0,0 @@
package com.denizd.substitutionplan;
import android.content.Context;
import androidx.test.InstrumentationRegistry;
import androidx.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.denizd.substitutionplan", appContext.getPackageName());
}
}
@@ -13,14 +13,14 @@ import com.google.android.material.card.MaterialCardView
internal class ColourAdapter(private var mColours: List<Colour>, onClickListener: OnClickListener) : RecyclerView.Adapter<ColourAdapter.ColourViewHolder>() { internal class ColourAdapter(private var mColours: List<Colour>, onClickListener: OnClickListener) : RecyclerView.Adapter<ColourAdapter.ColourViewHolder>() {
val mOnClickListener = onClickListener private val mOnClickListener = onClickListener
class ColourViewHolder(view: View, clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener { class ColourViewHolder(view: View, clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
val title: TextView = view.findViewById(R.id.item_text) val title: TextView = view.findViewById(R.id.item_text)
var image: ImageView = view.findViewById(R.id.item_image) var image: ImageView = view.findViewById(R.id.item_image)
val titleNoLang: TextView = view.findViewById(R.id.item_text_no_lang) val titleNoLang: TextView = view.findViewById(R.id.item_text_no_lang)
val cardView: MaterialCardView = view.findViewById(R.id.cardView) val cardView: MaterialCardView = view.findViewById(R.id.cardView)
val mClickListener = clickListener private val mClickListener = clickListener
init { view.setOnClickListener(this) } init { view.setOnClickListener(this) }
override fun onClick(v: View?) { mClickListener.onClick(adapterPosition, title.text.toString(), titleNoLang.text.toString()) } override fun onClick(v: View?) { mClickListener.onClick(adapterPosition, title.text.toString(), titleNoLang.text.toString()) }
@@ -59,12 +59,7 @@ internal class ColourAdapter(private var mColours: List<Colour>, onClickListener
override fun getItemCount(): Int = mColours.size override fun getItemCount(): Int = mColours.size
fun setColours(colours: List<Colour>) { internal interface OnClickListener {
mColours = colours
notifyDataSetChanged()
}
public interface OnClickListener {
fun onClick(position: Int, title: String, titleNoLang: String) fun onClick(position: Int, title: String, titleNoLang: String)
} }
} }
@@ -26,10 +26,6 @@ internal class FoodAdapter(food: ArrayList<Food>) : RecyclerView.Adapter<FoodAda
return CardViewHolder(v) return CardViewHolder(v)
} }
fun getFoodAt(i: Int): Food {
return mFood!![i]
}
override fun onBindViewHolder(holder: CardViewHolder, position: Int) { override fun onBindViewHolder(holder: CardViewHolder, position: Int) {
val currentItem = mFood!![position] val currentItem = mFood!![position]
@@ -45,12 +45,7 @@ internal class RingtoneAdapter(private var _ringtones: List<Ringtone>, onClickLi
override fun getItemCount(): Int = _ringtones.size override fun getItemCount(): Int = _ringtones.size
fun setRingtones(ringtones: List<Ringtone>) { internal interface OnClickListener {
_ringtones = ringtones
notifyDataSetChanged()
}
public interface OnClickListener {
fun onRingtoneClick(position: Int, name: String, uri: String) fun onRingtoneClick(position: Int, name: String, uri: String)
} }
} }
@@ -21,6 +21,7 @@ import com.denizd.substitutionplan.models.Food
import com.denizd.substitutionplan.models.Subst import com.denizd.substitutionplan.models.Subst
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import org.jsoup.Jsoup import org.jsoup.Jsoup
import java.lang.ref.WeakReference
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
/** /**
@@ -40,13 +41,13 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
private var menu = isMenu private var menu = isMenu
private var forceRefresh = forced private var forceRefresh = forced
private var mContext = context private var mContext = WeakReference(context)
private var mApplication = application private var mApplication = application
private var mView = parentView private var mView = WeakReference(parentView)
private var priority = 200 private var priority = 200
private var notifText = "" private var notificationText = ""
private var informational = "" private var informational = ""
private val prefs = PreferenceManager.getDefaultSharedPreferences(mContext) private val prefs = PreferenceManager.getDefaultSharedPreferences(mContext.get())
private val edit = prefs.edit() private val edit = prefs.edit()
private var currentTime = "" private var currentTime = ""
private var currentFoodTime = "" private var currentFoodTime = ""
@@ -72,21 +73,21 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
} }
if (plan || menu) { if (plan || menu) {
mView?.let { v: View -> mView.get()?.let { v: View ->
var snackText = "${mContext.getText(R.string.lastUpdated)} ${when { var snackText = "${mContext.get()?.getText(R.string.lastUpdated)} ${when {
plan -> currentTime plan -> currentTime
menu -> currentFoodTime menu -> currentFoodTime
else -> "---" else -> "---"
}}" }}"
snackText = if (forceRefresh) mContext.getString(R.string.forcedRefresh) else snackText snackText = if (forceRefresh) mContext.get()?.getString(R.string.forcedRefresh) ?: "" else snackText
val snackBarView = v.findViewById<View>(R.id.coordination) val snackBarView = v.findViewById<View>(R.id.coordination)
Snackbar.make(snackBarView, snackText, Snackbar.LENGTH_LONG).show() Snackbar.make(snackBarView, snackText, Snackbar.LENGTH_LONG).show()
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
mView?.let { v: View -> mView.get()?.let { v: View ->
val snackBarView = v.findViewById<View>(R.id.coordination) val snackBarView = v.findViewById<View>(R.id.coordination)
Snackbar.make(snackBarView, mContext.getString(R.string.noInternet), Snackbar.LENGTH_LONG).setBackgroundTint(ContextCompat.getColor(mContext, Snackbar.make(snackBarView, mContext.get()?.getString(R.string.noInternet) ?: "", Snackbar.LENGTH_LONG).setBackgroundTint(ContextCompat.getColor(mContext.get()!!,
R.color.colorError R.color.colorError
)).show() )).show()
} }
@@ -95,11 +96,13 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
} }
override fun onPostExecute(result: Void?) { override fun onPostExecute(result: Void?) {
mView?.let { mView.get()?.let {
try { try {
it.findViewById<SwipeRefreshLayout>(R.id.pullToRefresh).isRefreshing = false it.findViewById<SwipeRefreshLayout>(R.id.pullToRefresh).isRefreshing = false
} catch (ignored: Exception) {} } catch (ignored: Exception) {}
} }
mView.clear()
mContext.clear()
} }
private fun requestFoodMenuData() { private fun requestFoodMenuData() {
@@ -184,11 +187,11 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
false false
) )
}.forEach { substItem -> }.forEach { substItem ->
notifText += "${if (notifText.isNotEmpty()) ",\n" else ""}${substItem.course}: ${if (substItem.additional.isNotEmpty()) substItem.additional else "---"}" notificationText += "${if (notificationText.isNotEmpty()) ",\n" else ""}${substItem.course}: ${if (substItem.additional.isNotEmpty()) substItem.additional else "---"}"
} }
} }
if (notifText.isNotEmpty()) { if (notificationText.isNotEmpty()) {
sendNotification() sendNotification()
} }
@@ -197,30 +200,31 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
} }
private fun sendNotification() { private fun sendNotification() {
val openApp = Intent(mContext, Main::class.java) mContext.get()?.let { c ->
val openApp = Intent(c, Main::class.java)
openApp.flags = Intent.FLAG_ACTIVITY_NEW_TASK openApp.flags = Intent.FLAG_ACTIVITY_NEW_TASK
openApp.flags += Intent.FLAG_ACTIVITY_CLEAR_TASK openApp.flags += Intent.FLAG_ACTIVITY_CLEAR_TASK
val openAppPending = PendingIntent.getActivity(mContext, 0, openApp, 0) val openAppPending = PendingIntent.getActivity(c, 0, openApp, 0)
val notificationLayout = RemoteViews(mContext.packageName, R.layout.notification) val notificationLayout = RemoteViews(c.packageName, R.layout.notification)
notificationLayout.setTextViewText(R.id.notification_title, mContext.getString( notificationLayout.setTextViewText(R.id.notification_title, c.getString(
R.string.substitutionPlan R.string.substitutionPlan
)) ))
notificationLayout.setTextViewText(R.id.notification_textview, notifText) notificationLayout.setTextViewText(R.id.notification_textview, notificationText)
val manager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val manager = c.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
HelperFunctions.getNotificationChannel(mContext, prefs) HelperFunctions.getNotificationChannel(c, prefs)
} }
val notification = NotificationCompat.Builder(mContext, HelperFunctions.notificationChannelId) val notification = NotificationCompat.Builder(c, HelperFunctions.notificationChannelId)
.setStyle(NotificationCompat.DecoratedCustomViewStyle()) .setStyle(NotificationCompat.DecoratedCustomViewStyle())
.setCustomContentView(notificationLayout) .setCustomContentView(notificationLayout)
.setSmallIcon(R.drawable.ic_avh) .setSmallIcon(R.drawable.ic_avh)
.setContentIntent(openAppPending) .setContentIntent(openAppPending)
.setAutoCancel(true) .setAutoCancel(true)
.setColor(ContextCompat.getColor(mContext, R.color.colorAccent)) .setColor(ContextCompat.getColor(c, R.color.colorAccent))
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
val sound = if ((prefs.getString("ringtoneUri", "") ?: "").isNotEmpty()) { val sound = if ((prefs.getString("ringtoneUri", "") ?: "").isNotEmpty()) {
@@ -234,3 +238,4 @@ internal class DataFetcher(isPlan: Boolean, isMenu: Boolean, isJobService: Boole
manager.notify(1, notification.build()) manager.notify(1, notification.build())
} }
} }
}
@@ -14,12 +14,4 @@ internal class FoodViewModel(application: Application) : AndroidViewModel(applic
init { init {
allFoods = repository.allFoods allFoods = repository.allFoods
} }
fun insert(food: Food) {
repository.insert(food)
}
fun deleteAll() {
repository.deleteAll()
}
} }
@@ -22,14 +22,6 @@ internal class SubstRepository(application: Application) {
InsertSubstAsync(substDao).execute(subst) InsertSubstAsync(substDao).execute(subst)
} }
fun update(subst: Subst) {
UpdateSubstAsync(substDao).execute(subst)
}
fun delete(subst: Subst) {
DeleteSubstAsync(substDao).execute(subst)
}
fun deleteAllSubst() { fun deleteAllSubst() {
DeleteAllSubstAsync(substDao).execute() DeleteAllSubstAsync(substDao).execute()
} }
@@ -42,22 +34,6 @@ internal class SubstRepository(application: Application) {
} }
} }
class UpdateSubstAsync(substDao: SubstDao?) : AsyncTask<Subst, Void, Void>() {
private val mSubstDao = substDao
override fun doInBackground(vararg substs: Subst): Void? {
mSubstDao?.updateSubst(substs[0])
return null
}
}
class DeleteSubstAsync(substDao: SubstDao?) : AsyncTask<Subst, Void, Void>() {
private val mSubstDao = substDao
override fun doInBackground(vararg substs: Subst): Void? {
mSubstDao?.deleteSubst(substs[0])
return null
}
}
class DeleteAllSubstAsync(substDao: SubstDao?) : AsyncTask<Void, Void, Void>() { class DeleteAllSubstAsync(substDao: SubstDao?) : AsyncTask<Void, Void, Void>() {
private val mSubstDao = substDao private val mSubstDao = substDao
override fun doInBackground(vararg voids: Void): Void? { override fun doInBackground(vararg voids: Void): Void? {
@@ -14,20 +14,4 @@ internal class SubstViewModel(application: Application) : AndroidViewModel(appli
init { init {
allSubst = repository.allSubst allSubst = repository.allSubst
} }
fun insertSubst(subst: Subst) {
repository.insert(subst)
}
fun updateSubst(subst: Subst) {
repository.update(subst)
}
fun deleteSubst(subst: Subst) {
repository.delete(subst)
}
fun deleteAllSubst() {
repository.deleteAllSubst()
}
} }
-20
View File
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:ordering="sequentially"
android:shareInterpolator="false">
<!-- Step 1 -->
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="pathData"
android:valueFrom="M6.5,12 l0,0 l0,0"
android:valueTo="M6.5,12 l3.5,4 l0,0"
android:valueType="pathType" />
<!-- Step 2 -->
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="pathData"
android:valueFrom="M6.5,12 l3.5,4 l0,0"
android:valueTo="M6.5,12 l3.5,4 l8,-7"
android:valueType="pathType" />
</set>
-9
View File
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:interpolator="@android:anim/overshoot_interpolator">
<translate
android:fromXDelta="-150%"
android:toXDelta="0"/>
</set>
-9
View File
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_longAnimTime"
android:interpolator="@android:anim/anticipate_interpolator">
<translate
android:fromXDelta="0%"
android:toXDelta="-150%"/>
</set>
-9
View File
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0">
</alpha>
</set>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

@@ -1,5 +0,0 @@
<vector android:height="120dp" android:viewportHeight="26.073"
android:viewportWidth="54.31" android:width="250dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/colorSplashLogo"
android:pathData="m0.642,26.05c-0.1793,-0.0546 -0.3227,-0.1912 -0.423,-0.4034 -0.0868,-0.1835 -0.1299,-0.3499 -0.18,-0.6953 -0.0644,-0.4438 -0.0501,-2.2083 0.0447,-5.5298 0.0442,-1.5476 0.0862,-2.9233 0.0933,-3.0572l0.013,-0.2434 0.1555,-0.0798c0.0855,-0.0439 0.351,-0.1848 0.59,-0.313 0.6131,-0.329 1.3794,-0.7385 1.597,-0.8535 0.1016,-0.0537 0.2971,-0.1587 0.4346,-0.2334 0.1374,-0.0747 0.3525,-0.1897 0.478,-0.2556 0.5334,-0.2802 1.5092,-0.8133 1.8615,-1.017 0.1116,-0.0645 0.2961,-0.1712 0.4099,-0.237 0.2127,-0.123 0.2696,-0.157 0.4011,-0.2397 0.0418,-0.0263 0.1543,-0.0937 0.2499,-0.1497 0.5553,-0.3255 1.6814,-1.0279 2.6508,-1.6533 0.0597,-0.0386 0.1966,-0.1268 0.3042,-0.1961 1.5001,-0.9666 3.6523,-2.4484 4.954,-3.4109 0.3582,-0.2649 1.7314,-1.2221 2.6279,-1.8318 0.7716,-0.5248 2.8139,-1.8787 3.0062,-1.9929 0.0394,-0.0234 0.2252,-0.1412 0.4128,-0.2616s0.4487,-0.2859 0.5801,-0.3677c0.1315,-0.0817 0.3026,-0.1893 0.3802,-0.239 0.2592,-0.1659 1.2231,-0.7326 1.7869,-1.0506 0.5592,-0.3154 1.4818,-0.7903 1.8091,-0.9313 0.6104,-0.2629 1.1407,-0.4489 1.5055,-0.5279 0.1138,-0.0247 0.214,-0.0492 0.2227,-0.0546 0.0322,-0.0199 0.8012,-0.1391 1.0422,-0.1616 0.979,-0.0913 3.2692,-0.0911 4.313,0.0003 1.4035,0.123 2.2951,0.4492 2.6451,0.9679 0.165,0.2444 0.2002,0.3755 0.2007,0.7474 0.0006,0.411 -0.0696,0.716 -0.284,1.2338 -0.3755,0.907 -1.5233,2.5827 -2.7325,3.9889 -0.9585,1.1147 -1.8375,2.4001 -2.4388,3.5662 -0.2381,0.4618 -0.346,0.7207 -0.5387,1.2928 -0.4305,1.2778 -0.4186,1.6374 0.0757,2.2952 0.4236,0.5637 0.9046,0.8012 1.9082,0.9422 0.0887,0.0125 0.3794,0.0227 0.646,0.0227 1.0896,0 2.4249,-0.253 3.886,-0.7363 0.3467,-0.1147 1.0184,-0.3616 1.2494,-0.4593 0.0538,-0.0227 0.1955,-0.0816 0.3151,-0.1309 0.3765,-0.1551 0.5845,-0.2417 0.6518,-0.2713 0.0358,-0.0158 0.163,-0.0696 0.2825,-0.1195 0.1195,-0.05 0.3102,-0.1304 0.4237,-0.1786 0.1135,-0.0483 0.2895,-0.1216 0.3911,-0.1629 0.1016,-0.0413 0.2433,-0.0998 0.3151,-0.1299 0.0717,-0.0301 0.1988,-0.0819 0.2825,-0.115 0.0837,-0.0331 0.2743,-0.1087 0.4237,-0.168 0.6645,-0.2636 0.8709,-0.3322 1.1652,-0.3875 0.4255,-0.0799 0.6165,0.0135 0.6831,0.3339 0.016,0.0772 0.028,0.4053 0.0319,0.8732 0.0065,0.7894 0.0264,1.0214 0.1199,1.401 0.1968,0.799 0.5825,1.2477 1.3058,1.5194 0.3784,0.1421 1.0799,0.2763 1.6675,0.3188 0.3938,0.0285 1.8687,0.0141 2.2077,-0.0216 1.7553,-0.1848 3.1116,-0.488 4.4108,-0.9862 0.2568,-0.0985 0.7865,-0.3131 0.8691,-0.3522 0.0901,-0.0426 0.2578,-0.1131 0.4128,-0.1737 0.0717,-0.028 0.2135,-0.0867 0.3151,-0.1303 0.1016,-0.0437 0.2433,-0.1025 0.3151,-0.1308 0.0717,-0.0282 0.2135,-0.0867 0.3151,-0.13 0.1016,-0.0433 0.2433,-0.1017 0.3151,-0.13 0.0717,-0.0282 0.2128,-0.0862 0.3135,-0.1288 0.1007,-0.0426 0.1877,-0.0729 0.1932,-0.0674 0.0104,0.0104 0.0053,0.0676 -0.1055,1.1898 -0.071,0.7187 -0.1146,0.9429 -0.2464,1.2663 -0.2098,0.5145 -0.7032,1.0472 -1.5039,1.6232 -0.1778,0.1279 -0.9153,0.6186 -1.0884,0.7241 -1.8174,1.1078 -2.509,1.4324 -3.5921,1.6858 -0.8303,0.1943 -2.059,0.2746 -3.8024,0.2487 -0.9463,-0.0141 -1.1963,-0.026 -1.8252,-0.0868 -0.591,-0.0572 -0.9542,-0.126 -1.3471,-0.2555 -0.4719,-0.1555 -0.6843,-0.2909 -1.1215,-0.7153 -0.1842,-0.1788 -0.387,-0.3584 -0.4505,-0.3991 -0.3994,-0.2555 -0.8111,-0.2864 -1.6111,-0.1208 -0.2518,0.0521 -0.825,0.1934 -1.1081,0.2733 -0.1076,0.0303 -0.3178,0.0881 -0.4672,0.1285 -0.1494,0.0404 -0.4036,0.109 -0.5649,0.1527 -1.0207,0.2759 -2.3356,0.5132 -3.3678,0.6077 -0.9254,0.0847 -2.1742,0.0853 -3.0001,0.001 -0.3103,-0.0315 -1.0002,-0.1322 -1.063,-0.1551 -0.0179,-0.007 -0.1499,-0.0358 -0.2933,-0.0649 -0.1434,-0.0292 -0.3487,-0.0781 -0.4563,-0.1087 -0.2615,-0.0744 -0.886,-0.2842 -0.9973,-0.335 -0.049,-0.0224 -0.1498,-0.0657 -0.224,-0.0963 -0.598,-0.2465 -1.384,-0.7544 -1.8513,-1.1964 -0.9436,-0.8924 -1.3564,-2.0681 -1.2817,-3.6505 0.0193,-0.4081 0.0205,-0.4203 0.0997,-0.9778 0.1124,-0.7911 0.0607,-1.4115 -0.1259,-1.5114 -0.0853,-0.0457 -0.3493,0.0288 -0.7149,0.2015 -0.3416,0.1614 -1.1258,0.5975 -1.4555,0.8094 -0.0418,0.0269 -0.2374,0.1503 -0.4346,0.2742 -0.4157,0.2612 -1.416,0.9297 -1.8686,1.2487 -0.0418,0.0295 -0.1215,0.0853 -0.177,0.1239 -0.0555,0.0387 -0.2154,0.1535 -0.3552,0.255 -0.1399,0.1016 -0.2949,0.2135 -0.3445,0.2487 -0.4102,0.291 -1.4365,1.0783 -2.1109,1.6191 -1.4979,1.2014 -2.884,2.2429 -4.237,3.184 -0.1817,0.1264 -1.0192,0.686 -1.2494,0.8348 -0.4025,0.2603 -0.5367,0.3456 -0.5975,0.3799 -0.0358,0.0202 -0.1727,0.1041 -0.3042,0.1866 -0.1314,0.0824 -0.3172,0.1957 -0.4128,0.2518 -0.0956,0.0561 -0.208,0.1241 -0.2499,0.1512 -0.1088,0.0703 -0.5731,0.339 -0.8909,0.5155 -0.1494,0.083 -0.2814,0.1585 -0.2933,0.1677 -0.0307,0.0238 -0.8824,0.4882 -1.195,0.6517 -0.1434,0.075 -0.3292,0.1731 -0.4128,0.2181 -0.4406,0.2368 -2.7812,1.4179 -3.0311,1.5296 -0.0777,0.0347 -0.1999,0.0901 -0.2716,0.1232 -0.3531,0.1628 -0.8439,0.337 -1.072,0.3807 -0.1687,0.0323 -0.4989,0.038 -0.5903,0.0102z" android:strokeWidth=".021728"/>
</vector>
@@ -1,14 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
android:opacity="opaque">
<item android:drawable="@color/colorAccent"/>
<item>
<bitmap
android:src="@drawable/avhbmp"
android:gravity="center"
android:scaleType="centerInside"/>
</item>
</layer-list>
+1 -1
View File
@@ -3,5 +3,5 @@
android:drawable="@drawable/check_mark"> android:drawable="@drawable/check_mark">
<target <target
android:name="tick" android:name="tick"
android:animation="@anim/check_animation" /> android:animation="@animator/check_animation" />
</animated-vector> </animated-vector>
@@ -14,7 +14,6 @@
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintFirst"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layoutAnimation="@anim/layout_animation_fall_down"> android:layoutAnimation="@anim/layout_animation_fall_down">
@@ -215,7 +214,7 @@
app:layout_constraintStart_toStartOf="@+id/txtLayoutClasses" app:layout_constraintStart_toStartOf="@+id/txtLayoutClasses"
app:layout_constraintTop_toBottomOf="@+id/txtLayoutCourses" /> app:layout_constraintTop_toBottomOf="@+id/txtLayoutCourses" />
<LinearLayout android:id="@+id/checkBoxLinearLayout" <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
-2
View File
@@ -14,7 +14,6 @@
android:elevation="0dp"> android:elevation="0dp">
<androidx.appcompat.widget.Toolbar <androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:titleTextColor="@color/colorAccent" app:titleTextColor="@color/colorAccent"
@@ -67,7 +66,6 @@
<include layout="@layout/content_main" /> <include layout="@layout/content_main" />
<View <View
android:id="@+id/bottom_nav_divider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
-1
View File
@@ -7,7 +7,6 @@
tools:context=".activities.Main" tools:context=".activities.Main"
tools:showIn="@layout/app_bar_main" tools:showIn="@layout/app_bar_main"
android:id="@+id/content" android:id="@+id/content"
android:background="@color/colorBackground"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.coordinatorlayout.widget.CoordinatorLayout <androidx.coordinatorlayout.widget.CoordinatorLayout
+2 -4
View File
@@ -4,7 +4,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:background="@color/colorBackground"
tools:context=".fragments.SettingsFragment"> tools:context=".fragments.SettingsFragment">
<androidx.core.widget.NestedScrollView <androidx.core.widget.NestedScrollView
@@ -115,7 +114,6 @@
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/appTheme"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" android:layout_marginEnd="8dp"
@@ -128,6 +126,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:editable="false" android:editable="false"
android:hint="@string/appTheme"
android:textColor="@color/colorText" android:textColor="@color/colorText"
android:textSize="14sp"/> android:textSize="14sp"/>
@@ -642,8 +641,7 @@
app:layout_constraintBottom_toTopOf="@+id/txtPrivacyP" app:layout_constraintBottom_toTopOf="@+id/txtPrivacyP"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtWhatittook" app:layout_constraintTop_toBottomOf="@+id/txtWhatittook"/>
android:onClick="onClick"/>
<TextView <TextView
android:id="@+id/txtPrivacyP" android:id="@+id/txtPrivacyP"
+3 -2
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/planCard" android:id="@+id/planCard"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
@@ -63,7 +63,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="2dp" android:layout_marginStart="2dp"
android:layout_marginEnd="2dp" android:layout_marginEnd="2dp"
android:textColor="@color/colorText"/> android:textColor="@color/colorText"
tools:ignore="HardcodedText" />
<TextView <TextView
android:id="@+id/teacher" android:id="@+id/teacher"
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@@ -48,7 +49,8 @@
android:layout_marginStart="24dp" android:layout_marginStart="24dp"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:text="Reset launch counter" android:text="Reset launch counter"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"/> style="@style/Widget.MaterialComponents.Button.OutlinedButton"
tools:ignore="HardcodedText" />
<Button <Button
android:id="@+id/btnResetNotif" android:id="@+id/btnResetNotif"
@@ -61,7 +63,8 @@
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:text="Reset ping counter" android:text="Reset ping counter"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"/> style="@style/Widget.MaterialComponents.Button.OutlinedButton"
tools:ignore="HardcodedText" />
</LinearLayout> </LinearLayout>
+1 -2
View File
@@ -3,8 +3,7 @@
android:id="@+id/pullToRefresh" android:id="@+id/pullToRefresh"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android">
android:background="@color/colorBackground">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/linear_food" android:id="@+id/linear_food"
+4 -5
View File
@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout <androidx.swiperefreshlayout.widget.SwipeRefreshLayout xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pullToRefresh" android:id="@+id/pullToRefresh"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto">
android:background="@color/colorBackground"
android:animateLayoutChanges="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -28,7 +26,8 @@
android:textSize="60dp" android:textSize="60dp"
android:layout_gravity="center" android:layout_gravity="center"
android:textColor="@color/colorHint" android:textColor="@color/colorHint"
android:visibility="gone"/> android:visibility="gone"
tools:ignore="HardcodedText,SpUsage" />
<TextView <TextView
android:id="@+id/smileydowntext" android:id="@+id/smileydowntext"
-44
View File
@@ -1,44 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textviewtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginEnd="24dp"
android:layout_marginTop="16dp"
android:fontFamily="@font/manrope_semibold"
android:textSize="22sp"
android:layout_gravity="start"
android:textColor="@color/colorText"
android:textAlignment="viewStart"/>
<androidx.core.widget.NestedScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/dialogtext"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:textColor="@color/colorText"
android:paddingStart="24dp"
android:paddingEnd="24dp"
android:paddingBottom="4dp"
android:paddingTop="8dp"
android:layout_marginBottom="24dp"/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linearLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@@ -22,7 +20,6 @@
app:srcCompat="@drawable/animated_check" /> app:srcCompat="@drawable/animated_check" />
<TextView <TextView
android:id="@+id/txtHaveFun"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
-11
View File
@@ -9,10 +9,8 @@
<string name="substitutionPlan">Vertretungsplan</string> <string name="substitutionPlan">Vertretungsplan</string>
<string name="personal">Persönlich</string> <string name="personal">Persönlich</string>
<string name="settings">Einstellungen</string> <string name="settings">Einstellungen</string>
<string name="darkBackground">Dunkler Hintergrund</string>
<string name="enableNotifications">Aktiviere Kursbenachrichtigungen</string> <string name="enableNotifications">Aktiviere Kursbenachrichtigungen</string>
<string name="enablesBackgroundSync">Hat keinen Einfluss auf Mitteilungen</string> <string name="enablesBackgroundSync">Hat keinen Einfluss auf Mitteilungen</string>
<string name="personalPlan">Persönlicher Plan</string>
<string name="personalise">Personalisieren</string> <string name="personalise">Personalisieren</string>
<string name="misc">Diverses</string> <string name="misc">Diverses</string>
<string name="defaultsToPlan">Standardmäßig ansonsten allgemeiner Plan</string> <string name="defaultsToPlan">Standardmäßig ansonsten allgemeiner Plan</string>
@@ -35,8 +33,6 @@
<string name="haveFun">Viel Spaß!</string> <string name="haveFun">Viel Spaß!</string>
<string name="enableGreeting">Aktiviere Begrüßungen</string> <string name="enableGreeting">Aktiviere Begrüßungen</string>
<string name="justBeingNice">Falls du möchtest, dass ich nett bin :)</string> <string name="justBeingNice">Falls du möchtest, dass ich nett bin :)</string>
<string name="splan">s Plan</string>
<string name="nosplan">\' Plan</string>
<string name="licences">Lizenzen</string> <string name="licences">Lizenzen</string>
<string name="whatItTook">Was die App ausmacht (Englisch)</string> <string name="whatItTook">Was die App ausmacht (Englisch)</string>
<string name="version">Versionsnummer</string> <string name="version">Versionsnummer</string>
@@ -44,11 +40,8 @@
<string name="tac">AGB</string> <string name="tac">AGB</string>
<string name="reviewTac">Überprüfe die AGB der App (Englisch)</string> <string name="reviewTac">Überprüfe die AGB der App (Englisch)</string>
<string name="reviewPrivacy">Überprüfe die Datenschutzerklärung der App (Englisch)</string> <string name="reviewPrivacy">Überprüfe die Datenschutzerklärung der App (Englisch)</string>
<string name="noInfoAvailable">Keine Informationen verfügbar</string>
<string name="information">Informationen</string> <string name="information">Informationen</string>
<string name="madeBy">Entwickelt von Deniz :)</string> <string name="madeBy">Entwickelt von Deniz :)</string>
<string name="openInfo">Öffne Info bei App-Start</string>
<string name="openInfoNoUserInput">Öffnet automatisch ohne Nutzereingabe</string>
<string name="autoRefresh">Aktualisiere Plan bei App-Start</string> <string name="autoRefresh">Aktualisiere Plan bei App-Start</string>
<string name="ifSyncNotWorking">Falls Hintergrund-Sync nicht funktioniert</string> <string name="ifSyncNotWorking">Falls Hintergrund-Sync nicht funktioniert</string>
<string name="enterCoursesHelpTitle">Wie du deine Kurse eintragen kannst</string> <string name="enterCoursesHelpTitle">Wie du deine Kurse eintragen kannst</string>
@@ -93,7 +86,6 @@
<string name="chromeCompatibleNotFound">Kein Chrome-kompatibler Browser gefunden</string> <string name="chromeCompatibleNotFound">Kein Chrome-kompatibler Browser gefunden</string>
<string name="youtubeNotFound">YouTube-App nicht gefunden</string> <string name="youtubeNotFound">YouTube-App nicht gefunden</string>
<string name="lastUpdated">Zuletzt aktualisiert:</string> <string name="lastUpdated">Zuletzt aktualisiert:</string>
<string name="nightMode">Aktiviert den Nachtmodus</string>
<string name="yourPlan">Dein Plan</string> <string name="yourPlan">Dein Plan</string>
<string-array name="greetingsMorning"> <string-array name="greetingsMorning">
<item>Hallo, %s!</item> <item>Hallo, %s!</item>
@@ -129,13 +121,10 @@
<string name="setRingtone">Benutzerdefinierter Benachrichtungston</string> <string name="setRingtone">Benutzerdefinierter Benachrichtungston</string>
<string name="setRingtone2">Derzeit: %s</string> <string name="setRingtone2">Derzeit: %s</string>
<string name="pickRingtone">Wähle einen Benachrichtigungston</string> <string name="pickRingtone">Wähle einen Benachrichtigungston</string>
<string name="noRingtonesFound">Keine Klingeltöne gefunden</string>
<string name="deviceSettingsRedirect">Öffnet Geräteinstellungen</string> <string name="deviceSettingsRedirect">Öffnet Geräteinstellungen</string>
<string name="defaultRingtone">Standard</string> <string name="defaultRingtone">Standard</string>
<string name="permissionDenied">Bitte erlaube Speicherzugriff</string> <string name="permissionDenied">Bitte erlaube Speicherzugriff</string>
<string name="success">Erfolg</string> <string name="success">Erfolg</string>
<string name="restoreFromFile">von Datei wiederherstellen</string>
<string name="or">du kannst auch…</string>
<string name="notReceivingNotifications1">Benachrichtigungen kommen nicht an?</string> <string name="notReceivingNotifications1">Benachrichtigungen kommen nicht an?</string>
<string name="notReceivingNotifications2">Klick hier um zu sehen, warum</string> <string name="notReceivingNotifications2">Klick hier um zu sehen, warum</string>
<string name="notReceivingNotificationsHelp">Bemerke, dass diese Tipps insbesondere auf Huawei/Honor-Geräten nicht funktionieren könnten. Du kannst sie trotzdem ausprobieren.\n\nAkkusparfunktionen können dazu führen, dass Benachrichtigungen nicht ankommen. Versuche, Akkusparmodi auf deren Standardeinstellung zu setzen.\n\nEinige Geräte beschränken Apps im Hintergrund. Suche in deinen Geräteeinstellungen unter Apps die Vertretungsplan-App und schaue dann nach einer Einstellung namens \"Hintergrund-Services beschränken\" (oder ähnlich) und stelle sicher, dass diese ausgestellt ist.\n\nBei Schwierigkeiten kann ich auch gerne helfen.</string> <string name="notReceivingNotificationsHelp">Bemerke, dass diese Tipps insbesondere auf Huawei/Honor-Geräten nicht funktionieren könnten. Du kannst sie trotzdem ausprobieren.\n\nAkkusparfunktionen können dazu führen, dass Benachrichtigungen nicht ankommen. Versuche, Akkusparmodi auf deren Standardeinstellung zu setzen.\n\nEinige Geräte beschränken Apps im Hintergrund. Suche in deinen Geräteeinstellungen unter Apps die Vertretungsplan-App und schaue dann nach einer Einstellung namens \"Hintergrund-Services beschränken\" (oder ähnlich) und stelle sicher, dass diese ausgestellt ist.\n\nBei Schwierigkeiten kann ich auch gerne helfen.</string>
-11
View File
@@ -11,11 +11,9 @@
<string name="settings">Settings</string> <string name="settings">Settings</string>
<!-- for Settings fragment --> <!-- for Settings fragment -->
<string name="darkBackground">Dark background</string>
<string name="enableNotifications">Enable course notifications</string> <string name="enableNotifications">Enable course notifications</string>
<string name="enablesBackgroundSync">This does not affect broadcasts</string> <string name="enablesBackgroundSync">This does not affect broadcasts</string>
<string name="personalPlan">Personal Plan</string>
<string name="personalise">Personalise</string> <string name="personalise">Personalise</string>
<string name="misc">Miscellaneous</string> <string name="misc">Miscellaneous</string>
<string name="personalised">Set personalised plan as default</string> <string name="personalised">Set personalised plan as default</string>
@@ -40,8 +38,6 @@
<string name="enableGreeting">Enable greeting</string> <string name="enableGreeting">Enable greeting</string>
<string name="justBeingNice">If you want me to be nice :)</string> <string name="justBeingNice">If you want me to be nice :)</string>
<string name="splan">\'s Plan</string>
<string name="nosplan">\' Plan</string>
<string name="licences">Licences</string> <string name="licences">Licences</string>
<string name="whatItTook">What it took to create this app</string> <string name="whatItTook">What it took to create this app</string>
@@ -51,13 +47,10 @@
<string name="reviewTac">Review this app\'s Terms &amp; Conditions</string> <string name="reviewTac">Review this app\'s Terms &amp; Conditions</string>
<string name="privacy">Privacy Policy</string> <string name="privacy">Privacy Policy</string>
<string name="reviewPrivacy">Review this app\'s Privacy Policy</string> <string name="reviewPrivacy">Review this app\'s Privacy Policy</string>
<string name="noInfoAvailable">No information available</string>
<string name="information">Information</string> <string name="information">Information</string>
<string name="madeBy">Made by Deniz :)</string> <string name="madeBy">Made by Deniz :)</string>
<string name="openInfo">Open info panel on startup</string>
<string name="openInfoNoUserInput">Opens automatically without user input</string>
<string name="autoRefresh">Refresh on startup</string> <string name="autoRefresh">Refresh on startup</string>
<string name="ifSyncNotWorking">In case the background sync doesn\'t work</string> <string name="ifSyncNotWorking">In case the background sync doesn\'t work</string>
@@ -105,7 +98,6 @@
<string name="chromeCompatibleNotFound">No Chrome-compatible browser found</string> <string name="chromeCompatibleNotFound">No Chrome-compatible browser found</string>
<string name="youtubeNotFound">YouTube app not found</string> <string name="youtubeNotFound">YouTube app not found</string>
<string name="lastUpdated">Last updated:</string> <string name="lastUpdated">Last updated:</string>
<string name="nightMode">Enables night mode</string>
<string name="yourPlan">Your Plan</string> <string name="yourPlan">Your Plan</string>
<string-array name="greetingsMorning"> <string-array name="greetingsMorning">
@@ -142,13 +134,10 @@
<string name="setRingtone">Customise notification ringtone</string> <string name="setRingtone">Customise notification ringtone</string>
<string name="setRingtone2">Currently: %s</string> <string name="setRingtone2">Currently: %s</string>
<string name="pickRingtone">Pick a notification ringtone</string> <string name="pickRingtone">Pick a notification ringtone</string>
<string name="noRingtonesFound">No ringtones found</string>
<string name="deviceSettingsRedirect">Redirects to device settings</string> <string name="deviceSettingsRedirect">Redirects to device settings</string>
<string name="defaultRingtone">Default</string> <string name="defaultRingtone">Default</string>
<string name="permissionDenied">Please enable storage permissions</string> <string name="permissionDenied">Please enable storage permissions</string>
<string name="success">Success</string> <string name="success">Success</string>
<string name="restoreFromFile">Restore from file</string>
<string name="or">you may also…</string>
<string name="notReceivingNotifications1">Not receiving notifications?</string> <string name="notReceivingNotifications1">Not receiving notifications?</string>
<string name="notReceivingNotifications2">Click to see why</string> <string name="notReceivingNotifications2">Click to see why</string>
<string name="notReceivingNotificationsHelp">Note: on Huawei/Honor devices, there may not be a solution to this problem. You\'re welcome to try the tips provided.\n\nBattery saver functions often cause notifications to be delayed or not be received at all. Try setting any battery saving options to their default setting.\n\nSome devices restrict background usage of apps. Please go to your device app settings, select the app and check for a toggle named \"Restrict background usage\" (or similar) and verify that the setting is turned off.\n\nYou\'re also welcome to ask me for help.</string> <string name="notReceivingNotificationsHelp">Note: on Huawei/Honor devices, there may not be a solution to this problem. You\'re welcome to try the tips provided.\n\nBattery saver functions often cause notifications to be delayed or not be received at all. Try setting any battery saving options to their default setting.\n\nSome devices restrict background usage of apps. Please go to your device app settings, select the app and check for a toggle named \"Restrict background usage\" (or similar) and verify that the setting is turned off.\n\nYou\'re also welcome to ask me for help.</string>
-14
View File
@@ -26,20 +26,6 @@
<item name="android:textColorPrimary">@color/colorText</item> <item name="android:textColorPrimary">@color/colorText</item>
</style> </style>
<style name="AppThemeLight.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
<item name="colorControlNormal">#000000</item>
</style>
<style name="AppThemeLight.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
<item name="colorControlNormal">#000000</item>
</style>
<style name="EditTextTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<item name="colorControlNormal">@color/colorHint</item>
<item name="colorControlActivated">@color/colorAccent</item>
<item name="colorControlHighlight">@color/colorAccent</item>
</style>
<!-- Launch / splash screen --> <!-- Launch / splash screen -->
<style name="AppTheme0.Launcher"> <style name="AppTheme0.Launcher">
<item name="android:windowBackground">@drawable/launch_screen</item> <item name="android:windowBackground">@drawable/launch_screen</item>
@@ -1,17 +0,0 @@
package com.denizd.substitutionplan;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() {
assertEquals(4, 2 + 2);
}
}
+2 -2
View File
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.3.31' ext.kotlin_version = '1.3.50'
repositories { repositories {
google() google()
jcenter() jcenter()
@@ -12,7 +12,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.0' classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.0' classpath 'com.google.gms:google-services:4.3.2'
classpath 'io.fabric.tools:gradle:1.31.0' classpath 'io.fabric.tools:gradle:1.31.0'
} }
} }