Added local contacts contact menu, added local contact delete

pull/161/head
M66B 5 years ago
parent d36bb086b2
commit 1fbf422d66

@ -27,12 +27,15 @@ import android.os.Bundle;
import android.os.ParcelFileDescriptor;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.PopupMenu;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
@ -72,6 +75,8 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
private TextView tvLast;
private ImageView ivFavorite;
private TwoStateOwner powner = new TwoStateOwner(owner, "ContactPopup");
ViewHolder(View itemView) {
super(itemView);
@ -202,30 +207,84 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
TupleContactEx contact = selected.get(pos);
Bundle args = new Bundle();
args.putLong("id", contact.id);
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(context, powner, view);
new SimpleTask<Void>() {
popupMenu.getMenu().add(Menu.NONE, 0, 0, contact.email).setEnabled(false);
if (contact.state != EntityContact.STATE_IGNORE)
popupMenu.getMenu().add(Menu.NONE, R.string.title_advanced_never_favorite, 1, R.string.title_advanced_never_favorite);
popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 2, R.string.title_delete);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
protected Void onExecute(Context context, Bundle args) {
long id = args.getLong("id");
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.string.title_advanced_never_favorite:
onActionNeverFavorite();
return true;
case R.string.title_delete:
onActionDelete();
return true;
default:
return false;
}
}
DB db = DB.getInstance(context);
db.contact().setContactState(id, EntityContact.STATE_IGNORE);
private void onActionNeverFavorite() {
Bundle args = new Bundle();
args.putLong("id", contact.id);
return null;
}
new SimpleTask<Void>() {
@Override
protected Void onExecute(Context context, Bundle args) {
long id = args.getLong("id");
@Override
protected void onExecuted(Bundle args, Void data) {
Shortcuts.update(context, owner);
DB db = DB.getInstance(context);
db.contact().setContactState(id, EntityContact.STATE_IGNORE);
return null;
}
@Override
protected void onExecuted(Bundle args, Void data) {
Shortcuts.update(context, owner);
}
@Override
protected void onException(Bundle args, Throwable ex) {
Helper.unexpectedError(parentFragment.getFragmentManager(), ex);
}
}.execute(context, owner, args, "contact:favorite");
}
@Override
protected void onException(Bundle args, Throwable ex) {
Helper.unexpectedError(parentFragment.getFragmentManager(), ex);
private void onActionDelete() {
Bundle args = new Bundle();
args.putLong("id", contact.id);
new SimpleTask<Void>() {
@Override
protected Void onExecute(Context context, Bundle args) {
long id = args.getLong("id");
DB db = DB.getInstance(context);
db.contact().deleteContact(id);
return null;
}
@Override
protected void onExecuted(Bundle args, Void data) {
Shortcuts.update(context, owner);
}
@Override
protected void onException(Bundle args, Throwable ex) {
Helper.unexpectedError(parentFragment.getFragmentManager(), ex);
}
}.execute(context, owner, args, "contact:delete");
}
}.execute(context, owner, args, "contact:delete");
});
popupMenu.show();
return true;
}
@ -360,4 +419,9 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
holder.bindTo(contact);
holder.wire();
}
@Override
public void onViewRecycled(@NonNull ViewHolder holder) {
holder.powner.recreate();
}
}

