Faça seu próprio gerenciador de área de transferência com Tasker e AutoTools

A opção WebScreens no AutoTools é uma ótima maneira de criar um gerenciador de área de transferência exclusivo no Tasker. Este tutorial irá mostrar como fazer isso.

Já há algum tempo venho tentando contornar o problema de não ter um gerenciador de área de transferência no meu telefone. Existem aplicativos de terceiros e alguns teclados que vêm com seu próprio gerenciador de área de transferência integrado, mas eu pessoalmente acho que muitos teclados de terceiros são lentos e desajeitados, por isso geralmente fico com Gboard. Além disso, geralmente tento evitar a instalação de um novo aplicativo dedicado a uma finalidade, se conseguir escapar impune. É aqui que meu próprio gerenciador de área de transferência feito no Tasker entra em ação!


Tasker - Gerenciador da área de transferência

Graças à nova ação AutoTools WebScreens, finalmente é possível criar meu próprio gerenciador de área de transferência de acesso rápido e fácil. O projeto Tasker Clipboard Manager pode armazenar até 9 clipes, substituindo os antigos à medida que novos clipes são adicionados. Escolhi 9 itens para armazenar, pois eles cabem perfeitamente na minha tela, mas com alguns ajustes simples, você pode definir o número de pranchetas armazenadas como desejar.

Enquanto você poderia tenho um botão de ação flutuante (FAB) para abrir a área de transferência, prefiro usar um gesto de deslizar. Para mitigar possíveis problemas de desempenho, configurei o projeto Tasker Clipboard Manager para ter um desempenho muito ocupa pouco espaço na memória do seu telefone, pois o perfil pode ser limitado para funcionar com determinados aplicativos apenas. No vídeo abaixo, você pode me ver vinculando o menu da área de transferência apenas aos aplicativos Google+ e Gerenciador de páginas. Tenha em mente, porém, que a coleta dos clipes ocorre em segundo plano sempre que você faz alterações no clipe armazenado atualmente.

Se você estiver usando o Juntar aplicação, este projeto não deve interferir nela. Mas usando o Join, você também pode compartilhar clipes selecionados do meu projeto com outros dispositivos. Para este projeto, estou usando a ação AutoTools WebScreens, portanto, certifique-se de ter o plugin instalado. Qualquer outra coisa é apenas Tasker padrão. O acesso ao gerenciador da área de transferência é conduzido pelos próprios aplicativos. Assim, não preciso que esse perfil esteja ativo quando estou assistindo o YouTube ou jogando, então meu perfil está configurado para ser ativado apenas nos aplicativos que exigem isso.

Aqui está um vídeo mostrando minha criação em ação:

Se desejar importar meu projeto como está, você pode fazê-lo clicando no link abaixo, que o levará à página de download do AndroidFileHost.

Baixe o projeto Tasker Clipboard Manager

Baixe o arquivo ZIP acima e extraia o conteúdo para o armazenamento interno do seu dispositivo Android. Abra o Tasker e desative o "Modo Iniciante" em Preferências. Em seguida, volte para a página principal do Tasker e mantenha pressionado o ícone inicial no canto inferior esquerdo. Você verá uma opção para “importar” um projeto. Toque nessa opção e encontre o arquivo .prj.xml que você extraiu anteriormente. Depois de importado, você verá uma nova guia na parte inferior ao lado do ícone inicial padrão no Tasker.

Observe que este projeto exige que você tenha Ferramentas automáticas instalado para funcionar. Se você quiser personalizar vários aspectos do meu projeto, recomendo que continue lendo abaixo para ter uma ideia de como isso funciona e quais alterações podem ser feitas. Observe que, no mínimo, você deve alterar os aplicativos no contexto do aplicativo para que este gerenciador de área de transferência pode ser invocado em mais aplicativos do que o padrão definido. Eu o ativei para.


PERFIL - Aplicativos com área de transferência

Neste exemplo, estou usando o Google+ e o Gerenciador de páginas para ativar o deslizamento do WebScreens.

PERFIL TASKER - Aplicativos com área de transferência

Profile: Apps With Clipboard 

Restore: no

Application: Google+ or Pages Manager

Enter: Launch Menu

A1: AutoTools Web Screen [ Configuration: Screen Preset: Swipe

Display Mode: Overlay

Close Overlay ID: Swipe

Source: /storage/emulated/0/AutoTools/swipe/page.html

Toast Duration: 5000

Background Color: #00CE93D8

Width: 10

Height: 400

Gravity: Bottom Right

Animation: Slide In From Bottom

Overlay Id: Swipe

Show Duration: 500

Hide Duration: 250

Drag: Not Draggable

Hide Dialog Shadow: true

Inject In Header: var a=1;

Commands Prefix: swipe

Swipe Left: left

Swipe Right: right

Swipe Up: up

Swipe Down: down

Border Color: #AB47BC

Border Witdh: 3

Border Side: Right Timeout (Seconds):30 ]

