• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.deskclock.alarms.dataadapter
18 
19 import android.os.Bundle
20 
21 import com.android.deskclock.ItemAdapter.ItemHolder
22 import com.android.deskclock.alarms.AlarmTimeClickHandler
23 import com.android.deskclock.provider.Alarm
24 import com.android.deskclock.provider.AlarmInstance
25 
26 class AlarmItemHolder(
27     alarm: Alarm,
28     val alarmInstance: AlarmInstance?,
29     val alarmTimeClickHandler: AlarmTimeClickHandler
30 ) : ItemHolder<Alarm>(alarm, alarm.id) {
31     var isExpanded = false
32         private set
33 
getItemViewTypenull34     override fun getItemViewType(): Int {
35         return if (isExpanded) {
36             ExpandedAlarmViewHolder.VIEW_TYPE
37         } else {
38             CollapsedAlarmViewHolder.VIEW_TYPE
39         }
40     }
41 
expandnull42     fun expand() {
43         if (!isExpanded) {
44             isExpanded = true
45             notifyItemChanged()
46         }
47     }
48 
collapsenull49     fun collapse() {
50         if (isExpanded) {
51             isExpanded = false
52             notifyItemChanged()
53         }
54     }
55 
onSaveInstanceStatenull56     override fun onSaveInstanceState(bundle: Bundle) {
57         super.onSaveInstanceState(bundle)
58         bundle.putBoolean(EXPANDED_KEY, isExpanded)
59     }
60 
onRestoreInstanceStatenull61     override fun onRestoreInstanceState(bundle: Bundle) {
62         super.onRestoreInstanceState(bundle)
63         isExpanded = bundle.getBoolean(EXPANDED_KEY)
64     }
65 
66     companion object {
67         private const val EXPANDED_KEY = "expanded"
68     }
69 }