Firefox Android Clearing download history without deleting the file

On the desktop version of Firefox, when I open “Show All Downloads” and there “Clear Downloads”, the history of downloads is cleared, but the downloaded files are present in the folder still. This is the desired behavior.

However, on Android Firefox, if I open Tools->Downloads, I only get the option “Delete All Downloads” and when I press it, the list gets cleared, along with the files from the folder. How do I avoid this and get the behavior similar to that in the desktop? Basically, I wish to clear Firefox download history in Android without deleting/renaming the downloaded files.

c++ – deleting key from AVL tree that points to 1 or more values

I am working on a uni project and i need to create a idea bank that stores an idea.
Per requirements i have created an inverted index algorithm that takes all words from one idea and stores them into an AVL tree, when retrieving a word from my tree it returns the ID the word was found in.

the problem i am having is when i am deleting an idea and thus need to delete the words contained in that ID from my tree. the problem is that, whenever one word is found in two or more ideas it removes the word from all ideas.

for example
the word “Technology” can be found in idea 1 and 2
so when i traverse my tree my output would be

Key: Technology
ID: 1,2

but when i am deleting idea 1, instead of my output showing

Key Technology
ID: 2

it just shows no Ideas for that word.

here is the relevant code:

class Idea{
private:
int ID;
string content;
vector<string> keyword;
public:
int getID() {return ID;}
string getContent(){return content;}
vector<string> getKeyword(){return keyword;}

};
class IdeaBank{
private:
vector<idea>newIdea;
public:
void deleteID(int ID);
};

struct Index {
    string key;
    vector<int> idList;
};

void IdeaBank::deleteIdea(int ID)
{
    vector<string> wordsToDelete;
    vector<string>keywordsToDelete;
    Index index;
    bool del=false;
    for (int i = 0; i < newIdea.size(); i++) {
        if (ID == newIdea(i).getID()) {
            keywordsToDelete = newIdea(i).getKeyword();
            Idea idea;
            string str = newIdea(i).getContent();
            char delim = ' ';
            idea.splitKeywordsFromTxt(str, wordsToDelete, delim);
            newIdea.erase(newIdea.begin() + i);
            del = true;
        }
    }



    for (int i=0;i<keywordsToDelete.size();i++)
    {
        if (tree.AVL_Retrieve(keywordsToDelete(i),index))
        {
            for (int j=0;j<index.idList.size();j++)
            {
                if (ID == index.idList(j))
                {
                    tree.AVL_Delete(keywordsToDelete(i));
                    del = true;
                }
            }

        }

    }
    for (int i = 0; i < wordsToDelete.size(); i++) {
        if (tree.AVL_Retrieve(wordsToDelete(i),index))
        {
            for (int j=0;j<index.idList.size();j++)
            {
                if ( ID == index.idList(j))
                {
                    tree.AVL_Delete(wordsToDelete(i));
                    del = true;
                }
            }

        }

    }

    if (!del)
    cout << "Could not delete idea "<< ID<<endl;
    else
    cout << "successfully deleted idea for ID "<<ID<<endl;
}

the above function, stores every word from the selected idea into a vector and then i retrieve each word from my tree to be deleted.

My question:
when deleting a word from my tree that may return more than 1 ID, how can i only remove the ID from the ID to be deleted only.
a better example of input an output:

Idea 1:

keywords: dog

contents: i like dogs

idea 2:

keywords: dog

contents: animals

when traversing my tree my output would be

key:dog
ID: 1,2

key: i
ID:1

Key: like
ID: 1

Key: dogs
ID: 1

Key: Animals
ID: 2

when deleting ID 1
my expected output should be:
key:dog
ID: 2

Key: Animals
ID: 2

instead i get

Key: Animals
ID: 2

Deleting inbox email in gmail results in delete of reply

When I do a reply and hit send in gmail, I sometimes will subsequently hit delete to delete the present email. But I have found that gmail will then subsequently delete the reply email in the Sent folder.

Which has me wondering:

  • Did the reply get sent out?
  • Can this behaviour be modified? Like, can the sent message be retained in Sent.