Exit: Exit Clip Gesture

A1: AutoTools Web Screen [ Configuration: Screen Preset: Swipe

Display Mode: Close

Close Overlay ID: Swipe

Source: /storage/emulated/0/AutoTools/swipe/page.html

Toast Duration: 5000

Background Color: #00CE93D8

Width: 10

Height: 400

Gravity: Bottom Right

Animation: Slide In From Bottom

Show Duration: 500

Hide Duration: 250

Drag: Not Draggable

Hide Dialog Shadow: true

Inject In Header: var a=1;

Commands Prefix: swipe

Swipe Left: left

Swipe Right: right

Swipe Up: up

Swipe Down: down

Border Color: #AB47BC

Border Witdh: 3

Border Side: Right Timeout (Seconds):30 ]

consulte Mais informação

Selecione os aplicativos que deseja ativar no contexto e crie uma tarefa chamada Menu Iniciar. Esta tarefa permitirá o deslizamento do WebScreen no Tasker Project - gerenciador da área de transferência.

TAREFA - Menu Iniciar

Na opção AutoTools WebScreen importe uma predefinição de tela (deslizar) e remova todos os comandos, mas 'esquerda'na seção de comandos da página de configuração.

Defina as configurações da janela de acordo com sua preferência. Eu tenho a Gravidade definida como Inferior Direita enquanto a Largura é 10 e a Altura está definida como 'preencher'.

TAREFA - Gesto de saída do clipe

Precisamos desativar o gesto quando não for necessário. Adicione uma tarefa de saída e crie outra ação WebScreens. Desta vez, use o modo de exibição para definir o 'fechar' Ação. Isso encerrará o WebScreen e o reconhecimento de furto.

PERFIL - Mostrar menu

Por padrão, deslizar para a direita emitirá um comando do AutoTools deslize=:=direita. Quando isso acontecer, quero que meu gerenciador da área de transferência seja aberto. Crie um novo perfil com o contexto AutoApps definido como 'deslize' como o filtro. Quando o deslizar terminar, um belo menu aparecerá com todos os clipes que precisamos.

PERFIL TASKER - Mostrar Menu

Profile: Show Menu 

Event: AutoApps Command [ Configuration: Command Filter: swipe ]

Enter: Clipboard Menu

A1: AutoTools Web Screen [ Configuration: Screen Preset: Card List

Display Mode: Dialog

Source: /storage/emulated/0/AutoTools/cardlist/page.html

Toast Duration: 5000

Width: 100

Height: fill

Gravity: Bottom Right

Animation: Slide In From Top

Show Duration: 500

Hide Duration: 250

Close On Command: true

Wait For Command: true

Title: Clip

Card Titles: %ClipPosition()

Card Subtext Left: %ClipAbrev()

Card Commands: %ClipPosition()

Commands Prefix: clipboard

Background Color: #BDBDBD

Accent Color: #F9A825

Max Card Width: 90%

Max Image Height: 75

Title Text Size: 5

Card Padding: 0

Card Alignment: Center

Item Separator:, Timeout (Seconds):30 ]

consulte Mais informação

TAREFA - Menu da área de transferência

O layout foi 'emprestado' de Tutorial do João. Gostei da aparência do lançador lateral, então não fazia sentido reinventar a roda. Obviamente, as variáveis ​​utilizadas nesse WebScreen serão diferentes, mas o layout é praticamente o mesmo.

Adicione uma ação AutoTools Web Screen e selecione a predefinição Lista de cartões. Em Configurações da janela, defina:

  • Largura até 100
  • Altura até preencher
  • Gravidade para Canto inferior direito

Em Opções de comando, habilite ambos Fechar no comando e Aguarde o comandoe, em seguida, em Conjunto de cartões:

  • Títulos de cartões para %ClipPosition() (conterá números de 1 a 9)
  • Subtextos de cartões para %ClipAbrev() (contém um pequeno trecho)
  • Comandos de cartão para %ClipPosition() (usado para identificar a imprensa)
  • Prefixo de comandos para prancheta
  • Largura máxima do cartão e largura mínima do cartão para 90%
  • Altura máxima da imagem até 75
  • Tamanho do texto do título para 5

Sinta-se à vontade para modificar a aparência da notificação brincando com esses números por conta própria. Lembre-se de que abrir o WebScreen sem a próxima etapa não fornecerá nenhuma visualização.

TAREFA - números de array

Precisamos de um array que contenha os números de 1 a 9. Eles serão usados ​​para identificar nossas entradas na área de transferência e serão armazenados no %ClipPosition() variedade.

TAREFA - números de array

array numbers