@ -76,6 +76,9 @@ public interface DaoContact {
@Update
int updateContact(EntityContact contact);
@Query("DELETE FROM contact WHERE id = :id")
int deleteContact(long id);
@Query("UPDATE contact SET state = :state WHERE id = :id")
int setContactState(long id, int state);

@ -11,7 +11,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="6dp"
android:text="@string/title_hint_ignore_contact"
android:text="@string/title_hint_contact_actions"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?android:attr/textColorPrimary"
app:layout_constraintStart_toStartOf="parent"

@ -646,7 +646,6 @@
<string name="title_hint_sync">Stažení zpráv může nějakou dobu trvat, v závislosti na rychlosti poskytovatele, internetového připojení a zařízení a na počtu zpráv. V průběhu stahování může aplikace reagovat pomaleji.</string>
<string name="title_hint_image_link">Odkaz obrázku</string>
<string name="title_hint_tracking_image">Sledovací obrázek %1$sx%2$s px</string>
<string name="title_hint_ignore_contact">Dlouhé podržení kontaktu = nikdy jej nepovažovat za oblíbený</string>
<string name="title_open_link">Otevřít odkaz</string>
<string name="title_secure_link">Učinit odkaz bezpečným</string>
<string name="title_link_secured">Odkaz je bezpečný</string>

@ -651,7 +651,6 @@
<string name="title_hint_sync">Download af beskeder kan tage noget tid afhængigt af hastigheden hos udbyderen, dataforbindelsen, enheden samt beskedantallet. Under besked-download kan app\'en muligvis reagerer langsommere.</string>
<string name="title_hint_image_link">Billed-link</string>
<string name="title_hint_tracking_image">Sporingsbillede %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Langt tryk på en kontakt for aldrig at gøre den til favorit</string>
<string name="title_open_link">Åbn link</string>
<string name="title_secure_link">Gør forbindelse sikker</string>
<string name="title_link_secured">Forbindelse er sikker</string>

@ -653,7 +653,6 @@ Konten und Identitäten (Aliase) können bei Bedarf auch manuell eingerichtet we
<string name="title_hint_sync">Das Herunterladen von E-Mails kann einige Zeit in Anspruch nehmen, abhängig von der Geschwindigkeit des Providers, der Internetverbindung, des Gerätes und von der Anzahl der E-Mails. Beim Herunterladen der E-Mails kann die App träge reagieren.</string>
<string name="title_hint_image_link">Bildlink</string>
<string name="title_hint_tracking_image">Tracking-Bild %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Lange drücken einen Kontakt, um ihn nie als Favorit einzustufen</string>
<string name="title_open_link">Link öffnen</string>
<string name="title_secure_link">Link sicher gestalten</string>
<string name="title_link_secured">Dieser Link ist sicher</string>

@ -654,7 +654,6 @@
<string name="title_hint_sync">Descargar mensajes puede llevar algún tiempo, dependiendo de la velocidad del proveedor, la conexión a internet, dispositivo y el número de mensajes. Mientras se descargan mensajes, la aplicación puede responder más lentamente.</string>
<string name="title_hint_image_link">Enlace de imagen</string>
<string name="title_hint_tracking_image">Imagen de seguimiento %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Mantener pulsado un contacto para no considerarlo nunca como favorito</string>
<string name="title_open_link">Abrir enlace</string>
<string name="title_secure_link">Hacer enlace seguro</string>
<string name="title_link_secured">El enlace es seguro</string>

@ -653,7 +653,6 @@
<string name="title_hint_sync">Viestien lataaminen voi kestää riippuen verkkoyhteyden nopeudesta, käytettävästä laitteesta ja viestien lukumäärästä. Viestejä ladatessa sovellus voi toimia normaalia hitaammin.</string>
<string name="title_hint_image_link">Kuvalinkki</string>
<string name="title_hint_tracking_image">Seurantakuva %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Paina yhteystietoa pitkään, jos et koskaan halua lisätä sitä suosikiksi</string>
<string name="title_open_link">Avaa linkki</string>
<string name="title_secure_link">Tee linkistä turvallinen</string>
<string name="title_link_secured">Linkki on turvallinen</string>

@ -654,7 +654,6 @@
<string name="title_hint_sync">Le téléchargement des messages peut prendre un certain temps selon la vitesse du fournisseur d\'accès, la connexion internet et le périphérique et selon le nombre de messages. Lors du téléchargement des messages, l\'application peut répondre plus lentement.</string>
<string name="title_hint_image_link">Lien de l\'image</string>
<string name="title_hint_tracking_image">Image de suivi %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Appuyer longuement sur un contact pour ne jamais le considérer comme un favori</string>
<string name="title_open_link">Ouvrir le lien</string>
<string name="title_secure_link">Sécuriser le lien</string>
<string name="title_link_secured">Le lien est sécurisé</string>

@ -661,7 +661,6 @@ Ako je potrebno, računi i identiteti (aliasi) mogu se postaviti i ručno. </
<string name="title_hint_sync">Preuzimanje poruka može potrajati neko vrijeme, ovisno o brzini davatelja, internetskoj vezi i uređaju te broju poruka. Tijekom preuzimanja poruka aplikacija može reagirati sporije.</string>
<string name="title_hint_image_link">Link slike</string>
<string name="title_hint_tracking_image">Slika za praćenje %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Dugo pritisnite kontakt da ga nikada ne biste smatrali favoritom</string>
<string name="title_open_link">Otvori link</string>
<string name="title_secure_link">Osiguraj vezu</string>
<string name="title_link_secured">Veza je sigurna</string>

@ -653,7 +653,6 @@
<string name="title_hint_sync">Scaricare i messaggi può richiedere molto tempo, a seconda della velocità del provider, della connessione internet e del dispositivo e dal numero di messaggi. Durante il download l\'app potrebbe funzionare più lentamente.</string>
<string name="title_hint_image_link">Link Immagine</string>
<string name="title_hint_tracking_image">Immagine di tracciamento %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Tieni premuto un contatto per non considerarlo un preferito</string>
<string name="title_open_link">Apri collegamento</string>
<string name="title_secure_link">Rendi il link sicuro</string>
<string name="title_link_secured">Il link è sicuro</string>

@ -264,6 +264,7 @@
<string name="title_advanced_english_hint">Dit zal de app herstarten</string>
<string name="title_advanced_debug_hint">Extra logging inschakelen en debug informatie tonen op verschillende plaatsen</string>
<string name="title_advanced_cleanup_hint">Dit zal alle tijdelijke bestanden verwijderen</string>
<string name="title_advanced_never_favorite">Nooit favoriet</string>
<string name="title_select">Selecteer &#8230;</string>
<string name="title_identity_name">Uw naam</string>
<string name="title_identity_email">Uw e-mailadres</string>
@ -654,7 +655,7 @@
<string name="title_hint_sync">Het downloaden van berichten kan enige tijd duren, afhankelijk van de snelheid van de provider, de internet-verbinding en het apparaat en van het aantal berichten. Tijdens het downloaden van berichten kan de app trager reageren.</string>
<string name="title_hint_image_link">Afbeeldingskoppeling</string>
<string name="title_hint_tracking_image">Tracking afbeelding %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Druk lang op een contact om het nooit als een favoriet te beschouwen</string>
<string name="title_hint_contact_actions">Druk lang voor opties</string>
<string name="title_open_link">Koppeling openen</string>
<string name="title_secure_link">Maak koppeling veilig</string>
<string name="title_link_secured">Link is veilig</string>

@ -654,7 +654,6 @@
<string name="title_hint_sync">Nedlasting av meldinger kan ta litt tid, avhengig av leverandørens hastighet, internettforbindelse og enhet og antall meldinger. Mens du laster ned meldinger, kan appen reagere langsommere.</string>
<string name="title_hint_image_link">Bildelink</string>
<string name="title_hint_tracking_image">Sporer bilde %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Langt trykk på en kontakt for å aldri betrakte den som favoritt</string>
<string name="title_open_link">Åpne link</string>
<string name="title_secure_link">Gjør koblingen sikker</string>
<string name="title_link_secured">Koblingen er sikker</string>

@ -654,7 +654,6 @@
<string name="title_hint_sync">Nedlasting av meldinger kan ta litt tid, avhengig av leverandørens hastighet, internettforbindelse og enhet og antall meldinger. Mens du laster ned meldinger, kan appen reagere langsommere.</string>
<string name="title_hint_image_link">Bildelink</string>
<string name="title_hint_tracking_image">Sporer bilde %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Langt trykk på en kontakt for å aldri betrakte den som favoritt</string>
<string name="title_open_link">Åpne link</string>
<string name="title_secure_link">Gjør koblingen sikker</string>
<string name="title_link_secured">Koblingen er sikker</string>

@ -672,7 +672,6 @@
<string name="title_hint_sync">Pobieranie wiadomości może trochę potrwać, zależnie od prędkości dostawcy, połączenie internetowego i urządzenia oraz liczby wiadomości. Podczas pobierania wiadomości aplikacja może odpowiadać wolniej.</string>
<string name="title_hint_image_link">Adres obrazka</string>
<string name="title_hint_tracking_image">Web beacon %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Długo naciśnij kontakt, aby nigdy nie uznać go za ulubiony</string>
<string name="title_open_link">Otwórz link</string>
<string name="title_secure_link">Utwórz bezpieczny link</string>
<string name="title_link_secured">Link jest bezpieczny</string>

@ -653,7 +653,6 @@
<string name="title_hint_sync">Baixar mensagens pode levar algum tempo, dependendo da velocidade do provedor, da conexão de internet e do dispositivo, e o número de mensagens. Enquanto estiver baixando as mensagens o app pode responder mais devagar.</string>
<string name="title_hint_image_link">Link da imagem</string>
<string name="title_hint_tracking_image">Imagem de rastreamento %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Pressione e segure um contato para nunca considerá-lo como favorito</string>
<string name="title_open_link">Abrir link</string>
<string name="title_secure_link">Tornar o link seguro</string>
<string name="title_link_secured">Link seguro</string>

@ -660,7 +660,6 @@
<string name="title_hint_sync">Descărcarea mesajelor poate dura ceva timp, în funcție de viteza furnizorului, conexiunea la internet, de dispozitiv precum și de numărul de mesaje. În timpul descărcării mesajelor aplicația ar putea răspunde mai lent.</string>
<string name="title_hint_image_link">Legătură imagine</string>
<string name="title_hint_tracking_image">Imagine de urmărire %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Apăsați lung pe un contact pentru a nu-l lua niciodată în considerare ca favorit</string>
<string name="title_open_link">Deschide legătura</string>
<string name="title_secure_link">Securizează adresa</string>
<string name="title_link_secured">Adresa este sigură</string>

@ -672,7 +672,6 @@
<string name="title_hint_sync">Загрузка сообщений может занять некоторое время, в зависимости от скорости провайдера, интернет-соединения и устройства, а также от количества сообщений. Во время загрузки сообщений приложение может реагировать медленнее.</string>
<string name="title_hint_image_link">Ссылка на изображение</string>
<string name="title_hint_tracking_image">Отслеживающее изображение %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Удерживайте контакт, чтобы никогда не считать его избранным</string>
<string name="title_open_link">Открыть ссылку</string>
<string name="title_secure_link">Сделать ссылку безопасной</string>
<string name="title_link_secured">Ссылка безопасна</string>

@ -641,7 +641,6 @@
<string name="title_hint_sync">Hämtning av meddelanden kan ta lite tid, beroende på leverantörens hastighet, internetanslutning och enhet och på antalet meddelanden. När du hämtar meddelanden kan appen svara långsammare.</string>
<string name="title_hint_image_link">Bildlänk</string>
<string name="title_hint_tracking_image">Spårar bild %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Långt tryck på en kontakt för att aldrig betrakta den som en favorit</string>
<string name="title_open_link">Öppna länken</string>
<string name="title_secure_link">Gör länken säker</string>
<string name="title_link_secured">Länken är säker</string>

@ -634,7 +634,6 @@
<string name="title_hint_sync">Mesajların indirilmesi, sağlayıcının hızına, internet bağlantısına ve cihazın hızına ve mesaj sayısına bağlı olarak biraz zaman alabilir. Mesajları indirirken uygulama daha yavaş yanıt verebilir.</string>
<string name="title_hint_image_link">Görsel bağlantısı</string>
<string name="title_hint_tracking_image">İzlenen görsel %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Bir kişiyi sık kullanılanlarda istemiyorsanız uzun basın</string>
<string name="title_open_link">Bağlantıyı</string>
<string name="title_secure_link">Bağlantıyı güvenli hale getir</string>
<string name="title_link_secured">Bağlantı güvenli</string>

@ -644,7 +644,6 @@
<string name="title_hint_sync">下载邮件可能需要一些时间, 具体取决于提供商的速度、网络连接、设备以及邮件数量。在下载邮件时, 应用的响应速度可能会变慢。</string>
<string name="title_hint_image_link">图片链接</string>
<string name="title_hint_tracking_image">跟踪图像%1$sx%2$s</string>
<string name="title_hint_ignore_contact">长按以忽略联系人</string>
<string name="title_open_link">打开链接</string>
<string name="title_secure_link">确保链接安全</string>
<string name="title_link_secured">链接安全</string>

@ -311,6 +311,8 @@
<string name="title_advanced_debug_hint">Enable extra logging and show debug information at various places</string>
<string name="title_advanced_cleanup_hint">This will delete all temporary files</string>
<string name="title_advanced_never_favorite">Never favorite</string>
<string name="title_select">Select &#8230;</string>
<string name="title_identity_name">Your name</string>
<string name="title_identity_email">Your email address</string>
@ -740,7 +742,7 @@
<string name="title_hint_sync">Downloading messages can take some time, depending on the speed of the provider, internet connection and device and on the number of messages. While downloading messages the app might respond slower.</string>
<string name="title_hint_image_link">Image link</string>
<string name="title_hint_tracking_image">Tracking image %1$sx%2$s</string>
<string name="title_hint_ignore_contact">Long press a contact to never consider it as a favorite</string>
<string name="title_hint_contact_actions">Long press for options</string>
<string name="title_open_link">Open link</string>
<string name="title_secure_link">Make connection secure</string>

Loading…
Cancel
Save