Added feature to hide progress bar and add an instruction if there are no cards in the list #745 #746

This commit is contained in:
Ullas-Aithal 2021-02-02 12:48:41 +05:30
parent e251a3d9c2
commit 856a7adf80
3 changed files with 72 additions and 4 deletions

View file

@ -34,6 +34,8 @@ import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.preference.PreferenceManager;
import androidx.annotation.Nullable;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
@ -56,6 +58,7 @@ import android.widget.AdapterView;
import android.widget.CheckedTextView;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import com.google.zxing.integration.android.IntentIntegrator;
@ -114,6 +117,8 @@ public class MainActivity extends BaseActivity
private String filterString;
private CountDownTimer countDownTimer;
private ProgressBar progressBar;
private TextView emptyListView;
// QR code scanning
private void scanQRCode(){
@ -245,8 +250,8 @@ public class MainActivity extends BaseActivity
}
});
final ProgressBar progressBar = findViewById(R.id.progressBar);
progressBar.setVisibility(settings.isHideGlobalTimeoutEnabled() ? View.GONE : View.VISIBLE);
progressBar = findViewById(R.id.progressBar);
emptyListView = findViewById(R.id.emptyListView);
RecyclerView recList = findViewById(R.id.cardList);
recList.setHasFixedSize(true);
@ -256,6 +261,43 @@ public class MainActivity extends BaseActivity
tagsDrawerAdapter = new TagsAdapter(this, new HashMap<String, Boolean>());
adapter = new EntriesCardAdapter(this, tagsDrawerAdapter);
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
super.onChanged();
hideProgressBar();
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount) {
super.onItemRangeChanged(positionStart, itemCount);
hideProgressBar();
}
@Override
public void onItemRangeChanged(int positionStart, int itemCount, @Nullable Object payload) {
super.onItemRangeChanged(positionStart, itemCount, payload);
hideProgressBar();
}
@Override
public void onItemRangeInserted(int positionStart, int itemCount) {
super.onItemRangeInserted(positionStart, itemCount);
hideProgressBar();
}
@Override
public void onItemRangeRemoved(int positionStart, int itemCount) {
super.onItemRangeRemoved(positionStart, itemCount);
hideProgressBar();
}
@Override
public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) {
super.onItemRangeMoved(fromPosition, toPosition, itemCount);
hideProgressBar();
}
});
if (savedInstanceState != null) {
byte[] encKey = savedInstanceState.getByteArray("encKey");
@ -898,4 +940,15 @@ public class MainActivity extends BaseActivity
settings.unregisterPreferenceChangeListener(this);
super.onDestroy();
}
/**
* This function will hide the progress bar if the token list is empty along with
* showing a view which has instruction on how to add the tokens
* */
private void hideProgressBar(){
int itemCount = adapter.getItemCount();
progressBar.setVisibility((settings.isHideGlobalTimeoutEnabled() || itemCount <= 0) ? View.GONE : View.VISIBLE);
emptyListView.setVisibility(itemCount > 0 ? View.GONE : View.VISIBLE);
}
}

View file

@ -66,7 +66,19 @@
android:paddingTop="@dimen/activity_margin_xsmall"
android:paddingBottom="@dimen/fab_recyclerview_padding"
android:clipToPadding="false" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="@dimen/activity_margin_small"
android:paddingEnd="@dimen/activity_margin_small"
android:clipToPadding="false"
android:text="@string/empty_list_view_text"
android:textSize="18sp"
android:textStyle="bold"
android:gravity="center"
tools:visibility="visible"
android:visibility="gone"
android:id="@+id/emptyListView"/>
<include layout="@layout/component_tags" />
</androidx.drawerlayout.widget.DrawerLayout>

View file

@ -114,4 +114,7 @@
<string name="shortcut_name_scan_qr">Scan QR code</string>
<string name="shortcut_name_import_qr">Import QR code</string>
<string name="shortcut_name_enter_details">Enter details</string>
<!-- Empty List Text -->
<string name="empty_list_view_text">Start adding your tokens by pressing \"+\" at the bottom</string>
</resources>