A1: Variable Set [ Name:%ClipPosition To: 1.2.3.4.5.6.7.8.9

Recurse Variables: Off Do Maths: Off Append: Off ]

A2: Variable Split [ Name:%ClipPosition Splitter:. Delete Base: Off ]

consulte Mais informação

Crie esta tarefa e gere a matriz. Isso criará a matriz global.

PERFIL - Monitor da área de transferência

Este perfil monitorará as mudanças no %GRAMPO variável de sistema que contém o valor atual da área de transferência. Crie um perfil com o conjunto de variáveis ​​do acionador de evento e configure-o para monitorar a variável %GRAMPO. Quando uma nova entrada na área de transferência for definida pelo usuário (você), Tasker detectará a alteração.

PERFIL - Monitor da área de transferência

Profile: Clipboard Monitor 

Event: Variable Set [ Variable:%CLIP Value:* User Variables Only: Off ]

Enter: Clipboard Manager

A1: Variable Section [ Name:%CLIP From: 1 Length: 6 Adapt To Fit: On Store Result In:%abrev ]

A2: Array Push [ Variable Array:%ClipboardArray Position: 1 Value:%CLIP Fill Spaces: Off ]

A3: Array Push [ Variable Array:%ClipAbrev Position: 1 Value:%abrev Fill Spaces: On ]

A4: Array Process [ Variable Array:%ClipAbrev Type: Remove Duplicates ]

A5: Array Process [ Variable Array:%ClipboardArray Type: Remove Duplicates ]

A6: Array Process [ Variable Array:%ClipboardArray Type: Squash ]

A7: Array Process [ Variable Array:%ClipAbrev Type: Squash ]

A8: Array Pop [ Variable Array:%ClipAbrev Position: 10 To Var: ] If [ %ClipAbrev(#) eq 10 ]

A9: Array Pop [ Variable Array:%ClipboardArray Position: 10 To Var: ] If [ %ClipboardArray(#) eq 10 ]

consulte Mais informação

TAREFA - Gerenciador da área de transferência

Nosso conteúdo da área de transferência é armazenado no %ClipboardArray(). Cada vez que uma nova área de transferência é salva, um Envio de matriz (A2) action move-o para a 1ª posição do array. Como não quero que todo o texto fique visível no menu lateral, criei outro array %ClipAbrev()(A3) que armazenará as primeiras X letras da área de transferência. Para encurtar a área de transferência, use (A1) Seleção de Variáveis e limite o número de caracteres a 6 (certifique-se de que Adapt to Fit esteja marcado) e armazene esse valor no local %abrev variável que é usada para preencher o (A3) Envio de matriz Ação.

Agora que temos a coleção da área de transferência pronta, temos que limpar a bagunça. A matriz coletará todas as pranchetas. Isso significa que quando escolhemos uma área de transferência em nosso menu lateral, ela coletará o novo valor e o atribuirá como duplicado ao menu. Portanto, cada vez que salvamos um clipe, quero remover entradas duplicadas (A4, A5) e remova espaços vazios (A6, A7). Ações de processo de matriz são realizados em ambos % Matriz da área de transferência() e %ClipAbrev().

Por último, quero que meu menu contenha apenas 9 entradas. Você pode ter mais, mas acho que os 9 menus cabem perfeitamente na minha tela sem rolar. Para fazer isso, use Matriz Pop (A8, A9) e remova a 10ª posição. Fazem isto APENAS se a matriz contiver 10 elementos. Caso contrário, o último elemento será removido. Conseguimos isso verificando se o número de elementos %ClipboardArray(#) = 10.

PERFIL - Definir área de transferência

Estamos quase terminando. Este é um perfil muito simples. Estamos usando a área de transferência do comando AutoApps para verificar se o comando foi recebido. O comando ficará assim: área de transferência=:=1 onde o número representa o botão pressionado em nosso menu lateral.

PERFIL - Definir área de transferência

Profile: Set Clipboard 

Event: AutoApps Command [ Configuration: Command Filter: clipboard ]

Enter: Set New Clip

A1: Set Clipboard [ Text:%ClipboardArray(%aacomm) Add: Off ]

consulte Mais informação

TAREFA - Definir novo clipe

A tarefa também é muito simples. Defina a área de transferência para o valor do %ClipboardArray() queremos escolher o elemento especificado pelo %aacomm parte do comando recebido. Então defina a área de transferência como %ClipboardArray(%aacomm) e você terminou. O Tasker Clipboard Manager agora está concluído.


Agora, nos aplicativos selecionados, você pode deslizar para a direita para abrir seu próprio gerenciador de área de transferência personalizado! Segue o Tutoriais para desenvolvedores XDA feed para mais posts como esse. Além disso, confira nosso Dicas e truques do Tasker fórum para as últimas criações entre os entusiastas da automação em nossa comunidade.