Skip to content

Commit

Permalink
Fin de l'ajout de l'option pour choisir le temps entre la récup' des MP.
Browse files Browse the repository at this point in the history
  • Loading branch information
FranckRJ committed Dec 3, 2017
1 parent 63e1fa5 commit 2717b77
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 7 deletions.
13 changes: 10 additions & 3 deletions kotlin/com/franckrj/jvnotif/NavigationMenuAdapter.kt
Expand Up @@ -70,9 +70,9 @@ class NavigationMenuAdapter(private val parentActivity: Activity) : BaseAdapter(
listOfMenuItem.getOrNull(position)?.isEnabled = newVal
}*/

/*fun setRowText(position: Int, newText: String) {
fun setRowText(position: Int, newText: String) {
listOfMenuItem.getOrNull(position)?.textContent = newText
}*/
}

override fun getCount(): Int = listOfMenuItem.size

Expand All @@ -97,7 +97,13 @@ class NavigationMenuAdapter(private val parentActivity: Activity) : BaseAdapter(
holder = (viewToUse.tag as CustomViewHolder)
}

holder.contentTextView.text = currentMenuItemInfo.textContent
if (currentMenuItemInfo.textIsHtml) {
holder.contentTextView.text = Undeprecator.htmlFromHtml(currentMenuItemInfo.textContent)
holder.contentTextView.maxLines = 2
} else {
holder.contentTextView.text = currentMenuItemInfo.textContent
holder.contentTextView.maxLines = 1
}
holder.contentTextView.alpha = (if (currentMenuItemInfo.isEnabled) 1f else 0.33f)

