|
|
|
|
@ -29,8 +29,6 @@ import androidx.appcompat.view.ActionMode;
|
|
|
|
|
import android.view.Menu;
|
|
|
|
|
import android.view.MenuItem;
|
|
|
|
|
import android.view.View;
|
|
|
|
|
import android.view.WindowInsets;
|
|
|
|
|
import android.view.WindowInsetsController;
|
|
|
|
|
import android.view.WindowManager;
|
|
|
|
|
import android.widget.AdapterView;
|
|
|
|
|
import android.widget.Button;
|
|
|
|
|
@ -42,10 +40,8 @@ import android.widget.TextView;
|
|
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
|
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
import androidx.core.graphics.Insets;
|
|
|
|
|
import androidx.core.view.ViewCompat;
|
|
|
|
|
import androidx.core.view.WindowCompat;
|
|
|
|
|
import androidx.core.view.WindowInsetsCompat;
|
|
|
|
|
import androidx.drawerlayout.widget.DrawerLayout;
|
|
|
|
|
import androidx.lifecycle.Observer;
|
|
|
|
|
import androidx.lifecycle.ViewModel;
|
|
|
|
|
@ -54,6 +50,7 @@ import androidx.lifecycle.ViewModelProvider;
|
|
|
|
|
import net.micode.notes.R;
|
|
|
|
|
import net.micode.notes.data.Notes;
|
|
|
|
|
import net.micode.notes.data.NotesRepository;
|
|
|
|
|
import net.micode.notes.databinding.NoteListBinding;
|
|
|
|
|
import net.micode.notes.tool.SecurityManager;
|
|
|
|
|
import net.micode.notes.ui.NoteInfoAdapter;
|
|
|
|
|
import net.micode.notes.viewmodel.NotesListViewModel;
|
|
|
|
|
@ -87,13 +84,9 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
private static final int REQUEST_CODE_CHECK_PASSWORD_FOR_LOCK = 105;
|
|
|
|
|
|
|
|
|
|
private NotesListViewModel viewModel;
|
|
|
|
|
private ListView notesListView;
|
|
|
|
|
private androidx.appcompat.widget.Toolbar toolbar;
|
|
|
|
|
private NoteListBinding binding;
|
|
|
|
|
private NoteInfoAdapter adapter;
|
|
|
|
|
private DrawerLayout drawerLayout;
|
|
|
|
|
private FloatingActionButton fabNewNote;
|
|
|
|
|
private LinearLayout breadcrumbContainer;
|
|
|
|
|
private LinearLayout breadcrumbItems;
|
|
|
|
|
private View sidebarFragment;
|
|
|
|
|
|
|
|
|
|
// 多选模式状态
|
|
|
|
|
private boolean isMultiSelectMode = false;
|
|
|
|
|
@ -120,16 +113,12 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
// 启用边缘到边缘显示
|
|
|
|
|
WindowCompat.setDecorFitsSystemWindows(getWindow(), false);
|
|
|
|
|
|
|
|
|
|
setContentView(R.layout.note_list);
|
|
|
|
|
binding = NoteListBinding.inflate(getLayoutInflater());
|
|
|
|
|
setContentView(binding.getRoot());
|
|
|
|
|
|
|
|
|
|
// 处理窗口insets(状态栏和导航栏)
|
|
|
|
|
View mainView = findViewById(android.R.id.content);
|
|
|
|
|
ViewCompat.setOnApplyWindowInsetsListener(mainView, (v, windowInsets) -> {
|
|
|
|
|
Insets insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
|
|
|
|
|
// 设置内容区域的padding以避免被状态栏遮挡
|
|
|
|
|
v.setPadding(insets.left, insets.top, insets.right, insets.bottom);
|
|
|
|
|
return WindowInsetsCompat.CONSUMED;
|
|
|
|
|
});
|
|
|
|
|
// 注意:CoordinatorLayout和AppBarLayout会自动处理WindowInsets
|
|
|
|
|
// FAB也会自动避开导航栏
|
|
|
|
|
// 不需要手动设置padding
|
|
|
|
|
|
|
|
|
|
initViewModel();
|
|
|
|
|
|
|
|
|
|
@ -137,12 +126,12 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
if (savedInstanceState != null) {
|
|
|
|
|
mPendingNodeIdToOpen = savedInstanceState.getLong(KEY_PENDING_NODE_ID, -1);
|
|
|
|
|
mPendingNodeTypeToOpen = savedInstanceState.getInt(KEY_PENDING_NODE_TYPE, -1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
long savedFolderId = savedInstanceState.getLong(KEY_CURRENT_FOLDER_ID, Notes.ID_ROOT_FOLDER);
|
|
|
|
|
if (savedFolderId != Notes.ID_ROOT_FOLDER) {
|
|
|
|
|
viewModel.setCurrentFolderId(savedFolderId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Log.d(TAG, "Restored pending node: " + mPendingNodeIdToOpen + ", type: " + mPendingNodeTypeToOpen + ", folder: " + savedFolderId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -194,23 +183,20 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
* 初始化视图
|
|
|
|
|
*/
|
|
|
|
|
private void initViews() {
|
|
|
|
|
notesListView = findViewById(R.id.notes_list);
|
|
|
|
|
toolbar = findViewById(R.id.toolbar);
|
|
|
|
|
drawerLayout = findViewById(R.id.drawer_layout);
|
|
|
|
|
|
|
|
|
|
// 初始化面包屑导航
|
|
|
|
|
breadcrumbContainer = findViewById(R.id.breadcrumb_container);
|
|
|
|
|
breadcrumbItems = findViewById(R.id.breadcrumb_items);
|
|
|
|
|
// 特殊处理:Fragment标签不会在ViewBinding中生成字段
|
|
|
|
|
// 必须使用findViewById获取<fragment>标签声明的Fragment实例
|
|
|
|
|
// 这是Android ViewBinding的已知限制,不是遗漏
|
|
|
|
|
sidebarFragment = findViewById(R.id.sidebar_fragment);
|
|
|
|
|
|
|
|
|
|
// 设置适配器
|
|
|
|
|
adapter = new NoteInfoAdapter(this);
|
|
|
|
|
notesListView.setAdapter(adapter);
|
|
|
|
|
binding.notesList.setAdapter(adapter);
|
|
|
|
|
adapter.setOnNoteButtonClickListener(this);
|
|
|
|
|
adapter.setOnNoteItemClickListener(this);
|
|
|
|
|
adapter.setOnNoteItemLongClickListener(this);
|
|
|
|
|
|
|
|
|
|
// 设置点击监听
|
|
|
|
|
notesListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
|
|
binding.notesList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
|
|
|
Object item = parent.getItemAtPosition(position);
|
|
|
|
|
@ -222,8 +208,7 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 初始化 Toolbar
|
|
|
|
|
toolbar = findViewById(R.id.toolbar);
|
|
|
|
|
setSupportActionBar(toolbar);
|
|
|
|
|
setSupportActionBar(binding.toolbar);
|
|
|
|
|
if (getSupportActionBar() != null) {
|
|
|
|
|
getSupportActionBar().setTitle(R.string.app_name);
|
|
|
|
|
}
|
|
|
|
|
@ -232,16 +217,13 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
updateToolbarForNormalMode();
|
|
|
|
|
|
|
|
|
|
// 设置 Toolbar 的汉堡菜单按钮点击监听器(打开侧栏)
|
|
|
|
|
toolbar.setNavigationOnClickListener(v -> {
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.openDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
}
|
|
|
|
|
binding.toolbar.setNavigationOnClickListener(v -> {
|
|
|
|
|
binding.drawerLayout.openDrawer(sidebarFragment);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Set FAB click event
|
|
|
|
|
fabNewNote = findViewById(R.id.btn_new_note);
|
|
|
|
|
if (fabNewNote != null) {
|
|
|
|
|
fabNewNote.setOnClickListener(v -> {
|
|
|
|
|
if (binding.btnNewNote != null) {
|
|
|
|
|
binding.btnNewNote.setOnClickListener(v -> {
|
|
|
|
|
Intent intent = new Intent(NotesListActivity.this, NoteEditActivity.class);
|
|
|
|
|
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
|
|
|
|
|
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, viewModel.getCurrentFolderId());
|
|
|
|
|
@ -334,10 +316,10 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
public void onChanged(Boolean refreshNeeded) {
|
|
|
|
|
if (refreshNeeded != null && refreshNeeded) {
|
|
|
|
|
// 通知侧栏刷新
|
|
|
|
|
SidebarFragment sidebarFragment = (SidebarFragment) getSupportFragmentManager()
|
|
|
|
|
SidebarFragment sidebarFrag = (SidebarFragment) getSupportFragmentManager()
|
|
|
|
|
.findFragmentById(R.id.sidebar_fragment);
|
|
|
|
|
if (sidebarFragment != null) {
|
|
|
|
|
sidebarFragment.refreshFolderTree();
|
|
|
|
|
if (sidebarFrag != null) {
|
|
|
|
|
sidebarFrag.refreshFolderTree();
|
|
|
|
|
}
|
|
|
|
|
// 重置刷新状态
|
|
|
|
|
viewModel.getSidebarRefreshNeeded().setValue(false);
|
|
|
|
|
@ -352,11 +334,11 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
* @param path 文件夹路径
|
|
|
|
|
*/
|
|
|
|
|
private void updateBreadcrumb(List<NotesRepository.NoteInfo> path) {
|
|
|
|
|
if (breadcrumbItems == null || path == null) {
|
|
|
|
|
if (binding.breadcrumbInclude == null || binding.breadcrumbInclude.breadcrumbItems == null || path == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
breadcrumbItems.removeAllViews();
|
|
|
|
|
binding.breadcrumbInclude.breadcrumbItems.removeAllViews();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < path.size(); i++) {
|
|
|
|
|
NotesRepository.NoteInfo folder = path.get(i);
|
|
|
|
|
@ -367,12 +349,12 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
separator.setText(" > ");
|
|
|
|
|
separator.setTextSize(14);
|
|
|
|
|
separator.setTextColor(android.R.color.darker_gray);
|
|
|
|
|
breadcrumbItems.addView(separator);
|
|
|
|
|
binding.breadcrumbInclude.breadcrumbItems.addView(separator);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 创建面包屑项
|
|
|
|
|
TextView breadcrumbItem = (TextView) getLayoutInflater()
|
|
|
|
|
.inflate(R.layout.breadcrumb_item, breadcrumbItems, false);
|
|
|
|
|
.inflate(R.layout.breadcrumb_item, binding.breadcrumbInclude.breadcrumbItems, false);
|
|
|
|
|
breadcrumbItem.setText(folder.title);
|
|
|
|
|
|
|
|
|
|
// 如果是当前文件夹(最后一个),高亮显示且不可点击
|
|
|
|
|
@ -385,7 +367,7 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
breadcrumbItem.setOnClickListener(v -> viewModel.enterFolder(targetFolderId));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
breadcrumbItems.addView(breadcrumbItem);
|
|
|
|
|
binding.breadcrumbInclude.breadcrumbItems.addView(breadcrumbItem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -569,8 +551,8 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
private void enterMultiSelectMode() {
|
|
|
|
|
isMultiSelectMode = true;
|
|
|
|
|
// 隐藏FAB按钮
|
|
|
|
|
if (fabNewNote != null) {
|
|
|
|
|
fabNewNote.setVisibility(View.GONE);
|
|
|
|
|
if (binding.btnNewNote != null) {
|
|
|
|
|
binding.btnNewNote.setVisibility(View.GONE);
|
|
|
|
|
}
|
|
|
|
|
// 更新toolbar为多选模式
|
|
|
|
|
updateToolbarForMultiSelectMode();
|
|
|
|
|
@ -582,8 +564,8 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
private void exitMultiSelectMode() {
|
|
|
|
|
isMultiSelectMode = false;
|
|
|
|
|
// 显示FAB按钮
|
|
|
|
|
if (fabNewNote != null) {
|
|
|
|
|
fabNewNote.setVisibility(View.VISIBLE);
|
|
|
|
|
if (binding.btnNewNote != null) {
|
|
|
|
|
binding.btnNewNote.setVisibility(View.VISIBLE);
|
|
|
|
|
}
|
|
|
|
|
// 清除选中状态
|
|
|
|
|
viewModel.clearSelection();
|
|
|
|
|
@ -599,22 +581,22 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
* 更新Toolbar为多选模式
|
|
|
|
|
*/
|
|
|
|
|
private void updateToolbarForMultiSelectMode() {
|
|
|
|
|
if (toolbar == null) return;
|
|
|
|
|
if (binding.toolbar == null) return;
|
|
|
|
|
|
|
|
|
|
// 设置标题为选中数量
|
|
|
|
|
int selectedCount = viewModel.getSelectedCount();
|
|
|
|
|
String title = getString(R.string.menu_select_title, selectedCount);
|
|
|
|
|
toolbar.setTitle(title);
|
|
|
|
|
binding.toolbar.setTitle(title);
|
|
|
|
|
|
|
|
|
|
// 设置导航图标为返回(取消多选)
|
|
|
|
|
toolbar.setNavigationIcon(androidx.appcompat.R.drawable.abc_ic_ab_back_material);
|
|
|
|
|
toolbar.setNavigationOnClickListener(v -> exitMultiSelectMode());
|
|
|
|
|
binding.toolbar.setNavigationIcon(androidx.appcompat.R.drawable.abc_ic_ab_back_material);
|
|
|
|
|
binding.toolbar.setNavigationOnClickListener(v -> exitMultiSelectMode());
|
|
|
|
|
|
|
|
|
|
// 移除普通模式的菜单(如果有)
|
|
|
|
|
toolbar.getMenu().clear();
|
|
|
|
|
binding.toolbar.getMenu().clear();
|
|
|
|
|
|
|
|
|
|
// 直接在toolbar上添加操作按钮(不在三点菜单中)
|
|
|
|
|
Menu menu = toolbar.getMenu();
|
|
|
|
|
Menu menu = binding.toolbar.getMenu();
|
|
|
|
|
|
|
|
|
|
// 删除按钮
|
|
|
|
|
MenuItem deleteItem = menu.add(Menu.NONE, R.id.multi_select_delete, 1, getString(R.string.menu_delete));
|
|
|
|
|
@ -644,36 +626,34 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
* 更新Toolbar为普通模式
|
|
|
|
|
*/
|
|
|
|
|
private void updateToolbarForNormalMode() {
|
|
|
|
|
if (toolbar == null) return;
|
|
|
|
|
if (binding.toolbar == null) return;
|
|
|
|
|
|
|
|
|
|
// 清除多选模式菜单
|
|
|
|
|
toolbar.getMenu().clear();
|
|
|
|
|
binding.toolbar.getMenu().clear();
|
|
|
|
|
|
|
|
|
|
// 设置标题
|
|
|
|
|
if (viewModel.isTrashMode()) {
|
|
|
|
|
toolbar.setTitle(R.string.menu_trash);
|
|
|
|
|
binding.toolbar.setTitle(R.string.menu_trash);
|
|
|
|
|
} else {
|
|
|
|
|
toolbar.setTitle(R.string.app_name);
|
|
|
|
|
binding.toolbar.setTitle(R.string.app_name);
|
|
|
|
|
// 添加普通模式菜单
|
|
|
|
|
toolbar.inflateMenu(R.menu.note_list);
|
|
|
|
|
binding.toolbar.inflateMenu(R.menu.note_list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 设置导航图标为汉堡菜单
|
|
|
|
|
toolbar.setNavigationIcon(android.R.drawable.ic_menu_sort_by_size);
|
|
|
|
|
toolbar.setNavigationOnClickListener(v -> {
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.openDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
}
|
|
|
|
|
binding.toolbar.setNavigationIcon(android.R.drawable.ic_menu_sort_by_size);
|
|
|
|
|
binding.toolbar.setNavigationOnClickListener(v -> {
|
|
|
|
|
binding.drawerLayout.openDrawer(sidebarFragment);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 如果是回收站模式,不显示新建按钮
|
|
|
|
|
if (viewModel.isTrashMode()) {
|
|
|
|
|
if (fabNewNote != null) {
|
|
|
|
|
fabNewNote.setVisibility(View.GONE);
|
|
|
|
|
if (binding.btnNewNote != null) {
|
|
|
|
|
binding.btnNewNote.setVisibility(View.GONE);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (fabNewNote != null) {
|
|
|
|
|
fabNewNote.setVisibility(View.VISIBLE);
|
|
|
|
|
if (binding.btnNewNote != null) {
|
|
|
|
|
binding.btnNewNote.setVisibility(View.VISIBLE);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -834,15 +814,6 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
return super.onContextItemSelected(item);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 活动销毁时的清理
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
protected void onDestroy() {
|
|
|
|
|
super.onDestroy();
|
|
|
|
|
// 清理资源
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void updateSelectionState(int position, boolean selected) {
|
|
|
|
|
Log.d("NotesListActivity", "===== updateSelectionState called =====");
|
|
|
|
|
Log.d("NotesListActivity", "position: " + position + ", selected: " + selected);
|
|
|
|
|
@ -878,8 +849,8 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
// 跳转到指定文件夹
|
|
|
|
|
viewModel.enterFolder(folderId);
|
|
|
|
|
// 关闭侧栏
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.closeDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
if (binding.drawerLayout != null) {
|
|
|
|
|
binding.drawerLayout.closeDrawer(sidebarFragment);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -888,8 +859,8 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
// 跳转到回收站
|
|
|
|
|
viewModel.enterFolder(Notes.ID_TRASH_FOLER);
|
|
|
|
|
// 关闭侧栏
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.closeDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
if (binding.drawerLayout != null) {
|
|
|
|
|
binding.drawerLayout.closeDrawer(sidebarFragment);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -917,11 +888,11 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
@Override
|
|
|
|
|
public void onSettingsSelected() {
|
|
|
|
|
// 打开设置页面
|
|
|
|
|
Intent intent = new Intent(this, NotesPreferenceActivity.class);
|
|
|
|
|
Intent intent = new Intent(this, net.micode.notes.ui.NotesPreferenceActivity.class);
|
|
|
|
|
startActivity(intent);
|
|
|
|
|
// 关闭侧栏
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.closeDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
if (binding.drawerLayout != null) {
|
|
|
|
|
binding.drawerLayout.closeDrawer(sidebarFragment);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -988,8 +959,8 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
@Override
|
|
|
|
|
public void onCloseSidebar() {
|
|
|
|
|
// 关闭侧栏
|
|
|
|
|
if (drawerLayout != null) {
|
|
|
|
|
drawerLayout.closeDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
if (binding.drawerLayout != null) {
|
|
|
|
|
binding.drawerLayout.closeDrawer(sidebarFragment);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1006,9 +977,9 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
if (isMultiSelectMode) {
|
|
|
|
|
// 多选模式:退出多选模式
|
|
|
|
|
exitMultiSelectMode();
|
|
|
|
|
} else if (drawerLayout != null && drawerLayout.isDrawerOpen(findViewById(R.id.sidebar_fragment))) {
|
|
|
|
|
} else if (binding.drawerLayout != null && binding.drawerLayout.isDrawerOpen(sidebarFragment)) {
|
|
|
|
|
// 侧栏打开:关闭侧栏
|
|
|
|
|
drawerLayout.closeDrawer(findViewById(R.id.sidebar_fragment));
|
|
|
|
|
binding.drawerLayout.closeDrawer(sidebarFragment);
|
|
|
|
|
} else if (viewModel.getCurrentFolderId() != Notes.ID_ROOT_FOLDER &&
|
|
|
|
|
viewModel.getCurrentFolderId() != Notes.ID_CALL_RECORD_FOLDER) {
|
|
|
|
|
// 子文件夹:返回上一级
|
|
|
|
|
@ -1021,4 +992,10 @@ public class NotesListActivity extends AppCompatActivity
|
|
|
|
|
moveTaskToBack(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
protected void onDestroy() {
|
|
|
|
|
super.onDestroy();
|
|
|
|
|
binding = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|