Custom drag view

About this issue

Missing  IExtendedDraggable documentation

Details

[ ] Used library version
[ ] Used support library version
[ ] Used gradle build tools version
[ ] Used tooling / Android Studio version
[ ] Other used libraries, potential conflicting libraries

Checklist

[X] Searched for similar issues
[X] Checked out the sample application
[X] Read the README
[x] Checked out the CHANGELOG
[X] Checked out the MIGRATION GUIDE

Is there a sample for IExtendedDraggable? I'm trying to use it with AbstractBindingItem but it is not working properly.
This is how my Item looks like:
class MyItem(
    val model: model,
    myTouchHelper: ItemTouchHelper
) : AbstractBindingItem<MyItemBinding>(), IExtendedDraggable<BindingViewHolder<MyItemBinding>> {

    override val type: Int
        get() = R.id.type

    private var binding: MyItemBinding? = null

    override fun bindView(binding: MyItemBinding, payloads: List<Any>) {
        this.binding = binding
        binding.apply {
            title.text = model.name
            checkbox.isChecked = model.checked
        }
    }

    override val isDraggable: Boolean
        get() = true

    override val touchHelper: ItemTouchHelper = myTouchHelper

    override fun getDragView(viewHolder: BindingViewHolder<MyItemBinding>): View? =
        binding?.dragIcon

    override fun createBinding(inflater: LayoutInflater, parent: ViewGroup?): MyItemBinding {
        return MyItemBinding.inflate(inflater, parent, false)
    }

and creating adapter:
       val itemAdapter: ItemAdapter<Item> = items()
       val fastAdapter = FastAdapter.with(itemAdapter)

      binding?.recyclerView?.apply {
            adapter = fastAdapter
            layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.VERTICAL, false)
        }

        val touchCallback = SimpleDragCallback(object : ItemTouchCallback {
            override fun itemTouchOnMove(oldPosition: Int, newPosition: Int): Boolean {
                DragDropUtil.onMove(itemAdapter, oldPosition, newPosition)  // change position
                return true
            }
        })
        val touchHelper = ItemTouchHelper(touchCallback)
        val list = listOf(
            Item(Model("1", false), touchHelper),
            Item(Model("2", false), touchHelper),
            Item(Model("3", false), touchHelper)
        )

        itemAdapter.add(list)

What am I missing?

@morand1 the sample app sadly does not contain a sample code. this is extension functionality contributed by @MFlisar as part of: https://github.com/mikepenz/FastAdapter/blob/3aadf2fbb037883b3dc6532cb79fae2c4736e85c/library-extensions-utils/src/main/java/com/mikepenz/fastadapter/utils/DragDropUtil.kt
(introduced pre v2.x)
Those extensions are provided as-is and are only meant as small utils to perhaps help with special usecases.
What specific usecase are you trying to achieve? Maybe there's better alternative support provided by google since.

@morand1 the sample app sadly does not contain a sample code. this is extension functionality contributed by @MFlisar as part of: https://github.com/mikepenz/FastAdapter/blob/3aadf2fbb037883b3dc6532cb79fae2c4736e85c/library-extensions-utils/src/main/java/com/mikepenz/fastadapter/utils/DragDropUtil.kt
(introduced pre v2.x)
Those extensions are provided as-is and are only meant as small utils to perhaps help with special usecases.
What specific usecase are you trying to achieve? Maybe there's better alternative support provided by google since.

I need to achieve the same behavior as described here: https://github.com/mikepenz/FastAdapter/issues/914 My item has icon which should be responsible for dragging, not the whole item.

I need to achieve the same behavior as described here: https://github.com/mikepenz/FastAdapter/issues/914 My item has icon which should be responsible for dragging, not the whole item.

I see @ManRay2210 achieved the required usecase. @ManRay2210 would you please so kind to highlight your solution please? Or maybe you'd love to contribute a sample usecase to highlight its implementation?

I see @ManRay2210 achieved the required usecase. @ManRay2210 would you please so kind to highlight your solution please? Or maybe you'd love to contribute a sample usecase to highlight its implementation?

This util is very old already but I still use it inside one of my current apps - what I see quickly, is that you have not called the second function in the utility class, the Item needs to set the TouchListener to the drag icon like, in my app I do it like following:
 override fun bindView(holder: ViewHolder, payloads: List<Any>) {
    super.bindView(holder, payloads)

    itemTouchHelper?.let {
        DragDropUtil.bindDragHandle(holder, this as IExtendedDraggable<RecyclerView.ViewHolder>)
    }
    holder.dragHandle?.visibility = if (draggable) View.VISIBLE else View.GONE

    // ...
}

This util is very old already but I still use it inside one of my current apps - what I see quickly, is that you have not called the second function in the utility class, the Item needs to set the TouchListener to the drag icon like, in my app I do it like following:
 override fun bindView(holder: ViewHolder, payloads: List<Any>) {
    super.bindView(holder, payloads)

    itemTouchHelper?.let {
        DragDropUtil.bindDragHandle(holder, this as IExtendedDraggable<RecyclerView.ViewHolder>)
    }
    holder.dragHandle?.visibility = if (draggable) View.VISIBLE else View.GONE

    // ...
}

Should I use also DragDropUtil.onMove(itemAdapter, oldPosition, newPosition) in SimpleDragCallback ?
@MFlisar you mentioned also here: https://github.com/mikepenz/FastAdapter/pull/229 to "disable the drag enabled". So should it be something like this:
val touchCallback = SimpleDragCallback(object : ItemTouchCallback {
            override fun itemTouchOnMove(oldPosition: Int, newPosition: Int): Boolean {
                DragDropUtil.onMove(itemAdapter, oldPosition, newPosition)
                return true
            }
        })

        touchCallback.isDragEnabled = false
        val touchHelper = ItemTouchHelper(touchCallback)
        val list = listOf(
            Item(Model("1", false), touchHelper),
            Item(Model("2", false), touchHelper),
            Item(Model("3", false), touchHelper)
        )
        touchHelper.attachToRecyclerView(binding?.recyclerView)

        itemAdapter.add(list)

After adding this DragDropUtil.bindDragHandle I'm getting java.lang.IndexOutOfBoundsException: Index: -1, Size: 2 from this SimpleDragCallback.

Should I use also DragDropUtil.onMove(itemAdapter, oldPosition, newPosition) in SimpleDragCallback ?
@MFlisar you mentioned also here: https://github.com/mikepenz/FastAdapter/pull/229 to "disable the drag enabled". So should it be something like this:
val touchCallback = SimpleDragCallback(object : ItemTouchCallback {
            override fun itemTouchOnMove(oldPosition: Int, newPosition: Int): Boolean {
                DragDropUtil.onMove(itemAdapter, oldPosition, newPosition)
                return true
            }
        })

        touchCallback.isDragEnabled = false
        val touchHelper = ItemTouchHelper(touchCallback)
        val list = listOf(
            Item(Model("1", false), touchHelper),
            Item(Model("2", false), touchHelper),
            Item(Model("3", false), touchHelper)
        )
        touchHelper.attachToRecyclerView(binding?.recyclerView)

        itemAdapter.add(list)