if (currentMenuItemInfo.isHeader) {
Expand Down Expand Up @@ -140,6 +146,7 @@ class NavigationMenuAdapter(private val parentActivity: Activity) : BaseAdapter(
val upperLineView: View)

class MenuItemInfo(var textContent: String = "",
var textIsHtml: Boolean = false,
@DrawableRes val drawableResId: Int = 0,
val isHeader: Boolean = false,
var isEnabled: Boolean = true,
Expand Down
21 changes: 20 additions & 1 deletion kotlin/com/franckrj/jvnotif/base/AbsNavigationViewActivity.kt
Expand Up @@ -73,27 +73,31 @@ abstract class AbsNavigationViewActivity: AbsToolbarActivity(), AccountMenuDialo

private fun initListOfItem() {
listOfMenuItem.add(NavigationMenuAdapter.MenuItemInfo(getString(R.string.home),
false,
R.drawable.ic_home_dark_zoom,
false,
true,
ITEM_ID_HOME,
GROUP_ID_BASIC))

listOfMenuItem.add(NavigationMenuAdapter.MenuItemInfo(getString(R.string.checkForNewMp),
listOfMenuItem.add(NavigationMenuAdapter.MenuItemInfo(getString(R.string.checkForNewMpWithInfos, getString(R.string.waitingText)),
true,
R.drawable.ic_timer_dark_zoom,
false,
true,
ITEM_ID_AUTOCHECK_PERIOD_TIME,
GROUP_ID_BASIC))

listOfMenuItem.add(NavigationMenuAdapter.MenuItemInfo(getString(R.string.accounts),
false,
0,
true,
true,
-1,
-1))

listOfMenuItem.add(NavigationMenuAdapter.MenuItemInfo(getString(R.string.addAnAccount),
false,
R.drawable.ic_content_add_dark_zoom,
false,
true,
Expand All @@ -107,13 +111,25 @@ abstract class AbsNavigationViewActivity: AbsToolbarActivity(), AccountMenuDialo
}

private fun updateNavigationMenu() {
val positionOfAutocheckPeriodTime: Int = (adapterForNavigationMenu?.getPositionDependingOfId(ITEM_ID_AUTOCHECK_PERIOD_TIME, GROUP_ID_BASIC) ?: 0)
val indexOfAutocheckPeriodTimeInfo: Int = PrefsManager.allAutocheckPeriodTimes.indexOf(PrefsManager.getLong(PrefsManager.LongPref.Names.AUTOCHECK_PERIOD_TIME))
val arrayOfAutocheckPeriodTimeInfo: Array<String>? = resources?.getStringArray(R.array.choicesForAutocheckPeriodTime)
val autocheckPeriodTimeInfo: String = if (arrayOfAutocheckPeriodTimeInfo != null && indexOfAutocheckPeriodTimeInfo >= 0 && indexOfAutocheckPeriodTimeInfo < arrayOfAutocheckPeriodTimeInfo.size) {
arrayOfAutocheckPeriodTimeInfo[indexOfAutocheckPeriodTimeInfo]
} else {
getString(R.string.waitingText)
}

adapterForNavigationMenu?.setRowText(positionOfAutocheckPeriodTime, getString(R.string.checkForNewMpWithInfos, autocheckPeriodTimeInfo))

adapterForNavigationMenu?.removeAllItemsFromGroup(GROUP_ID_ACCOUNT)

val listOfAccountNickames: List<AccountsManager.AccountInfos> = AccountsManager.getListOfAccounts()
var positionOfAddAcountItem: Int = (adapterForNavigationMenu?.getPositionDependingOfId(ITEM_ID_ADD_ACCOUNT, GROUP_ID_BASIC) ?: 0)

for (account in listOfAccountNickames) {
listOfMenuItem.add(positionOfAddAcountItem, NavigationMenuAdapter.MenuItemInfo(account.nickname,
false,
0,
false,
true,
Expand Down Expand Up @@ -144,6 +160,7 @@ abstract class AbsNavigationViewActivity: AbsToolbarActivity(), AccountMenuDialo
val argForFrag = Bundle()
val periodTimePickerDialogFragment = AutocheckPeriodTimePickerDialogFragment()
argForFrag.putLong(AutocheckPeriodTimePickerDialogFragment.ARG_CURRENT_REFRESH_TIME, PrefsManager.getLong(PrefsManager.LongPref.Names.AUTOCHECK_PERIOD_TIME))
argForFrag.putLongArray(AutocheckPeriodTimePickerDialogFragment.ARG_ALL_REFRESH_TIMES, PrefsManager.allAutocheckPeriodTimes)
periodTimePickerDialogFragment.arguments = argForFrag
periodTimePickerDialogFragment.show(supportFragmentManager, "AutocheckPeriodTimePickerDialogFragment")
}
Expand Down Expand Up @@ -233,6 +250,8 @@ abstract class AbsNavigationViewActivity: AbsToolbarActivity(), AccountMenuDialo
if (AccountsManager.getListOfAccounts().isNotEmpty()) {
InitShedulesManager.initSchedulers(this)
}

updateNavigationMenu()
}

protected abstract fun initializeViewAndToolbar()
Expand Down
Expand Up @@ -11,14 +11,14 @@ import com.franckrj.jvnotif.R
class AutocheckPeriodTimePickerDialogFragment : DialogFragment() {
companion object {
val ARG_CURRENT_REFRESH_TIME: String = "com.franckrj.jvnotif.autocheckperiodtimepicker.current_refresh_time"

private val equivalentInMsForChoices: LongArray = longArrayOf(900_000, 1_800_000, 3_600_000, 43_200_000, 86_400_000)
val ARG_ALL_REFRESH_TIMES: String = "com.franckrj.jvnotif.autocheckperiodtimepicker.all_refresh_times"
}

override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val builder = AlertDialog.Builder(activity!!)

val currentRefreshTime: Long = (arguments?.getLong(ARG_CURRENT_REFRESH_TIME, 0) ?: 0)
val equivalentInMsForChoices: LongArray = (arguments?.getLongArray(ARG_ALL_REFRESH_TIMES) ?: LongArray(0))
/* Retourne -1 si l'élément n'est pas trouvé, ce qui correspond à aucun item sélectionné dans le
* singleChoiceItems, ce qui est le comportement attendu. */
val currentSelectedItem: Int = equivalentInMsForChoices.indexOf(currentRefreshTime)
Expand Down
5 changes: 4 additions & 1 deletion kotlin/com/franckrj/jvnotif/utils/PrefsManager.kt
Expand Up @@ -7,6 +7,9 @@ import android.support.v4.util.SimpleArrayMap
import com.franckrj.jvnotif.R

object PrefsManager {
val allAutocheckPeriodTimes: LongArray = longArrayOf(900_000, 1_800_000, 3_600_000, 43_200_000, 86_400_000)
val defaultAutocheckPeriodTime: Long = 1_800_000

private var currentPrefs: SharedPreferences? = null
private var currentPrefsEdit: SharedPreferences.Editor? = null
private val listOfStringPrefs: SimpleArrayMap<StringPref.Names, StringPref> = SimpleArrayMap()
Expand All @@ -22,7 +25,7 @@ object PrefsManager {
listOfStringPrefs.put(StringPref.Names.LIST_OF_COOKIES, StringPref("pref.listOfCookies", ""))
listOfStringPrefs.put(StringPref.Names.LIST_OF_NUMBER_OF_MP, StringPref("pref.listOfNumberOfMp", ""))
listOfBoolPrefs.put(BoolPref.Names.MP_NOTIF_IS_VISIBLE, BoolPref("pref.mpNotifIsVisible", false))
listOfLongPrefs.put(LongPref.Names.AUTOCHECK_PERIOD_TIME, LongPref("pref.autocheckPeriodTime", 1_800_000))
listOfLongPrefs.put(LongPref.Names.AUTOCHECK_PERIOD_TIME, LongPref("pref.autocheckPeriodTime", defaultAutocheckPeriodTime))
}

fun getString(prefName: StringPref.Names): String {
Expand Down
11 changes: 11 additions & 0 deletions kotlin/com/franckrj/jvnotif/utils/Undeprecator.kt
Expand Up @@ -8,6 +8,8 @@ import android.support.annotation.ColorRes
import android.support.annotation.DrawableRes
import android.webkit.CookieManager
import android.webkit.WebSettings
import android.text.Html
import android.text.Spanned

object Undeprecator {
@ColorInt
Expand All @@ -29,6 +31,15 @@ object Undeprecator {
}
}

fun htmlFromHtml(source: String): Spanned {
if (Build.VERSION.SDK_INT >= 24) {
return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY)
} else {
@Suppress("DEPRECATION")
return Html.fromHtml(source)
}
}

fun cookieManagerRemoveAllCookies(manager: CookieManager) {
if (Build.VERSION.SDK_INT >= 21) {
manager.removeAllCookies(null)
Expand Down
1 change: 1 addition & 0 deletions res/values/strings.xml
Expand Up @@ -42,6 +42,7 @@
<string name="every12hours">Toutes les 12 heures</string>
<string name="every24hours">Toutes les 24 heures</string>
<string name="checkForNewMp">Vérifier les nouveaux MP</string>
<string name="checkForNewMpWithInfos"><![CDATA[Vérifier les nouveaux MP<br><small><font color="grey">%1$s</font></small>]]></string>

<string-array name="choicesForAccountMenu">
<item>@string/readMp</item>
Expand Down

0 comments on commit 2717b77

Please sign in to comment.