diff --git a/.gitignore b/.gitignore index 8bb8213c..d879603d 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ .cxx .idea app/release +app/lint +lint diff --git a/Screenshots/camera.xcf b/Screenshots/camera.xcf new file mode 100644 index 00000000..b2ae41fe Binary files /dev/null and b/Screenshots/camera.xcf differ diff --git a/Screenshots/comment.xcf b/Screenshots/comment.xcf new file mode 100644 index 00000000..b49c04aa Binary files /dev/null and b/Screenshots/comment.xcf differ diff --git a/Screenshots/dark-theme.xcf b/Screenshots/dark-theme.xcf new file mode 100644 index 00000000..c07e8b52 Binary files /dev/null and b/Screenshots/dark-theme.xcf differ diff --git a/Screenshots/edit.xcf b/Screenshots/edit.xcf new file mode 100644 index 00000000..004bf42e Binary files /dev/null and b/Screenshots/edit.xcf differ diff --git a/Screenshots/feed.xcf b/Screenshots/feed.xcf new file mode 100644 index 00000000..5d2ef72a Binary files /dev/null and b/Screenshots/feed.xcf differ diff --git a/Screenshots/multiAccount.xcf b/Screenshots/multiAccount.xcf new file mode 100644 index 00000000..acbd5db0 Binary files /dev/null and b/Screenshots/multiAccount.xcf differ diff --git a/Screenshots/postCreation.xcf b/Screenshots/postCreation.xcf new file mode 100644 index 00000000..0a788aaf Binary files /dev/null and b/Screenshots/postCreation.xcf differ diff --git a/app/build.gradle b/app/build.gradle index e1c60a52..38666685 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -110,6 +110,7 @@ dependencies { implementation "androidx.lifecycle:lifecycle-common-java8:2.3.0" implementation "androidx.annotation:annotation:1.1.0" implementation 'androidx.gridlayout:gridlayout:1.0.0' + implementation "androidx.activity:activity-ktx:1.2.1" // Use the most recent version of CameraX def cameraX_version = '1.0.0-rc03' @@ -179,10 +180,9 @@ dependencies { implementation 'com.karumi:dexter:6.2.2' - implementation 'com.github.ligi.tracedroid:lib:3.0' - implementation 'com.github.ligi.tracedroid:supportemail:3.0' + implementation 'com.github.ligi:tracedroid:4.1' - implementation 'me.relex:circleindicator:2.1.4' + implementation 'me.relex:circleindicator:2.1.6' /** * Not in release, so not mentioned in licenses list diff --git a/app/licenses.yml b/app/licenses.yml index 013f1a60..7f0f194d 100644 --- a/app/licenses.yml +++ b/app/licenses.yml @@ -110,11 +110,27 @@ license: The Apache Software License, Version 2.0 licenseUrl: http://www.apache.org/licenses/LICENSE-2.0 url: https://github.com/Yalantis/uCrop +- artifact: com.github.ligi:tracedroid:+ + name: tracedroid + copyrightHolder: ligi + license: The Apache Software License, Version 2.0 + url: https://github.com/ligi/tracedroid - artifact: com.github.ligi.tracedroid:supportemail:+ name: supportemail copyrightHolder: ligi license: The Apache Software License, Version 2.0 url: https://github.com/ligi/tracedroid +- artifact: com.github.ligi.tracedroid:lib:+ + name: lib + copyrightHolder: ligi + license: The Apache Software License, Version 2.0 + url: https://github.com/ligi/tracedroid +- artifact: com.jakewharton.timber:timber:+ + name: timber + copyrightHolder: Jake Wharton and contributors + license: The Apache Software License, Version 2.0 + licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt + url: https://github.com/JakeWharton/timber - artifact: com.mikepenz:fastadapter-extensions-expandable:+ name: fastadapter-extensions-expandable copyrightHolder: Mike Penz and contributors @@ -619,11 +635,6 @@ license: The Apache Software License, Version 2.0 licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt url: https://github.com/mikepenz/Android-Iconics -- artifact: com.github.ligi.tracedroid:lib:+ - name: lib - copyrightHolder: ligi - license: The Apache Software License, Version 2.0 - url: https://github.com/ligi/tracedroid - artifact: org.jetbrains.kotlinx:kotlinx-coroutines-android:+ name: kotlinx-coroutines-android copyrightHolder: JetBrains s.r.o. and contributors @@ -771,4 +782,15 @@ license: The Apache Software License, Version 2.0 licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt url: http://developer.android.com/tools/extras/support-library.html - +- artifact: androidx.savedstate:savedstate-ktx:+ + name: savedstate-ktx + copyrightHolder: Google Inc + license: The Apache Software License, Version 2.0 + licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt + url: https://developer.android.com/jetpack/androidx/releases/savedstate#1.1.0 +- artifact: androidx.tracing:tracing:+ + name: tracing + copyrightHolder: Google Inc + license: The Apache Software License, Version 2.0 + licenseUrl: http://www.apache.org/licenses/LICENSE-2.0.txt + url: https://developer.android.com/jetpack/androidx/releases/tracing#1.0.0 \ No newline at end of file diff --git a/app/src/main/assets/licenses.html b/app/src/main/assets/licenses.html index 65f6dfb2..423c1063 100644 --- a/app/src/main/assets/licenses.html +++ b/app/src/main/assets/licenses.html @@ -4768,6 +4768,253 @@
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+ +

tracedroid

+

Copyright © ligi. All rights reserved.

+

https://github.com/ligi/tracedroid

+ +
+

+ Apache License +
+ Version 2.0, January 2004 +
+ http://www.apache.org/licenses/ +

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+
+

2. Grant of Copyright License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+
+
+

3. Grant of Patent License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+
+
+

4. Redistribution.

+

+ You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+
+ +

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+
+

5. Submission of Contributions.

+

+ Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+
+
+

6. Trademarks.

+

+ This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+
+
+

7. Disclaimer of Warranty.

+

+ Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+
+
+

8. Limitation of Liability.

+

+ In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+
+
+

9. Accepting Warranty or Additional Liability.

+

+ While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. +

+
+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work.

+

+ To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. +

+
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+

supportemail

@@ -5015,6 +5262,500 @@
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+ +

lib

+

Copyright © ligi. All rights reserved.

+

https://github.com/ligi/tracedroid

+ +
+

+ Apache License +
+ Version 2.0, January 2004 +
+ http://www.apache.org/licenses/ +

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+
+

2. Grant of Copyright License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+
+
+

3. Grant of Patent License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+
+
+

4. Redistribution.

+

+ You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+
+ +

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+
+

5. Submission of Contributions.

+

+ Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+
+
+

6. Trademarks.

+

+ This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+
+
+

7. Disclaimer of Warranty.

+

+ Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+
+
+

8. Limitation of Liability.

+

+ In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+
+
+

9. Accepting Warranty or Additional Liability.

+

+ While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. +

+
+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work.

+

+ To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. +

+
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+
+
+ +

timber

+

Copyright © Jake Wharton and contributors. All rights reserved.

+

https://github.com/JakeWharton/timber

+ +
+

+ Apache License +
+ Version 2.0, January 2004 +
+ http://www.apache.org/licenses/ +

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+
+

2. Grant of Copyright License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+
+
+

3. Grant of Patent License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+
+
+

4. Redistribution.

+

+ You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+
+ +

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+
+

5. Submission of Contributions.

+

+ Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+
+
+

6. Trademarks.

+

+ This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+
+
+

7. Disclaimer of Warranty.

+

+ Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+
+
+

8. Limitation of Liability.

+

+ In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+
+
+

9. Accepting Warranty or Additional Liability.

+

+ While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. +

+
+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work.

+

+ To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. +

+
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+

fastadapter-extensions-expandable

@@ -24895,253 +25636,6 @@
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
- -

lib

-

Copyright © ligi. All rights reserved.

-

https://github.com/ligi/tracedroid

- -
-

- Apache License -
- Version 2.0, January 2004 -
- http://www.apache.org/licenses/ -

-

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

-

1. Definitions.

-

- "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. -

-

- "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. -

-

- "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. -

-

- "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. -

-

- "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. -

-

- "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. -

-

- "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). -

-

- "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. -

-

- "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." -

-

- "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. -

-
-

2. Grant of Copyright License.

-

- Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. -

-
-
-

3. Grant of Patent License.

-

- Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. -

-
-
-

4. Redistribution.

-

- You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: -

-
- -

- You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. -

-
-

5. Submission of Contributions.

-

- Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. -

-
-
-

6. Trademarks.

-

- This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. -

-
-
-

7. Disclaimer of Warranty.

-

- Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. -

-
-
-

8. Limitation of Liability.

-

- In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. -

-
-
-

9. Accepting Warranty or Additional Liability.

-

- While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. -

-
-

END OF TERMS AND CONDITIONS

-

APPENDIX: How to apply the Apache License to your work.

-

- To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. -

-
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-
-

kotlinx-coroutines-android

@@ -31130,6 +31624,500 @@
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+ +

savedstate-ktx

+

Copyright © Google Inc. All rights reserved.

+

https://developer.android.com/jetpack/androidx/releases/savedstate#1.1.0

+ +
+

+ Apache License +
+ Version 2.0, January 2004 +
+ http://www.apache.org/licenses/ +

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+
+

2. Grant of Copyright License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+
+
+

3. Grant of Patent License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+
+
+

4. Redistribution.

+

+ You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+
+ +

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+
+

5. Submission of Contributions.

+

+ Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+
+
+

6. Trademarks.

+

+ This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+
+
+

7. Disclaimer of Warranty.

+

+ Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+
+
+

8. Limitation of Liability.

+

+ In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+
+
+

9. Accepting Warranty or Additional Liability.

+

+ While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. +

+
+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work.

+

+ To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. +

+
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+
+
+ +

tracing

+

Copyright © Google Inc. All rights reserved.

+

https://developer.android.com/jetpack/androidx/releases/tracing#1.0.0

+ +
+

+ Apache License +
+ Version 2.0, January 2004 +
+ http://www.apache.org/licenses/ +

+

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

1. Definitions.

+

+ "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. +

+

+ "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. +

+

+ "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. +

+

+ "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. +

+

+ "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. +

+

+ "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. +

+

+ "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). +

+

+ "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. +

+

+ "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." +

+

+ "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. +

+
+

2. Grant of Copyright License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. +

+
+
+

3. Grant of Patent License.

+

+ Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. +

+
+
+

4. Redistribution.

+

+ You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: +

+
+ +

+ You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. +

+
+

5. Submission of Contributions.

+

+ Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. +

+
+
+

6. Trademarks.

+

+ This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. +

+
+
+

7. Disclaimer of Warranty.

+

+ Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. +

+
+
+

8. Limitation of Liability.

+

+ In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. +

+
+
+

9. Accepting Warranty or Additional Liability.

+

+ While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. +

+
+

END OF TERMS AND CONDITIONS

+

APPENDIX: How to apply the Apache License to your work.

+

+ To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. +

+
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+
+
diff --git a/app/src/main/java/com/h/pixeldroid/MainActivity.kt b/app/src/main/java/com/h/pixeldroid/MainActivity.kt index 7bd05c53..fb2b74dc 100644 --- a/app/src/main/java/com/h/pixeldroid/MainActivity.kt +++ b/app/src/main/java/com/h/pixeldroid/MainActivity.kt @@ -39,7 +39,7 @@ import com.mikepenz.materialdrawer.model.interfaces.* import com.mikepenz.materialdrawer.util.AbstractDrawerImageLoader import com.mikepenz.materialdrawer.util.DrawerImageLoader import com.mikepenz.materialdrawer.widget.AccountHeaderView -import org.ligi.tracedroid.sending.TraceDroidEmailSender +import org.ligi.tracedroid.sending.sendTraceDroidStackTracesIfExist import retrofit2.HttpException import java.io.IOException @@ -69,7 +69,7 @@ class MainActivity : BaseActivity() { launchActivity(LoginActivity(), firstTime = true) finish() } else { - TraceDroidEmailSender.sendStackTraces("contact@pixeldroid.org", this) + sendTraceDroidStackTracesIfExist("contact@pixeldroid.org", this) setupDrawer() diff --git a/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt index 26267464..ae86a40a 100644 --- a/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt +++ b/app/src/main/java/com/h/pixeldroid/postCreation/PostCreationActivity.kt @@ -15,6 +15,8 @@ import android.view.View import android.view.View.INVISIBLE import android.view.View.VISIBLE import android.widget.Toast +import androidx.activity.result.ActivityResult +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.net.toFile import androidx.core.net.toUri import androidx.lifecycle.lifecycleScope @@ -43,10 +45,8 @@ import java.text.SimpleDateFormat import java.util.* import kotlin.collections.ArrayList import kotlin.math.ceil -import kotlin.properties.Delegates private const val TAG = "Post Creation Activity" -private const val MORE_PICTURES_REQUEST_CODE = 0xffff data class PhotoData( var imageUri: Uri, @@ -61,7 +61,6 @@ class PostCreationActivity : BaseActivity() { private lateinit var accessToken: String private lateinit var pixelfedAPI: PixelfedAPI - private var positionResult = 0 private var user: UserDatabaseEntity? = null private lateinit var instance: InstanceDatabaseEntity @@ -103,7 +102,7 @@ class PostCreationActivity : BaseActivity() { } carousel.maxEntries = instance.albumLimit carousel.addPhotoButtonCallback = { - addPhoto(applicationContext) + addPhoto() } carousel.updateDescriptionCallback = { position: Int, description: String -> photoData[position].imageDescription = description @@ -131,7 +130,7 @@ class PostCreationActivity : BaseActivity() { } binding.addPhotoButton.setOnClickListener { - addPhoto(it.context) + addPhoto() } binding.savePhotoButton.setOnClickListener { @@ -170,45 +169,66 @@ class PostCreationActivity : BaseActivity() { } for (i in 0 until count) { clipData.getItemAt(i).uri.let { - val size: Long = - if (it.toString().startsWith("content")) { - contentResolver.query(it, null, null, null, null) - ?.use { cursor -> - /* Get the column indexes of the data in the Cursor, - * move to the first row in the Cursor, get the data, - * and display it. - */ - val sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE) - cursor.moveToFirst() - cursor.getLong(sizeIndex) - } ?: 0 - } else { - it.toFile().length() - } - val sizeInkBytes = ceil(size.toDouble() / 1000).toLong() - if(sizeInkBytes > instance.maxPhotoSize || sizeInkBytes > instance.maxVideoSize){ - val maxSize = when { - instance.maxPhotoSize != instance.maxVideoSize -> { - val type = contentResolver.getType(it) - if(type?.startsWith("video/") == true){ - instance.maxVideoSize - } else instance.maxPhotoSize - } - else -> instance.maxPhotoSize - } - AlertDialog.Builder(this).apply { - setMessage(getString(R.string.size_exceeds_instance_limit).format(photoData.size + 1, sizeInkBytes, maxSize)) - setNegativeButton(android.R.string.ok) { _, _ -> } - }.show() - } + val size = it.getSize() photoData.add(PhotoData(imageUri = it, size = size)) } } } - private fun addPhoto(context: Context){ - val intent = Intent(context, CameraActivity::class.java) - this@PostCreationActivity.startActivityForResult(intent, MORE_PICTURES_REQUEST_CODE) + /** + * Returns the size of the file of the Uri, and opens a dialog in case it is too big. + */ + private fun Uri.getSize(): Long { + val size: Long = + if (toString().startsWith("content")) { + contentResolver.query(this, null, null, null, null) + ?.use { cursor -> + /* Get the column indexes of the data in the Cursor, + * move to the first row in the Cursor, get the data, + * and display it. + */ + val sizeIndex = cursor.getColumnIndex(OpenableColumns.SIZE) + cursor.moveToFirst() + cursor.getLong(sizeIndex) + } ?: 0 + } else { + toFile().length() + } + + val sizeInkBytes = ceil(size.toDouble() / 1000).toLong() + if (sizeInkBytes > instance.maxPhotoSize || sizeInkBytes > instance.maxVideoSize) { + val maxSize = when { + instance.maxPhotoSize != instance.maxVideoSize -> { + val type = contentResolver.getType(this) + if (type?.startsWith("video/") == true) { + instance.maxVideoSize + } else instance.maxPhotoSize + } + else -> instance.maxPhotoSize + } + AlertDialog.Builder(this@PostCreationActivity).apply { + setMessage(getString(R.string.size_exceeds_instance_limit, photoData.size + 1, sizeInkBytes, maxSize)) + setNegativeButton(android.R.string.ok) { _, _ -> } + }.show() + } + return size + } + + private val addPhotoResultContract = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> + if (result.resultCode == Activity.RESULT_OK && result.data?.clipData != null) { + result.data?.clipData?.let { + addPossibleImages(it) + } + binding.carousel.addData(photoData.map { CarouselItem(it.imageUri, it.imageDescription) }) + } else if (result.resultCode != Activity.RESULT_CANCELED) { + Toast.makeText(applicationContext, "Error while adding images", Toast.LENGTH_SHORT).show() + } + } + + private fun addPhoto(){ + addPhotoResultContract.launch( + Intent(this, CameraActivity::class.java) + ) } private fun savePicture(button: View, currentPosition: Int) { @@ -334,7 +354,7 @@ class PostCreationActivity : BaseActivity() { binding.uploadError.visibility = View.VISIBLE if(e is HttpException){ binding.uploadErrorTextExplanation.text = - getString(R.string.upload_error).format(e.code()) + getString(R.string.upload_error, e.code()) binding.uploadErrorTextExplanation.visibility= VISIBLE } else { binding.uploadErrorTextExplanation.visibility= View.GONE @@ -398,39 +418,27 @@ class PostCreationActivity : BaseActivity() { } - private fun edit(position: Int) { - positionResult = position + private fun editResultContract(position: Int) = registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ + result: ActivityResult? -> + if (result?.resultCode == Activity.RESULT_OK && result.data != null) { + photoData[position].apply { + imageUri = result.data!!.getStringExtra("result")!!.toUri() + size = imageUri.getSize() + } + binding.carousel.addData(photoData.map { CarouselItem(it.imageUri, it.imageDescription) }) + + photoData[position].progress = null + photoData[position].uploadId = null + } else if(result?.resultCode != Activity.RESULT_CANCELED){ + Toast.makeText(applicationContext, "Error while editing", Toast.LENGTH_SHORT).show() + } + } + + private fun edit(position: Int) { val intent = Intent(this, PhotoEditActivity::class.java) .putExtra("picture_uri", photoData[position].imageUri) .putExtra("no upload", false) - startActivityForResult(intent, positionResult) - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - super.onActivityResult(requestCode, resultCode, data) - if (requestCode == positionResult) { - if (resultCode == Activity.RESULT_OK && data != null) { - photoData[positionResult].imageUri = data.getStringExtra("result")!!.toUri() - - binding.carousel.addData(photoData.map { CarouselItem(it.imageUri, it.imageDescription) }) - - photoData[positionResult].progress = null - photoData[positionResult].uploadId = null - } else if(resultCode != Activity.RESULT_CANCELED){ - Toast.makeText(applicationContext, "Error while editing", Toast.LENGTH_SHORT).show() - } - } else if (requestCode == MORE_PICTURES_REQUEST_CODE) { - - if (resultCode == Activity.RESULT_OK && data?.clipData != null) { - data.clipData?.let { - addPossibleImages(it) - } - - binding.carousel.addData(photoData.map { CarouselItem(it.imageUri, it.imageDescription) }) - } else if(resultCode != Activity.RESULT_CANCELED){ - Toast.makeText(applicationContext, "Error while adding images", Toast.LENGTH_SHORT).show() - } - } + editResultContract(position).launch(intent) } } \ No newline at end of file diff --git a/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt b/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt index f25a8160..5d7efa3d 100644 --- a/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt +++ b/app/src/main/java/com/h/pixeldroid/posts/StatusViewHolder.kt @@ -280,12 +280,12 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold //Update shown share count binding.nshares.text = resp.getNShares(binding.root.context) binding.reblogger.isChecked = resp.reblogged!! - } catch (exception: IOException) { - Log.e("REBLOG ERROR", exception.toString()) - binding.reblogger.isChecked = false } catch (exception: HttpException) { Log.e("RESPONSE_CODE", exception.code().toString()) binding.reblogger.isChecked = false + } catch (exception: IOException) { + Log.e("REBLOG ERROR", exception.toString()) + binding.reblogger.isChecked = false } } } @@ -302,12 +302,12 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold //Update shown share count binding.nshares.text = resp.getNShares(binding.root.context) binding.reblogger.isChecked = resp.reblogged!! - } catch (exception: IOException) { - Log.e("REBLOG ERROR", exception.toString()) - binding.reblogger.isChecked = true } catch (exception: HttpException) { Log.e("RESPONSE_CODE", exception.code().toString()) binding.reblogger.isChecked = true + } catch (exception: IOException) { + Log.e("REBLOG ERROR", exception.toString()) + binding.reblogger.isChecked = true } } } @@ -397,8 +397,18 @@ class StatusViewHolder(val binding: PostFragmentBinding) : RecyclerView.ViewHold try { api.deleteStatus("Bearer ${user.accessToken}", id) binding.root.visibility = View.GONE - } catch (exception: IOException) { } catch (exception: HttpException) { + Toast.makeText( + binding.root.context, + binding.root.context.getString(R.string.delete_post_failed_error, exception.code()), + Toast.LENGTH_SHORT + ).show() + } catch (exception: IOException) { + Toast.makeText( + binding.root.context, + binding.root.context.getString(R.string.delete_post_failed_io_except), + Toast.LENGTH_SHORT + ).show() } } } diff --git a/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt index 63c4f87f..f007cf35 100644 --- a/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt +++ b/app/src/main/java/com/h/pixeldroid/posts/feeds/uncachedFeeds/search/SearchPagingSource.kt @@ -39,10 +39,10 @@ class SearchPagingSource( prevKey = null, nextKey = if (repos.isEmpty()) null else (position ?: 0) + repos.size ) - } catch (exception: IOException) { - LoadResult.Error(exception) } catch (exception: HttpException) { LoadResult.Error(exception) + } catch (exception: IOException) { + LoadResult.Error(exception) } } diff --git a/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt index 966e9846..2226de69 100644 --- a/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt +++ b/app/src/main/java/com/h/pixeldroid/searchDiscover/SearchDiscoverFragment.kt @@ -60,12 +60,6 @@ class SearchDiscoverFragment : BaseFragment() { adapter = DiscoverRecyclerViewAdapter() recycler.adapter = adapter - binding.discoverText.setCompoundDrawables(IconicsDrawable(requireContext(), GoogleMaterial.Icon.gmd_explore).apply { - sizeDp = 24 - paddingDp = 20 - color = IconicsColor.colorRes(R.color.colorDrawing) - }, null, null, null) - return binding.root } diff --git a/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt b/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt index 06fa92f3..abedc1fa 100644 --- a/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt +++ b/app/src/main/java/com/h/pixeldroid/utils/PixelDroidApplication.kt @@ -5,6 +5,7 @@ import androidx.preference.PreferenceManager import com.h.pixeldroid.utils.di.* import com.mikepenz.iconics.Iconics import org.ligi.tracedroid.TraceDroid +import org.ligi.tracedroid.sending.sendTraceDroidStackTracesIfExist class PixelDroidApplication: Application() { @@ -13,7 +14,9 @@ class PixelDroidApplication: Application() { override fun onCreate() { super.onCreate() + TraceDroid.init(this) + val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) setThemeFromPreferences(sharedPreferences, resources) diff --git a/app/src/main/java/com/h/pixeldroid/utils/api/objects/Error.kt b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Error.kt new file mode 100644 index 00000000..7a2d5be9 --- /dev/null +++ b/app/src/main/java/com/h/pixeldroid/utils/api/objects/Error.kt @@ -0,0 +1,5 @@ +package com.h.pixeldroid.utils.api.objects + +data class Error( + val error: String? +) \ No newline at end of file diff --git a/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt b/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt index 9193bf07..08d3a490 100644 --- a/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt +++ b/app/src/main/java/com/h/pixeldroid/utils/db/DBUtils.kt @@ -49,5 +49,5 @@ fun storeInstance(db: AppDatabase, nodeInfo: NodeInfo?, instance: Instance? = nu ) } ?: throw IllegalArgumentException("Cannot store instance where both are null") - db.instanceDao().insertInstance(dbInstance) + db.instanceDao().insertOrUpdate(dbInstance) } \ No newline at end of file diff --git a/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt b/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt index dad64a5a..c4887174 100644 --- a/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt +++ b/app/src/main/java/com/h/pixeldroid/utils/db/dao/InstanceDao.kt @@ -1,9 +1,6 @@ package com.h.pixeldroid.utils.db.dao -import androidx.room.Dao -import androidx.room.Insert -import androidx.room.OnConflictStrategy -import androidx.room.Query +import androidx.room.* import com.h.pixeldroid.utils.db.entities.InstanceDatabaseEntity @Dao @@ -11,6 +8,19 @@ interface InstanceDao { @Query("SELECT * FROM instances") fun getAll(): List - @Insert(onConflict = OnConflictStrategy.REPLACE) - fun insertInstance(instance: InstanceDatabaseEntity) + /** + * Insert an instance, if it already exists return -1 + */ + @Insert(onConflict = OnConflictStrategy.IGNORE) + fun insertInstance(instance: InstanceDatabaseEntity): Long + + @Update + fun updateInstance(instance: InstanceDatabaseEntity) + + @Transaction + fun insertOrUpdate(instance: InstanceDatabaseEntity) { + if (insertInstance(instance) == -1L) { + updateInstance(instance) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt b/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt index 79346fe7..2d6cb27f 100644 --- a/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt +++ b/app/src/main/java/com/h/pixeldroid/utils/di/APIModule.kt @@ -2,7 +2,6 @@ package com.h.pixeldroid.utils.di import com.h.pixeldroid.utils.api.PixelfedAPI import com.h.pixeldroid.utils.db.AppDatabase -import com.h.pixeldroid.utils.db.addUser import com.h.pixeldroid.utils.db.entities.UserDatabaseEntity import dagger.Module import dagger.Provides @@ -11,7 +10,6 @@ import okhttp3.* import retrofit2.Retrofit import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory import retrofit2.converter.gson.GsonConverterFactory -import java.lang.Exception import javax.inject.Singleton @Module @@ -74,9 +72,18 @@ class PixelfedAPIHolder(db: AppDatabase?){ ): PixelfedAPI { val newAPI = intermediate .baseUrl(user.instance_uri) - .client(OkHttpClient().newBuilder().authenticator(TokenAuthenticator(user, db)).build()) + .client( + OkHttpClient().newBuilder().authenticator(TokenAuthenticator(user, db)) + .addInterceptor { + it.request().newBuilder().run { + header("Accept", "application/json") + it.proceed(build()) + } + }.build() + ) .build().create(PixelfedAPI::class.java) api = newAPI return newAPI } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/explore_24dp.xml b/app/src/main/res/drawable/explore_24dp.xml new file mode 100644 index 00000000..bee2993c --- /dev/null +++ b/app/src/main/res/drawable/explore_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/fragment_feed.xml b/app/src/main/res/layout/fragment_feed.xml index 7ab966f2..5b50fd9b 100644 --- a/app/src/main/res/layout/fragment_feed.xml +++ b/app/src/main/res/layout/fragment_feed.xml @@ -5,7 +5,9 @@ android:id="@+id/coordinatorLayout" android:layout_width="match_parent" android:layout_height="match_parent"> - + + app:layout_constraintTop_toBottomOf="@id/errorLayout" + app:drawableStartCompat="@drawable/explore_24dp" /> Ados, jarraitu hala ere Honek ez dirudi Pixelfed instantzia bat, aplikazioa ustekabeko moduetan huts egin dezake. Ezin izan da erabiltzailearen informazioa eskuratu + Ezin izan da bidalketa ezabatu, konexioa egiaztatu dezakezu\? + Ezin izan da bidalketa ezabatu, %1$d errorea + Zerbitzariak itzulitako errore-kodea: %1$d + Albumean %1$d zenbakia duen irudiaren tamainak instantziak onartutako gehienezko tamaina gainditzen du (%2$d kB ditu, eta muga %3$d kB da). Baliteke ezin igo ahal izatea. + Zerbitzariak onartutako kopurua (%1$s) baino irudi gehiago aukeratu dituzu. Mugatik gorako irudiei ez ikusia egin zaie. + APIa ez dago aktibo instantzia honetan. Jarri zure administratzailearekin kontaktuan aktibatzeko. \ No newline at end of file diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index badcc906..32000650 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -175,8 +175,10 @@ \nمعنای دیگر این موضوع آن است که شما باید انتخاب کنید که از کدام کارساز یا «نمونه» از پیکسل‌فد استفاده می‌کنید. اگر چیزی در این باره نمی‌دانید می‌توانید به این نشانی مراجعه کنید: https://pixelfed.org/join \n \nبرای کسب اطلاعات بیشتر درباره پیکسل‌فد می‌توانید این نشانی را ببینید: https://pixelfed.org - کد خطای دریافت شده از کارساز: %1$s - اندازه تصویر شماره %1$s در آلبوم از بیشینه اندازه مجاز در نمونه (%2$s کیلوبایت در مقابل آستانه مجاز %3$s کیلوبایت) تجاوز رده است. + کد خطای دریافت شده از کارساز: %1$d + اندازه تصویر شماره %1$d در آلبوم از بیشینه اندازه مجاز در نمونه (%2$d کیلوبایت در مقابل آستانه مجاز %3$d کیلوبایت) تجاوز رده است. تعداد تصاویر انتخاب شده شما بیش از بیشینه مجاز روی کارساز است (%1$s). تصاویر بیش از آن تعداد، نادیده گرفته شده‌اند. روی این نمونه، API فعال نیست. با مدیر نمونه تماس گرفته و از او بخواهید آن را فعال کند. + نتوانستیم فرسته را پاک کنیم. به اینترنت وصل هستید؟ + نتوانستیم این فرسته را پاک کنیم. خطا: %1$d \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1d1fc3c2..409203ed 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -138,8 +138,8 @@ Abonnements de %1$s Abonné·e·s de %1$s Impossible d\'obtenir les informations sur l\'utilisateur - La taille de l\'image n°%1$s dans l\'album dépasse la taille maximale autorisée (%2$s ko mais la limite est %3$s ko). Il se peut que vous ne puissiez pas la télécharger. - Le serveur a retourné le code d\'erreur : %1$s + La taille de l\'image n°%1$d dans l\'album dépasse la taille maximale autorisée (%2$d ko mais la limite est %3$d ko). Il se peut que vous ne puissiez pas la télécharger. + Le serveur a retourné le code d\'erreur : %1$d Vous avez choisi plus d\'images que le maximum autorisé par votre serveur (%1$s). Les images au delà de la limite ont été ignorées. Ajouter une description du média ici… Enregistrer la description de l\'image diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 6037f1cb..403d6883 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -159,8 +159,8 @@ Botón para recortar ou rotar a imaxe Vista previa da imaxe a ser editada Miniatura do filtro - Código de erro devolto polo servidor: %1$s - O tamaño do número de imaxes %1$s no álbume supera o máximo permitido pola instancia (%2$s kB pero o límite é %3$s kB). É posible que non poidas subilas. + Código de erro devolto polo servidor: %1$d + O tamaño do número de imaxes %1$d no álbume supera o máximo permitido pola instancia (%2$d kB pero o límite é %3$d kB). É posible que non poidas subilas. Elexiches máis imaxes das que permite o servidor (%1$s). As imaxes que superan o límite serán ignoradas. Engade aquí unha descrición… Gardar descrición da imaxe @@ -179,4 +179,6 @@ \nTamén significa que tes que escoller un servidor, ou \'instancia\' de Pixelfed para utilizar. Se non coñeces ningunha, mira aquí: https://pixelfed.org/join \n \nPara saber máis acerca de Pixelfed, podes mirar aquí: https://pixelfed.org + Non se puido eliminar a publicación, tes conexión a internet\? + Non se puido eliminar a publicación, erro %1$d \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ecdc225c..247a9a26 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -165,8 +165,8 @@ %d Mi piace %d Mi piace - Codice di errore restituito dal server: %1$s - La dimensione del numero dell\'immagine %1$s nell\'album supera la dimensione massima consentita dall\'istanza (%2$s kB ma il limite è %3$s kB). Potresti non essere in grado di caricarla. + Codice di errore restituito dal server: %1$d + La dimensione del numero dell\'immagine %1$d nell\'album supera la dimensione massima consentita dall\'istanza (%2$d kB ma il limite è %3$d kB). Potresti non essere in grado di caricarla. Hai scelto più immagini del massimo che il server consente (%1$s). Le immagini oltre il limite sono state ignorate. Aggiungi una descrizione dell\'immagine qui… Salva la descrizione dell\'immagine diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 49014a5c..ad78e2dd 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -65,7 +65,7 @@ Kunde inte visa följarknapp Kunde inte hämta status för följare Kommentera - Kommentar: %$s inlagd! + Kommentar: %1$s inlagd! Kommentarsfel! Dela bild Du måste tillåta skrivrättigheter för att dela bilder! diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 74a364f5..852df30e 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -18,8 +18,9 @@ বাংলা (বাংলাদেশ) Català Deutsch - Esperanto + Español Euskara + English فارسی Français Gaeilge @@ -42,6 +43,7 @@ de es eu + en fa fr gl diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e408e90a..51f69cb8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,8 +66,8 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Save image description Add a media description here… You chose more images than the maximum your server allows (%1$s). Images beyond the limit have been ignored. - Size of image number %1$s in the album exceeds the maximum size allowed by the instance (%2$s kB but the limit is %3$s kB). You might not be able to upload it. - Error code returned by server: %1$s + Size of image number %1$d in the album exceeds the maximum size allowed by the instance (%2$d kB but the limit is %3$d kB). You might not be able to upload it. + Error code returned by server: %1$d @@ -194,4 +194,6 @@ For more info about Pixelfed, you can check here: https://pixelfed.org" Help translate PixelDroid to your language: Report issues or contribute to the application: Image showing a red panda, Pixelfed\'s mascot, using a phone + Could not delete the post, error %1$d + Could not delete the post, check your connection? \ No newline at end of file diff --git a/build.gradle b/build.gradle index 859d677a..5b41220b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,18 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.21' + ext.kotlin_version = '1.4.31' repositories { google() - jcenter() + mavenCentral() + jcenter { + content { + // org.jetbrains.trove4j is only available in JCenter + //TODO remove JCenter repo: + // see issue https://gitlab.shinice.net/pixeldroid/PixelDroid/-/issues/278 + includeGroup("org.jetbrains.trove4j") + } + } } dependencies { classpath 'com.android.tools.build:gradle:4.1.3' @@ -18,9 +26,21 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() maven { url "https://jitpack.io" } + jcenter { + content { + // info.androidhive:imagefilters is only available in JCenter + //TODO remove JCenter repo: + // see issue https://gitlab.shinice.net/pixeldroid/PixelDroid/-/issues/278 + includeGroup("info.androidhive") + // org.jetbrains.trove4j is only available in JCenter + //TODO remove JCenter repo: + // see issue https://gitlab.shinice.net/pixeldroid/PixelDroid/-/issues/278 + includeGroup("org.jetbrains.trove4j") + } + } } } diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index 3ef8e4d4..41ff5591 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1 +1,3 @@ -PixelDroid is a Free/Libre and Open Source Android client for Pixelfed, the federated image sharing platform. One may upload new posts, search or interact with others inluding liking and sharing others' posts as well as leaving comments under them. +PixelDroid is a Free and Open Source Android client for Pixelfed, the federated image sharing platform. + +One may upload new posts, search or interact with others inluding liking and sharing others' posts as well as leaving comments under them. diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot01.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot01.png index 84e6a55f..6d1170ea 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot01.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot01.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot02.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot02.png index 75ce8dde..d4caae05 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot02.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot02.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot03.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot03.png index 11a8925b..8934aeb8 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot03.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot03.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot04.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot04.png index 98538fac..9c8a84ba 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot04.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot04.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot05.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot05.png new file mode 100644 index 00000000..4b3eb5f6 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot05.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot06.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot06.png new file mode 100644 index 00000000..8f62800c Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot06.png differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot07.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot07.png new file mode 100644 index 00000000..d6201973 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/screenshot07.png differ