|
|
- package eu.faircode.email;
-
- /*
- This file is part of FairEmail.
-
- FairEmail is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- NetGuard is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with NetGuard. If not, see <http://www.gnu.org/licenses/>.
-
- Copyright 2018 by Marcel Bokhorst (M66B)
- */
-
- import android.os.Bundle;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ProgressBar;
-
- import com.google.android.material.floatingactionbutton.FloatingActionButton;
-
- import java.util.ArrayList;
- import java.util.List;
-
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.constraintlayout.widget.Group;
- import androidx.fragment.app.FragmentTransaction;
- import androidx.lifecycle.Observer;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
-
- public class FragmentAccounts extends FragmentEx {
- private RecyclerView rvAccount;
- private ProgressBar pbWait;
- private Group grpReady;
- private FloatingActionButton fab;
-
- private AdapterAccount adapter;
-
- @Override
- @Nullable
- public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- setSubtitle(R.string.title_list_accounts);
-
- View view = inflater.inflate(R.layout.fragment_accounts, container, false);
-
- // Get controls
- rvAccount = view.findViewById(R.id.rvAccount);
- pbWait = view.findViewById(R.id.pbWait);
- grpReady = view.findViewById(R.id.grpReady);
- fab = view.findViewById(R.id.fab);
-
- // Wire controls
-
- rvAccount.setHasFixedSize(false);
- LinearLayoutManager llm = new LinearLayoutManager(getContext());
- rvAccount.setLayoutManager(llm);
-
- adapter = new AdapterAccount(getContext());
- rvAccount.setAdapter(adapter);
-
- fab.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- FragmentAccount fragment = new FragmentAccount();
- fragment.setArguments(new Bundle());
- FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
- fragmentTransaction.replace(R.id.content_frame, fragment).addToBackStack("account");
- fragmentTransaction.commit();
- }
- });
-
- // Initialize
- grpReady.setVisibility(View.GONE);
- pbWait.setVisibility(View.VISIBLE);
-
- return view;
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
-
- // Observe accounts
- DB.getInstance(getContext()).account().liveAccounts().observe(getViewLifecycleOwner(), new Observer<List<EntityAccount>>() {
- @Override
- public void onChanged(@Nullable List<EntityAccount> accounts) {
- if (accounts == null)
- accounts = new ArrayList<>();
-
- adapter.set(accounts);
-
- pbWait.setVisibility(View.GONE);
- grpReady.setVisibility(View.VISIBLE);
- }
- });
- }
- }
|