root access – Bootloop after deleting *_ce and *_de folders from /data on Android 10

I messed with the file system of Android 10 (Pixel Experience on Whyred) and deleted

/data/misc_ce
/data/misc_de
/data/system_ce
/data/system_de
/data/user_ce
/data/user_de
/data/vendor_ce
/data/vendor_de

because I thought they contained old user profiles.

Turned out that was not the case, as my device is stuck in a bootloop now. It boots up until I am asked for the SIM PIN, and goes back to the boot animation before I can enter anything.

In TWRP, I found that the deleted folders were re-created by the system, but this does not solve the problem. I am thinking about backing up and formatting /data, and merging the proper folders into the backup. Is that possible?

Any advice will be appreciated!

Deleting 3 pages and making into one?

I am a freelancer. My website has the home page and a service page with a drop down botton that has 3 other pages with the type of services I offer.

Should I delete those 3 pages and make them into one page called services? HOpe you understand. I am trying to explain it the best I can. Send me a private message.

Lockout – How do I prohibit deleting folders in the SP online document library?

I thought this information was easy to find on Google or on this website, but I can't find it. Sorry in advance if I missed it.

I have a document library that can be accessed by over 100 people and we decide to block the ability to delete folders because of the risk that a non-IT professional can accidentally remove all of our files.
My idea was to go to the SP permission level and disable something that is under "delete folder", but it doesn't exist that way.
I have checked the list several times and cannot determine which authorization level this right for deleting folders is assigned to. Under the list of permissions that I can change. Can anyone explain how I can set a permission level when users can manage (create, edit, delete) files but cannot delete a folder?

Thanks in advance

PS: The list of authorization levels:

Enter the image description here

Accessibility – What to focus on after deleting rows

Replace the line with "deleted" and focus it with tabindex="-1" (So ​​you can only focus it programmatically).

As soon as the focus leaves the row, you can make it disappear if you wish (but this is not necessary as it is no longer focusable).

I recommend this as if you focused on the next delete button. The user may not notice that an action has been performed or think that an action has failed, and may end up deleting the wrong line.

If you do what is said above, it will be greeted with "deleted" after the line has been successfully deleted and will be able to navigate from where you were already in the list (which should make it easy to align your orientation on the Keep page).

java – Editing and deleting data from the SQLite database using a drop-down menu in a list view

I am creating an application with a list view that comes from a SQLite database. In the list view, add a button that appears in all rows and that, when pressed, displays a drop-down menu with options to delete and edit. My question is how can I do the appropriate actions by clicking this button in the adapter class of the list view. I know how mainActivity or a fragment works, but not a class.

thank you

fragment

package com.example.estudiantes;