After adding this DragDropUtil.bindDragHandle I'm getting java.lang.IndexOutOfBoundsException: Index: -1, Size: 2 from this SimpleDragCallback.

Ok I checked it with AbstractItem and it works properly. The problem is with AbstractBindingItem.

Ok I checked it with AbstractItem and it works properly. The problem is with AbstractBindingItem.


Is this package ready for registeration?

Hello, thank you for publishing this good package! But I found this package not registered in Julia's general registry. Is it only in an early age of development or you have just forgot to register?

Hello!
This package is ready for registration and even almost registered – I just didn't know there is a three-day waiting time. By Saturday everything should be OK. Until that you can install it using the direct link:
import Pkg; Pkg.add(url="https://github.com/aryavorskiy/LatticeModels.jl")

Good, thank you!


google/chrome/bsc

a pavelfeldman + paulirish combo

this wasn't a winner.
still looking for a good logo.


Spyder freeze and crash when there is a Python error

Description of your problem
What steps will reproduce the problem?

Upgrade to Anaconda 4.2.0/Spyder 3.0.1 (or Spyder 3.0.0)
Run some Python script with an error
In some of the times the Spyder shows the error but freeze and say that the program stop responding.

What is the expected output? What do you see instead?
Please provide any additional information below
In order to solve the issue I had to downgrade to Anaconda 4.1.1/Spyder 2.3.9
Versions and main components

Spyder Version: 3.0.1/ 3.0.0
Python Version: 3.5.2
Operating system: windows 7 64bit

Dependencies
Please go to the menu entry Help > Optional Dependencies (or
Help > Dependencies), press the button Copy to clipboard
and paste the contents below:

Please use the IPython console. The Python console will be disabled in Spyder 3.1 on Windows because of this kind of problems.


Unit tests

Current tests are closer to benchmarks, since they are testing the whole execution.
Individual functions should be tested as much as possible in isolation. This could make part of the tests more independent of CUDA.

As discussed during @scarrazza 's SG visit last week, unit tests can live in the pytest files for functionality validation, while benchmarking tests can live in qibojit-benchmarks repo.


Add intelligent HA app support to the scheduler

Currently Deis exposes no ability to control where containers will be scheduled.  This is often important.  See #1376, which has to do with pinning/pegging a container to a particular host or hosts based on certain arbitrary tags.  (e.g. Run me where there's an SSD.)  This issue is, in essence, a fork of that issue.
Currently, it's possible (and ideal) to run Deis on a CoreOS cluster that spans multiple racks / availability zones / regions / data centers / what have you.  This maximizes the availability of the cluster itself, yet there is no way currently to fully take advantage of that and maximize the availability of an application by ensuring its containers are hosted on CoreOS machines in, wherever possible, multiple racks / availability zones / regions / data centers / what have you.
This is a feature request for additional intelligence in scheduling such that this would be possible.

@intellix bumping an old thread, but couldn't that be done already with the current setup?
i.e. set metadata for fleet hosts, then deis tags:set datacentre=igaming

The bottomline for me is that I split up my cluster in different regions/datacenters (as many levels as I want), and I can restrict my app to one or more regions/datacenters/other levels. Within such a region the distribution of containres would be as fair as possible (not necessarily even, because one datacenter can contain more / bigger machines than another).

That's all possible with tags:set, no? Considering if you have your cluster running in us-west-1, us-west-2 and us-east-1, you should be able to set up fleet to set the us-west-* regions with the tag region=us-west, then deis tags:set region=us-west would distribute the apps across both regions, but not us-east-1.

I should also be able to specify weights (were restricting to one region would actaully be weight=1 for this region, and weight=0 for all others).

That's an interesting thought. Would you mind opening a proposal with documentation on how that would work/how a user would use that feature?

Housekeeping...
I opened this ages ago when I was first getting involved with Deis.  At the time, what I had wanted was to get some assurance that n application containers would be spread across racks or availability zones to ensure availability in the event of a zone-wide failure, for instance.
What I see more clearly a year later is that this doesn't matter so much.

