Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: OONI Run v2 API Bootstrap #582

Closed
wants to merge 46 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b81dc16
added ooni run v2 in experimental mode
aanorbel Jul 10, 2023
64a54cf
updated app to support OONI Run V2 links
aanorbel Jul 12, 2023
0e1a351
updated app to cache test descriptors
aanorbel Jul 13, 2023
b12636a
updated app to cache test descriptors
aanorbel Jul 13, 2023
57c3bba
updated app to use string resources in dashboard and overview instead…
aanorbel Jul 13, 2023
ba1076e
added result row
aanorbel Jul 13, 2023
6ec5283
updated result list and ooni run screen
aanorbel Jul 14, 2023
cabac91
update with change in cli interface
aanorbel Jul 15, 2023
b8dedf6
updated run activity to install link and navigate to overview activity
aanorbel Jul 18, 2023
d996736
modified list on ooni run activity to display inputs for nettests
aanorbel Jul 19, 2023
22cf159
Updates recycler view for inputs
aanorbel Jul 21, 2023
c19ac4f
Updates OONI Run V2 to install links even when tests are already runn…
aanorbel Aug 1, 2023
1158fb0
Merge branch 'master' of github.com:ooni/probe-android into xoonirun
aanorbel Aug 1, 2023
92950eb
Merge branch 'master' of github.com:ooni/probe-android into xoonirun
aanorbel Aug 2, 2023
44a3d4f
Merge branch 'xoonirun' of github.com:ooni/probe-android into xoonirun
aanorbel Aug 2, 2023
f6e3782
Adds support for icons and a default icons when the Ooni Run V2 link …
aanorbel Aug 2, 2023
e8f2307
Updated Icon color for OONI Run V2 Icons
aanorbel Aug 3, 2023
09c61e0
Merge branch 'chore/running-activity-upgrade-to-view-binding' of gith…
aanorbel Aug 3, 2023
a94376f
Updated `RunningActivity` to show Icon of OONI Run V2 link
aanorbel Aug 3, 2023
4d7c065
Merge branch 'chore/upgdate-ooni-run-activity-to-viewbinding' of gith…
aanorbel Aug 3, 2023
23d541f
Merge branch 'chore/overview-activity-upgrade-to-view-binding' of git…
aanorbel Aug 3, 2023
781c70d
Updated Result to contain reference to the descriptor.
aanorbel Aug 4, 2023
8c13a21
Added support for translation
aanorbel Aug 4, 2023
e4989af
Satisfied constructor dependency for testsuites in test package
aanorbel Aug 5, 2023
003a9c5
Add measurement count to run item
aanorbel Aug 7, 2023
221d446
Start implementation of autorun and auto update
aanorbel Aug 10, 2023
a981699
add support for item update by swipe to refresh
aanorbel Aug 10, 2023
c6d1f43
Updated logic for automatically updating and approved updated
aanorbel Aug 11, 2023
b82cc0b
Merge branch 'master' of github.com:ooni/probe-android into xoonirun
aanorbel Aug 11, 2023
ca44991
Merge branch 'xoonirun' of github.com:ooni/probe-android into oonirun…
aanorbel Aug 11, 2023
ea8c3da
Updated `OoniRunActivity` to fetch v2 descriptor async
aanorbel Aug 14, 2023
0e3dc3c
Merge branch 'xoonirun' of github.com:ooni/probe-android into oonirun…
aanorbel Aug 14, 2023
2d7d8b7
Updated xml to remove duplicate tools
aanorbel Aug 14, 2023
ebeca76
Updates UI on refresh complete
aanorbel Aug 15, 2023
f41142a
Updated ViewModel
aanorbel Aug 16, 2023
6f85191
Merge pull request #599 from ooni/oonirun/add-autorun-and-auto-update…
aanorbel Aug 17, 2023
7ab812a
- Changed theme for `OverviewActivity`, `ResultDetailActivity`, `Meas…
aanorbel Aug 18, 2023
f99de74
Adds default property values for `color` and `animation` if backend d…
aanorbel Aug 21, 2023
b9a03b3
removed default animation
aanorbel Aug 21, 2023
75d166b
Modified scheduling of workers.
aanorbel Aug 25, 2023
04eaff1
Updated scheduling of workers
aanorbel Aug 25, 2023
368b509
Merge pull request #601 from ooni/oonirun/add-support-for-color-and-a…
aanorbel Aug 28, 2023
c0d34c2
Adds ooni run id to anotations
aanorbel Oct 9, 2023
c152544
Merge pull request #620 from ooni/oonirun/add-run-id-to-anotations
aanorbel Oct 11, 2023
21e5ebb
Merge branch 'master' of github.com:ooni/probe-android into xoonirun
aanorbel Oct 31, 2023
fa156e8
Merge branches 'xoonirun' and 'master' of github.com:ooni/probe-andro…
aanorbel Nov 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,11 @@ Generate code coverage report (after all unit and instrumented tests successfull
To manage translations check out our [translation repo](https://github.com/ooni/translations)
and follow the instructions there.

## Importing Icons

```shell
./scripts/import_icons.sh ~/Downloads/react-icons-xmls
```
Comment on lines +149 to +153
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

## Contributing

* Write some code
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.openobservatory.ooniprobe.BuildConfig;
import org.openobservatory.ooniprobe.R;
import org.openobservatory.ooniprobe.common.PreferenceManager;
import org.openobservatory.ooniprobe.common.StringUtils;
import org.openobservatory.ooniprobe.common.ThirdPartyServices;
import org.openobservatory.ooniprobe.domain.GetTestSuite;
import org.openobservatory.ooniprobe.domain.TestDescriptorManager;
Expand Down Expand Up @@ -132,9 +133,14 @@ else if (Intent.ACTION_SEND.equals(intent.getAction())) {
}

private void loadScreen(FetchTestDescriptorResponse response) {
// icon.setImageResource(descriptor.getIcon());
icon.setImageResource(R.drawable.ooni_empty_state);
title.setText(response.suite.getName());
int imageResource = getResources().getIdentifier(StringUtils.camelToSnake(response.descriptor.getIcon()), "drawable", getPackageName());
if (imageResource > 0) {
icon.setImageResource(imageResource);
} else {
icon.setImageResource(R.drawable.ooni_empty_state);
}

title.setText(response.suite.getTitle());
desc.setText(response.suite.getCardDesc());


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package org.openobservatory.ooniprobe.common;

public class StringUtils {
public static String camelToSnake(String camelCase) {

final char[] name = camelCase.toCharArray();
final StringBuilder builder = new StringBuilder();

for (int i = 0; i < name.length; i++) {
if (Character.isUpperCase(name[i]) || name[i] == '.' || name[i] == '$') {
if (i != 0 && name[i - 1] != '.' && name[i - 1] != '$') {
builder.append('_');
}
if (name[i] != '.' && name[i] != '$') {
builder.append(Character.toLowerCase(name[i]));
}
} else {
builder.append(name[i]);
}
}

return builder.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ public static FetchTestDescriptorResponse fetchDataFromRunId(long runId, Context

return new FetchTestDescriptorResponse(
new OONIRunSuite(
context,
testDescriptor,
tests.toArray(new AbstractTest[0])
),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public class DashboardFragment extends Fragment implements View.OnClickListener
super.onResume();
items.clear();
testSuites.clear();
testSuites.addAll(TestAsyncTask.getSuites(getResources()));
testSuites.addAll(TestAsyncTask.getSuites(getContext()));

ArrayList<AbstractSuite> emptySuites = new ArrayList<>();
for (AbstractSuite testSuite : testSuites){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ public AbstractSuite getTestSuite() {
case ExperimentalSuite.NAME:
return new ExperimentalSuite(FlowManager.getContext().getResources());
case OONIRunSuite.NAME:
return new OONIRunSuite(TestDescriptor.Builder.aTestDescriptor().build());
return new OONIRunSuite(FlowManager.getContext(),TestDescriptor.Builder.aTestDescriptor().build());
default:
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ public class TestAsyncTask extends AsyncTask<Void, String, Void> implements Abst
private String proxy;
private boolean store_db = true;

public static List<AbstractSuite> getSuites(Resources resources) {
ArrayList<AbstractSuite> testSuites = new ArrayList<>(Arrays.asList(new WebsitesSuite(resources),
new InstantMessagingSuite(resources), new CircumventionSuite(resources), new PerformanceSuite(resources), new ExperimentalSuite(resources)));
public static List<AbstractSuite> getSuites(Context context) {
ArrayList<AbstractSuite> testSuites = new ArrayList<>(Arrays.asList(new WebsitesSuite(context.getResources()),
new InstantMessagingSuite(context.getResources()), new CircumventionSuite(context.getResources()), new PerformanceSuite(context.getResources()), new ExperimentalSuite(context.getResources())));

List<TestDescriptor> testDescriptors = TestDescriptorManager.getAll();
testSuites.addAll(
Expand All @@ -81,7 +81,7 @@ public static List<AbstractSuite> getSuites(Resources resources) {
(List<OONIRunNettest>)descriptor.getNettests(),
nettest -> AbstractTest.getTestByName(nettest.getName())
);
return new OONIRunSuite(descriptor, tests.toArray(new AbstractTest[0]));
return new OONIRunSuite(context, descriptor, tests.toArray(new AbstractTest[0]));
})
);
return testSuites;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import androidx.annotation.Nullable;
import androidx.annotation.StyleRes;

import org.openobservatory.ooniprobe.R;
import org.openobservatory.ooniprobe.common.Application;
import org.openobservatory.ooniprobe.common.PreferenceManager;
import org.openobservatory.ooniprobe.model.database.Result;
Expand Down Expand Up @@ -76,14 +77,14 @@ public String getCardDesc() {
}

public int getIcon() {
return icon;
return (icon > 0) ? icon : R.drawable.ooni_empty_state;
}

public int getIconGradient() {
if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.M){
return icon;
return (icon > 0) ? icon : R.drawable.ooni_empty_state;
}else{
return icon_24;
return (icon_24 > 0) ? icon_24 : R.drawable.ooni_empty_state;
Comment on lines +80 to +87
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Set default drawable for descriptors that dont provide one.

}
}

Expand Down Expand Up @@ -149,7 +150,7 @@ public static AbstractSuite getSuite(Application app,
String tn,
@Nullable List<String> urls,
String origin) {
for (AbstractSuite suite : TestAsyncTask.getSuites(app.getResources()))
for (AbstractSuite suite : TestAsyncTask.getSuites(app))
for (AbstractTest test : suite.getTestList(app.getPreferenceManager()))
if (test.getName().equals(tn)) {
if (urls != null)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package org.openobservatory.ooniprobe.test.suite;

import android.content.Context;

import androidx.annotation.Nullable;

import com.google.common.collect.Lists;

import org.openobservatory.ooniprobe.R;
import org.openobservatory.ooniprobe.common.PreferenceManager;
import org.openobservatory.ooniprobe.common.StringUtils;
import org.openobservatory.ooniprobe.model.database.TestDescriptor;
import org.openobservatory.ooniprobe.test.test.AbstractTest;
import org.openobservatory.ooniprobe.test.test.Experimental;
Expand All @@ -16,12 +19,12 @@ public class OONIRunSuite extends AbstractSuite {
public static final String NAME = "ooni-run";
private final AbstractTest[] tests;

public OONIRunSuite(TestDescriptor descriptor, AbstractTest... tests) {
public OONIRunSuite(Context context, TestDescriptor descriptor, AbstractTest... tests) {
super(NAME,
descriptor.getName(),
descriptor.getShortDescription(),
R.drawable.about_ooni,
R.drawable.about_ooni,
context.getResources().getIdentifier(StringUtils.camelToSnake(descriptor.getIcon()), "drawable", context.getPackageName()),
context.getResources().getIdentifier(StringUtils.camelToSnake(descriptor.getIcon()), "drawable", context.getPackageName()),
R.color.color_gray7_1,
R.style.Theme_MaterialComponents_Light_DarkActionBar_App_NoActionBar_Experimental,
R.style.Theme_MaterialComponents_NoActionBar_App_Experimental,
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa500_px.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="448dp"
android:height="512dp"
android:viewportWidth="448"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h0.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-0.3 0.3-16 16.5-21.2 23.9l-0.5 0.6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h0.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8z m63.3-260.8c-0.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 0.2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_accessible_icon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="448dp"
android:height="512dp"
android:viewportWidth="448"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7z m-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_accusoft.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="640dp"
android:height="512dp"
android:viewportWidth="640"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 0.8 0 114.5-36.6 114.5-36.6 0.5-0.6-0.1-0.1 0.6-0.6-0.4-5.1-0.8-26.2-1-27.7-0.6-5.2 2.2-6.9 7-8.9l92.6-33.8c0.6-0.8 88.5-81.7 90.2-83.3z m160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 0.5-116.5 0.6-19.2 0.1-32.9-0.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1z m152.7 1.6c-2.3-0.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-0.9-60.4-9.6-65.3-9.3-3.1 0.2-9.6 0.8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 0.2 2.5 2 2.6 4.6 3.5 2.7 0.8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_acquisitions_incorporated.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="384dp"
android:height="512dp"
android:viewportWidth="384"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M357.45 468.2c-1.2-7.7-1.3-7.6-9.6-7.6-99.8 0.2-111.8-2.4-112.7-2.6-12.3-1.7-20.6-10.5-21-23.1-0.1-1.6-0.2-71.6-1-129.1-0.1-4.7 1.6-6.4 5.9-7.5 12.5-3 24.9-6.1 37.3-9.7 4.3-1.3 6.8-0.2 8.4 3.5 4.5 10.3 8.8 20.6 13.2 30.9 1.6 3.7 0.1 4.4-3.4 4.4-10-0.2-20-0.1-30.4-0.1v27h116c-1.4-9.5-2.7-18.1-4-27.5-7 0-13.8 0.4-20.4-0.1-22.6-1.6-18.3-4.4-84-158.6-8.8-20.1-27.9-62.1-36.5-89.2-4.4-14 5.5-25.4 18.9-26.6 18.6-1.7 37.5-1.6 56.2-2 20.6-0.4 41.2-0.4 61.8-0.5 3.1 0 4-1.4 4.3-4.3 1.2-9.8 2.7-19.5 4-29.2l2.4-16.1L23.75 0c-3.6 0-5.3 1.1-4.6 5.3 2.2 13.2-0.8 0.8 6.4 45.3 63.4 0 71.8 0.9 101.8 0.5 12.3-0.2 37 3.5 37.7 22.1 0.4 11.4-1.1 11.3-32.6 87.4-53.8 129.8-50.7 120.3-67.3 161-1.7 4.1-3.6 5.2-7.6 5.2-8.5-0.2-17-0.3-25.4 0.1-1.9 0.1-5.2 1.8-5.5 3.2-1.5 8.1-2.2 16.3-3.2 24.9h114.3v-27.6c-6.9 0-33.5 0.4-35.3-2.9 5.3-12.3 10.4-24.4 15.7-36.7 16.3 4 31.9 7.8 47.6 11.7 3.4 0.9 4.6 3 4.6 6.8-0.1 42.9 0.1 85.9 0.2 128.8 0 10.2-5.5 19.1-14.9 23.1-6.5 2.7-3.3 3.4-121.4 2.4-5.3 0-7.1 2-7.6 6.8-1.5 12.9-2.9 25.9-5 38.8-0.8 5 1.3 5.7 5.3 5.7 183.2 0.6-30.7 0 337.1 0-2.5-15-4.4-29.4-6.6-43.7z m-174.9-205.7c-13.3-4.2-26.6-8.2-39.9-12.5a44.53 44.53 0 0 1-5.8-2.9c17.2-44.3 34.2-88.1 51.3-132.1 7.5 2.4 7.9-0.8 9.4 0 9.3 22.5 18.1 60.1 27 82.8 6.6 16.7 13 33.5 19.7 50.9a35.78 35.78 0 0 1-3.9 2.1c-13.1 3.9-26.4 7.5-39.4 11.7a27.66 27.66 0 0 1-18.4 0z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_ad.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A24 24 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_address_book.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="448dp"
android:height="512dp"
android:viewportWidth="448"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20z m-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z m112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_address_card.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="576dp"
android:height="512dp"
android:viewportWidth="576"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z m-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64z m112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z m0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z m0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_adjust.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M8 256c0 136.97 111.03 248 248 248s248-111.03 248-248S392.97 8 256 8 8 119.03 8 256z m248 184V72c101.7 0 184 82.31 184 184 0 101.7-82.31 184-184 184z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_adn.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="496dp"
android:height="512dp"
android:viewportWidth="496"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248z m-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_adversal.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 0.4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3z m286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7 0.4-13.9 10.5-9.1 17.1-9.1 132.3-0.4 264.5-0.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9z m3.8-340.5v291c0 5.7-0.7 13.9-8.1 13.9-12.4-0.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-0.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-0.1-26.2 26-26.2 3.1 0 6.6 0.4 9.7 0 10.1-0.8 13.6 4.4 13.6 14.3-0.1 0.2-0.1 0.3-0.1 0.5z m-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 0.4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1z m-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-0.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_affiliatetheme.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5z m351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 0.1-8.5-0.3-16.8-1-25z"/>
</vector>
9 changes: 9 additions & 0 deletions app/src/main/res/drawable/fa_air_freshener.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp"
android:height="512dp"
android:viewportWidth="512"
android:viewportHeight="512">
<path
android:fillColor="#FF000000"
android:pathData="M224 160H96c-53 0-96 43-96 96v224c0 17.63 14.38 32 32 32h256c17.63 0 32-14.38 32-32V256c0-53-43-96-96-96Zm-64 256c-44.13 0-80-35.88-80-80s35.88-80 80-80 80 35.88 80 80-35.88 80-80 80Zm64-384c0-17.63-14.38-32-32-32h-64c-17.63 0-32 14.38-32 32v96h128V32Zm157.78 19.58C383 50.97 384 49.36 384 48c0-1.38-1-2.97-2.22-3.58L352 32 339.56 2.22C338.96 1 337.37 0 336 0s-2.97 1-3.6 2.22L320 32l-29.78 12.42C289 45.03 288 46.62 288 48c0 1.36 1 2.97 2.22 3.58L320 64l12.4 29.78C333.04 95 334.64 96 336 96s2.97-1 3.56-2.22L352 64l29.78-12.42ZM448 64l12.4 29.78C461.04 95 462.64 96 464 96s2.97-1 3.56-2.22L480 64l29.78-12.42C511 50.97 512 49.36 512 48c0-1.38-1-2.97-2.22-3.58L480 32 467.56 2.22C466.96 1 465.37 0 464 0s-2.97 1-3.6 2.22L448 32l-29.78 12.42C417 45.03 416 46.62 416 48c0 1.36 1 2.97 2.22 3.58L448 64Zm32 160l-12.44-29.78c-0.6-1.22-2.19-2.22-3.56-2.22s-2.97 1-3.6 2.22L448 224l-29.78 12.42c-1.22 0.61-2.22 2.2-2.22 3.58 0 1.36 1 2.97 2.22 3.58L448 256l12.4 29.78c0.63 1.22 2.23 2.22 3.6 2.22s2.97-1 3.56-2.22L480 256l29.78-12.42c1.22-0.61 2.22-2.22 2.22-3.58 0-1.38-1-2.97-2.22-3.58L480 224Zm-34.22-76.42c1.22-0.61 2.22-2.22 2.22-3.58 0-1.38-1-2.97-2.22-3.58L416 128l-12.44-29.78C402.96 97 401.37 96 400 96s-2.97 1-3.6 2.22L384 128l-29.78 12.42c-1.22 0.61-2.22 2.2-2.22 3.58 0 1.36 1 2.97 2.22 3.58L384 160l12.4 29.78c0.63 1.22 2.23 2.22 3.6 2.22s2.97-1 3.56-2.22L416 160l29.78-12.42Z"/>
</vector>
Loading
Loading