import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class asignaturas extends Fragment {

    RecyclerView Recycler;
    ListView ListViewPersonas;
    ArrayListListaInformacion;
    ArrayListListaAtributos;
    EditText asignatura;

    ConeccionSqliteHelper conn;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View vista= inflater.inflate(R.layout.fragment_asignaturas,container,false);

        ListViewPersonas = (ListView) vista.findViewById (R.id.lista_asignaturas);


        conn = new ConeccionSqliteHelper(getActivity(), "bd_usuarios", null, 1);

        ConsultarListaPersonas();

        return vista;

    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        setHasOptionsMenu(true);
        super.onCreate(savedInstanceState);
    }

    @Override
    public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) {
        inflater.inflate(R.menu.menu,menu);
        super.onCreateOptionsMenu(menu, inflater);
    }

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {

        onclick();

        return super.onOptionsItemSelected(item);
    }

    // Alertdialog para agregar tareas


    public void onclick() {


        AlertDialog.Builder mBuilder = new AlertDialog.Builder(getActivity());
        View mView = getLayoutInflater().inflate(R.layout.dialogo, null);
        asignatura = (EditText) mView.findViewById(R.id.camponombre);

        mBuilder.setTitle("Nueva tarea");
        mBuilder.setPositiveButton("Guardar", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {


                registrarUsuarios();
                ConsultarListaPersonas();

            }
        });

        mBuilder.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                dialogInterface.dismiss();
            }
        });


        mBuilder.setView(mView);
        final AlertDialog dialog = mBuilder.create();
        dialog.show();

    }

    // Agregar tareas

    private void registrarUsuarios() {


        SQLiteDatabase db = conn.getWritableDatabase();


        ContentValues values = new ContentValues();
        values.put(tablas.CAMPO_NOMBRE_ASIGNATURA, asignatura.getText().toString());

        long idResultante = db.insert(tablas.TABLA_ASIGNATURAS, tablas.CAMPO_NOMBRE_ASIGNATURA, values);

        Toast.makeText(getActivity(), "Nueva tarea agregada", Toast.LENGTH_SHORT).show();

        db.close();

    }

    private void ConsultarListaPersonas (){

        SQLiteDatabase db = conn.getReadableDatabase();

        atributos atributos = null;
        ListaAtributos= new ArrayList();

        Cursor cursor = db.rawQuery("SELECT * FROM " + tablas.TABLA_ASIGNATURAS,null);

        while (cursor.moveToNext()){

            atributos = new atributos();
            atributos.setAsignatura(cursor.getString(0));

        ListaAtributos.add(atributos);

        }
        obtenerLista();

    }

    private void obtenerLista() {

        ListaInformacion = new ArrayList();

        for(int i=0; i < ListaAtributos.size(); i++){

            ListaInformacion.add(ListaAtributos.get(i).getAsignatura());
        }

        AdapterLista adapter = new AdapterLista(getActivity(),ListaInformacion);
        ListViewPersonas.setAdapter(adapter);

    }


}

Adapter class

package com.example.estudiantes;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.PopupMenu;
import android.widget.TextView;

import java.util.ArrayList;

public class AdapterLista extends BaseAdapter {

    Context contexto;
    ArrayList lista;
    private PopupMenu popup;
    private static LayoutInflater inflater=null;

    public AdapterLista(Context contexto, ArrayList lista) {
        this.contexto = contexto;
        this.lista = lista;
        inflater=(LayoutInflater)contexto.getSystemService(contexto.LAYOUT_INFLATER_SERVICE);
    }

    @Override
    public int getCount() {
        return lista.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

     final View vista= inflater.inflate(R.layout.elementolista,null);

        TextView asignatura = (TextView) vista.findViewById(R.id.textasignatura);
        Button boton  = (Button) vista.findViewById(R.id.boton);
        asignatura.setText(lista.get(position));

        boton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                popup = new PopupMenu(contexto, v);
                MenuInflater inflater = popup.getMenuInflater();
                inflater.inflate(R.menu.menulist, popup.getMenu());
                popup.show();
                popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                    @Override
                    public boolean onMenuItemClick(MenuItem item) {
                        switch (item.getItemId()) {

                            case R.id.Editar:

                                break;

                            case R.id.Eliminar:

                                break;
                        }
                        return false;
                    }
                });

            }
        });

        return vista;
    }
}

sharepoint online – Use REST to add a new selection option to a selection field with enrollment without deleting existing options

When creating a folder in a library, I want the name of the folder to fill a selection box. I want to use REST in Power Automate to add a selection to a selection column with enrollment enabled, but the other selections are overwritten. Can I get the current choices as an array and then add them to the item I want to update? I'm not sure how to do it. The following is an example of my code:

`{
"__metadata":
{
"type": "SP.FieldChoice"},
"Choices": {"__metadata":
{"type": "Collection (Edm.String)"},
"Results": NewChoiceOption #How can I add the current options here so I don't overwrite them?

}}
}}

`

SQL Server – SQL Job runs without a schedule and renaming or deleting causes other jobs to fail

I recently migrated SQL 2008 to SQL Server 2016. I have noticed a strange problem where one of the SQL jobs causes other jobs to fail. This job is disabled and there is no schedule and it continues on its own. If I rename or delete this job, other jobs will fail. As soon as I create the job of the same name, the other jobs start to work. I'm not sure what could be related here. Note that only a certain job fails. Can someone please help me find the cause here?

Thanks a lot
Abhishek Singh