This can't be done with Fleet anyway.
It's the scheduler's responsibility to reschedule containers if hosts fail.  Kubernetes replication controllers, for instance, are very good at this.
The most this would have accomplished is avoiding some small amount of downtime while Docker pulls complete on a machine to which a container has been re-assigned (if it didn't already have the image in question).
The possibility of downtime due to no. 3 is mitigated if you're running at any sort of scale.

At the end of the day, it's the cluster's health and ability to host n instances of you app that matter; not which nodes of the cluster are doing it or how evenly the n are spread over nodes in different racks or AZs.
I see no reason not to close this.


Implement streaming completion

Here's a streaming completion implementation. I tried to stick to the spirit of the codebase.
PTAL.
Fixes #7.

Here's a working example: https://github.com/dglazkov/openai-fetch-fun

Thanks @dglazkov — this is awesome! I will work on reviewing it ASAP.

@transitive-bullshit this code will work in Node 18+, Web main thread and Web workers. The latter includes most edge workers that I know of and deno.

The Vercel edge functions and app directory have a lot of bugs with standards compliant implementations because they are modifying fetch for caching and other things. Did you (or can you) create a simple test to make sure the streaming works with them?

I'll add the streamChatCompletion. I do want to try it with the edge functions, but I haven't gotten to that yet.

Excellentn work @dglazkov 🔥

Added streaming chat completion support.

when merge?

It has been released as v1.2.0: https://github.com/rileytomasek/openai-fetch/releases/tag/v1.2.0
cc @ralyodio


how to transfer imagenet raw datasets into corresponding rfrecords?

Hi, when I ran this programe, it said 'cannot found imagenet2012-train.tfrecord-00823-of-01000' error, how can I transfer imagenet_train.tar and imagenet_val.tar into corresponding tfrecord?

We use TensorFlow Datasets for preparing the ImageNet dataset. If I recall correctly they used to be downloaded automatically. Recently Tensorflow Datasets switched to allow to use already downloaded tar files. You can find documentation for how to do this here.

We use TensorFlow Datasets for preparing the ImageNet dataset. If I recall correctly they used to be downloaded automatically. Recently Tensorflow Datasets switched to allow to use already downloaded tar files. You can find documentation for how to do this here.

thanks, but tfds seems to load imagenet as tfrecord. So how can I transfer raw imagenet tars to those tfrecords?

We use TensorFlow Datasets for preparing the ImageNet dataset. If I recall correctly they used to be downloaded automatically. Recently Tensorflow Datasets switched to allow to use already downloaded tar files. You can find documentation for how to do this here.

thanks, but tfds seems to load imagenet as tfrecord. So how can I transfer raw imagenet tars to those tfrecords?

Hi, thanks for replying.
I have already ran this code on my server, it seems to work fine.
However,

We use TensorFlow Datasets for preparing the ImageNet dataset. If I recall correctly they used to be downloaded automatically. Recently Tensorflow Datasets switched to allow to use already downloaded tar files. You can find documentation for how to do this here.

Hi, thanks for replying.
I have already ran this code on my server, it seems to work fine.
However, after checking on tensorflow_datasets github, I found there may be a bug in your codes requirments. You need tensorflow-datasets:1.2.0, but under 1.2.0, it cannot successfully preprocess imagenet and get corresponding tfrecord. This bug was fixed under version 1.3.1, but still cannot work (with some other problems).
I recommend you to update the version of tensorflow-datasets to 3.0.0, and the version of imagenet thus no longer 2.0.1 but 5.0.0. After doing such aprovements, this programe ran on my server succesfully.
My server: Centos. Python version: 3.6.9. Tensorflow-gpu:2.0.0.


moonmining prices not being retracted

hello,  it seems the prices from the moonmining citadels are no longer being retracted from esi and also i noticed that it doesnt show the moon ores no more
can this be fixed?

The Moon ores and prices are manual inputs, if they are empty, it is because you have not set them.
If you have an active moon drill running, select that Athanor from the home page, and you should see some input boxes on the bottom where you can input it.
The API does not provide the moon ores, or prices.

then how come i got this?  as no one entered it as only me has access and i didnt add it.
i believe you. dont mistaken me. glitch?
http://prntscr.com/lx5k04
but thx for the response

Someone else has manually inputted it. Its also saves it in between extractions.
SO if you start an extraction and set that information. Then after its done, restart the same athanor, it will reuse those settings.

oke thx for the info.. didnt know that


Specify min and max.

At the moment our policy just manage up and down but we also need to have some sort of limit related:

min how many instances you need to have always up.
max is the other side limit. It can be 0 it means infinite.

Is there a milestone for this feature to be implemented?

Hi  The labels for up and down, wasnt immediately obvious what they meant. After reading the readme it seemed to me at first that they were the desired number of instances that should be running when scaled up or scaled down.. for example if I trigger up multiple times, and the label for up is 2, will I only ever have 2 services running. When I trigger down it goes back to whatever down is. Perhaps my initial interpretationis wrong here. If what actually happens is that it increment by 2 instances each time you apply a scale up then perhaps the label names could be renamed a bit so that up and down labels are more up increment and down increment or something that makes it more obvious!


Codeunit SalesPostInvoice - GetAmountsForDeferral OnBeforeEvent..

Yohh,
we would need an OnBefore-Event on the following place:
Object: Codeunit 815 - SalesPostInvoice
Procedure: GetAmountsForDeferral()
Current:
local procedure GetAmountsForDeferral(SalesLine: Record "Sales Line"; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var DeferralAccount: Code[20])
    var
        DeferralTemplate: Record "Deferral Template";
    begin
        DeferralTemplate.Get(SalesLine."Deferral Code");
        DeferralTemplate.TestField("Deferral Account");
        DeferralAccount := DeferralTemplate."Deferral Account";

        if TempDeferralHeader.Get(
            "Deferral Document Type"::Sales, '', '', SalesLine."Document Type", SalesLine."Document No.", SalesLine."Line No.")
        then begin
            AmtToDeferACY := TempDeferralHeader."Amount to Defer";
            AmtToDefer := TempDeferralHeader."Amount to Defer (LCY)";
        end;

        if not SalesLine.IsCreditDocType() then begin
            AmtToDefer := -AmtToDefer;
            AmtToDeferACY := -AmtToDeferACY;
        end;
    end;

New:
    local procedure GetAmountsForDeferral(SalesLine: Record "Sales Line"; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var DeferralAccount: Code[20])
    var
        DeferralTemplate: Record "Deferral Template";
        IsHandled: Boolean;
    begin
        Clear(DeferralAccount);
        OnBeforeGetAmountsForDeferral(SalesLine: Record "Sales Line"; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var DeferralAccount: Code[20]; IsHandled: Boolean);
        if IsHandled then
            exit;

        If DeferralAccount = '' then begin
            DeferralTemplate.Get(SalesLine."Deferral Code");
            DeferralTemplate.TestField("Deferral Account");
            DeferralAccount := DeferralTemplate."Deferral Account";
        end;

        if TempDeferralHeader.Get(
            "Deferral Document Type"::Sales, '', '', SalesLine."Document Type", SalesLine."Document No.", SalesLine."Line No.")
        then begin
            AmtToDeferACY := TempDeferralHeader."Amount to Defer";
            AmtToDefer := TempDeferralHeader."Amount to Defer (LCY)";
        end;

        if not SalesLine.IsCreditDocType() then begin
            AmtToDefer := -AmtToDefer;
            AmtToDeferACY := -AmtToDeferACY;
        end;
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Revisit sendCrumb and make it composable

In one of our examples (new_reverse) we do
sendCrumb forallBody ; sendCrumb forallBody ; sendCrumb forallBody
sendCrumb consequent

We want a way of saying jump through all the forallBody, like repeat (sendCrumb forallBody)

The old shell has a foralls-body for this. Though in the new shell you can probably just use the underlying KURE combinator that applies a crumb to exhaustion:
forallsBodyT = extractT (exhaustRepeatCrumbT Forall_Body)

https://github.com/ku-fpg/hermit/commit/e78bc8935b1811d60ea035ff4f06b4298d6ce4e5#diff-28551d24af9d13dacb97153e14e919ecR300

I've started a page about navigation.
https://github.com/ku-fpg/hermit-shell/wiki/Navigation

I agree with all of Drew's remarks on this topic.  A few further comments:
KURE provides the synonym:
type Path crumb = [crumb]

I would suggest using that where possible (e.g. pathR) to distinguish from non-path lists of Crumbs (e.g.  look).
Crumbs are distinct atomic values that uniquely identify a child node.  This should not be changed.  If you want a concept that is more general than this, or you want to simplify the API so that users don't have to consider both crumbs and paths, you could just expose paths, and use singleton paths in place of crumbs.  I haven't looked at hermit-shell, so I'm not sure whether you want Path or LocalPath (the latter is a snoc list).
There is no such thing as an upwards (or sidewards) crumb or path.  This is inherent to the design of KURE, where only the current subtree can be transformed.
In KURE, one can construct a Lens from a crumb or Path using the following:
childL :: (ReadPath c crumb, Eq crumb, MonadCatch m) => crumb -> Lens c m u u
pathL :: (ReadPath c crumb, Eq crumb, Walker c u, MonadCatch m) => Path crumb -> Lens c m u u

In practice, I think we generally found it easier to work with Paths than Lenses.  E.g. it is impossible to build an upwards lens, but one can navigate a LocalPath upwards by just deleting a suffix of the path.  I think HERMIT just creates the Lens from the Path immediately prior to applying a transformation.

Thanks Neil. This is useful.


Fix missing method in deletion

migration_table_name is not defined in this module

@kawamoto Great, thanks! 👍


Unicode type-level infix operators

Namely type-level operators ∀ and → for forall and -> respectively--and maybe subjectively others outside of type-level like ∷ for :: and ∘ for <<.
(==): : forall a . [std.prelude.Eq a] -> a -> a -> std.types.Bool

becomes
(==): : ∀ a . [std.prelude.Eq a] → a → a → std.types.Bool

Not a fan of using unicode symbols, it just becomes a hassle to write them. Granted, I have never looked into how to make it possible but just the fact that it is something one needs to look up is a pretty big problem.
Having it as an alternative syntax might make some sense but I personally rather stick to one way of doing things. Encountering code written by somebody using unicode when you aren't using it becomes a barrier to entry so I rather avoid that.
It seems more plausible that an editor can translate -> etc to unicode characters on the fly while still keeping ascii symbols in the source code.

Is it possible to create your own type-level infixes? The others can be made with an alternative prelude
I'm actually pretty used to either depend on project (small preference for unicode via ctrl+k in n/vim), but Agda uses it heavily, PureScript supports a many out of the box for type-level, and so can Haskell via the unicode language extension. If both ASCII and unicode supported, I don't see why there'd be a collision.
-------- Original Message --------
On Jun 4, 2019, 19:16, Markus Westerlind wrote:

Not a fan of using unicode symbols, it just becomes a hassle to write them. Granted, I have never looked into how to make it possible but just the fact that it is something one needs to look up is a pretty big problem.
Having it as an alternative syntax might make some sense but I personally rather stick to one way of doing things. Encountering code written by somebody using unicode when you aren't using it becomes a barrier to entry so I rather avoid that.
It seems more plausible that an editor can translate -> etc to unicode characters on the fly while still keeping ascii symbols in the source code.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Is it possible to create your own type-level infixes?

No, never really thought about it before since I never felt a need. I don't really object to adding infix types, however for me it has rather low priority. Could be nice to have :: as a constructor for List  for pattern matching on it. It could at least be a function for constructing lists now but it seems I forgot to add it to std https://gluon-lang.org/doc/crates_io/std/std/list.html .
For unicode operators specifically they would need to be added to the lexers list of valid operator characters. Since unicode is already allowed in identifiers I suppose it just consistent to allow them in operators as well 🤔 .
: is a keyword operator however (I guess -> is as well, in lambdas \x -> x and match alternatives) so any unicode alternative would need an explicit blessing to work which makes me a bit more skeptical than plain unicode operators but I don't know how rational that is.

I don't see why there'd be a collision.

It is not about a collision.
If I want to contribute to a library which uses unicode symbols and I am not used to that then that is a barrier to entry. With that drawback I am a bit skeptical to embracing unicode.


how to download?

where are the releases?

I'm not sure and I couldn't find them in the BSMG discord server so I built it from source.
It loaded correctly on 1.21.0 but I haven't fully tested it.
I've attached it
HitSoundChanger Build.zip
!


Pre release 1.3.9

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.

Add time ticks in the main plot of the KALMUS Graphic interface. Now, if two barcodes are in the same temporal dimension (measured by 1 pixel per N seconds), the x and y ticks will show the temporal position of the pixel.
See the example below,

Type of change
Please delete options that are not relevant.

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update

Checklist:

[x] My changes and comments follow the project's code of conduct
[x] I have made corresponding changes to the documentation
[x] There exists a test or I have included a test in the test suite to test changes.
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes

Codecov Report

Merging #5 (21d2920) into master (9a68436) will decrease coverage by 0.48%.
The diff coverage is 73.91%.

@@            Coverage Diff             @@
##           master       #5      +/-   ##
==========================================
- Coverage   96.71%   96.22%   -0.49%
==========================================
  Files           8        8
  Lines        1065     1087      +22
==========================================
+ Hits         1030     1046      +16
- Misses         35       41       +6

Flag
Coverage Δ

unittests
96.22% <73.91%> (-0.49%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

kalmus/barcodes/BarcodeGenerator.py
97.33% <0.00%> (-2.67%)
:arrow_down:

kalmus/tkinter_windows/gui_utils.py
96.45% <80.00%> (-2.72%)
:arrow_down:

kalmus/__init__.py
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 9a68436...21d2920. Read the comment docs.


Provide Clarification around the use of PrivateKeyAddress vs UUID

UUID is meant to be used within databases to provide a unique identifier for use within relational databases for reference purposes.
PrivateKeyAddress: Unique value that has low likelihood to be spoofed, used Supports movement toward decentralized data sources. Example provided in description is non-standardized and is one approach to generate PrivateKeyAddress string.

Update PrivateKeyAddress naming to CryptographicKeyID


fix: padNumHexSlotValue output when giving a SHA3 hash input

Continuation of #115

added test that fails when removed the .replace(/^0+/, '') line

Fixed in #161


I want to test the things in the test folder in the Arduino Occpp library file with Platformio

Dear Matth-x,
Did you spend your weekend well?
There is a test folder among the library files distributed by matth-x, and I want to run and test through esp32s3 platformio with ChargingSessions.cpp, ocppEngineLifecycle.cpp, TransactionProcess.cpp, TransactionSafety.cpp that exists in the test folder. I'm leaving a question because I don't think it's arduino IDE. How can I run the code?
Can you provide me with the https://youtu.be/hfTh9GjG-N4 arduino IDE.ino file you posted before and the library file that runs from arduino IDE? I appreciate your help.

Your assumption is correct - those are not Arduino files. The test folder contains automated test which run on an Ubuntu only. You can find the Arduino sketches in the folder examples. I would recommend by trying the sketch in the ESP folder first.


Does upgrade.md show wrong namespace?

We need to override AddTransaction in TagManager.
Followed upgrade instructions from 0.6.0 to 0.8.0 at:
sylius-google-tag-manager-enhanced-ecommerce-plugin/UPGRADE.md
Specifically:

Rename namespace from GtmEnhancedEcommercePlugin to StefanDoorn\GtmEnhancedEcommercePlugin

Shouldn't the namespace be different?
from: GtmEnhancedEcommercePlugin to: StefanDoorn\SyliusGtmEnhancedEcommercePlugin
Thanks!

Indeed, missed something there. Are you able to submit a PR?

Will do in a minute :)


Plugin settings now save, minor code refactor

Made a new pull request because I messed up the last one.
Removed default settings module in favor of string constant in one script
Gave the code a bit of a makeover and removed some redundancy
Replaced destination of module from AnalyticsService to TestService, free free to change to whatever service works but this is one of the best options we found which also works.

Doing some QOL changes


Update Tron (TRX)

The icon colors here are black while they were actually supposed to be red.
Currency name: Tron
Symbol: TRX
Website: https://tron.network/
Theme color: #C83027
Logo (SVG): It's already here.

The color you have provided is not correct either. https://s3.amazonaws.com/tron.network/VISUAL+IDENTITY+GUIDE.pdf

So the correct color is #DC062B

Done in v0.17.1.

Done in v0.17.1.


page.pdf headerTemplate and footerTemplate. Certain CSS styles not working.

Steps to reproduce
Tell us about your environment:

Puppeteer version: v1.3.0
Platform / OS version: Windows 7 Enterprise. Service Pack 1
URLs (if applicable):
Node.js version: v8.11.1

What steps will reproduce the problem?
We are in the process of migrating from phantomJs 1.9.x to use Chrome headless browser. The existing headers and footers contain block elements, float styles and a img tag. None of these are working in puppeteer.
Are these not supported? The documentation states 'valid HTML markup'.
https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagepdfoptions
The example below contains h1 block element tags but they being displayed inline.
The html works fine in a standard html page displayed in chrome.
Please include code that reproduces the issue.
const puppeteer = require('puppeteer');

var header = "
H1 tag

H2 tag

";

(async () => {
    var browser = await puppeteer.launch();
    var page = await browser.newPage();
    await page.goto('http://www.example.com/', { waitUntil: ['domcontentloaded', 'networkidle0'] });

    await page.pdf({
        path: 'sample.pdf',
        landscape: false,
        displayHeaderFooter: true,
        headerTemplate: header,
        margin: {
            top: '100px',
            bottom: '10px',
            right: '20px',
            left: '20px'
        }
    });

    await browser.close();
})();

What is the expected result?
The header renders in the same way as the Html does in a web page. The H1 and HR tags behave as block elements.
What happens instead?
All the elements appear in a single line as though they are inline elements.
I've attached a HTML page containing the sample.
sample.zip
Thanks,

@DavidKisiel I'd imagine it is something to do with the following.
https://www.w3.org/TR/WD-CSS2-971104/page.html#h-12.3.5

The only difference is in their content: in headers and footers the content is limited to one line, and it may vary from page to page, since it can include variables.

You might be better off placing the header and footer in the document itself and positioning using JS & CSS rather than using the headerTemplate functionality.

any response to @DavidKisiel proposal before closing the issue ?


_get_priority

Seems like you need to add this to ...plugin.gd else it will bug out. Tested in Godot 4.2.1
func _get_priority () -> float:
	return 1.0

Hmm... that's the default priority -- implementing that virtual call shouldn't be needed. I'm not able to reproduce the bug in Linux either.
If you could provide which operating system or platform you are working on, I can try to reproduce the bug there and look deeper into the issue.
If it keeps bugging out in your project, try disabling Project Settings -> General -> Editor -> Import -> Use Multiple Threads. Importing custom resources using multiple threads seems to cause random issues due to some race conditions.
See https://github.com/godotengine/godot/issues/84364 for more information.


I got a RTX 3080 Ti, but it keep telling me I run out of CUDA memory?

RuntimeError: CUDA out of memory. Tried to allocate 512.00 MiB (GPU 0; 12.00 GiB total capacity; 10.70 GiB already allocated; 0 bytes free; 11.23 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation.  See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF
I don't know what's wrong but I got a RTX 3080 Ti
It has at least 12G availabe to use

hmm maybe u have too much stuff open or ur not using the right config file


'Replace` mode

Hi, thanks for sharing this tool, its quite awesome!
Would it be possible to implement a mode where only one notification can be displayed at a time? In pseudo code:  timeout = 5sec or new notification received.
I'm trying to write a simple script that will display an album art notification on mpd track change events, and xnotify seems like the almost perfect tool for the job.
Maybe a way to flush the notification queue whenever stdin receives new data?
Thanks for your time

Done!
The last commit add an -o command-line option (o for one notification at a time) that implements this behavior.
Also, I recommend you to use a tab between the album name and track title for better formatting.
(The text before a tab appears in bold and the text after the tab appears in a new line).

Awesome, thanks for the quick patch and the formatting tips.
Although I cannot reproduce the expected behavior of the -o flag. Executing this twice as a test:
printf 'IMG:/home/clu/.cache/beet_mpd/1_big.jpg\thello\n' | xnotify -o -G NE -g 300x300-5+30 -s 5 &
...still results in multiple notifications "living" at the same time.
Prior to this commit, I was doing this for "one notification at a time", hackish, but did the job.

local notification = bp.echo(img) | bp.xnotify('-G', 'NE', '-g', '300x300-5+30', '-s', '3')

local cmd = bp.pgrep('-f', 'xnotify')
if #cmd() > 0 then
  os.execute('pkill xnotify')
  print(notification())
else
  print(notification())
end

Any thoughts on why this the -o flag is not working as expected on my end? Thanks again.

I spotted the problem: you are spawning two xnotify instances.
You should create a pipe, spawn a single xnotify instance and make this instance read from the pipe.
Put the following at the beginning of your .xinitrc or .xsession file.
# create a variable pointing to the pipe
export XNOTIFY_FIFO="$HOME/.cache/xnotify$DISPLAY.fifo"

# remove the pipe, if it exists
rm -f $XNOTIFY_FIFO

# create the pipe
mkfifo $XNOTIFY_FIFO

# spawn xnotify reading from the pipe you just created
xnotify -o -G NE -g 300x300-5+30 -s 5 & <$XNOTIFY_FIFO 3<>$XNOTIFY_FIFO &

Each line is commented explaining what they do.
Then, you write the notification into the pipe file, whose name is contained in the variable $XNOTIFY_FIFO:
printf 'IMG:/home/clu/.cache/beet_mpd/1_big.jpg\thello\n' >$XNOTIFY_FIFO

So anytime you want to create a notification, just write it into $XNOTIFY_FIFO.
Them

Got it. My bad, i suspected that we might need to write to a fifo for this to work, and thought I already tried to do so, apparently not :/ Everything works as advertised now.. Appreciate the walk through.
Congrats on this light and powerful piece of software, good stuff!


Relations among entities - label disorder

Hi， Under this page ‘’https://labelstud.io/playground/‘’，When a text is clicked multiple times, the associated label becomes confused

@Wigithub1201 Hi, Playground uses outdated version of LS engine. Could you please check this issue in the latest LS?

@makseq Hi, yes, I installed the latest version in the project using the NPM install command. The version number for
"label-studio": "^1.0.1"

Sorry, I meant pip version, npm is slightly outdated too..
The last pip version is 1.5.0post0.

Anyway that's not about relations, that's our way to label text — if you have label selected (and related label is always selected when region is selected), then any text selection produces new region with this selected label. So when you double-click some region, the first click selects this region and related label, second one selects the word, creating a region on this word.
If you want to just select a text without creating a region, you have to unselect region first (u hotkey). It won't change double-click behaviour though...


Pkg.chaiscript

I've followed this guide
step by step carefully. [Yes]

I've tested this package remotely and have excluded all broken builds.
Here is the links to the Travis/AppVeyor with status "All passed":

https://ci.appveyor.com/project/ckaminski/hunter/build/1.0.22
https://travis-ci.org/ckaminski/hunter/builds/

I have submitted CI configs to https://github.com/ingenue/hunter targeting pkg.template branch,
see this merged pull request https://github.com/ingenue/hunter/pull/197

My change will resolve this "New package" request: https://github.com/ruslo/hunter/issues/1266

Respinning a test build on Travis now, but if I build locally (Linux, Ubuntu 16.04 x86_64) with:
polly --config Release --home examples/chaiscript/ --toolchain gcc-cxx14-c11 --test
with the file copy commented out of the example test, build ultimately fails:
[/home/ckaminski/code/hunter-cpp/hunter/_builds/gcc-cxx14-c11-Release]> "ctest" "-C" "Release"

Test project /home/ckaminski/code/hunter-cpp/hunter/_builds/gcc-cxx14-c11-Release
    Start 1: chaitest
1/1 Test #1: chaitest .........................***Exception: Other  0.11 sec

0% tests passed, 1 tests failed out of 1

Errors while running CTest
Total Test time (real) =   0.11 sec

The following tests FAILED:
    1 - chaitest (OTHER_FAULT)
Command exit with status "8": [/home/ckaminski/code/hunter-cpp/hunter/_builds/gcc-cxx14-c11-Release]> "ctest" "-C" "Release"

with the file copy commented out of the example test, build ultimately fails

Add --verbose to see the reason of failure.

with: polly --config Release --home examples/chaiscript/ --toolchain gcc-cxx14-c11 --test

Just for your info this is not how Hunter will run CI tests, see:

https://docs.hunter.sh/en/latest/creating-new/create/cmake.html#testing-locally

Only build and link will be checked, no ctest stage. To clarify: enable_testing is purely for you to check that library works as you expected.

I see I was running the build incorrectly.
I'm not about to argue, but it would be nice to have ctest as part of the CI process to verify the basic tests work.  I'm realizing now it may not be straightforward to do it in a portable manner.  I'll adjust the PR.

it would be nice to have ctest as part of the CI process to verify the basic tests work

It's possible but I don't see the point. It will add extra code to examples and add extra time while doing CI jobs plus testing on Android/iOS is not standardized in CMake. I think it's an upstream project responsibility to perform runtime tests. Hunter just do basic verification that CMake API for the package is working.

Closing inactive pull request.
See also https://github.com/ingenue/hunter/pull/212


Option problem with "zigbee_shepherd_devices "

zigbee2mqtt add-on version (if edge, please report commit hash):
1.5.1
Operating environment (HassOS, Virtual Machine, Device/platform running Hass.io):

Hass.IO
Description of problem:
Hi. My Version of Zigbee2MQTT is 1.5.1 on Hass.IO Add-on.
I'm using custom devices.js  with option  ["zigbee_shepherd_devices": true]
but it now works after upgrade.(1.4.0 -> 1.5.1)
I checked out there are no option about zigbee_shepherd_devices.
(https://github.com/danielwelch/hassio-zigbee2mqtt/blob/master/zigbee2mqtt/config.json)
Your entire configuration from the frontend (with sensitive fields redacted):
{
"data_path": "/share/zigbee2mqtt",
"devices": "devices.yaml",
"groups": "groups.yaml",
"homeassistant": false,
"permit_join": true,
"zigbee_shepherd_devices": true,  << this line removed when I restart zigbee2mqtt add-on.
"mqtt": {
"base_topic": "zigbee2mqtt",
"server": "mqtt://homeassistant",
"user": "userid",
"password": "userpw"
},
"serial": {
"port": "/dev/ttyACM1",
"disable_led": true
},
"advanced": {
"pan_id": 6754,
"channel": 11,
"network_key": [~~~~]
}
}
Your logs from Hass.io
./run.sh: line 13: [Info] Configuration backup found in /share/zigbee2mqtt/.configuration.yaml.bk. Skipping config backup.: No such file or directory
2019-07-22T00:06:38: PM2 log: Launching in no daemon mode
2019-07-22T00:06:38: PM2 log: App [npm:0] starting in -fork mode-
2019-07-22T00:06:38: PM2 log: App [npm:0] online

<EMAIL_ADDRESS>start /zigbee2mqtt-1.5.1
node index.js
zigbee2mqtt:info 7/22/2019, 12:06:43 AM Logging to directory: '/share/zigbee2mqtt/log/2019-07-22.00-06-41'
zigbee2mqtt:info 7/22/2019, 12:06:43 AM Starting zigbee2mqtt version 1.5.1 (commit #unknown)
zigbee2mqtt:info 7/22/2019, 12:06:43 AM Starting zigbee-shepherd
zigbee2mqtt:info 7/22/2019, 12:06:45 AM zigbee-shepherd started
zigbee2mqtt:info 7/22/2019, 12:06:45 AM Coordinator firmware version: '20190608'
zigbee2mqtt:info 7/22/2019, 12:06:45 AM Currently 8 devices are joined:
zigbee2mqtt:info 7/22/2019, 12:06:45 AM goqual_livingroom_toilet (0x00158d00021202a2): unkown - undefined unknown (Router)
zigbee2mqtt:info 7/22/2019, 12:06:45 AM goqual_kitchen (0x00158d0002125512): unkown - undefined unknown (Router)

Thanks for pointing this out. We started on these 1.5.1 breaking changes a long time ago and things have changed since then. I've pushed a fix (f01602a) and will after CI will try and push a patch release, v<IP_ADDRESS>

@danielwelch Thank you for your reply.


Use cursor pagination with many operations

Closes: #314

Change internal methods to use cursor navigation instead of offset navigation
Behaviour change: Ignore sorting/filtering when sending cursor navigation.

Backend would fail with that request
In userland TypeScript type guards do not allow it
Our internal methods could still generate bad queries
Ignore them for our internal methods and JavaScript users

Regarding this behaviour change, I have mixed feelings to be honest. I kind of like that we do not error out on impossible situations, but could mislead a JavaScript user who doesn't have type support.

Yeah. I'd prefer to throw than having unexpected behavior that is hard to debug.

Fixed!


JSX Support

From @zetachang on March 8, 2015 9:19
Usage
Add .jsx to file which have JSX fragment.
class Fancy
  def render
    React.create_element('div') { "fancy" }
  end
end

class App
  include React::Component

  def render
    jsx(%x{

Outer

        <Fancy>{ #{5.times.to_a.join(",")} }</Fancy>

    })
  end
end

React.expose_native_class(Fancy)

React.render React.create_element(App), `document.body`

JSX Transformer
Sprockets ES6 is added as dependency to transform .jsx file to vanilla JavaScript (only React transformer is used)
React.expose_native_class
Since JSX needs a reference to component class in global scope, this helper method is added.
Copied from original issue: zetachang/react.rb/pull/11

From @zetachang on March 16, 2015 13:50
Maybe add a method to get the native component class, and let user assign them to whatever scope they want may be a better idea.
`var App = #{React.native_class(App)}`
React.render React.create_element(`<App />`), `document.body`

From @adambeynon on March 20, 2015 21:35
@zetachang what is the status of this? Anything I can help with/test/etc?

From @zetachang on March 21, 2015 2:28
@adambeynon , it's ready to get merged. The only concern is that I am not sure if this actually feed the need of someones who brought this up in #8.


Fix format and links in documentations

Why are these changes needed?
Fix some links and format issues, also sync the reference title of notebooks in different documentation pages.
Related issue number

Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report

Merging #310 (c059567) into main (67157ab) will decrease coverage by 2.35%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #310      +/-   ##
==========================================
- Coverage   44.81%   42.46%   -2.35%
==========================================
  Files          17       17
  Lines        2171     2171
  Branches      499      499
==========================================
- Hits          973      922      -51
- Misses       1120     1167      +47
- Partials       78       82       +4

Flag
Coverage Δ

unittests
42.46% <ø> (-2.26%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 files with indirect coverage changes


[Linux] desktop file is lacking a Categories= entry

The desktop file is lacking a Categories= entry in the *.desktop file.
According to the menu spec,

By including one of the Main Categories in an application's desktop entry file, the application will be ensured that it will show up in a section of the application menu dedicated to this category. If multiple Main Categories are included in a single desktop entry file, the entry may appear more than once in the menu.

Hence, please add at least one of the following in the Categories= key.

Main Category
Description
Notes

AudioVideo
Application for presenting, creating, or processing multimedia (audio/video)

Audio
An audio application
Desktop entry must include AudioVideo as well

Video
A video application
Desktop entry must include AudioVideo as well

Development
An application for development

Education
Educational software

Game
A game

Graphics
Application for viewing, creating, or processing graphics

Network
Network application such as a web browser

Office
An office type application

Science
Scientific software

Settings
Settings applications
Entries may appear in a separate menu or as part of a 		"Control Center"

System
System application, "System Tools" such as say a log viewer or network monitor

Utility
Small utility application, "Accessories"

In addition, you could specify one or more from the longer list of Additional Categories.
Please test the result with desktop-file-validate and make sure it passes.
electron-builder offers native support for this since v19.22.1.
Reference: https://github.com/AppImage/AppImageHub/issues/2

@probonopd Thanks 👍


Footer hover improvement (UI)

Is your feature request related to a problem? Please describe.
Whenever texts are hovered, it gets bigger which is annoying for users.

Describe the solution you'd like
It would be good if it just translates to right, which will enhance user experience.
Describe alternatives you've considered
Its color can also be changed, if simplicity is a choice.
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Hello , I studied all the code and this issue seems interesting to me. I have worked on this issue on my project too. and can fix this easily
Please assign this issue to me !!


Add Android Apps

https://github.com/LinuxCafeFederation/awesome-android
This list contains a lot of awesome open-source Android apps, from some new and interesting projects to very well known and appreciated apps. The reason why it should be included is that it is a very good quality list, the maintainers constantly update and improve it, and the topic is very popular.
By submitting this pull request I confirm I've read and complied with the below requirements 🖖
Please read it multiple times. I spent a lot of time on these guidelines and most people miss a lot.
Requirements for your pull request

[x] Don't waste my time. Do a good job, adhere to all the guidelines, and be responsive.
[x] You have to review at least 2 other open pull requests.
Try to prioritize unreviewed PRs, but you can also add more comments to reviewed PRs. Go through the below list when reviewing. This requirement is meant to help make the Awesome project self-sustaining. Comment here which PRs you reviewed. You're expected to put a good effort into this and to be thorough. Look at previous PR reviews for inspiration. Just commenting “looks good” or simply marking the pull request as approved does not count! You have to actually point out mistakes or improvement suggestions.
[x] You have read and understood the instructions for creating a list.
[x] This pull request has a title in the format Add Name of List.

✅ Add Swift
✅ Add Software Architecture
❌ Update readme.md
❌ Add Awesome Swift
❌ Add swift
❌ add Swift
❌ Adding Swift
❌ Added Swift

[x] Your entry here should include a short description about the project/theme of the list. It should not describe the list itself. The first character should be uppercase and the description should end in a dot. It should be an objective description and not a tagline or marketing blurb.

✅ - [iOS](…) - Mobile operating system for Apple phones and tablets.
✅ - [Framer](…) - Prototyping interactive UI designs.
❌ - [iOS](…) - Resources and tools for iOS development.
❌ - [Framer](…)
❌ - [Framer](…) - prototyping interactive UI designs

[x] Your entry should be added at the bottom of the appropriate category.
[x] The suggested Awesome list complies with the below requirements.

Requirements for your Awesome list

[x] Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
[x] Don't open a Draft / WIP pull request while you work on the guidelines. A pull request should be 100% ready and should adhere to all the guidelines when you open it.
[x] Run awesome-lint on your list and fix the reported issues. If there are false-positives or things that cannot/shouldn't be fixed, please report it.
[x] The default branch should be named main, not master.
[x] Includes a succinct description of the project/theme at the top of the readme. (Example)

✅ Mobile operating system for Apple phones and tablets.
✅ Prototyping interactive UI designs.
❌ Resources and tools for iOS development.
❌ Awesome Framer packages and tools.

[x] It's the result of hard work and the best I could possibly produce.
If you have not put in considerable effort into your list, your pull request will be immediately closed.
[x] The repo name of your list should be in lowercase slug format: awesome-name-of-list.

✅ awesome-swift
✅ awesome-web-typography
❌ awesome-Swift
❌ AwesomeWebTypography

[x] The heading title of your list should be in title case format: # Awesome Name of List.

✅ # Awesome Swift
✅ # Awesome Web Typography
❌ # awesome-swift
❌ # AwesomeSwift

[x] Non-generated Markdown file in a GitHub repo.
[x] The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
[x] Not a duplicate. Please search for existing submissions.
[x] Only has awesome items. Awesome lists are curations of the best, not everything.
[x] Does not contain items that are unmaintained, has archived repo, deprecated, or missing docs. If you really need to include such items, they should be in a separate Markdown file.
[x] Includes a project logo/illustration whenever possible.

[x] Either centered, fullwidth, or placed at the top-right of the readme. (Example)
[x] The image should link to the project website or any relevant website.
[x] The image should be high-DPI. Set it to maximum half the width of the original image.

[x] Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
[x] Includes the Awesome badge.

[x] Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

[x] Should link back to this list.

[x] Has a Table of Contents section.

[x] Should be named Contents, not Table of Contents.
[x] Should be the first section in the list.
[x] Should only have one level of nested lists, preferably none.
[x] Must not feature Contributing or Footnotes sections.

[x] Has an appropriate license.

[x] We strongly recommend the CC0 license, but any Creative Commons license will work.

Tip: You can quickly add it to your repo by going to this URL: https://github.com/<user>/<repo>/community/license/new?branch=main&template=cc0-1.0 (replace <user> and <repo> accordingly).

[x] A code license like MIT, BSD, Apache, GPL, etc, is not acceptable. Neither are WTFPL and Unlicense.
[x] Place a file named license or LICENSE in the repo root with the license text.
[x] Do not add the license name, text, or a Licence section to the readme. GitHub already shows the license name and link to the full text at the top of the repo.
[x] To verify that you've read all the guidelines, please comment on your pull request with just the word unicorn.

[x] Has contribution guidelines.

[x] The file should be named contributing.md. Casing is up to you.
[x] It can optionally be linked from the readme in a dedicated section titled Contributing, positioned at the top or bottom of the main content.
[x] The section should not appear in the Table of Contents.

[x] All non-important but necessary content (like extra copyright notices, hyperlinks to sources, pointers to expansive content, etc) should be grouped in a Footnotes section at the bottom of the readme. The section should not be present in the Table of Contents.
[x] Has consistent formatting and proper spelling/grammar.

[x] The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
[x] The description starts with an uppercase character and ends with a period.
[x] Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

[x] Doesn't use hard-wrapping.
[x] Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.
[x] Doesn't include an Inspired by awesome-foo or Inspired by the Awesome project kinda link at the top of the readme. The Awesome badge is enough.

Go to the top and read it again.

Reviews:
https://github.com/sindresorhus/awesome/pull/1876#issuecomment-725357139
https://github.com/sindresorhus/awesome/pull/1886#issuecomment-725407320
https://github.com/sindresorhus/awesome/pull/1898#issuecomment-725449609

unicorn

There are millions of Android apps. I don't think you have put nearly enough effort into this list.

MIRRORED FROM codeberg.org/LinuxCafeFederation/awesome-android.git

The source should be on GitHub. Mirrored repos are not acceptable.

Closing for now. Try again later (not earlier than 4 months) when the list is more mature and if the source is then on GitHub.

The source should be on GitHub. Mirrored repos are not acceptable.

It's not really a mirror. We accept MRs from GitLab, Codeberg and GitHub.


Improving the text scale control?

The ability to change the text scale is great, however I'm encountering two issues:

the slider being on the bottom edge of the screen constitutes a problem when Android is set to Gesture control: trying to interact with the slider, the system takes over fairly frequently and interprets the interaction as a gesture, instead of passing the movement to the slider itself.
The steps are a bit too large. For instance, at 0.9 some smaller texts are hard to read (this also depends on certain colors not being very readable when using the Black Theme), but setting 1.0 results in characters that are a bit too large.

@Mrnofish thanks a lot, will look into it

@0-5-0 i will make it so you can enter a custom value with the keyboard

Works well with the custom value/keyboard, not sure if there would need to be sanity checks to prevent entering 999.0 :), though you have the reset button and relaunching the app fixed any weird artifacts after I entered 999 to test :D

@0-5-0 good point Will add a check

The checks work but are a bit fast, if I try to type 0.90 it sends it to 0.50 if I don't type the 0.90 fast enough. Still workable (I'm able to type 0.90 fast enough) but it might be difficult for others.
I'm still not sure if just having a set of defined smallest, small, medium, large, extra large criterias might be "better". If some users truly would need more granularity to select 0.50 vs 0.51 vs 0.52, if those minor differences in the interface would even be realistically perceived on a device.
It might also help with testing that stuff doesn't overlap if it's defined sizes, unless you're testing each interface change with 0.50 up to 2.00.

There seem to be a few bugs in 145:

Under certain conditions, the preview for the lower pane, the one containing the forecasts, stops getting updated, and only the upper one reacts to the controls. One such condition is when an out-of-bounds value gets entered (by mistake) in the text field, but also the following bullet point (which might also be related to an out-of-bound value being set in some weird way)
Interacting with the slider resets the scale factor to its minimum even though the finger is still on the slider cursor.
Playing around with the controls will result in CTDs after a while.

@Mrnofish CTDs?

Crash to desktop is what I meant. Sorry!

There you go:
FATAL EXCEPTION: main
Process: com.akylas.weather, PID: 13719
com.tns.NativeScriptException: Calling js method onBindViewHolder failed
Error: java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling com.nativescript.collectionview.RecyclerView{cd6d7e8 VFEDHV... ......ID 3,3-1381,2669}, adapter:com.nativescript.collectionview.Adapter@5d6f532, layout:com.nativescript.collectionview.PreCachingGridLayoutManager@dc12ee7, context:com.akylas.weather.MainActivity@78051c3
	at com.tns.Runtime.callJSMethodNative(Native Method)
	at com.tns.Runtime.dispatchCallJSMethodNative(SourceFile:1)
	at com.tns.Runtime.callJSMethodImpl(Unknown Source:100)
	at com.tns.Runtime.callJSMethod(SourceFile:1)
	at com.tns.Runtime.callJSMethod(SourceFile:2)
	at com.tns.Runtime.callJSMethod(SourceFile:3)
	at com.tns.gen.com.nativescript.collectionview.AdapterInterface.onBindViewHolder(Unknown Source:12)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:2)
	at com.nativescript.collectionview.Adapter.onBindViewHolder(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(SourceFile:166)
	at androidx.recyclerview.widget.RecyclerView$Recycler.u(SourceFile:70)
	at androidx.recyclerview.widget.RecyclerView$Recycler.v(SourceFile:85)
	at androidx.recyclerview.widget.RecyclerView$Recycler.i(SourceFile:6)
	at androidx.recyclerview.widget.GridLayoutManager.J(SourceFile:106)
	at androidx.recyclerview.widget.LinearLayoutManager.z(SourceFile:61)
	at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(Unknown Source:341)
	at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(Unknown Source:9)
	at androidx.recyclerview.widget.RecyclerView.z(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView.x(SourceFile:70)
	at androidx.recyclerview.widget.RecyclerView.s(SourceFile:1)
	at e.t.run(SourceFile:293)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231)
	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239)
	at android.view.Choreographer.doCallbacks(Choreographer.java:899)
	at android.view.Choreographer.doFrame(Choreographer.java:827)
	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at android.app.ActivityThread.main(ActivityThread.java:7924)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
Caused by: java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling com.nativescript.collectionview.RecyclerView{cd6d7e8 VFEDHV... ......ID 3,3-1381,2669}, adapter:com.nativescript.collectionview.Adapter@5d6f532, layout:com.nativescript.collectionview.PreCachingGridLayoutManager@dc12ee7, context:com.akylas.weather.MainActivity@78051c3
	at androidx.recyclerview.widget.RecyclerView.j(SourceFile:22)
	at androidx.recyclerview.widget.h0.onChanged(SourceFile:4)
	at androidx.recyclerview.widget.a0.b(SourceFile:1)
	at androidx.recyclerview.widget.RecyclerView$Adapter.notifyDataSetChanged(Unknown Source:2)
	... 34 more